[antlr-interest] Rewriting java source code
Nicola Musatti
Nicola.Musatti at ObjectWay.it
Fri Nov 5 09:46:18 PDT 2010
Hallo, Morten.
This sounds like a perfect job for a TokenRewriteStream. You should add
actions to your grammar that retrieve the start-end token pairs of the
portions you need to rewrite and use those in conjunction with
TokenRewriteStream's insert/replace/delete methods to perform your
modifications, possibly by means of small StringTemplate templates.
See:
http://www.antlr.org/api/Java/classorg_1_1antlr_1_1runtime_1_1_token_rewrite_stream.html
Cheers,
Nicola Musatti
Morten Olav Hansen wrote:
> Hi
>
> I'm currently trying to rewrite some java source code, and was looking
> for some pointers for doing this. I have added the Java.g (1.5)
> grammar and is currently using the grammar for parsing java files,
> with no problems.
>
> What I'm wondering is, how to proceed from this? I have used
> StringTemplates before, but it seems to be a lot of work when I'm only
> interested in rewriting small parts of the grammar, since I would have
> to add rewrite rules for the entire java language, and I couldn't find
> any pre-made files for this.
>
> Could something like this be accomplished using a tree walker?
>
> Any ideas or examples would be appreciated, thanks.
>
>
> Regards,
> Morten
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
>
Chi riceve il presente messaggio e' tenuto a verificare se lo stesso non gli
sia pervenuto per errore. In tal caso e' pregato di avvisare immediatamente
il mittente e, tenuto conto delle responsabilita' connesse all'indebito
utilizzo e/o divulgazione del messaggio e/o delle informazioni in esso
contenute, voglia cancellare l'originale e distruggere le varie copie o
stampe.
The receiver of this message is required to check if he/she has received it
erroneously. If so, the receiver is requested to immediately inform the
sender and - in consideration of the responsibilities arising from undue use
and/or disclosure of the message and/or the information contained therein -
destroy the original message and any copy or printout thereof.
More information about the antlr-interest
mailing list