Javaの字句解析、構文解析ツールに、JavaCC(Java Compiler Compiler)というツールがあります。簡単に言うならば、Unixの代表的なツールである、lex/yacc(flex/bison)のJava版ですね。 このJavaCCのパッケージには、jjtreeという構文木(Syntax Tree)を生成するためのコードを自動生成する便利なツールが添付されています。Syntax Treeは、構文を木構造で構成したものであり、Interpreterパターンを利用したコンポジット構造になっています。 jjtreeの特筆すべき点は、、構文木に対する処理を、Visitorへ委譲するように設計しているところです。Visitorの骸骨でも紹介したように、Visitorは、コンポジット構造をしたオブジェクトツリーに対する処理を分離して管理するのに非常に有用な手段です。 このコーナーでは