0
我的语法的一个片段是:具有多个(+)量词选择左边的元素不会成为一个数组
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
的一个不工作。
这是什么原因造成的?
(如果需要,我可以张贴整个编译代码)