为什么ANTLR生成的解析器没有解析/启动/开始功能?

问题描述 投票:0回答:1

我正在尝试使用ANTLR生成用于一阶逻辑的简约语法的解析器,该语法可以在ANTLR源代码中找到:https://github.com/antlr/grammars-v4/blob/master/fol/fol.g4

奇怪的是,生成的解析器没有在每个教程中都可以看到的parsebeginstart方法。侦听器也会生成,但是我很想获得解析树(以供以后使用),此外,许多提及侦听器的教程仍然使用上述3个函数之一。出了什么问题?有解析器生成选项吗?

所提到的方法未包含在生成的代码中,是的,它们可能在基类中,但是Eclipse将其视为错误(未定义的方法)。

我正在使用antlr 4.8。

parsing antlr antlr4
1个回答
0
投票

生成的解析器类将具有与您在语法中定义的规则同名的方法。因此,如果您的语法有一个名为foobar的规则,并且您想根据该规则来解析输入,则可以调用parser.foobar()来这样做。

如果教程中的代码调用名为parsebeginstart的方法,那么该教程中的语法几乎肯定会定义具有该名称的规则。

在链接的语法中,主要规则称为condition,因此这是您应该调用的方法。

© www.soinside.com 2019 - 2024. All rights reserved.