У меня есть проект ANTLR под названием «Test.g4», а с antlrworks2 я создал без проблем файлы: Test.tokens, TestBaseListner.java, TestLexer.java, TestLexer.tokens, TestListener.java и TestParser.java.ANTLR: Не удалось найти символ
Теперь я хочу использовать грамматику в моей программе Test.java:
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
public class Test {
public static void main(String[] args) throws Exception {
// create a CharStream that reads from standard input
ANTLRInputStream input = new ANTLRInputStream(System.in);
// create a lexer that feeds off of input CharStream
TestLexer lexer = new TestLexer(input);
// create a buffer of tokens pulled from the lexer
CommonTokenStream tokens = new CommonTokenStream(lexer);
// create a parser that feeds off the tokens buffer
TestParser parser = new TestParser(tokens);
ParseTree tree = parser.init(); // begin parsing at init rule
System.out.println(tree.toStringTree(parser)); // print LISP-style tree
}
}
Когда я пытаюсь скомпилировать его с "javac -classpath /path/java2/antlr-4.4-complete.jar Test.java"
я получаю эту ошибку:
Test.java:19: error: cannot find symbol
TestLexer lexer = new TestLexer(input);
^
symbol: class TestLexer
location: class Test
Test.java:19: error: cannot find symbol
TestLexer lexer = new TestLexer(input);
^
symbol: class TestLexer
location: class Test
Test.java:25: error: cannot find symbol
TestParser parser = new TestParser(tokens);
^
symbol: class TestParser
location: class Test
Test.java:25: error: cannot find symbol
TestParser parser = new TestParser(tokens);
^
symbol: class TestParser
location: class Test
4 errors
Спасибо!
Если файл называется 'Sample.java' ваше имя класса также должны быть' 'Sample' не Test' – Jens
ли TestLexer.java в том же пакете, что и Test.java? – Jens