SiZapPaaiGwat / inhuman-cpc.github.io

我的博客
431 stars 94 forks source link

JavaScript Parser资源总结 #106

Open SiZapPaaiGwat opened 8 years ago

SiZapPaaiGwat commented 8 years ago

理解抽象语法树(AST)

Abstract syntax tree - 维基百科

抽象语法树在 JavaScript 中的应用 - 美团点评技术团队

JavaScript的抽象语法树与语法解析

通过开发 Babel 插件理解抽象语法树

JavaScript Parser

Parser建议从Esprima开始学习,相比较于其它Parser文档和示例更加丰富和形象。

Acorn的性能和效率比Esprima更胜一筹,但是文档比较匮乏。

Babylon是Babel的JavaScript Parser,早期也是fork的Acorn,目前关注度不及其它Parser。

推荐一种比较好的实践方式:从npm中的找出几个依赖于这些Parser的项目直接学习源代码。比如amd2cmd这个项目就是使用acorn将amd代码转换为cmd代码。

周边工具

AST explorer

更直观的理解各个Parser生成的AST。

ECMAScript Tooling

各种用于AST以及辅助的相关工具,比如estraverse用于遍历AST,escodegen用于从AST生成源代码。

Babel 插件手册