[antlr-interest] Rewriting to Flat Tree Nodes for Associative Multiary Operators
Jim Idle
jimi at temporal-wave.com
Thu Oct 2 15:23:02 PDT 2008
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.
>
> op790FormulaFlat
> : (op780FormulaFlat -> op780FormulaFlat)
> ( Or rDisjuncts = op790FormulaFlat) + )
> -> ^(Or $op790FormulaFlat $rDisjuncts+)
> ) ?
> ;
>
> the result is the same: RewriteEmptyStreamException.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20081002/f51e8c2c/attachment.html
More information about the antlr-interest
mailing list