I need help with my ANTLR 4 grammar after deciding to switch to v4 from v3. I am not very experienced with ANTLR so I am really sorry if my question is dumb ;)
In v3 I used the following code to detect Java-style comments:
COMMENT
: '//' ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;}
| '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;}
;
In v4 there are no rule-specific options. The actions (move to hidden channel) are also invalid.
Could somebody please give me a hint how to do it in ANTLR v4?
The v4 equivalent would look like:
which will put all single- and multi line comment on the
HIDDEN
channel. However, if you're not doing anything with theseHIDDEN
-tokens, you could alsoskip
these tokens, which would look like this:Note that to tell the lexer or parser to match ungreedy, you don't use
options {greedy=false;}
anymore, but append a?
, similar to many regex implementations.