我一直在使用PEG.js版本0.6成功构建使用Maven插件(即从Java代码调用PEG.js)的解析器。 1,但是现在在尝试升级到新的版本,它的失败与错误消息:如何使用Rhino构建PEG.js 0.7.0解析器(Java SE 6 ScriptEngine API)
sun.org.mozilla.javascript.internal.EcmaError: SyntaxError: missing ; before statement (#3213(eval)#1) in #3213(eval) at line number 1
在调试我注意到,所散发出来的PEG.buildParser()函数调用的解析器看起来在语法上是错误的,而当从浏览器调用它时不会发生。
这里是我怎样,我称之为:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine jsEngine = manager.getEngineByName("JavaScript");
jsEngine.eval(new InputStreamReader(this.getClass().getResourceAsStream(PEGJS_LIB)));
Invocable invok = (Invocable) jsEngine;
Object peg = jsEngine.get("PEG");
invok.invokeMethod(peg, "buildParser", grammarSource);
其中,grammarSource
,在我的测试案例,是用作example in the website,并PEGJS_LIB = peg-0.7.0.js
的基本语法。
欢迎任何想法!我在这里用完了...
你知道我们是否有当前版本的pegjs解决方案吗? – AnujKu 2015-10-06 15:15:52