ANTLR 4.7.1的生成解析器中的问题

  • 本文关键字:问题 ANTLR java antlr4
  • 更新时间 :
  • 英文 :


我创建了一个名为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();

相关内容

  • 没有找到相关文章

最新更新