[antlr-interest] Tree - Replace nodes in tree
Des Hartman
des at deshartman.com
Thu Mar 19 18:55:25 PDT 2009
Michael
Thanks I got it sorted. Here is what I ended up doing, but at the parser
level.
@members {
//============= Stub Code ===================================
public function getInternalReference(local:String):Object {return null;}
}
localRefExpression
: NAME { var iref:String = String(getInternalReference($NAME)); } ->
^(IREF NUMBER[iref])
;
This effectively matches a NAME and converts it to IREF NUMBER, with the
number derived from calling a overridden method to get the number based on
the letter used.
;-D
Thanks
Des
2009/3/19 Michael Bedward <michael.bedward at gmail.com>
> Hello Des,
>
> It's no problem to do this in a tree grammar. For instance, here is
> an example from one of my tree grammars
>
> expr : ^(ASSIGN assign_op var expr)
> -> {isImageVar($var.text)}? ^(IMAGE_WRITE var expr)
> -> ^(ASSIGN assign_op var expr)
>
> Here I replace an ASSIGN node with an IMAGE_WRITE node conditional on
> the result of a lookup in the predicate.
>
> Michael
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20090320/3327bf2e/attachment.html
More information about the antlr-interest
mailing list