java - How do I get the original text that an antlr4 rule matched? -
using java 7 grammar https://github.com/antlr/grammars-v4/blob/master/java7/java7.g4 want find methods specific name , print out method. see can use methoddeclaration rule when match. subclass java7baselistener , override listener method:
@override public void entermethoddeclaration(java7parser.methoddeclarationcontext ctx) { } how original text out? ctx.gettext() gives me string whitespace stripped out. want comments , original formatting.
antlr's charstream class has method gettext(interval interval) return original source in give range. context object has methods beginning , end. assuming have field in listener called input has charstream being parsed, can this:
int = ctx.start.getstartindex(); int b = ctx.stop.getstopindex(); interval interval = new interval(a,b); input.gettext(interval);
Comments
Post a Comment