問題タブ [jison]

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 に答える
291 参照

javascript - 最初のルールの後に Jison パーサーが停止する

ジソンパーサージェネレーターで解析したい単純なファイル形式があります。このファイルは、任意の順序と数量の複数の式で構成できます。パーサーの jison ファイルは次のとおりです。

簡単にするために、ファイルを短縮して、文字列とファイル ID 式のみを含めました。

私の問題は、2 番目の式が文字列のような 1 つのトークンのみで構成されている場合、生成されたパーサーが 1 つまたは 2 つの完全な式のみを認識しているように見えることです。例えば:

ファイルのバージョン: 1.0

解析されるか、または

ファイルバージョン:1.0「マイストリング」

も解析されますが、

ファイルのバージョン: 1.0 「My String」「解析されていない文字列」

最後の文字列は解析されません。

このコードをjison デバッガーjison ページ自体で試しましたが、両方のページで同じ結果が表示されます。

この問題に関する私の提案は次のとおりです。

  1. いくつかのレクサー エラー (正規表現)
  2. いくつかの文法エラー (左から右への再帰)
  3. パーサーにいくつかのアクションがありません (一種の { $$ = $1;} )
  4. 私が見逃している他のバイソン/ジソンの魔法

私は ebnf-parser-guru ではないので、回答はできるだけシンプルにしてください。

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

jison - Jison での clike コメントの処理

JisonをAngularフロントエンドのレクサー/パーサージェネレーターとして使用して、JSでclike言語のコンパイラーを作成しています。ほぼ期待どおりの結果が得られましたが、困惑することが 1 つあります。Jison にコメントを無視させる方法 (/* block */との両方// line) です。

それを達成する簡単な方法はありますか?コメントがステートメント/式の途中に挿入される可能性があることを覚えていますか?

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

grammar - ジソンのclike文法の競合を減らす/減らす

私は Jison パッケージを使用して clike 言語コンパイラに取り組んでいます。クラスを導入するまでは本当にうまくいっていたTypeので、今はできますLITERAL。単純化された文法は次のとおりです。

そして、ジソンの競合:

回答されていない非常によく似た質問を見つけましたが、これを解決する方法の手がかりはありますか?

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

parsing - 文法の矛盾: 複数のアクションが可能

テキストの説明で立ち往生している jison ( http://zaa.ch/jison/docs/ ) を使用して単純なパーサーを作成しようとしました。

この文法は警告付きでコンパイルされています。

しかし、テキストを解析しようとすると、うまくいきます。これはコードの完全なバージョンではなく、テキスト付きのバージョンです。nodeフィーチャにノードを追加したい。

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

javascript - 再帰ブール値および/または配列ジソンパーサーへ

私は jison に非常に慣れていませんが、役立つクエリ パーサーをまとめることができました。「a == 1 and b == 1 and c == 1」のような文字列を次のようなオブジェクトに解析できるパーサーを作成しようとしています

一方、「a == 1 or b == 1 and c == 1」のような文字列は、次のようなオブジェクトに解析する必要があります

私の文法はこれまでのところ次のようになっています。

次の競合エラーが表示されます。

私が間違っていることについて提案を提供できる人はいますか? どうもありがとう