我正在尝试使用ANTLR生成用于一阶逻辑的简约语法的解析器,该语法可以在ANTLR源代码中找到:https://github.com/antlr/grammars-v4/blob/master/fol/fol.g4
奇怪的是,生成的解析器没有在每个教程中都可以看到的parse
,begin
,start
方法。侦听器也会生成,但是我很想获得解析树(以供以后使用),此外,许多提及侦听器的教程仍然使用上述3个函数之一。出了什么问题?有解析器生成选项吗?
所提到的方法未包含在生成的代码中,是的,它们可能在基类中,但是Eclipse将其视为错误(未定义的方法)。
我正在使用antlr 4.8。
生成的解析器类将具有与您在语法中定义的规则同名的方法。因此,如果您的语法有一个名为foobar
的规则,并且您想根据该规则来解析输入,则可以调用parser.foobar()
来这样做。
如果教程中的代码调用名为parse
,begin
或start
的方法,那么该教程中的语法几乎肯定会定义具有该名称的规则。
在链接的语法中,主要规则称为condition
,因此这是您应该调用的方法。