[antlr-interest] rewrite rule translation to tree grammar

Johannes Luber jaluber at gmx.de
Fri Dec 14 13:34:09 PST 2007


Terence Parr schrieb:
> First, allow me to suggest:
> 
> expr : INT ('+'^ INT)* ;
> 
> To match either in tree grammar:
> 
> expr : ^('+' expr expr)
>     | INT
>     ;

So my rule should be:

qualified_identifier
   :   (i1=IDENTIFIER -> ^(QUALIFIED_IDENTIFIER $i1))
       (DOT i2=IDENTIFIER -> ^(ROOT $qualified_identifier DOT $i2))*
   ;

And the tree grammar equivalent:

qualified_identifier
   :   ^(ROOT qualified_identifier DOT i2=IDENTIFIER)
   |   ^(QUALIFIED_IDENTIFIER IDENTIFIER)
   ;

Am I right?

Johannes


More information about the antlr-interest mailing list