我创建了一个名为goal.g4
的语法然后,我启动了终端(在Mac上)" Java -cp" antlr -4.7.1-complete.jar" org.antlr.v4.tool goal.g4 -listener -Visitor"这正确终止。
然后我使用以下Java代码:
input = new ANTLRInputStream(fis); /* where fis is a FileInputStream */
goalLexer lexer = new goalLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
goalParser parser = new goalParser(tokens);
parser.start();
我的意思是:如何从解析器中检索parsetree对象?如建议,我用start()方法替换了init()方法。但是Eclipse告诉我Parser.start()不存在...
我该如何解决?谢谢luca
看语法。您必须确定要使用的开始规则。通常,起始规则在文件的顶部附近和/或是其他任何规则未调用的少数(或只有一个)之一。
无论您选择哪种规则,它都会返回解析树的上下文,该上下文形成了解析树的根部,例如
ParseTree tree = parser.start();