1
我有一个QT应用程序,我想嵌入SpiderMonkey。有了它,我想解析JavaScript段(不执行它),并在某种结构化树中检索所有变量,函数,对象,数组等等,或者只是列出它们...这可能吗?SpiderMonkey变量列表
我查看了文档,但找不到任何东西。
或者如果我不能用SpiderMonkey做到这一点,也许有人可以指点我另一个解析器?
我有一个QT应用程序,我想嵌入SpiderMonkey。有了它,我想解析JavaScript段(不执行它),并在某种结构化树中检索所有变量,函数,对象,数组等等,或者只是列出它们...这可能吗?SpiderMonkey变量列表
我查看了文档,但找不到任何东西。
或者如果我不能用SpiderMonkey做到这一点,也许有人可以指点我另一个解析器?
如果你必须这样做了SpiderMonkey的嵌入,可以使用JS_InitReflect
功能在目前全球范围内(documentation)创建Reflect
对象。这将需要你编写一个脚本来运行Relect.parse(/* your javascript segment */)
,但是你已经在JS对象层次结构中获得了AST。此时,应该很容易将JSON字符串或您需要的任何内容导出回您的本机代码。
它很可能是一个更容易使用的项目像Esprima并生成一个Node.js的过程打印出来的AST你要分析,而不是处理一个完整的嵌入的SpiderMonkey的麻烦JS。