Mit der Java 7-Grammatik https://github.com/antlr/grammars-v4/blob/master/java7/Java7.g4 Ich möchte Methoden mit einem bestimmten Namen finden und dann nur diese Methode ausdrucken. Ich sehe, dass ich die methodDeclaration
Regel verwenden kann, wenn ich zusammenpasse. So eine Unterklasse I Java7BaseListener
und überschreiben diese Listener-Methode:Wie bekomme ich den Originaltext, der mit einer antlr4-Regel übereinstimmt?
@Override public void enterMethodDeclaration(Java7Parser.MethodDeclarationContext ctx) { }
Wie kann ich den ursprünglichen Text raus? ctx.getText()
gibt mir eine Zeichenfolge mit all dem Leerraum entfernt. Ich möchte die Kommentare und Originalformatierung.
Wenn Sie keinen Zugang oder nicht wollen, um zu verfolgen, der 'CharStream', Verwenden Sie 'ctx.start.getInputStream()', um es abzurufen. – Peter
CharStream input = ctx.start.getInputStream(); input.getText (Intervall); Gibt mir Laufzeitfehler .checkBoundsOffCount (String.java:3101) –
Und wo es nicht fehlschlägt entfernt es noch Leerzeichen –