[antlr-interest] Tree Rewrite Rule Problem

DJB MASTER DJBall05 at hotmail.co.uk
Tue Nov 6 07:33:22 PST 2012

I'm trying to convert this tree...


...into this tree...


I'm using a Tree Grammar with pattern matching and this is the rule I've

*findInfix : ^(MROW (lefts=.*) left=.  MO right=. (rights=.*)) -> ^(MROW
$lefts* ^(MO $left $right) $rights*);*

In the tree *+* is represented by the *MO* token.

On running the tree grammar rewriter I get the following rewrite...

*(mrow (mi a) + (mi b) + (mi c)) -> (mrow + (+ (mi b) (mi c)))*

I don't know which part of my rule is wrong, because it is leaving out the
'lefts' part of the tree in the rewrite.

Here is a Eclipse project showing the erroneous rewrite...


Thanks for any help.

View this message in context: http://antlr.1301665.n2.nabble.com/Tree-Rewrite-Rule-Problem-tp7579128.html
Sent from the ANTLR mailing list archive at Nabble.com.

More information about the antlr-interest mailing list