[antlr-interest] tree parser example PDF docs and ANTLR Patte rns (was Re: the tree parser exampl)

mzukowski at yci.com mzukowski at yci.com
Tue May 7 14:50:51 PDT 2002

> This is on applying rewrite rules for grammar transformation.  There 
> has been quite a bit of research on rewriting, and it would be 
> interesting to interface the BURG (bottom up rewrite 
> generator)algorithm with ANTLR to do the "match pattern and rewrite" 
> approach to rule and tree transformation (as opposed to ANTLR's match 
> rule and rewrite according to user annotations).

Antlr also does have some tree matching routines built in.  See the
implementations of the methods below in antlr.BaseAST
    public boolean equals(AST t);
    public boolean equalsList(AST t);
    public boolean equalsListPartial(AST t);
    public boolean equalsTree(AST t);
    public boolean equalsTreePartial(AST t);
    public ASTEnumeration findAll(AST tree);
    public ASTEnumeration findAllPartial(AST subtree);

I've not needed these for my projects but would be interested in hearing how
people use them.  

> BTW, I just received a letter that okays release of my rewriting 
> support and tree grammar generation extensions under 
> copyright.  Now I 
> have to find out what else I need to do to actually release it, but I 
> can hope for an early June release.  This is probably a good starting 
> point for incorporating meta-level rewrite rules--the extensions 
> generate a syntax tree for the output grammar from an input grammar.

That's great news!

> > * Compilers
> This is a matter of interfacing to a backend.  An interesting 
> start in 
> this direction would be for someone to generate RTL from a 
> transformed 
> ANTLR syntax tree.  Monty's GNU C grammar is much cleaner 
> than the GNU 
> C flex/bison (at least the gcc front end used to be a case of 
> "abandon 
> hope all ye who enter here"--I haven't looked at the source since a 
> 1.xx release) and an ANTLR C++ front end would be a major improvement.

It was pretty ugly.  I'm no YACC expert, so I gave up trying to deduce the
actual grammar from the flex/bison code.  I understand that David Wigg and
his group are porting it from Java to C++.  The Aspect C tool is being
written with it.  It's a source to source tool but should have some
interesting analysis and transformations going on in it.

> > * Interpreters
> I don't know of an interpreter written in ANTLR, although Ter has 
> provided a few hooks for the purpose.  It would be 
> interesting to hear 
> of any experiences with ANTLR in this area.

Sinan has written a BASIC interpreter.  It's the tinybasic example in the
antlr distribution.



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

More information about the antlr-interest mailing list