[antlr-interest] Ignoring with tree parser redux

Greg Smolyn smolyn at cs.ubc.ca
Tue Mar 12 14:25:01 PST 2002


Okay, thanks to Monty "what a guy" Zukowski, I have figured out my problem.

I am unsure whether or not this is a bug with ANTLR, but most likely 
it's because I'm not quite understanding something about tree parsing. :)

Anyways, I tried using the following to unparse only selected elements 
from my AST:

#(NAspectDeclaration  . /*that dot matches declarator*/
       (  (functionDef)=>functionDef
          | .
       )*
)

However, the code this generates will end up with an NPE.  On 
inspection, I looked at the loop it generates and saw that it _does not_ 
create the standard boilerplate for these kinds of loops:
    if (_t==null)  _t=ASTNULL;

when I added this line, the code worked.  However, at Monty's suggestion 
I tried removing the syntactic predicate to get:

#(NAspectDeclaration  . /*that dot matches declarator*/
       (  functionDef
          | .
       )*
)


which worked perfectly.

Technically speaking, the syntactic predicate was overkill.  But is that 
the expected behaviour?  I'm not sure.  Anyways, if you're running into 
a similar problem, try removing the synpreds and see what happens. :)

- greg
University of British Columbia
Software Practices Lab


 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 



More information about the antlr-interest mailing list