楽しいだけで十分です

JavaScript AST入門_chapter1

JavaScript AST入門 ソースを解析・加工して生産性に差をつける! | 電子書籍とプリントオンデマンド(POD) | NextPublishing(ネクストパブリッシング)の第1章の読書メモです。


  • ASTはコンパイラの内部表現のため、言語利用者の大半には縁がない
  • ただし、JSは例外

    • ブラウザの互換性を保つため、トランスパイルで変換することが一般的なため
    • Babelが定番
  • Babelはトランスパイラだが、同時にASTを使ったエコシステム・ライブラリでもある

    • BabelプラグインはASTの変換を行う小さなプログラム
  • JSのASTには、ESTreeという標準仕様がある
  • ASTを扱うツールは3つある

    • parser
    • traverser (あるいは、walker)
    • generator
  • parser

    • JSやAltJSのコードを解析して、ASTを作る
    • Babylon(babel-parser)やEsprimaが該当
  • traverser

    • AST(ツリー構造)を再帰的に探索するのを楽にするためのツール
    • babel-traverserが該当
    • babel-traverserは、ある程度の静的解析も行ってくれる
  • generator

    • ASTからJSのコードを生成するツール
    • babel-generatorが該当
  • babel-coreのtransform関数は、parser, traverser, generatorの工程を一通り面倒見てくれるので、これを使ったBabelプラグインもある
yinm

WRITTEN BY yinm

I'm a software engineer.