我有一个要嵌入SpiderMonkey的QT应用程序。有了它,我想解析javascript段(而不是执行它)并检索某种结构化树中的所有变量,函数,对象,数组等,或者只列出它们...这可能吗?
我已经浏览了文档,但找不到任何东西。
或者,如果我无法使用SpiderMonkey做到这一点,也许有人可以将我指向另一个解析器?
最佳答案
如果必须通过SpiderMonkey嵌入执行此操作,则可以使用JS_InitReflect
函数在当前全局上下文(documentation)中创建Reflect
对象。这将需要您编写一个脚本来运行Relect.parse(/* your javascript segment */)
,但是随后您将AST引入了JS对象层次结构中。到那时,应该容易地将JSON字符串或您需要的任何内容导出回本机代码。
使用Esprima之类的项目并生成Node.js进程以打印要分析的JS的AST可能要容易得多,而不是解决SpiderMonkey完全嵌入的麻烦。
关于javascript - SpiderMonkey变量列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31674368/