Javaでプログラムで使用できる既存のC++パーサー/コードモデルを知っている人がいるのだろうか。私はJavaからライブラリとして使用できるEclipse CDTに似たものを探しています(Eclipseに依存していません)。前もって感謝します。C++ Parser/Java for Model
答えて
レックス、Yaccの、ANTLR、ジャックのようなパーサジェネレータのためのいくつかの不完全なLALR文法は
は、C++はLALRとBNRの文法は常に不完全になりますので、決定不能構文文法を持っていますが、あなたと同じくらい長いなど、ありますC++コンパイラを書こうとしていないので、十分に良いはずです。
JavaCCにはいくつかのC++文法があります。 Googleを試してみてください。
C++用の堅牢なJavaCC文法は得られません。そうしても、プリプロセッサ処理については心配する必要があります。 どちらもC++のシンボルテーブルの作成と比べて小さな痛みです。これは王室の雌犬(C++の標準600ページ...)です。 –
"g ++ -E"のようなものを使って、前処理をスキップしたり、最初のパスとして独立して実行することができます。 --- ARM(Annotated C++ Reference Manual)のような書籍(少し古くなった - それ以来C++は改良されている)には、C++文法が含まれています。私はここでの目標はコンパイルではなく、解析していると思った。したがって、シンボルテーブルは不要です。私は過去にC++ JavaCCパーサを書いてきました。オープンソースのソリューションは存在します。 –
彼は何をしたいのか分かりませんでした。いずれにしても、シンボルテーブルなしでC++にできることはあまりありません。非常に限られた情報を探していない限り、彼は必要です。 –
独自のC++パーサーを構築する必要はありません。それはあなたを殺すでしょう。
あなたはすでにEclipseのCDTプロジェクトについて知っている: www.ibm.com/developerworks/library/os-ecl-cdt3/index.html 私の知る限りを、そのパーサは、良く、エッジの周りに少しあいまいです。 YMMV。 利点:Java(およびEclipseの場合は気にします)。 C++を処理してJavaで実行する場合は、 が唯一の実用的な選択肢になります。 C++の方言(ANSI、GNU、MSVC 2005/2008)、 数百万行のコードで火災によってテストの多種多様な http://www.semdesigns.com/Products/FrontEnds/CppFrontEnd.html 作品:
また、当社のDMSソフトウェアリエンジニアリングツールキットC++フロントエンドがあります。 あなたの視点から見ると、Javaではなく、不利です。 C++を分析したい場合は、 をJavaで実行しても構いませんが、 が最適です。
- 1. CoreData Model Objects for API
- 2. Fields_ for Nested Model Rails 3.2.2
- 3. Cラッパーfor C++
- 4. Rspecエラー:未定義メソッド 'change' for end.should change(Model、:count)
- 5. ValidationMessageFor for modelおよびhtml属性のみ - MVC 3
- 6. C#Interp。アクティブシェイプモデルライブラリfor C++
- 7. グラフジェネレータfor C#
- 8. スタイルガイドfor C#?
- 9. MongoDB.Driver v1.3.1 for C#
- 10. WebKit for C#2015
- 11. Geodesy library for C#
- 12. #region for C++
- 13. SCP for C#
- 14. グラフィックスライブラリfor C++
- 15. CodeDomコンパイラfor C#
- 16. Swfライブラリfor C#
- 17. Lint for C#
- 18. C#カスタムマスクforテキストボックス
- 19. if文for C++
- 20. Cコードパーサーfor .NET
- 21. Aweber API for C#
- 22. ReSharper for C++
- 23. vkontakte api for C#
- 24. タイマーfor cラベル#
- 25. StyleCop for C++
- 26. Cryptoライブラリfor C++
- 27. シンタックスチェッカーfor C#
- 28. Java for C++プログラマ?
- 29. Quicktime API for C++
- 30. FastCGI for C++
C++は決めることができません。これはLRまたはLALRではないため、これらのパーサー技術を使用して解析することは困難です。これは、C++のシンボルテーブルの作成と比べると小さな痛みです。これは王室の雌犬(C++標準の600ページ...)です。率直に言えば、それはあなたの生活をしたい方法でない限り、独自のC + +パーサをロールしようとするだけばかげている。 –
私の間違い。それは「決めることができない」と私が頻繁に見ている、まれに論争するコメントです。私は「決めることができない」という意味を誤解していたと思う。 – greyfade
パーズツリーは意味変数に依存することがあるので、C++は実際には決めることができません。ここでの「不可能性」とは、Haltingの問題をC++の解析に還元できることを意味します。 http://yosefk.com/c++fqa/web-vs-c++.html#misfeature-3 –