25 lines
1.1 KiB
Plaintext
25 lines
1.1 KiB
Plaintext
|
digraph finite_state_machine {
|
||
|
rankdir=LR;
|
||
|
node [shape = doublecircle, fixedsize = true, width = 1.2, height = 1.2]; standard;
|
||
|
node [shape = circle];
|
||
|
standard -> standard [ label = "any key" ];
|
||
|
standard -> "command\nmode" [ label = "hotkey" ];
|
||
|
"command\nmode" -> standard [ label = "single key command" ];
|
||
|
"command\nmode" -> standard [ label = "invalid key" ];
|
||
|
|
||
|
"command\nmode" -> "macro\ncommand" [ label = "m" ];
|
||
|
"macro\ncommand" -> "macro\ndefinition" [ label = "macro key" ];
|
||
|
"macro\ndefinition" -> "macro\ndefinition" [ label = "any key" ];
|
||
|
"macro\ndefinition" -> standard [ label = "hotkey" ];
|
||
|
|
||
|
"command\nmode" -> "macro\ndelete" [ label = "M" ];
|
||
|
"macro\ndelete" -> standard [ label = "macro key" ];
|
||
|
|
||
|
"command\nmode" -> "complex\ncommand" [ label = "multi key command" ];
|
||
|
"complex\ncommand" -> "complex\ncommand" [ label = "any key" ];
|
||
|
"complex\ncommand" -> standard [ label = "hotkey" ];
|
||
|
"complex\ncommand" -> standard [ label = "invalid key" ];
|
||
|
}
|
||
|
|
||
|
|