具有多个(+)量词的选择左元素不会成为数组

时间:2013-06-12 13:46:45

标签: antlrworks antlr4

我的语法片段是:

potentialAttribute: DATA EQUAL LEFTPARENTH (data+ | REAL+) RIGHTPARENTH SEMICOLON; 

然后,在访问者中,我应该询问potentialAttribute阅读的文字是data+还是REAL+。由于它们都有+符号,因此两者都必须是数组。不过,只有REAL()List<TerminalNode>,而data()仍为TerminalNode

但如果我更改选择顺序,例如:

potentialAttribute: DATA EQUAL LEFTPARENTH (REAL+ | data+) RIGHTPARENTH SEMICOLON; 

REAL不起作用的那个。

导致这种情况的原因是什么?

(如果需要,我可以发布整个可编辑的代码)

1 个答案:

答案 0 :(得分:1)

这将是ANTLR 4中的错误。您可以向GitHub上的项目问题跟踪器报告问题:

https://github.com/antlr/antlr4/issues