答えて
私はANTLR C# Grammar on CodePlexに遭遇しました。これは比較的新しいプロジェクトであり、ANTLR 3.2を使用しています。 C#4.0をサポートし、Eclipse Public License(EPL)の下でライセンスされています。
少し遊んだ。式を含むテストファイルがたくさんあります。それはラムダ、安全でないコンテキストをサポートしています...あなたが自然に期待しているように。これはC#ファイルを解析し、抽象構文木を渡します。あなたはそれで何でもできます。
C# ANLTR grammarもご参照ください。
リンクされた文法はC#3.0ではありません。ラムダはサポートしていません。それは私にとって特に重要です。 –
引数リストを定義するだけで済むので、文法の既存の構文の観点からlambdaのサポートを追加するのはかなり簡単です。しかし、これはおそらくLL(*)が必要になるでしょう。 '(a **'のようなもので、 'a(a ** b)'あなたが '=>'を打つまで、 'b 'の逆参照の結果)、またはラムダ式'(a ** b)=> 'を返します。私はそれがLL(*)のように見えますが、ANTLR3はオプトインLL(*)をサポートしているので問題ありません –
@Pavel:それだけではありませんジェネリックスをサポートしていません。 –
C# Language Specificationをご覧ください。文章B.文法に文法があります。
もちろん、スペックには文法が含まれていますが、* Word文書*の文法は文書全体に散らばっています。 –
全体に散在しているわけではありませんが、最後には一箇所にすべてのものが付いています。 dパーサジェネレータで動作させるためにいくつかの変更を加えます。 –
Eric:ああ、その部分に気付かなかった。指摘してくれてありがとう。 –
- 1. Java EL 3.0の実装はどこにありますか
- 2. C/C++ printfs - Androidのネイティブコードはどこにありますか?
- 3. このC++のメモリリークはどこにありますか?
- 4. このPython構文エラーはどこにありますか?
- 5. はactionscript 3.0にありますか?
- 6. NUnit 3.0にテストステータスプロパティはありますか?
- 7. Linux-gnu/C++のqextserialenumeratorのobjbase.hはどこにありますか
- 8. C++用のZwCreateFileのサンプルはどこにありますか?
- 9. 次のC標準のアイデアはどこにありますか?
- 10. C++言語の標準BNFまたはYACC文法はどこにありますか?
- 11. このCodeigniter 3.0は互換性がありますか?
- 12. モンゴイドクラスの特定の文書はどこにありますか?
- 13. C#/// xmlドキュメンテーションコメントの良い例はどこにありますか?
- 14. "Shamir's Secret Sharing"のC#クラスはどこにありますか?
- 15. 外部Cライブラリのリンカフラグはどこにありますか?
- 16. Facebook C#SDKのドキュメントとサンプルはどこにありますか?
- 17. objective-cとココアのApple Guideはどこにありますか?
- 18. C++標準ライブラリのヘッダはどこにありますか
- 19. ユーザエージェントのバージョン/文字列はどこにありますか?
- 20. random.random .__ doc__ docの文字列はどこにありますか?
- 21. JSXとHTMLの構文リファレンステーブルはどこにありますか?
- 22. libfreeRDPソースコードの文書はどこにありますか?
- 23. CVOpenGLESTextureメソッドタイプの公式文書はどこにありますか?
- 24. C#5言語仕様はどこにありますか?
- 25. C++/CXでFileNotFoundExceptionはどこにありますか?
- 26. C++ DNSライブラリはどこにありますか?
- 27. Apache Commons for Cはどこにありますか?
- 28. Mysql Cコネクタ---ソースはどこにありますか?
- 29. C#Authcookieはどこにありますか?
- 30. C#プロジェクトでapplication.exe.configファイルはどこにありますか?
C#3をコンパイルするコンパイラはすでに無料で出荷されています。 :-)しかし、真剣に、なぜあなたは自分自身を構築していますか?ちょうど楽しみのために、またはいくつかのビジネス目的はありますか? (私が尋ねる理由は、単純に「このソースコードのためにILを私に吐き出す」以外の "サービス"の人々が私たちのコンパイラから欲しいものを学ぶことに非常に興味があるからです)。 –
Eric:しかし、私は時々、私がテストできると思ったいくつかの言語のアイデアを考え出します。 –
@Mehrdad、いくつかのコードがあればそれで遊ぶことができます:) –