# -*- tcl -*- tcl.tk//DSL diagram//EN//1.0
set movelength [3 cm]

arrow "source" "code"

set LA [box "lexical" "analyzer"]
arrow "tokens" above

set P [box "parser"]
arrow "intermediate" "code"

set Sem [box "semantic" "checker"]
arrow
arrow <-> up from [$LA top]

set LC [box "lexical" "corrector"]
arrow <-> up from [$P top]

set Syn [box "syntactic" "corrector"]
arrow up

set DMP [box "diagnostic" "message" "printer"]
arrow <-> right from [$DMP right]

set ST [box "symbol" "table"]
arrow     from [$LC ne] to [$DMP sw]
arrow     from [$Sem nw] to [$DMP se]
arrow <-> from [$Sem top] to [$ST bot]
