Ich versuche, die ISO-SQL 2003-Grammatik von hier aus zu kompilieren
Ссылка . Alle drei Versionen davon finden Sie hier Ссылка .
Dies sind die Schritte, denen ich gefolgt bin,
- java -jar antlr-3.3-complete.jar -Xmx8G -Xwatchconversion sql2003Lexer.g
- java -jar antlr-3.3-complete.jar -Xmx8G -Xwatch-Konvertierung sql2003Parser.g
- javac ANTLRDemo.java
ANTLRDemo.java-Datei:
%Vor%
Die ersten beiden Schritte funktionieren gut, und während ich meine Hauptklasse kompiliere, bekomme ich viele Fehler in Bezug auf die Java-Syntax:
./ sql2003Parser.java:96985: Fehler: keine Aussage
$ UnsignedInteger.text == '1'
./sql2003Parser.java:96985: Fehler: ';' erwartet
$ UnsignedInteger.text == '1'
./sql2003Parser.java:102659: Fehler: Nicht geschlossenes Zeichenliteral
if (! ((Unsigned_Integer3887! = null? Unsigned_Integer3887.getText (): null) == '01'))) {
Bitte lassen Sie mich wissen, wenn ich beim Einrichten des Parsers etwas falsch mache.
Es wäre hilfreich, wenn mir jemand zeigen könnte, wie man diese Grammatik mit ANTLR genau einrichtet.
Edit: Nach ein wenig mehr Fummelei, denke ich, dass diese Fehler durch die Aktionen in Lexer und Parser-Regeln verursacht werden. Gibt es einen sicheren Weg, dies zu überwinden?