問題タブ [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.

0 投票する
1 に答える
147 参照

ruby - ツリートップでSyntaxNode+[Node]はどういう意味ですか?(ルビー)

ツリートップを使用して構文を定義しましたが、ほとんどの値は正常に解析されますが、次のようになります。

... と ...

SyntaxNode + [Node]はどういう意味ですか?正しく機能するように修正するにはどうすればよいですか?現在、これらのノードにはTokenクラスではなくSyntaxNodeクラスがあります(これにより、これらのノードは汎用になり、私のニーズに適合しません)。

私が見る限り、これを(token space)+引き起こしたのは定義することです(理由はわかりません)。

0 投票する
1 に答える
304 参照

ruby - オプションのコンテンツを解析する PEG 文法

Treetopで両方をサポートする構文を記述する方法を教えてください。

0 投票する
1 に答える
280 参照

ruby - バックトラックせずにツリートップで左再帰を回避するにはどうすればよいですか?

作業中のこの単純な式パーサーで左再帰を回避するのに問題があります。基本的に、方程式'fxy'を2つの式'fx'と'(fx)y'(暗黙の括弧付き)に解析したいと思います。左再帰とバックトラックを回避しながら、これを行うにはどうすればよいですか?中間ステップが必要ですか?

0 投票する
1 に答える
162 参照

ruby - Treetopの複数形の一致

Treetopを使用して複数の単語をプログラムで照合する方法はありますか。言語学の宝石は単語を複数形にしますが、それをパーサーに戻すにはどうすればよいですか。

これが私がやろうとしていることの例です:

0 投票する
1 に答える
123 参照

ruby - 正規表現に似たツリートップのバックトラック?

私が読んだすべてのことは、正規表現のようなTreetopのバックトラックを示唆していますが、それを機能させるのに苦労しています。

次の文法があるとします。

これは文字列と一致しません{abc}.+それは、手紙a以降のすべてを消費しているからだと思います。つまり、消費abc}したいだけのときに消費しますabc

これは、同様の正規表現が行うこととは異なるように見えます。正規表現/{.+}/は一致し{abc}ます。これが可能であるのは、正規表現エンジンがの}一部としてクロージングを消費した後.+、一致しなかったためにバックトラックするためであると私は理解しています。

では、Treetopはそのようなバックトラックを実行できますか?もしそうなら、どのように?

}否定を使用して「 。以外のもの」と一致させることができることを私は知っています。しかし、それは私の意図ではありません。文字列と一致させたいとします{ab}c}。その場合に必要なトークンは、開始{、中間の文字列ab}c、および終了}です。これは不自然な例ですが、のようなネストされた式を操作する場合に非常に関連性が高くなり{a b {c d}}ます。

0 投票する
1 に答える
125 参照

ruby - 負の規則によるツリートップの無限再帰

私は次のツリートップ文法を持っています:

「hello world $test$」などの式を解析しようとすると、スクリプトが無限ループに入ります。
問題は not_delimiter ルールに起因するようです。削除すると式が解析されるためです。

この文法の問題点は何ですか?

前もって感謝します。

0 投票する
1 に答える
164 参照

ruby - Treetop 文法の何が問題になっていますか?

私は文法ファイルを持っていますalexa_scrape.tt

それを利用しようとするルビーファイルがあります:

しかし、期待した結果が得られません:

空の文字列は適切に解析されますが ( document, zerocategory_listingの自明な一致として)、解析に失敗します(それ自体が 0の"/x\n"単一の文字列を含むドキュメントとして)。category_listingurl_line

私は何を間違っていますか?

0 投票する
1 に答える
112 参照

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か?私はツリートップのドキュメントをざっと見てきましたが、決定的なものは何も見つかりませんでした。

0 投票する
1 に答える
52 参照

ruby - TreetopGrammarは「/」を認識しません

私はTreetopを初めて使用しますが、文法が非常に単純で、うまく機能しません。私はいくつかのテストを持っています:

これが私の文法です:

最初のテストは合格し、2番目のテストは失敗します。また、これらの代替ルールを試しました。

これらはすべて失敗します。

何をしようとしても、終了タグを認識できないようです。

0 投票する
1 に答える
225 参照

ruby - Latexドキュメントを解析するときのツリートップの無限ループ

ツリートップでパーサーを作成して、いくつかのラテックス コマンドを HTML マークアップに解析しようとしています。以下では、生成されたコードでデッドスピンが発生します。ソースコードをビルドしttてステップスルーしましたが、根本的な問題が何であるかを実際には解明していません (_nt_paragraph でスピンするだけです)。

Test input: "\emph{hey} and some more text."