相关疑难解决方法(0)

Antlr4 Javascript访客

我目前正在尝试在Antlr4访问者的帮助下开发JavaScript编译器.我已经用Java实现了这个,但是无法弄清楚如何在JavaScript中实现这一点.可能有人可以回答我几个问题?

1:在Java中有一个Visitor.visit函数.如果我正确,这是不可能的Javascript.有没有解决这个问题?

2:我的Javascript访问者获得了所有生成的访问函数,但是当我使用console.log(ctx)时,上下文是未定义的.知道为什么吗?

从SimpleVisitor.js中提取:

// Visit a parse tree produced by SimpleParser#parse.
SimpleVisitor.prototype.visitParse = function(ctx) {
        console.log(ctx);
};
Run Code Online (Sandbox Code Playgroud)

主js文件:

var antlr4 = require('lib/antlr4/index');
var SimpleLexer = require('antlr4/SimpleLexer');
var SimpleParser = require('antlr4/SimpleParser');
var SimpleVisitor = require('antlr4/SimpleVisitor');    

var input = "double hallo = 1;";
var chars = new antlr4.InputStream(input);
var lexer = new SimpleLexer.SimpleLexer(chars);
var tokens = new antlr4.CommonTokenStream(lexer);
var parser = new SimpleParser.SimpleParser(tokens);
var visitor = new SimpleVisitor.SimpleVisitor();
parser.buildParseTrees = true;
var tree = parser.parse();

visitor.visitParse();
Run Code Online (Sandbox Code Playgroud)

这可能足以从......开始

布鲁诺

编辑:

可能上下文是未定义的,因为我在没有参数的情况下调用函数,但是我从哪里得到"起始" - …

javascript java visitor antlr4

6
推荐指数
1
解决办法
2102
查看次数

标签 统计

antlr4 ×1

java ×1

javascript ×1

visitor ×1