SpiderMonkey变量列表

时间:2015-07-28 11:00:47

标签: javascript c++ qt spidermonkey

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

我查看了文档,但找不到任何内容。

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

1 个答案:

答案 0 :(得分:0)

如果必须使用SpiderMonkey嵌入执行此操作,则可以使用JS_InitReflect函数在当前全局上下文(documentation)中创建Reflect对象。它需要你编写一个脚本来运行Relect.parse(/* your javascript segment */),但是你在JS对象层次结构中得到了AST。此时,将JSON字符串或您需要的任何内容导出回原生代码应该很容易。

使用像Esprima这样的项目并生成一个Node.js进程来打印你想要分析的JS的AST而不是处理SpiderMonkey上的完整麻烦可能要容易得多嵌入。