# -*- tcl -*- tcl.tk//DSL diagram//EN//1.0
## DSL for uml sequences. Draft.

source [file join [file dirname [file normalize [info script]]] dsl_umlsequence.inc]

set actorstep [10 mm]

## ====================================================================

actor repl "REPL"
actor cfg  "config"
actor ctx  "context"
actor para "parameter"
actor vt   "validation type"

action repl
action cfg
action ctx
skip   para
skip   vt

call-down repl cfg complete(line)
call-down cfg  ctx parse-line(buffer)

action repl
action ctx
action cfg
skip   para
skip   vt

return-up ctx cfg state

action repl
skip-> cfg
skip   ctx
skip   para
skip   vt

action repl
action cfg
skip   ctx
skip   para
skip   vt

label cfg  complete-repl(state)

action repl
action cfg
skip   ctx
action para
action vt

call-down cfg  para complete-words(state)
call-down para vt   complete(p,word)

action repl
action cfg
skip   ctx
action para
action vt

return-up vt   para completions
return-up para cfg  completions
return-up cfg  repl completions

stop repl
stop cfg
stop ctx
stop para
stop vt

# # close timelines

line \
    from [$repl by [10 mm] w] \
    to   [$vt   by [10 mm] e]
