0

私は次のコードを持っています(またはとにかく似ています):

fragment COMMA : ',' ;
fragment OP : '(' ;
fragment CP : ')' ;

expression
    : ID
    | call
    ;

call
    : ID OP expression (COMMA expression)* CP
    ;

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

4

0 に答える 0