[antlr-interest] Why BANG after rule id ?

Kaleb Pederson kaleb.pederson at gmail.com
Tue Oct 6 14:18:55 PDT 2009


On Tuesday 06 October 2009 03:15:05 am Graham Wideman wrote:
> Hi folks:
> 
> I see in the ANTLR grammar that you can place a BANG (exclamation point) after the initial rule id in a rule. Indeed it's used in the ANTLR v3 grammar itself:
> 
> ----------------------------
> range!
>   :  c1=CHAR_LITERAL RANGE c2=CHAR_LITERAL elementOptions?
>     -> ^(CHAR_RANGE[$c1,".."] $c1 $c2 elementOptions?)
> ;
> ----------------------------
> 
> Could someone illuminate what this ! does?

The exclamation mark is placed on a node when that node should not be present in the AST when output=AST for a grammar.

See:

http://jnb.ociweb.com/jnb/jnbJun2008.html#CreatingASTs
http://www.antlr.org/wiki/display/ANTLR3/Tree+construction

--Kaleb

http://twitter.com/kalebpederson
http://kalebpederson.com


More information about the antlr-interest mailing list