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動かないものです。

何が原因でしょうか?

(必要に応じて、コンパイル可能なコード全体を投稿できます)

4

1 に答える 1

1

これは ANTLR 4 のバグです。GitHub のプロジェクト イシュー トラッカーに問題を報告できます。

https://github.com/antlr/antlr4/issues

于 2013-06-12T14:18:19.060 に答える