ANTLR4 фрагмент не работает

У меня есть следующий код (или похожий, в любом случае):

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

expression
    : ID
    | call
    ;

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

Но когда я пробую пример выражения, например: foo(bar, baz), Я получаю ошибку, более конкретно, token recognition error at: '(', И когда я делаю их обычными правилами, а не фрагментами, запятые и скобки добавляются в дерево разбора. Я хочу использовать COMMA и круглые скобки для соответствия правилам, но я не хочу, чтобы они были в дереве разбора. В любом случае, почему фрагменты не работают?

0 ответов

Другие вопросы по тегам