FSM generator for C++ with diagram generation via graphviz