10 Stimmen

ANTLR JavaScript-Ziel

Ich habe ANTLR verwendet, um einen Parser + Tree-Grammatik für eine Auszeichnungssprache mit Java-Ziel zu generieren, was gut funktioniert. Jetzt versuche ich jedoch, das Ziel in JavaScript zu erhalten, um es in meinem Webbrowser zu verwenden.

Ich konnte jedoch keine gute Dokumentation darüber finden, wie man das macht. Ich verwende Eclipse mit ANTLR IDE, und wenn ich die Sprache als JavaScript angebe, erhalte ich die folgenden Fehler.

Mehrere Marker an dieser Stelle

  • (10): interner Fehler: Gruppe JavaScript erfüllt nicht das Interface ANTLRCore: nicht übereinstimmende Argumente in diesen Vorlagen [treeParser(grammar, name, scopes, tokens, tokenNames, globalAction, rules, numRules, bitsets, labelType, ASTLabelType, superClass, members, filterMode)]

  • (10): interner Fehler: java.util.NoSuchElementException: kein solches Attribut: filterMode im Vorlagenkontext [treeParser]

Wenn mir jemand dabei helfen könnte oder mich auf Material verweisen könnte, das ich über das JavaScript-Ziel mit ANTLR lesen könnte, wäre das großartig.

Danke

4voto

jhyry Punkte 71

Es gibt ein neues JS Lang-Ziel für ANTLR4, das vor fast 3 Monaten auf GitHub veröffentlicht wurde:

antlr/antlr4-javascript

Es ist noch nicht in eine offizielle Version integriert, aber Sie können es wahrscheinlich einfach in den neuesten ANTLR4-Code einfügen und ANTLR selbst neu kompilieren.

0voto

Sonia Punkte 1004

Sie sollten die neueste Version (3.3) verwenden, in früheren Versionen war das JavaScript-Ziel nicht ordnungsgemäß integriert. Es gibt immer noch einige Fehler, aber Sie können ein funktionierendes Beispiel mit einigen Anleitungen und Links sehen auf http://blog.barvinograd.com/2011/03/online-function-grapher-formula-parser-part-2/

0voto

NickTee Punkte 663

Es scheint, als sei das JavaScript-Ziel in der 3.4-Distribution wieder defekt. In der 3.3 funktioniert es für mich jedoch einwandfrei.

0voto

beyond-code Punkte 1413

Ich habe versucht, dies zum Laufen zu bringen, und es ist mir erst gelungen, .js-Dateien erfolgreich zu generieren, nachdem ich dies gelesen habe:

http://www.antlr3.org/pipermail/antlr-interest/2011-August/042417.html

Von dem Beitrag:

So kommen Sie mit ANTLR und dem JavaScript-Backend in Gang:

  1. Laden Sie ANTLRWorks 1.2.2 herunter: http://antlr.org/download/antlrworks-1.2.2.jar. Das JavaScript-Ziel funktioniert nur, wenn die IDE den Lexer- und Parser-Code generiert (siehe http://antlr.1301665.n2.nabble.com/maven-plugin-and-javascript-target-td3647109.html). Wenn Sie versuchen, ANTLR v3.1 von der Befehlszeile auszuführen, sehen Sie die Fehlermeldung "error(10): internal error: group JavaScript does not satisfy interface ANTLRCore".
  2. Laden Sie die JS-Runtime-Verteilung herunter: http://antlr.org/download/antlr-javascript-runtime-3.1.zip

Von da an können Sie ANTLRWorks 1.2.2 verwenden, um den Lexer- und Parser-Code zu generieren, indem Sie "Generate Code" im "Generate"-Menü auswählen. ANTLRWorks platziert die generierten Dateien in einem output-Verzeichnis im Ordner, in dem die Grammatikdatei liegt.

Beachten Sie, dass wenn ein Fehler im Generierungsprozess auftritt, dann aus irgendeinem Grund die Aktion "Generate Code" nicht mehr funktioniert. Schließen Sie einfach die Grammatik und öffnen Sie sie erneut aus dem Menü "Zuletzt geöffnet".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X