微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Antlr4 中使用 javascript 语法并获得最大调用堆栈大小超出错误

如何解决在 Antlr4 中使用 javascript 语法并获得最大调用堆栈大小超出错误

我使用了 antlr 4.8 版和 javascript antlr4 运行时 4.8 版。 语法(JavaScriptLexer.g4、JavaScriptParser.g4)和 JavaScriptLexerBase.js、JavaScriptParserBase.js

https://github.com/antlr/grammars-v4/tree/master/javascript/javascript

当我使用像这样的词时

if (true) { i = 0; }

甚至

if ( true

我遇到错误“超出最大调用堆栈大小”。

我该怎么办? 我的代码:antlr.js

const antlr4 = require("antlr4");
const { CommonTokenStream,InputStream } = antlr4;
const JavaScriptLexer = require("./JavaScriptLexer");
const JavaScriptParser = require("./JavaScriptParser");

const input = "if ( true";
console.log("Starting...");
const chars = new InputStream(input);
const lexer = new JavaScriptLexer.JavaScriptLexer(chars);
const tokens  = new CommonTokenStream(lexer);
const parser = new JavaScriptParser.JavaScriptParser(tokens);
parser.buildParseTrees = true;
const tree = parser.program();
console.log("parsed.");

错误antlr4 Maximum call stack size exceeded error

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。