Brainf*ck言語構文木表示Webサービス
Brainf*ck言語構文木表示Webサービス「Brainf*ckの木」というのを作ってみました。
Brainf*ckの木
http://aikelab.net/bftree
Brainf*ck言語のソースコードを解析してプログラム構造を折りたたみ可能なツリー形式で表示します。例によってYahoo! UIのTreeViewを使ってます。
構文木フェチ
最近、構文木のことばかり考えています。構文木のことを思うとなんだか幸せな気分になります(?)。
前回ルビーの木を作りましたが、これは肝心のパーサ部分にライブラリを使ったために作るのは楽チンだったものの、私の構文木欲は十分満たされるものではありませんでした。
そんなわけでパーサやノードクラスも自作することにしました。対象言語はとりあえずシンプルな方が良いのでBrainf*ckです。これならC++でインタプリタを書いたこともあるしWeb用にRubyで書き直すだけです。
Brainf*ckは超シンプルな言語仕様であるのと、処理系のサイズを競ったりするため、普通は構文木を使わずに実装します。そんな逆風の中あえて構文木です。メモリ効率も実行速度も関係ありません。だって構文木が見たいんだもん、しょうがないじゃん。