を生成するために、G4ファイルの解析、私はこの質問は少しメタで実現するが、私は基本的に、その後に基づいてドキュメントや他のアーティファクトを生成するANTLR4文法(実際.g4ファイル)を解析したいです文法(文法のインスタンスではありません)。のdoc /スキーマ
たとえば、このルールが含まれexample Java grammar考える:私はJava.g4ファイルを解析し、言うのドキュメントを生成することができるようにしたい
compilationUnit
: packageDeclaration? importDeclaration* typeDeclaration* EOF
;
「をcompilationUnitはオプションpackageDeclaration、0以上が含まれていますimportDeclarations、および0以上のtypeDeclarations "を参照してください。あるいは、私は、 "packageDeclaration"、 "importDeclaration"、および "typeDeclaration"要素(適切なカーディナリティセットを持つ)を含む "compilationUnit"というデータ型を持つXSDを生成したいと考えています。
このようなことを達成する最良の方法は何ですか?ターゲットを作成することです(たとえ目標がレクサー/パーサーを作成しない場合でも)か、example antlr4 grammarをg4ファイルの解析に使用するのですか、それとも別のものですか?
ありがとうございます!
ANTLRの典型的な使用法は、文法に合致するファイルを解析することです(文法(g4)ファイル自体を解析しない)。たとえば、典型的な使用は、Javaファイルを解析するためにJava.g4を使用することですが、私が望むのはJava.g4を直接解析することです。 私は使用できるANTLR文法の例がありますが、実際にはANTLR4プロジェクトの一部ではありません - どのように有効かは分かりません。あなたは文法を定義するための実際のANTLR4文法を表す公式のg4ファイルを知っていますか? –
'github.com/antlr/grammars-v4'のANTLR4文法は、ANTLR 4.5に完全に準拠しています。私は、Antlrの他の文法を分析するために広範に使用しています。これはEclipse ANTLR文法エディタAntlrDTの基礎として使用されています。 – GRosenberg
どうもありがとうございます!私は同じアプローチをとっていきます! –