[antlr-interest] Rewriting to Flat Tree Nodes for Associative Multiary Operators
Randall R Schulz
rschulz at sonic.net
Thu Oct 2 16:01:08 PDT 2008
On Thursday 02 October 2008 15:23, Jim Idle wrote:
> On Thu, 2008-10-02 at 15:01 -0700, Randall R Schulz wrote:
> > On Thursday 02 October 2008 14:29, Jim Idle wrote:
> > > Have you tried:
> > >
> > >
> > > o : v1=nextrule
> > > (
> > > (Or v2+=nextrule )+ ->^(OR $v1 $v2+)
> > >
> > > | // No OR's, default tree
> > >
> > > )
> > > ;
> > >
> > >
> > > Or something similar?
> >
> > Well, it looks to me like it's very similar to what I did try, and
> > this, too, yields the
> > org.antlr.runtime.tree.RewriteEmptyStreamException.
> >
> > Whether you include an empty alternative (as you showed) or make
> > the entire sub-rule optional, as I'd tried earlier:
>
> Yeah but you are referencing the rule itself there. If you get a
> rewrite exception then it could be a bug. I will try a small example
> - if htat works, then perhaps your lower down rules are returning
> empty trees in cases of error or something way.
I'm sure the more deeply nested rules aren't returning empty trees,
because they're the same rules I use to successfully produce the fully
nested trees I'm trying to avoid.
Randall Schulz
More information about the antlr-interest
mailing list