2015-07-28 41 views
1

我有一个QT应用程序,我想嵌入SpiderMonkey。有了它,我想解析JavaScript段(不执行它),并在某种结构化树中检索所有变量,函数,对象,数组等等,或者只是列出它们...这可能吗?SpiderMonkey变量列表

我查看了文档,但找不到任何东西。

或者如果我不能用SpiderMonkey做到这一点,也许有人可以指点我另一个解析器?

回答

0

如果你必须这样做了SpiderMonkey的嵌入,可以使用JS_InitReflect功能在目前全球范围内(documentation)创建Reflect对象。这将需要你编写一个脚本来运行Relect.parse(/* your javascript segment */),但是你已经在JS对象层次结构中获得了AST。此时,应该很容易将JSON字符串或您需要的任何内容导出回您的本机代码。

它很可能是一个更容易使用的项目像Esprima并生成一个Node.js的过程打印出来的AST你要分析,而不是处理一个完整的嵌入的SpiderMonkey的麻烦JS。