Derzeit tokenize ich die Java8.g4 von Java 8 aus diesem Repo bin mit: https://github.com/antlr/grammars-v4Wie Java8 Programm antlr
Aber ich frage mich, wie kann ich die Java8.g4 sicherstellen Datei ändern, wenn Ich begegne mehreren neuen Zeilen, die ich nur eine von ihnen in Tokenize?
Siehe: Parsing Newlines, EOF as End-of-Statement Marker with ANTLR3, ich neue Zeile in der Parsing-Baum hinzufügen können (durch NEWLINE: ('\r\n'|'\n'|'\r')
zum .g4 Datei hinzufügen Wenn ich jedoch mehrere neue Linien haben, werden mehrere Zeilen analysiert und zu dem Baum hinzugefügt, die nicht ist. was ich will.
Hoffnung jemand mir heraus!
Sie können nicht einfach die EOS (Semikolon, ich vermute) aus der Grammatik entfernen: es würde ein großes mehrdeutiges Chaos werden. –
In java8.g4 im Repo, das ich oben gepostet habe, fügt es seiner Token-Liste kein "\ n" hinzu. Was ich versuche, ist es, es der Liste hinzuzufügen und möglicherweise "\ n" durch EOF zu ersetzen. Ich bin mir nicht sicher, ob es möglich ist. – teddy
Okay, also versuchen Sie nicht, EOS zu entfernen (nicht EOF?), Sondern stattdessen zu ersetzen. Probieren Sie es aus und überzeugen Sie sich selbst. Wenn Sie nicht weiterkommen, können Sie eine spezielle Frage zu SO stellen. Viel Glück! –