# -*- 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 ..."
