問題タブ [ebnf]
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.
c# - EBNF をコンパイラ用に C# に変換する
EBNFをC# コードに変換する方法を学ぼうとしています。
サンプル:int <ident> = <expr>
「このデータ型(int)の変数(ident)は(=)整数(expr)を受け取りますが、それを次のように変換する方法がわかりません。
アストクラスから
パーサークラスから
CodeGen クラスから
これを変換する方法を正しく理解する方法について、誰かが私を正しい方向に向けることができますか?
antlr - 階層型Key-Value構文からANTLRを使用してASTを作成する方法
私はANTLRを使用してKey-Valueデータ形式を解析することを検討してきました。非常に単純ですが、キーは階層を表します。
入力構文の簡単な例:
私の考えでは、これは次のように構造化されたツリーを表しています。
私が得ることができる最も近いものは、次の文法を使用することです:
生成するもの:
ここでANTLRなどの汎用ツールに質問しすぎているかどうかはわかりませんが、これはこのアプローチで得られる限りの近さです。つまり、ここからツリーの一部を使用して、必要なデータ構造を手動で作成します。
では、文法から直接必要なツリー構造を作成できますか?もしそうなら、どのように?そうでない場合は、なぜそうではありませんか?それはANTLRの技術的限界ですか、それとも関連する言語の種類に関係するCS-yのようなものですか?
debugging - ANTLRWorks デバッグ - 異なる色の意味は?
ANTLRWorks のデバッグ モードを使用して C 文法をテストしています。ANTLRWorks でのデバッグは、理解を深めるのに非常に役立ちますが、出力ツリーのさまざまな色を理解するのに問題があります。backtrack=true
文法で使っています。赤い色はデバッガーが間違った方向に進んでいることを意味し、緑色はデバッガーが正しい方向に進んでいることを意味すると思いました。しかし、濃い赤と濃い緑はどうですか?
次の入力にのみ一致する「小さな木」の写真を追加しました。
質問に答える必要がある場合は、使用される最も重要な 4 つのルールを次に示します。
java - 可能性のある非端末に対処する方法は?
次のような EBNF があるとします。
{} 括弧は、0 個以上を選択することを意味します。では、行を 1 文字ずつ読んでいるときの<Term>
ように、ちょうど vs があるときはどうすればわかりますか?<Term> + <Term> + <Term>
.net - datatable.select(filter_condition) で使用される EBNF
Datatable.Select(filter_condition) で使用されている EBNF を知っている人はいますか? 私が達成しようとしているのは、SQL-WHERE 部分に似たステートメントを強調表示することです。
java - java以外の言語をコンパイルするためにEclipseでJavaプログラムを使用することは可能ですか?
私は現在、ファイルをコンパイルし、見つかったエラー (構文) を診断する必要があるプロジェクトに取り組んでいます。プログラムを .java ファイルで動作させることができました。ここで、.java 以外のファイル (例: .py ファイル) に対して同じことを行い、それを現在のプログラムに統合する必要があります。いくつかの調査を行ったところ、Eclipse は 20 を超える言語をサポートでき、プラグインをダウンロードできることがわかりました。私が知らないのは、「コンパイラ」(python の例) を呼び出して、.py ファイルで見つかった構文エラーの診断を取得できるかどうかです。言語の bnf を探す必要がありますか?
bnf - BNFをEBNFに変換する方法
この BNF を EBNF に変換するにはどうすればよいですか?
bnf - EBNFからBNFの基本への変換
コンピュータ言語のクラスの質問に答える方法がよくわかりません。次のステートメントをEBNF形式からBNF形式に変換します。
EBNF:expr --> [-] term {+ term}
中括弧に含まれる表現は0回以上繰り返され、直角中括弧に含まれるものは0または1つのオプションを表すことを理解しています。私の理解が正しければ、これは正しい変換でしょうか?
私のBNF:
ボーナスリーディング
- EBNFからBNFへの変換 (一般規則)
parsing - EBNF文法からANTLR3へ?
Jassスクリプト言語用のこのEBNF文法があります。
ANTLR 3.5で動作するように変換するには何をする必要がありますか?
さらに、そうするのに役立つツールはありますか?
提供されたアドバイスに事前に感謝します!
bnf - コンピュータ サイエンス (特に EBNF を使用するメタ言語) では、記号 -> と <- には特定の意味がありますか?
これが SO のドメインにない場合は申し訳ありません - それは少し高レベル/理論的です。カスタム言語仕様 (興味がある場合は ACELandic と呼ばれます) を勉強しています。また、拡張バッカス・ナウア形式 (EBNF ) に基づいています。
次のような記号が表示されます
それは本当に私を混乱させます。これらは標準化された記号ですか? 私はHaskellでこのようなことを思い出しますが、これについて頭を悩ませることはできません..ヒントやアドバイスをいただければ幸いです。