在名为Test的目录中,我在Word.
java文件中有一个
java类,如下所示:
public class Word {
public String value;
public Word(String v) {
value = v;
}
}
在同一目录下我的antlr4语法Test.g4是这样的:
grammar Test;
@header {
import Test.Word;
}
@members {
ArrayList<Word> words = new ArrayList<Word>();
}
program
@after { System.out.println(words.toString()); }
: (ID { words.add(new Word($ID.text)); } )+
;
(在这个例子中,我只是使用Word而不是String来测试导入的东西.语法和动作不是我的问题)
现在,当我尝试运行java org.antlr.v4.runtime.misc.TestRig Test时,这就是结果:
blablabla
Caused by: java.lang.ClassNotFoundException: Test.Word
blablabla
这让我发疯,如何在.g4文件中导入我的类?我知道可以加载默认的java包,但是如何导入我的自定义java类?
tl; dr:我创建了一个java类,想在我的antlr语法中使用它.我怎样才能做到这一点?
最佳答案 你的
CLASSPATH必须包含含有测试的目录.