Używanie Java 7 gramatyki https://github.com/antlr/grammars-v4/blob/master/java7/Java7.g4 Chcę znaleźć metody o określonej nazwie, a następnie wydrukować tę metodę. Widzę, że mogę korzystać z reguły methodDeclaration
, gdy pasuję. Więc podklasy Java7BaseListener
i zastąpić tę metodę słuchacza:Jak uzyskać oryginalny tekst zgodny z regułą antlr4?
@Override public void enterMethodDeclaration(Java7Parser.MethodDeclarationContext ctx) { }
Jak mogę dostać oryginalny tekst na zewnątrz? ctx.getText()
daje mi ciąg znaków z usuniętymi białymi znakami. Chcę komentarze i oryginalne formatowanie.
Jeśli nie masz dostępu do lub nie chcą śledzić 'CharStream', użyj 'ctx.start.getInputStream()', aby go odzyskać. – Peter
CharStream input = ctx.start.getInputStream(); input.getText (interval); Daje mi błędy runtime .checkBoundsOffCount (String.java:3101) –
A tam, gdzie się nie zawiedzie, nadal usuwa białe znaki –