[antlr-interest] ANTLR3 Pruning the AST

Loring Craymer lgcraymer at yahoo.com
Fri Mar 30 11:07:21 PDT 2007

That's a parse tree; your problem is with the
"imaginary" nodes that you have inserted into the tree
to get a parse tree instead of building a more
efficient AST.  As a general rule, only insert
"imaginary" nodes when it simplifies recognition for
the next tree walker stage.

Remove the node insertions (at least those under EXPR)
in your grammar; after-the-fact pruning of inserted
nodes is something to avoid.


--- Kailey Joanette <kaileyjo at bigbluebubble.com>

> Is there any way to prune an AST so that things like
> :
>            EXPR 
>             EXPR_COND 
>              COND_OR_EXPR 
>               COND_AND_EXPR 
>                INCL_OR_EXPR 
>                 EXCL_OR_EXPR 
>                  AND_EXPR 
>                   EQUA_EXPR 
>                    INSTANCEOF_EXPR 
>                     RELA_EXPR 
>                      SHIFT_EXPR 
>                       ADDIT_EXPR 
>                        MULIT_EXPR 
>                         UNARY_EXPR 
>                          UNARY_EXPR_NPM 
>                           PRIMARY System out println
> Will turn into just 
>  PRIMARY System out println
> I don't care about whats in between unless something
> actually happens there.
> Would it work if I didn't add the EXPR_COND or
> whatever based on a
> predicate?  So say ADDIT_EXPR is an expression that
> looks like 4+5, if only
> 4 is present then I don't build ADDIT I just keep
> going down the list.
> Kailey

Now that's room service!  Choose from over 150,000 hotels
in 45,000 destinations on Yahoo! Travel to find your fit.

More information about the antlr-interest mailing list