gpt4 book ai didi

javascript - JavaScript 目标中的监听器未执行

转载 作者:行者123 更新时间:2023-12-03 06:28:14 29 4
gpt4 key购买 nike

我创建了一个语法并使用 IntelliJ 生成了适当的 JavaScript 目标文件。

解析过程似乎工作正常,因为附加的错误监听器导致我收到错误(或没有错误)。

但我无法启动并运行我的自定义监听器。我想将语言转换为另一种语言,但监听器被忽略:

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);

这是监听器的代码(只是现在实现的一些功能):

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);
}

我现在缺少什么?

最佳答案

我发现了这个问题。

我只是没有生成监听器,但我生成了(仅生成了访问者)。

还有一行:

var dnpMDParserListener = require('./dnpMDParserListener').dnpMDParserListener;

缺少包括对基本监听器的所有必要调用。

现在工作得很好。

关于javascript - JavaScript 目标中的监听器未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38545605/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com