A recent
Tcl-URL!
mentioned
SMC
(Tcl'ers
Wiki),
a State Machine Compiler, which sounds like it might be useful.
The OpenACS Workflow has its own means of modeling and generating
FSMs, but I'm not familiar with it either.
Among a bunch of other languages, SMC supports both C and IncrTcl, so
presumably it wouldn't be too hard to add XOTcl support if someone
wanted to.
According to the
FAQ,
the primary maintainer re-wrote the original CMC in Java because he
thought Java was more cross-platform than C, LEX, and YACC. That
sounds like a questionable decision at best, but, I think CMC is just
a code generator, which (if correct) should mean you only need it
present at run-time if you want to define new state machines at
run-time.