Ich habe eine Grammatik erstellt und die entsprechenden JavaScript-Zieldateien mit IntelliJ generiert.Listener in JavaScript Ziel nicht ausgeführt
Der Parsing-Prozess scheint gut zu funktionieren, weil ich Fehler (oder keine Fehler) aufgrund der angehängten Fehler Listener erhalten.
Aber ich kann meinen benutzerdefinierten Listener nicht zum Laufen bringen. Ich mag die Sprache in einem anderen verwandeln, aber der Hörer wird ignoriert:
var chars = new antlr4.InputStream(this.test);
var lexer = new dnpMDLexer.dnpMDLexer(chars);
var tokens = new antlr4.CommonTokenStream(lexer);
var parser = new dnpMDParser.dnpMDParser(tokens);
parser.buildParseTrees = true;
parser.removeErrorListeners();
var errors = [];
var errorListener = new ErrorListener(errors);
parser.addErrorListener(errorListener);
var tree = parser.dnpMD();
var listener = new DnpMDListener();
antlr4.tree.ParseTreeWalker.DEFAULT.walk(listener, tree);
Und hier ist der Code für den Hörer (nur einige Funktionen jetzt implementiert):
var dnpMDParserListener = require('./lib/dnpMD/dnpMDParserListener.js').dnpMDParserListener;
var DnpMDListener = function() {
dnpMDParserListener.call(this);
return this;
};
DnpMDListener.prototype = Object.create(dnpMDParserListener.prototype);
DnpMDListener.prototype.constructor = DnpMDListener;
DnpMDListener.prototype.enterDnpMD = function(ctx) {
console.log("dnp: " + ctx);
}
DnpMDListener.prototype.enterHead = function(ctx) {
console.log("Head: " + ctx);
}
DnpMDListener.prototype.enterHeadline = function(ctx) {
console.log("Headline: " + ctx);
}
Was bin ich recht jetzt?