Scala日記

Scalaの備忘録。ときどき研究の話。

ScalaのREPLでコードの構文木を見る

scala-Xprint:<phase>オプションを渡すことでコードの構文木を見ることができる。 シンタックスシュガーの展開などをチェックするのに便利。

この状態で for式を入れると、デシュガーの結果がわかる。

gist.github.com

-Xprintオプションに渡す出力フェーズは、"scala -Xshow-phases"で見ることができる。 自分の見たいところを指定する。簡単なデシュガーの結果を見るにはparserフェーズで十分。

gist.github.com

-Ybrowse:<phase>というグラフィカルに表示するオプションもあるらしい。

~
YucchiMac% echo "for(i <- 0 to 5) yield { i + 1 }" > tmp.scala
~
YucchiMac% scala -Ybrowse:parser tmp.scala

f:id:yuimat:20150402111250p:plain