如何解决antlr4 中的 javascript 语法
我使用了以下 JavaScript 语法链接。
https://github.com/ftomassetti/antlr-web-example
但是,当我使用 JavaScript 的语法(JavaScriptLexer.g4 和 JavaScriptParser.g4)而不是语法(todo.g4)时,它在定义时显示错误。
ATNDeserializer.js:171 Uncaught AADB8D7E-AEEF-4415-AD2B-8204D6CF042E
这是什么错误?
如何使用 antlr 和 JavaScript 语法创建中间代码?
我的语法文件:
- JavaScriptLexer.g4
- JavaScriptParser.g4
https://github.com/antlr/grammars-v4/tree/master/javascript/javascript
这是我的代码:index.html
<!DOCTYPE html>
<html>
<head>
<title>ANTLR on the Web</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="lib/require.js"></script>
</head>
<body>
<div id="inputs">
<textarea id="code">
* play with antlr4
* write a tutorial
</textarea>
<br/>
<button id="parse">Parse</button>
</div>
<script type="text/javascript">
var antlr4 = require('antlr4/index');
var JavaScriptParser = require('./generated-parser/JavaScriptParser');
console.log("start");
document.getElementById("parse").addEventListener("click",function(){
// var JavaScriptLexer = require('generated-parser/JavaScriptLexer');
// var input = document.getElementById("code").value;
// var chars = new antlr4.InputStream(input);
// var lexer = new JavaScriptLexer.JavaScriptLexer(chars);
// var tokens = new antlr4.CommonTokenStream(lexer);
// var parser = new JavaScriptParser.JavaScriptParser(tokens);
// parser.buildParseTrees = true;
// var tree = parser.program();
// console.log("Parsed: "+ tree);
// updateTree(tree,parser.ruleNames);
});
</script>
<div id="tree">
</div>
</body>
</html>
解决方法
@kaby76 基本上描述了这个问题。您正在使用旧的运行时。该错误显示了 "lexer action" feature 的 UUID。您用于生成解析器的 ANTLR4 工具比运行时更新。确保运行时与工具版本匹配(或更新)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。