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