プラグインはVisitorパターンである可能性が見えてきました。 それでは実際functionの中身がどうなっているのか見ていきましょう。
実は、公式にプラグインハンドブックが用意されています1。
既存のコードとドキュメント、そして自分で新しいプラグインを作りながら、 プラグインを攻略していきましょう。
Babelの動作は、3つのステージで構成されます。
ひとつ目のステージは Parse。 与えられたソースコードを 構文解析 し、ASTと呼ばれる 構文木 を作ります。
ふたつ目のステージは Transform。 構文木のひとつひとつの要素を、ルールに従って書き換えます。
最後のステージは Generation。 変換された構文木をもう一度ソースコードの形に出力します。
プラグインは、主に Transformのステージ の書き換えルールを担当していることになります。
Footnotes
-
なんと日本語版も! ↩