[antlr-interest] On how to insert logging calls at the beginning of each method
Vinicius Durelli
vinicius.durelli at gmail.com
Sat Jul 28 09:56:19 PDT 2012
Hi all,
I am designing a rewriter that inserts calls to a method named log at the
beginning of every method definition. The rewriter in question does
something similar to the following whenever it runs into a method:
int doSomeStuff() {
log(); //logs this method call
//method body
}
In order to do that I am using StringTemplates and rewriting the token
buffer. So far, I came up with a temporary solution that gets the job done
but doesn't look right to me:
body : '{' statement+ '}' -> template(x={$text.substring(1,
$text.length())}) "{ log(); <x>"
;
Is there a better/clever way of getting this done without having to resort
to Java String's methods (i.e., length and substring)?
Best,
Vinicius
More information about the antlr-interest
mailing list