ScalaのREPLでコードの構文木を見る
scala
に-Xprint:<phase>
オプションを渡すことでコードの構文木を見ることができる。
シンタックスシュガーの展開などをチェックするのに便利。
この状態で for式を入れると、デシュガーの結果がわかる。
-Xprint
オプションに渡す出力フェーズは、"scala -Xshow-phases"で見ることができる。
自分の見たいところを指定する。簡単なデシュガーの結果を見るにはparserフェーズで十分。
-Ybrowse:<phase>
というグラフィカルに表示するオプションもあるらしい。
~
YucchiMac% echo "for(i <- 0 to 5) yield { i + 1 }" > tmp.scala
~
YucchiMac% scala -Ybrowse:parser tmp.scala