[antlr-interest] wildcard in tree grammar
Sam Harwell
sharwell at pixelminegames.com
Thu Nov 27 08:18:22 PST 2008
That should be correct, but under the current implementation, I believe
it will match any tree with the . wildcard, then find 0 instances of
tree. The problem doesn't occur in the rule you have here, but this rule
will only print 1 line, regardless of the input tree:
tree : ^(. {System.out.println("tree node");} tree*)
Sam
-----Original Message-----
From: Oliver Zeigermann [mailto:oliver.zeigermann at gmail.com]
Sent: Thursday, November 27, 2008 2:24 AM
To: Gavin Lambert
Cc: Terence Parr; Sam Harwell; antlr-interest Interest
Subject: Re: [antlr-interest] wildcard in tree grammar
2008/11/27 Gavin Lambert <antlr at mirality.co.nz>:
> 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?
Oliver
More information about the antlr-interest
mailing list