Node.js SyntaxError:ANTLR4 JavaScript Lexer中的意外标识符“boolean”
Node.js版本:
jj5@orac:~/test/antlr4-js$ node --version v5.10.1
Java版本:
jj5@orac:~/test/antlr4-js$ java -version java version "1.7.0_91" OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-1~deb8u1) OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
ANTLR4版本:
jj5@orac:~/test/antlr4-js$ java -jar ./antlr-4.5.3-complete.jar | head -n 1 ANTLR Parser Generator Version 4.5.3
我的testing脚本:
jj5@orac:~/test/antlr4-js$ cat run.sh #!/bin/bash cd "`dirname $0`" rm ECMAScript????* 2>/dev/null export CLASSPATH=".:`pwd`/antlr-4.5.3-complete.jar" java -jar ./antlr-4.5.3-complete.jar -Dlanguage=JavaScript -visitor ECMAScript.g4 node antlr4/run.js
错误发生在最后一行node antlr4/run.js
,其中Node.js运行run.js :
jj5@orac:~/test/antlr4-js$ ./run.sh [irrelevant warnings elided] /home/jj5/repo/svn/pcrepo/jj5-test/antlr4-js/ECMAScriptLexer.js:881 private boolean strictMode = true; ^^^^^^^ SyntaxError: Unexpected identifier at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:387:25) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Module.require (module.js:367:17) at require (internal/module.js:16:19) at Object.<anonymous> (/home/jj5/repo/svn/pcrepo/jj5-test/antlr4-js/antlr4/run.js:2:1) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10)
所以ANTLR4似乎已经产生了一些“强types”的JavaScript和Node.js扼stream圈。 我该如何解决这个问题..?
注意:如果您安装了Node.js和Java,您可以像这样重现:
cd /tmp svn co https://www.progclub.org/svn/pcrepo/jj5-test/trunk/antlr4-js/ antlr4-js/run.sh
问题是因为我使用的ECMAScript.g4语法是为在Java中使用而不是JavaScript而devise的。 我创build了一个新的文件来支持JavaScript,你可以在这里获得细节。
- 在将string转换为对象时获取syntaxError意外的令牌
- 如何使用node.js amqp模块将AQMP消息缓冲区转换为JSON对象?
- Javascript node.js ORM,遵循数据映射器模式
- Node.js – 文件系统获取文件types
- 将自定义types的数组传递给来自node-pg和SQL注入的postgres函数
- node.js中的头文件 – 套接口io资源解释为脚本,但是以MIMEtypes传递text / plain:
- 在全新的快递项目doctype 5`上出现错误,您现在必须使用`doctype html`
- 在JavaScript中使用一个API,使用JS最大整数以上的ID
- 检查node.js中的实际文件types