fsyaccにフィードできるC#v4のBNF文法を探しています。または、F#を出力できるEBNFベースのパーサージェネレーターが見つからない場合。
編集: 私はC#のパーサーを書くつもりはありませんが、非常によく似た文法の実験的なパーサーです。2つの文法の間に文字通りの大きな重複があるため、C#の文法から始めて、逸脱するビットを変更する方が簡単です。 。しかし、私が見つけたC#v4の文法はEBNFだけです。
別の答えは、EBNFからBNFへのコンバーターです
ウィキペディアによると、Coco/RはEBNFベースのパーサジェネレータです。そして彼らのホームページによると、Coco / RのF#ポートがあります(ただし、最終更新日は2007年7月23日なので、いくつかの重大な変更が予想されます)。あなたがそれをチェックすることになったなら、私はあなたの経験に興味があるでしょう。
C#v2用のBNF文法を見つけました:http ://www.devincook.com/GOLDParser/grammars/index.htm
以前のコメントを拡張する-直接使用できるC#の堅実な文法はないと思います。いくつかの例がありますが、それらはおそらくすべての新機能(LINQなど)をカバーしていないか、十分にテストされていません。
私が考えることができる最良のオプションは、MonoのC#コンパイラーのパーサーを使用することです。これはオープンソースのC#で記述されており、最近のすべての機能が含まれています(また、かなり堅実です)。詳細については、Mono C#コンパイラを参照してください。これをコンパイルしてF#から使用できるはずです(またはF#に適したものに変更することもできます)。
ここでいくつかの文法を見つけました; C#4.0まで含まれているようです。