# -*- tcl -*- tcl.tk//DSL diagram//EN//1.0 # Parser Tools Architecture Diagram set counter 0 if {![info exists mark]} { set mark -1 } proc xbox {args} { variable mark variable counter if {$mark == $counter} { lappend args color red stroke 2 } incr counter return [uplevel 1 [list box {*}$args]] } proc area {label args} { set E [xbox fillcolor lightyellow {*}$args] group { text text $label with nw at [last box nw] } return $E } down set boxwidth [90 mm] set movelength [5 mm] set A [area Applications] move set C [area "Core Packages"] move set S [area "Support Packages"] text at $A "critcl\ncritcl::app" text at $C "critcl\ncritcl::util" text at $S "stubs::*, md5, platform ..."