[antlr-interest] wildcard in tree grammar

Gavin Lambert antlr at mirality.co.nz
Thu Nov 27 02:43:33 PST 2008


At 21:23 27/11/2008, Oliver Zeigermann wrote:
 >> In other words (in vaguely ANTLR-like syntax):
 >>
 >>   wildtree : ANYNODE | ^(ANYNODE wildtree*) ;
 >>
 >>   .          => wild
 >>   ^(.)       => ANYNODE
 >>   ^(. FOO)   => ^(ANYNODE FOO)
 >>   ^(FOO .)   => ^(FOO wildtree)
 >>   ^(FOO . .) => ^(FOO wildtree wildtree)
 >>   ^(FOO .+)  => ^(FOO wildtree+)
 >>   ^(FOO .*)  => ^(FOO wildtree*)
 >
 >Using these semantics my original rule
 >
 >tree : ^(. tree* ) ;
 >
 >would match any tree even if subtrees are single nodes
 >only, right?

Right.  That makes the most sense to me, since it keeps the 
structure consistent and treats a leaf node on the tree exactly 
the same as a parent node that simply happens to have no children 
at the moment (which is usually how it should be).



More information about the antlr-interest mailing list