2016-10-03 6 views
0

私はAntlr4パッケージでPythonでJavaの抽象構文木を構築しようとしています。 私はPython2のためJavaLexerとJavaParserを生成するためにその文法ファイルを使用したい https://github.com/antlr/grammars-v4/blob/master/java8/Java8.g4ANTLRエラー134

からJavaの文法をダウンロードしました。

私が言うとき

エラーoccured.Thatエラーがある
"$ antlr4 -Dlanguage=Python2 Java8.g4" 

エラー(134):Java8.g4:73:0:ターゲット言語で生成されたコードのシンボルタイプの競合またはランタイム

注:Character.isJavaIdentifierPart()で部品を削除しました。これらの行はPythonには適切ではないので、私はASCIIだけを使用します。

答えて

2

Pythonにはtypeという組み込み関数があります。 Antlr4は、文法のライン73のエラーが出力されますが名前の衝突であり、あなたがあなたの文法で何か他のものにtypeの名前を変更するために持っているよう

type 
    : primitiveType 
    | referenceType 
    ; 

が見えます。

+0

ありがとうございました。それは動作します。 ** type **キーワードは文法で一度だけ使用され、typeはtypeTypeに置き換えられました。 – Alperen