問題タブ [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.
javascript - 最初のルールの後に Jison パーサーが停止する
ジソンパーサージェネレーターで解析したい単純なファイル形式があります。このファイルは、任意の順序と数量の複数の式で構成できます。パーサーの jison ファイルは次のとおりです。
簡単にするために、ファイルを短縮して、文字列とファイル ID 式のみを含めました。
私の問題は、2 番目の式が文字列のような 1 つのトークンのみで構成されている場合、生成されたパーサーが 1 つまたは 2 つの完全な式のみを認識しているように見えることです。例えば:
ファイルのバージョン: 1.0
解析されるか、または
ファイルバージョン:1.0「マイストリング」
も解析されますが、
ファイルのバージョン: 1.0 「My String」「解析されていない文字列」
最後の文字列は解析されません。
このコードをjison デバッガーとjison ページ自体で試しましたが、両方のページで同じ結果が表示されます。
この問題に関する私の提案は次のとおりです。
- いくつかのレクサー エラー (正規表現)
- いくつかの文法エラー (左から右への再帰)
- パーサーにいくつかのアクションがありません (一種の { $$ = $1;} )
- 私が見逃している他のバイソン/ジソンの魔法
私は ebnf-parser-guru ではないので、回答はできるだけシンプルにしてください。
jison - Jison での clike コメントの処理
JisonをAngularフロントエンドのレクサー/パーサージェネレーターとして使用して、JSでclike言語のコンパイラーを作成しています。ほぼ期待どおりの結果が得られましたが、困惑することが 1 つあります。Jison にコメントを無視させる方法 (/* block */
との両方// line
) です。
それを達成する簡単な方法はありますか?コメントがステートメント/式の途中に挿入される可能性があることを覚えていますか?
grammar - ジソンのclike文法の競合を減らす/減らす
私は Jison パッケージを使用して clike 言語コンパイラに取り組んでいます。クラスを導入するまでは本当にうまくいっていたType
ので、今はできますLITERAL
。単純化された文法は次のとおりです。
そして、ジソンの競合:
回答されていない非常によく似た質問を見つけましたが、これを解決する方法の手がかりはありますか?
parsing - 文法の矛盾: 複数のアクションが可能
テキストの説明で立ち往生している jison ( http://zaa.ch/jison/docs/ ) を使用して単純なパーサーを作成しようとしました。
この文法は警告付きでコンパイルされています。
しかし、テキストを解析しようとすると、うまくいきます。これはコードの完全なバージョンではなく、テキスト付きのバージョンです。node
フィーチャにノードを追加したい。
javascript - 再帰ブール値および/または配列ジソンパーサーへ
私は jison に非常に慣れていませんが、役立つクエリ パーサーをまとめることができました。「a == 1 and b == 1 and c == 1」のような文字列を次のようなオブジェクトに解析できるパーサーを作成しようとしています
一方、「a == 1 or b == 1 and c == 1」のような文字列は、次のようなオブジェクトに解析する必要があります
私の文法はこれまでのところ次のようになっています。
次の競合エラーが表示されます。
私が間違っていることについて提案を提供できる人はいますか? どうもありがとう