2013-06-12 40 views
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的一個不工作。

這是什麼原因造成的?

(如果需要,我可以張貼整個編譯代碼)

回答

相關問題