[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