次の構成素がある。
- スキャナー
- パーザー
- ビルダー
- レイアウター
- レンダラー
- マーシャラー
やり取りするデータ構造は、
- トークン(スキャナー → パーザー)
- コマンド(パーザー → ビルダー)
- SDOM(ビルダー → レイアウター)
- ボックスモデル(レイアウター→レンダラー)
- SVGDOM(レンダラー → マーシャラー)
レイアウターは、抽象的なボックスモデルを作る。ボックスモデルの構成は:
- ボード
- ボックス
- ボックスの入力ポート、出力ポート
- シェイプ
- シェイプの入力ピン、出力ピン
- ワイヤー
SDOM(String Diagram Object Model)には、