[antlr-interest] woohoo! ParseTrees for free, Debugging for me!

Terence Parr parrt at cs.usfca.edu
Sat Nov 29 16:23:32 PST 2003


Howdy,

I just made ANTLR generate parse trees w/o modifying the tool itself.  
I just overrode match(), traceIn(), traceOut() in the parser and turned 
on -traceParser. :)  Not only will it build a parse tree for you to 
look at, it knows how to dump the derivation tree!  This is super great 
thing for debugging big grammars.  The question is always "how is xxx 
being matched? I know it's not right!"  This derivation tool will 
pretty much tell you.  For example, here is the output when I run "int 
i;" into a tinyc example with parse tree construction overrides:

$ java Test < decl.c
parse tree:  ( <program> ( <declaration> ( <variable> ( <type> int ) ( 
<declarator> i ) ; ) ) EOF )
derivation:
     <program>
  => <declaration> EOF
  => <variable> EOF
  => <type> <declarator> ; EOF
  => int <declarator> ; EOF
  => int i ; EOF

pretty cool, n'est-ce pas?  You can see precisely how your input is 
matched by the grammar.

Note: this is what a parse tree is for...not translation.  For that you 
use an AST or token stream rewriting (got something comin on that too). 
:)

I'm going to go to the gym and if I have the energy I'll write up the 
mechanism later and post to ANTLR.org.

Anybody wanna port to C#? ;)  I know somebody that could use it about 
now ;)  Should I roll this into 2.7.3?  Perhaps not as we want to 
quickly get out a bug fix release w/o having to wait for C++ and C# 
implementations...

Ter
--
Professor Comp. Sci., University of San Francisco
Creator, ANTLR Parser Generator, http://www.antlr.org
Co-founder, http://www.jguru.com
Co-founder, http://www.knowspam.net enjoy email again!
Co-founder, http://www.peerscope.com pure link sharing




 

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




More information about the antlr-interest mailing list