[antlr-interest] Fwd: Re: Trying to keep whitespace in an AST

Matt Benson gudnabrsam at yahoo.com
Thu Feb 7 20:37:38 PST 2008


copying list...

--- Jamie Penney <jpen054 at ec.auckland.ac.nz> wrote:

> Date: Fri, 08 Feb 2008 17:25:04 +1300
> From: Jamie Penney <jpen054 at ec.auckland.ac.nz>
> To: Matt Benson <gudnabrsam at yahoo.com>
> Subject: Re: [antlr-interest] Trying to keep
> whitespace in an AST
> 
> What I need to do is use the AST to create an in
> memory model of the 
> code using our own model classes. So for instance we
> have a model to 
> represent a method, which needs to know everything
> about the method. It 
> needs the text of the method, but doesn't need to
> parse it. I need to be 
> able to record the amount of whitespace and the
> comments that come 
> before the method, so that I can put that into our
> code model objects. 
> These code model objects are used for a bunch of
> different stuff, 
> modified, then printed out (which does the actual
> pretty printing).
> 
> So I guess I need an AST that keeps newlines and
> comments associated 
> with particular nodes. The pretty printing is done
> by our code so the 
> grammar doesn't need to do that.
> 
> Thanks,
> Jamie Penney
> 
> Matt Benson wrote:
> > Are you trying to pretty-print all the source, or
> just
> > what you've augmented?  Does this wiki entry
> approach
> > what you're looking for:
> >
> >
>
http://www.antlr.org/wiki/pages/viewpage.action?pageId=1752
> >
> > ?
> >
> > -Matt
> >
> > --- Jamie Penney <jpen054 at ec.auckland.ac.nz>
> wrote:
> >
> >   
> >> Hi all,
> >> I am trying to work out how to create a grammar
> that
> >> will build an AST 
> >> that keeps both comments and some whitespace.
> >> Basically the output will 
> >> be formatted code, but we need the semantic
> >> information provided by the 
> >> AST for other parts of the system. Any comments
> and
> >> blank lines need to 
> >> be kept in the output code. Is it possible to
> have
> >> rewriting and AST 
> >> generation turned on at the same time, or do I
> have
> >> to write two 
> >> separate grammars? I am new to ANTLR so sorry if
> I
> >> have the wrong idea 
> >> about anything.
> >> To give a concrete example, say I have a language
> >> that represents basic 
> >> C style statements like so:
> >>
> >> int a    = 0;
> >> int b    = 1;
> >> int c    = 2;
> >>
> >> // reassign a
> >> a = b + c;
> >>
> >> What I need is the semantic information provided
> by
> >> an AST (whether a 
> >> statement is a declaration, assignment, ect), but
> I
> >> need to transform 
> >> the language partially too. I need to format the
> >> individual elements 
> >> consistently, so each would be of the form a = b
> +
> >> c; but I also need to 
> >> retain the newlines and comments between
> elements.
> >>
> >> If anyone could point me in the right direction I
> >> would be very grateful.
> >>
> >> Thanks,
> >> Jamie Penney
> >>
> >>     
> >
> >
> >
> >      
>
____________________________________________________________________________________
> > Looking for last minute shopping deals?  
> > Find them fast with Yahoo! Search. 
>
http://tools.search.yahoo.com/newsearch/category.php?category=shopping
> >   
> 
> 



      ____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs


More information about the antlr-interest mailing list