LL(k)言語のEBNFを指定すると、C#パーサーが提供され、EBNFで定義された型のクラスが生成されるパーサージェネレーターを探しています。
ゴールド パーサジェネレータが行く限りOKです。
[〜#〜] antlr [〜#〜] (他に言うことはありません)
[〜#〜] lllpg [〜#〜] と呼ばれる新しいパーサジェネレータがブロックにあり、LL(k)文法とゼロ幅アサーションをサポートしています。ランタイムライブラリはオプションです(基本クラスで十分です)。ドキュメントは現在かなり詳細になっています。私はLLLPGを使用して、Enhanced C#(実際にはLLLPGの主要な入力言語)と呼ばれるC#の方言のほとんどを解析しました。ただし、入力構文はEBNFではありません(C#+ ANTLRスタイルのコードのマッシュアップのようなものです)。
完全開示:私はそれを書きました。質問は大歓迎です。
編集:「C#パーサジェネレータ」のトップGoogle検索結果は、「私のパーサジェネレータはスタンドアロンでは実際には使用できない」と主張する「Tomassetti」という名前の男によって書かれています。 「-これは、PCがまた Webブラウジングやスプレッドシートを実行できるため、「スタンドアロンのゲームリグとしては実際には使用できない」と言っているようなものです。確かに、Visual Studio拡張機能をインストールした後は、個別にNuGetに移動してランタイムライブラリ(Loyc.Syntax)を取得する必要がありますが、それが彼の意味ではないと思います。また、実際に使用しようとしたこともないと思います。 LLLPGの設計は機能であり、バグではありません。私が言えるのは、試してみて、あなたの考えを教えてください。
でアイロニーを見つける http://irony.codeplex.com/
長所:それは単純です短所:-ドキュメントの欠如-かなり遅い
GrammaticaはLL(k)をサポートしています。 http://grammatica.percederberg.net/
Coco/R (SSWから-"Johannes Kepler" University Linz)