問題タブ [bnfc]

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 投票する
2 に答える
106 参照

bnf - BNFC ファイルの解析中の「ケースの非網羅的なパターン」エラー

私は得ています

エラー。どういう意味ですか?

私の BNF 文法のどこが間違っているのかは実際にはわかりません。また、エラーを見つける方法もわかりません。ここ数日、探してみましたがだめでした。

すべてのシンボルがファイルのどこかに定義されているかどうかを確認し、いくつかのルールを修正しましたが、何も役に立ちませんでした。

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

parsing - BNFC を使用したこのプログラムの解析が失敗するのはなぜですか?

次の文法を考える:

bnfc で作成されたパーサーが解析に失敗する

解析しますが

また

パーサーが Ident を見て、それが宣言なのかステートメントなのか、LR のものなのかなどがわからないことが問題になる可能性があると思います (まだ、lookeahed の 1 つのトークンで十分なはずです??)。ただし、BNFC のドキュメントには、すべての文法では機能しないというメモは見つかりませんでした。

これを機能させる方法はありますか?

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

grammar - ブールトークンを定義する BNFC

BNF Converter でパーサーを作成しようとしています。私が使用している文法では、a ::= trueb ::= false. そのため、これを達成するためのトークンを作成しようとしています。これは私がこれまでに持っているものです:

私はそれを次のように使用することを望んでいます:

BNFC を実行しようとすると、次のエラーが表示されます。

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

c# - C# のパーサーと印刷 AST

複雑な文法のために C# で AST (Abstract Syntax Tree) を実装していますが、この質問を簡単にするために、非常に単純な文法を使用します。

次の文法を考えてみましょう:

私は bnfc を使用してパーサー/レクサーを生成し、コードの一部を解析して解析ツリーを出力できるようになりました。今度はそれを AST にマップし、抽象構文ツリーを出力したいと思います。サンプルプロジェクトでこれまでに行ったことは次のとおりです

ただし、現在、プログラムをテストすると、AST が NULL として返されます。

ここで、ast は null です。C# の経験がある人が、これを軌道に乗せるのを手伝ってくれますか?

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

language-agnostic - BNFC で生成された文法が最も単純な例で失敗する

単純な命令型言語のインタープリターを Haskell で書きたいと思います。そのために、まず BNFC ツール ( http://bnfc.digitalgrammars.com/ ) 用にその言語の文法を書きました。

その文法の一部は、次のような算術式専用です。

それだけで、BNFC ツールを実行し、提供されたスクリプトでテストできます。算術演算を正常に解析します。

ただし、別のセクションを追加すると (タイプとしましょう):

そして、expr セクションを配置すると、算術演算は解析されなくなります (1 + 2 でテストすると、「解析に失敗しました... [いくつかのトークン] 1 + 2 の前の行 1 で構文エラーが発生しました」と表示されます)。

なぜそれが起こるのですか?修正方法は?

言い換えると:

なぜそのような文法:

1 + 1はbnfc を使用して正しく解析しませんか?

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

java - bnfcプリティプリンターJavaエラー

この BNFC ファイルには、各セクションに [] の間に名前があり、その後に単純な宣言のリストが続く、多くのセクションで構成される構成ファイルが記述されています。

例:

セクションと宣言の数が未定義です。

シェルからコマンドを実行したbnfc -m -java <filename>ところ、きれいなプリンターの一部ですべてがうまくいきました。prettyprinter.java をコンパイルするとき、大量のエラーが生成されます。例えば:

すべてのエラーはこのタイプです。私は文法を構築したばかりで、文法に失敗したのか、それとも BNFC に失敗したのか疑問に思っています。ありがとう