これは何?
Ruby言語のソースコードを解析してプログラム構造をツリー形式で表示します。ruby_parserで解析した結果をYahoo! UIのTreeViewを使って表示します。
なんの役に立つの?
んー、ごめんなさい。あんまり役に立たないかも。Rubyの構文解析に興味があったり、プログラミング言語を自作しようとする人にとってはなんかの参考になるかもしれません。
作った動機
構文木萌え。
プログラミング言語が内部的に生成する構文木って、何百、何千もの小さなメモリの塊がひとつの矛盾もなく緻密につながりあっていて、構築物として圧倒的に美しいと思うのですよ。
yacc/lexなんかを使ってインタプリタを自作したことがある人には分かってもらえると思うけど、正しく構文木が生成できるようになったときは叫びたくなるほど嬉しいもんです。
それからプログラム終了時には構文木のメモリを開放するんですが、先頭のノードをdeleteしただけで、パタパタパタっとすべてのノードが連鎖的に1バイトの漏れもなく消えていく様子なんて、まるで巨大なドミノ倒しのようで想像するだけでゾクゾクしてきます。
この構文木の美しさをなんとか視覚化したいと思っていたところ、ruby_parserなるライブラリが最近リリースされたとの情報を得て、思わず作ってしまいました。
ちなみにRubyソースコード完全解説 - 第12章 構文木の構築によるとNodeDumpというツールもあるそうです。