ANTLR 4 $channel = скрытый и опции

Мне нужна помощь с моей грамматикой ANTLR 4 после решения переключиться на v4 из v3. Я не очень опытен с ANTLR, поэтому мне очень жаль, если мой вопрос немой;)

в v3 я использовал следующий код для обнаружения комментариев в стиле Java:

COMMENT
    :   '//' ~('n'|'r')* 'r'? 'n' {$channel=HIDDEN;}
    |   '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
    ;

в v4 нет параметров, специфичных для правил. Действия (перемещение в скрытый канал) также недопустимы.

может кто-нибудь, пожалуйста, дайте мне подсказку, как это сделать в ANTLR v4?

1 ответов


эквивалент v4 будет выглядеть так:

COMMENT
    :   ( '//' ~[\r\n]* '\r'? '\n'
        | '/*' .*? '*/'
        ) -> channel(HIDDEN)
    ;

который поставит все однострочные и многострочные комментарии на