0

我有以下代码(或类似的,无论如何):

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

expression
    : ID
    | call
    ;

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

但是当我尝试一个示例表达式时,比如:foo(bar, baz),我得到一个错误,更具体地说,token recognition error at: '('。当我将它们设为正常规则而不是片段时,会将逗号和括号添加到解析树中。我想使用逗号和括号来匹配规则,但我不希望它们出现在解析树中。无论如何,为什么片段不起作用?

4

0 回答 0