問題タブ [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 に答える
86 参照

ruby - BBCode Treetop パーサーとスマート タグ クロージング?

私は、ほとんどが機能するツリートップ グラマー ファイルを作成しました。[b]そのフォーラム用に構成された BBCodes のハッシュを持つ関数にそれらを渡したいようなタグの場合。太字が許可されている場合は HTML が返され、それ以外の場合は BB コードが無視されます。

これは、ネストされたタグでは機能しません。たとえば[b][i]Bold and italics[/i][/b]、 の最初の終了タグと一致するため、正しく処理されません[/i]

タグが見つかったときに、否定的なルックヘッドで終了タグを探すようにするにはどうすればよいですか?

BBCode は、フォーラム管理者が特定のタグをオン/オフする動的システムであるため、BBCode の種類ごとにすべてのルールを書き出す必要はありません。

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

ruby - TreeTop ではルールの順序は重要ですか?

解析作業を行うために TreeTop を使い始めたばかりです。以下は、私を困惑させるスニペットです。

結果astは次のとおりです。

しかし、rule id上に配置するrule integerと、結果は になりnilます。それで、問題は何ですか?前もって感謝します!

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

ruby - 梢文法におけるローマ数字

次のような順序付きリストを解析したい:

これまでのところ、私のツリートップ文法は次のとおりです。

ただし、対応するパーサーはテキストを解析できません。何が壊れていますか?

0 投票する
2 に答える
65 参照

ruby - ツリートップでアクショントリガーをコーディングする方法は?

パーサーがトークンを認識するたびに、いくつかのコードを実行しようとしています。

まあ言ってみれば

ここでのアイデアは、トークンが見つかるputsたびにこのアクションを実行することです。fooそのままコーディングすると、(クラスのロード時に) 1 回だけトリガーされ、もちろんその時点でstuff_i_want.text_valueは存在しないため、機能しません。

何か案が?それは可能ですか?ライブラリに関するドキュメントがないため、簡単にはわかりません。

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

ruby-on-rails - .treeptop ファイルがロードされる Treeptop & Rails

Rails アプリで Treetop の例が見つからないようです。レール以外のアプリでは、 Treetop.load('name_of_treetop_file') を実行すると、同じフォルダーが検索され、.treetop ファイルが読み込まれます。

私のレールアプリでは、どこに置いても次のようになります。

そのようなファイルまたはディレクトリはありません - name_of_treetop_.treetop

簡単に .load('name_of_treetop_file') を呼び出すことができるように、.treetop ファイルをどこに置くのですか?

ありがとう

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

ruby - Treetop は文法で定義されたメソッドを無視します

ツリートップでパーセンテージを解析しようとしています。私は次の文法を書きました:

これは正しく一致しますが、何らかの理由でto_fルート ノードのメソッドが結果に含まれていません。

tt によって生成されたコードを確認したところ、パーセンテージ ノード用に 2 つのモジュールが作成されており、そのうちの 1 つだけが残りのコードで使用されていました。

Percentage1 はコード内の他の場所には表示されませんが、Percentage0 は正しいノードで使用されます。

一方、to_fメソッド onは正常にdecimal動作します (これも 2 つのモジュールですが、両方ともノードを拡張するために使用されます)。その定義の違いがわかりません。それが原因です。

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

ruby - 2 つの / で囲まれた正規表現のルール

/ツリートップを持つ文字のペア間ですべてを一致させるにはどうすればよいですか? /エスケープ文字も一致させたいと思います。たとえば、「正規表現」を解析する場合:

結果は次のようになります。

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

ruby - Treetop 解析ツリーを抽象構文ツリー (AST) に変換する

Treetop で表現された文法を単純化し、カスタム ノードを使用して、パーサーの出力を AST にフィルター処理しようとしています。

基本的に、次の例を解析できます。

カスタム ノードはすべてTreetop::Runtime::SyntaxNodeを継承します

ここで、Treetop によって生成された解析ツリーを AST にフィルター処理する必要があります。

ここで説明されている戦略に従いますが、成功しませんでした: 私の AST はただ空です...

私のコンパイラドライバは次のとおりです。

何が欠けていますか?