私の文法の断片は次のとおりです。
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
動かないものです。
何が原因でしょうか?
(必要に応じて、コンパイル可能なコード全体を投稿できます)