問題タブ [treetop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - ツリートップでSyntaxNode+[Node]はどういう意味ですか?(ルビー)
ツリートップを使用して構文を定義しましたが、ほとんどの値は正常に解析されますが、次のようになります。
... と ...
SyntaxNode + [Node]はどういう意味ですか?正しく機能するように修正するにはどうすればよいですか?現在、これらのノードにはTokenクラスではなくSyntaxNodeクラスがあります(これにより、これらのノードは汎用になり、私のニーズに適合しません)。
私が見る限り、これを(token space)+
引き起こしたのは定義することです(理由はわかりません)。
ruby - オプションのコンテンツを解析する PEG 文法
Treetopで両方をサポートする構文を記述する方法を教えてください。
と
ruby - バックトラックせずにツリートップで左再帰を回避するにはどうすればよいですか?
作業中のこの単純な式パーサーで左再帰を回避するのに問題があります。基本的に、方程式'fxy'を2つの式'fx'と'(fx)y'(暗黙の括弧付き)に解析したいと思います。左再帰とバックトラックを回避しながら、これを行うにはどうすればよいですか?中間ステップが必要ですか?
ruby - Treetopの複数形の一致
Treetopを使用して複数の単語をプログラムで照合する方法はありますか。言語学の宝石は単語を複数形にしますが、それをパーサーに戻すにはどうすればよいですか。
これが私がやろうとしていることの例です:
ruby - 正規表現に似たツリートップのバックトラック?
私が読んだすべてのことは、正規表現のようなTreetopのバックトラックを示唆していますが、それを機能させるのに苦労しています。
次の文法があるとします。
これは文字列と一致しません{abc}
。.+
それは、手紙a
以降のすべてを消費しているからだと思います。つまり、消費abc}
したいだけのときに消費しますabc
。
これは、同様の正規表現が行うこととは異なるように見えます。正規表現/{.+}/
は一致し{abc}
ます。これが可能であるのは、正規表現エンジンがの}
一部としてクロージングを消費した後.+
、一致しなかったためにバックトラックするためであると私は理解しています。
では、Treetopはそのようなバックトラックを実行できますか?もしそうなら、どのように?
}
否定を使用して「 。以外のもの」と一致させることができることを私は知っています。しかし、それは私の意図ではありません。文字列と一致させたいとします{ab}c}
。その場合に必要なトークンは、開始{
、中間の文字列ab}c
、および終了}
です。これは不自然な例ですが、のようなネストされた式を操作する場合に非常に関連性が高くなり{a b {c d}}
ます。
ruby - 負の規則によるツリートップの無限再帰
私は次のツリートップ文法を持っています:
「hello world $test$」などの式を解析しようとすると、スクリプトが無限ループに入ります。
問題は not_delimiter ルールに起因するようです。削除すると式が解析されるためです。
この文法の問題点は何ですか?
前もって感謝します。
ruby - Treetop 文法の何が問題になっていますか?
私は文法ファイルを持っていますalexa_scrape.tt
:
それを利用しようとするルビーファイルがあります:
しかし、期待した結果が得られません:
空の文字列は適切に解析されますが ( document
, zerocategory_listing
の自明な一致として)、解析に失敗します(それ自体が 0の"/x\n"
単一の文字列を含むドキュメントとして)。category_listing
url_line
私は何を間違っていますか?
ruby - Treetopを使用してIOを解析できますか?
Treetopで解析したいファイルがあります。全体を解析したい場合は、
ファイル全体を一度にメモリに読み込みたくありません。パーサーを一度に1つずつ解析するように設定できることはわかっていますcategory_listing
(#consume_all_input = false
とを使用#root = :category_listing
)。これは問題の半分です。#parse
ただし、渡されることを期待しているように見えますString
(そして、渡そうとすると必ず失敗します)。これにより、PITAのような音File
で読み取りと解析を行うことがcategory_listing
できます。category_listing
Treetopはsの解析にのみ使用できますString
か?私はツリートップのドキュメントをざっと見てきましたが、決定的なものは何も見つかりませんでした。
ruby - TreetopGrammarは「/」を認識しません
私はTreetopを初めて使用しますが、文法が非常に単純で、うまく機能しません。私はいくつかのテストを持っています:
これが私の文法です:
最初のテストは合格し、2番目のテストは失敗します。また、これらの代替ルールを試しました。
これらはすべて失敗します。
何をしようとしても、終了タグを認識できないようです。
ruby - Latexドキュメントを解析するときのツリートップの無限ループ
ツリートップでパーサーを作成して、いくつかのラテックス コマンドを HTML マークアップに解析しようとしています。以下では、生成されたコードでデッドスピンが発生します。ソースコードをビルドしtt
てステップスルーしましたが、根本的な問題が何であるかを実際には解明していません (_nt_paragraph でスピンするだけです)。
Test input: "\emph{hey} and some more text."