Mastering Visitor Pattern by jjtree(JavaCC)




jjtree(JavaCC)で、Visitorパターンをマスター

 

■jjtree(JavaCC)とVisitor

Javaの字句解析、構文解析ツールに、JavaCC(Java Compiler Compiler)というツールがあります。簡単に言うならば、Unixの代表的なツールである、lex/yacc(flex/bison)のJava版ですね。

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

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

このコーナーでは、
InterpreterパターンとVisitorパターンの応用例として、jjtreeを使ってアプリケーションを作成し、これらのパターンの有用性を確認してみたいと思います。


[ご覧になる前に]

掲載した内容に関する ご質問、ご意見、ご要望への対応は、一切保証できません。また、掲載プログラムもしくは掲載内容を利用、引用した結果、なんらかの損失が発生したとしても、著者 太田 義則は、その責任を一切負いません。

JavaCCの関連リンク

例によって、JavaCCの利用方法や文法等に関しての説明は、ほとんどしません。JavaCCに関しては、下記リンク先に分かりやすい説明がありますので、是非、参照してください。

(Java覚え書き)JavaCCの使い方 (Obsolete)

JavaCC/HelloWorld (Obsolete)

Quick guide to writing scanning definitions in JavaCC (お薦め!)

JavaCCに関する情報は、現時点では非常に少ないですが、JavaCCパッケージには、豊富なドキュメント/サンプルがあります。内容については、非常に充実していますので、是非、参照してください。

■第一回■

jjtreeを利用してSyntax Treeを生成してみよう! 2001.6.25

■第二回■

jjtreeの代表的なオプション機能 2001.8.5

■第三回■

jjtreeのNode生成をコントロールする 2001.8.14

■第四回■

jjtreeを使って演算を実現する 2001.8.18

■第五回■

jjtreeを使って簡単スクリプト その1 2001.8.24

■第六回■

jjtreeを使って簡単スクリプト その2 2001.9.2

■第七回■

jjtreeを使って簡単スクリプト その3 2001.9.8

■第八回■

jjtreeを使って簡単スクリプト その4 20011.12.29(修正)

 

ご意見、ご感想はこちらまで。

Copyright(C) 2001-2011 Yoshinori Oota All rights reserved.

本ホームページのリンクは自由です。複製、転載される場合は、必ず著者までご連絡をください。