У меня есть отдельная грамматика синтаксического анализатора и лексера, и я хочу запустить org.antlr.v4.gui.TestRig
для отладки / проверки моей грамматики.
Моя грамматика лексера начинается с:
lexer grammar TestLexer;
IDS: [a-zA-Z];
WS: [ \t];
NL: [\r?\n];
...
и грамматики моего синтаксического анализатораначните с:
parser grammar TestParser;
options { tokenVocab=TestLexer; }
testRule: WS* IDS+ NL;
...
Моя переменная classpath env указывает на завершение antlr.jar
и текущий каталог.
antlr
является псевдонимом java org.antlr.v4.Tool
grun
является псевдонимом java org.antlr.v4.gui.TestRig
.
Когда я запускаю antlr TestParser.g4 && javac *.java
, код синтаксического анализатора генерируется и компилируется.
Когда я запускаю grun TestParser testRule -gui
, я получаюошибка:
Exception in thread "main" java.lang.ClassCastException: class TestParser
at java.lang.Class.asSubclass(Class.java:3404)
at org.antlr.v4.gui.TestRig.process(TestRig.java:135)
at org.antlr.v4.gui.TestRig.main(TestRig.java:119)
И когда я запускаю grun Test testRule -gui
, я получаю ошибку:
Can't load Test as lexer or parser
У меня нет проблем при использовании комбинированной грамматики.
Чего не хватает для запуска TestRig
?