1

我有一个(错误地指定)要求我识别某些关键字,但也有“任何字符串”的规定......

例如,在输入“让我们有一个”中,我必须处理 == "beer"、== "curry" 和 == 其他任何东西(理论上,关键字 beer & curry 优先于所有其他字符串)。

当我尝试定义这一点时,当然,我得到

Decision can match input such as "'curry" using multiple alternatives: 2, 3
As a result, alternative(s) 3 were disabled for that input

我想这是一个 st00pid n00b 常见问题解答,但没有看到明显的答案。感激地收到任何帮助...

4

1 回答 1

1

您需要应用一些您正在学习的语法消歧技术(如果这是家庭作业)。一般来说,您添加一个消除语法歧义的附加规则。

您可以做的另一件特定于 antlr 的事情是在规则中添加一个操作来处​​理差异。

如果您发布有问题的 antlr 代码,我可能会提供更多帮助。

于 2009-12-03T04:08:06.580 回答