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
的一個不工作。
這是什麼原因造成的?
(如果需要,我可以張貼整個編譯代碼)