如何设置顺序无关紧要的规则,但每个规则在ANTLR中只能出现一次?

时间:2019-04-30 12:52:43

标签: antlr

我当前正在编写一种语法,在该语法中,我希望一个规则包含三个选项,但是这些选项可以以任何顺序排列,只要它们只出现一次即可。如何在ANTLR中做到这一点?

所以说我有以下语法规则

startRule:(a | b | c)*

这将允许bac,bca,abc,但也允许bcaca。我确实希望可以将这三个组合在一起,甚至可以缺少一个或多个,以便只要没有重复,也可以只允许a或ab。

我已经研究过使用动作,或者只是残酷地使用所有可能的组合,但是第一个我无法弄清楚如何正确地测试每个动作都发生过一次,而第二个则无法扩展。

0 个答案:

没有答案