パッケージ lemon.piml は,抽象構文木を形成する ノードと PIML 文書からツリーを形成する PIMLParser から構成されています. Lexer としては lemon.sgml パッケージの SGMLLexer を用いています. package tree を生成するようにしたので, そちら (Package-lemon.piml.html) を参照して下さい.
PatternComponent はパターンを構成する 要素の親クラスで抽象クラスです. Composite パターンの Component Role にあたります. サブクラスには Non Terminal で Composite な要素と Terminal で Leaf な要素があります. これらのこどもクラスに共通な操作 setAttribute などが このクラスで宣言されています. createIterator, accept の関数はそれぞれ, Iterator パターン, Visitor パターン に由来しています.
パターンのトップノードです. クラス構成と説明文, およびその他のパターンとの関係から成ります. 説明文のノードは瀬川君が担当しています.
クラス構成のノードです. 説明とクラスの役割の集合および役割間の関係から 成ります.
説明が入っているノードです. 内部は HTML で書かれていることを仮定しています.
クラスの役割のノードです. 他の役割との関係と関数から成ります.
関係の集合のノードです. 少々冗長か?
関数の集合のノードです. 少々冗長か?
関数です. 引数(未実装)と説明と疑似コードから成ります.
この要素は実は PatternComponent のサブクラスでは ありません.本当は PatternStructure の子供要素な のですが,都合上 Relation クラス(lemon.common)の サブクラスにしています.
中には解析されていない文字列がそのまま含まれます. この文字列は,必要に応じて lemon.pseudo パッケージ で解析されます.
PIML ではないタグをそのまま入れておくところです. Notes の要素です.が,そのうち要らなくなるかも.
タグを含まない文字列をそのまま入れておくところです. Notes の要素です.が,そのうち要らなくなるかも.