私は次のコードを持っています(またはとにかく似ています):
fragment COMMA : ',' ;
fragment OP : '(' ;
fragment CP : ')' ;
expression
: ID
| call
;
call
: ID OP expression (COMMA expression)* CP
;
しかし、次のような式の例を試してみるとfoo(bar, baz)
、エラー、より具体的にはtoken recognition error at: '('
. そして、フラグメントではなく通常のルールにすると、解析ツリーにコンマと括弧が追加されます。COMMA と括弧を使用してルールを照合したいのですが、解析ツリーには入れたくないのです。とにかく、フラグメントが機能しないのはなぜですか?