[antlr-interest] Help with compressing trees and custom nodes
Todd Nine
tnine at apigee.com
Thu Mar 15 11:02:11 PDT 2012
Hi guys. I'm new to antlr and have a question regarding tree compressions.
My ultimate goal is to use my grammar to create an AST. From this AST I
then will utilize the visitor pattern to walk the tree and evaluate my
results for our Cassandra query engine. I'm having issues with my tree
having a lot of additional nodes that don't have 2 children due to operator
precedence. My questions are below.
1. How can I create a different node class for each element? For instance,
&& ad || need their own nodes, as well as 'NOT' 'within' etc
2. How can I collapse tree elements that only have 1 child. I.E turn orexp
-> andexp -> notexp -> andexp into just an andexp node
I've read all the documentation here, but I have a few things that aren't
clear.
http://www.antlr.org/wiki/display/ANTLR3/Tree+construction
When creating my own node classes, it's not clear to me if I need to
subclass an antlr node class, or just create any class. Are there any
examples on both compression and creating custom classes?
Thanks,
Todd
More information about the antlr-interest
mailing list