2016-05-25 6 views
0

私はantlrを初めて利用しています。Antlr C++ターゲットサンプル

C++ターゲットのantlrの簡単な文法の実例を誰かが提供することができます。私はantlrworksを試み、レクサーとパーサを作成しました。しかし、それをコンパイルしながら進めることはできません。 codeprojectで作業サンプルを検索しましたが、dintには何も見つかりませんでした。私はすでに年間のANTLR3 in a C++ applicationを使用しますが、実際にはCの対象ではなく、C++を使用しました

答えて

0

私は事前にVisual Studioのに2013のおかげを使用する予定です

...。後者はコンパイル速度(非常に複雑なパーサの場合)と複雑さ(テンプレートに基づく場合)の両方で問題があることが判明しました。だから私はC++アプリケーションに統合しやすいCターゲットを決めました。あなたのアプリケーションのための小さなC + +のラッパーが必要であり、あなたは本当に高速パーサーを取得します。

0

C++ターゲットの場合、このブランチを試してください:https://github.com/ibre5041/antlr3/tree/master/runtime/Cpp/tests。これは、さまざまなパフォーマンスのバグ修正、メモリリークの修正、ASTの生成など、より最新のバージョンです。

ディレクトリには、いくつかの例があります。

  • 今MSVC 2013で動作するかどうかはわかりませんが、C++ 11を使用しています。
  • これらのソースからツール全体をコンパイルした場合、ランタイムが異なるだけでなく、生成されるソースコードもわずかに異なります。
  • antlrツールのコンパイルと実行にJava 8を使用しないでください。いくつかの不思議な理由のために、JRE8は、同じツール.jarを使用するとき、JRE7とは異なるソースを生成します。
  • 文法をコンパイルすると(ソースが生成される)、生成されたソースの「構成」として使用される特性クラスを作成する必要があります。