[antlr-interest] could not even do k=1 for decision xx; reason: timed out
Tomasz Jastrzebski
tdjastrzebski at yahoo.com
Fri Aug 7 13:32:37 PDT 2009
But this creates a different tree, while what I need is plain and simple structure like this:
+
/ \
/ \
a *
/ \
/ \
c d
Tomasz
--- On Fri, 8/7/09, Sam Barnett-Cormack <s.barnett-cormack at lancaster.ac.uk> wrote:
From: Sam Barnett-Cormack <s.barnett-cormack at lancaster.ac.uk>
Subject: Re: [antlr-interest] could not even do k=1 for decision xx; reason: timed out
To: "Tomasz Jastrzebski" <tdjastrzebski at yahoo.com>
Date: Friday, August 7, 2009, 2:30 PM
Tomasz Jastrzebski wrote:
> But the problem is that I cannot do that since I need to catch reference to each expression and operator to build nice AST tree. The real code looks more like this:
> additiveExpression
> : e1=multiplicativeExpression (o='+' | o='-') e2=multiplicativeExpression -> BINARY_EXPRESSION<BinaryExpression>[$o.text, $e1.tree, $e2.tree]
> | multiplicativeExpression
> ;
Still left-factor it.
additiveExpression
: e1=multiplicativeExpression ((o='+'|o='-') e2=multiplicativeExpression -> BINARY_EXPRESSION<BinaryExpression>[$o.text, $e1.tree, $e2.tree])*
;
This means that the output expression is only considered if the optional subrule matches - otherwise it uses the default output (just e1).
-- Sam Barnett-Cormack
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20090807/05fd719f/attachment.html
More information about the antlr-interest
mailing list