[antlr-interest] Changing the order of execution of tree pattern matching rules
Andrew Mains
andrew.mains at oracle.com
Tue Jul 31 11:59:32 PDT 2012
Hi all,
I am currently working on preprocessing an AST in order to compute some
properties about the code and make my code generation easier. To do
this, I'm using a tree grammar with pattern matching (filter = true).
My question is this: I want to set a flag on each node of the tree in a
bottomup manner, and then use the information from this flag in a
topdown walk of the tree. Unfortunately for me, ANTLR does only one
depth first walk of the tree, (sensibly) executing the topdown actions
first, since they are performed in the preorder position. Since my
topdown action is dependent on my bottomup action, this order doesn't
work for me.
Is there any convenient method of telling ANTLR to perform multiple DF
walks of the tree so I can perform my bottomup action in the first walk
and my topdown action in the second?
If possible, I'd prefer to avoid splitting my grammar into two, as this
is less convenient, but I'll do so if necessary. I am, of course, open
to different ways of looking at the problem--this was just what made the
most sense to me initially (and what I would do if I were walking the
tree "by hand")
Let me know if anything is unclear--I'm happy to provide more
details/actual code if it will help.
Thanks for the help!
Andrew
More information about the antlr-interest
mailing list