Friday, 15 March 2013

java - ANTLR 4 $channel = HIDDEN and options -



java - ANTLR 4 $channel = HIDDEN and options -

i need help antlr 4 grammar after deciding switch v4 v3. not experienced antlr sorry if question dumb ;)

in v3 used next code observe java-style comments:

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

in v4 there no rule-specific options. actions (move hidden channel) invalid.

could please give me hint how in antlr v4?

the v4 equivalent like:

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

which set single- , multi line comment on hidden channel. however, if you're not doing these hidden-tokens, skip these tokens, this:

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

note tell lexer or parser match ungreedy, don't utilize options {greedy=false;} anymore, append ?, similar many regex implementations.

java migration antlr antlr4

No comments:

Post a Comment