如何遍历spidermonkey生成的AST(Javascript文件)

时间:2013-08-27 18:13:23

标签: javascript static-analysis abstract-syntax-tree spidermonkey

我对Spidermonkey Parser非常新,我有两个问题。第一个是有关于如何使用spidermonkeyParser生成Javascript文件的AST的良好文档(对于初学者)。第二个是知道如何遍历AST。我的目标是使用AST中的信息对JS文件进行一些静态分析(类型分析,字符串分析)。

谢谢

1 个答案:

答案 0 :(得分:0)

Spidermonkey的AST作为Javascript对象公开。这意味着您应该编写一个小的Javascript脚本,使用该脚本来读取和解析您想要解析的实际Javascript源文件,并将AST作为Javascript对象获取。

此功能在独立的SpiderMonkey shell中可用(可能不在Firefox附带的版本中)。您需要下载完整的Spidermonkey源并使用捆绑的python脚本构建它。 Shell将与您的独立Spidermonkey Javascript引擎一起构建。这个shell只是一个接受用户命令的小型控制台程序。 shell可以读取和执行独立的Javascript脚本。特别是,由此Shell执行的那些Javascript脚本可以访问名为Reflect的额外全局对象,该对象具有名为parse()的方法。 Shell还支持额外的文件I / O函数,这是您在要解析的目标Javascript源中读取的方式。

完整AST的描述如下:

https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API