PHP7の新しいターゲットを作成しようとすると、ANTLR4(ANOTR以外の言語認識ツール)に問題があります。ANTLR:コード生成対象にはANTLR 4.7が必要です。現在のANTLR 1.0で読み込むことができません
まず私が使用していますDebianのLinuxボックスから
apt-get remove --purge antlr antlr-doc libantlr3-runtime-java libantlr-java
でインストールANTLR3パッケージをパージしました。
次に、プロジェクトANTLR4をgithubからforkしてクローンし、新しいランタイムPHP7をプログラムし、新しいクラスPHP7TargetをTargetクラスのサブクラスとして作成し、フィッティングPHP7.stgを書きました。
は、その後、私は
export CLASSPATH=~/.m2/repository/org/antlr/antlr4/4.7.1-SNAPSHOT/antlr4-4.7.1-SNAPSHOT-complete.jar:$CLASSPATH
cd ~/.m2/repository/org/antlr/antlr4/4.7.1-SNAPSHOT
java -jar ./antlr4-4.7.1-SNAPSHOT-complete.jar /tmp/T.g4 -Dlanguage=PHP7
と私はエラー
error(35): PHP7 code generation target requires ANTLR 4.7; it can't be loaded by the current ANTLR 1.0
に走ったANTLR4を実行しようと
grammar T;
a
: 'b' #alt1
| 'c' #alt2
;
b : 'x' | 'y' {} ;
e : e '*' e
| 'foo'
;
T.g4
文法を使用してcd antlr4
export MAVEN_OPTS=-Xmx1G
mvn clean
mvn -DskipTests=true install
でANTLR4を再構築しました
エラーは2回表示されます。
-Dlanguage = PHP7オプションを指定しないと、ANTLRはジョブを実行して文法のjavaファイルを作成します。
残念ながら、私はエラーメッセージを理解していません。古いANTLRバージョンがパッケージで使用されているようで、この場合ANTLRをバージョン4にアップグレードする方法はわかりません。
誰でも助けて、私のエラーがどこにあるのか教えてください。