tutorial java migration antlr antlr4

java - antlr4 tutorial



ANTLR 4 $ canal=OCULTADO y opciones (1)

El equivalente v4 se vería así:

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

lo que pondrá todos los comentarios de una y varias líneas en el canal HIDDEN . Sin embargo, si no estás haciendo nada con estos tokens HIDDEN, también puedes skip estos tokens, que se verían así:

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

Tenga en cuenta que para decirle al lexer o al analizador que coincida con Ungreedy, ya no usa las options {greedy=false;} , sino que agrega un ? , similar a muchas implementaciones de expresiones regulares.

Necesito ayuda con mi gramática ANTLR 4 después de decidir cambiar a v4 desde v3. No tengo mucha experiencia con ANTLR, así que lo siento mucho si mi pregunta es tonta;)

En v3 usé el siguiente código para detectar comentarios de estilo Java:

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

En v4 no hay opciones específicas de la regla. Las acciones (mover al canal oculto) también son inválidas.

¿Podría alguien darme una pista sobre cómo hacerlo en ANTLR v4?