在ANTLR中,当使用交替分支规则时,顺序问题仅在具有相同文本起始字符的分支之间存在。例如,对于以下规则:
rule1: 'abc' | 'ab' 'c';
在上述规则中,交替分支“'abc'”和“'ab' 'c'”通常不需要考虑顺序问题,因为它们具有不同的文本起始字符。但是,如果存在以下规则:
rule2: 'ab' 'c' | 'abc';
在上述规则中,交替分支“'ab' 'c'”和“'abc'”需要考虑顺序问题,因为它们具有相同的文本起始字符“'a'”。
因此,在ANTLR中,如果您需要在具有相同文本起始字符的分支之间进行交替,则应按照预期的顺序编写规则。
例如,对于上述规则“rule2”,正确的语法应为:
rule2: 'abc' | 'ab' 'c';