JavaCCとデザインパターン

このJavaCCのパッケージには、jjtreeという構文木(Syntax Tree)を生成するためのコードを自動生成する便利なツールが添付されています。Syntax Treeは、構文を木構造で構成したものであり、Interpreterパターンを利用したコンポジット構造になっています。

jjtreeの特筆すべき点は、、構文木に対する処理を、Visitorへ委譲するように設計しているところです。Visitorの骸骨でも紹介したように、Visitorは、コンポジット構造をしたオブジェクトツリーに対する処理を分離して管理するのに非常に有用な手段です。
via http://www002.upp.so-net.ne.jp/ys_oota/jjtree/

Visitorが良く分からなかったら、ここで弄ってみるといいかもしれない。すばらしくエレガントに感じるから。
機械で生成されたコードと、自分で弄るコードと分離できちゃうのがもう気持ちよすぎ。