I was having difficulty figuring out what does ^ and ! stand for in ANTLR grammar terminology.
+3
A:
Have a look at the ANTLR Cheat Sheet:
!
don't include in AST
^
make AST root node
And ^
can also be used in rewrite rules: ... -> ^( ... )
. For example, the following two parser rules are equivalent:
expression
: A '+'^ A ';'!
;
and:
expression
: A '+' A ';' -> ^('+' A A)
;
Both create the following AST:
+
/ \
A A
In other words: the +
is made as root, the two A
's its children, and the ;
is omitted from the tree.
aioobe
2010-08-12 09:49:38
Thanks ..that is what i was looking for
Shivendra
2010-08-12 10:26:35
@aioobe, I took the liberty to expand your answer a bit instead of creating an answer myself. Feel free to rephrase it as you see fit, or remove it (in which case I'll create one myself).
Bart Kiers
2010-08-12 11:49:28
@Bart K, Nice! I made it a CW...
aioobe
2010-08-12 12:04:38