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は超シンプルな言語仕様であるのと、処理系のサイズを競ったりするため、普通は構文木を使わずに実装します。そんな逆風の中あえて構文木です。メモリ効率も実行速度も関係ありません。だって構文木が見たいんだもん、しょうがないじゃん。