mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-03-07 11:51:49 +09:00
117 lines
3.0 KiB
Plaintext
117 lines
3.0 KiB
Plaintext
digraph g {
|
|
concentrate=true;
|
|
splines=true;
|
|
newrank=true;
|
|
overlap=false;
|
|
|
|
LITERAL [shape=box]
|
|
QUOTE [shape=box]
|
|
PAREN [shape=box]
|
|
SEP [shape=diamond]
|
|
OPERATOR [shape=diamond]
|
|
OPERATOR2 [shape=diamond] // needs second pass to rename it as "OPERATOR"
|
|
NUMBER [shape=diamond]
|
|
numbersep [style=filled]
|
|
NUMBER2 [shape=diamond] // needs second pass to rename it as "NUMBER"
|
|
limbo [style=filled]
|
|
escape [style=filled]
|
|
quote_end [style=filled]
|
|
start [shape=Mdiamond]
|
|
error [shape=Msquare,style=filled]
|
|
|
|
|
|
subgraph clusternum {
|
|
shape=none;
|
|
NUMBER; NUMBER2; numbersep;
|
|
}
|
|
|
|
subgraph clusterops {
|
|
shape=none;
|
|
OPERATOR; OPERATOR2;
|
|
}
|
|
|
|
|
|
start -> LITERAL
|
|
|
|
LITERAL -> QUOTE [label="\""]
|
|
LITERAL -> PAREN [label="()[]"]
|
|
LITERAL -> limbo [label=_]
|
|
LITERAL -> SEP [label=","]
|
|
LITERAL -> OPERATOR [label="^*/+->=<"]
|
|
LITERAL -> LITERAL [label=otherwise]
|
|
|
|
NUMBER -> NUMBER [label="0..9_"]
|
|
NUMBER -> numbersep [label="xXbB."]
|
|
NUMBER -> QUOTE [label="\""]
|
|
NUMBER -> limbo [label=" "]
|
|
NUMBER -> PAREN [label="()[]"]
|
|
NUMBER -> SEP [label=","]
|
|
NUMBER -> OPERATOR [label="^*/+->=<"]
|
|
NUMBER -> LITERAL [label=otherwise]
|
|
|
|
numbersep -> NUMBER2 [label="0..9_"]
|
|
numbersep -> error [label=otherwise]
|
|
|
|
NUMBER2 -> NUMBER2 [label="0..9_"]
|
|
NUMBER2 -> QUOTE [label="\""]
|
|
NUMBER2 -> limbo [label=" "]
|
|
NUMBER2 -> PAREN [label="()[]"]
|
|
NUMBER2 -> SEP [label=","]
|
|
NUMBER2 -> OPERATOR [label="^*/+->=<"]
|
|
NUMBER2 -> LITERAL [label=otherwise]
|
|
|
|
OPERATOR -> OPERATOR2 [label=">=<"]
|
|
OPERATOR -> error [label="^*/+-"]
|
|
OPERATOR -> NUMBER [label="0..9"]
|
|
OPERATOR -> QUOTE [label="\""]
|
|
OPERATOR -> limbo [label=" "]
|
|
OPERATOR -> PAREN [label="()[]"]
|
|
OPERATOR -> SEP [label=","]
|
|
OPERATOR -> LITERAL [label=otherwise]
|
|
|
|
OPERATOR2 -> error [label="^*/+->=<"]
|
|
OPERATOR2 -> NUMBER [label="0..9"]
|
|
OPERATOR2 -> QUOTE [label="\""]
|
|
OPERATOR2 -> limbo [label=" "]
|
|
OPERATOR2 -> PAREN [label="()[]"]
|
|
OPERATOR2 -> SEP [label=","]
|
|
OPERATOR2 -> LITERAL [label=otherwise]
|
|
|
|
QUOTE -> quote_end [label="\""]
|
|
QUOTE -> escape [label="\\"]
|
|
QUOTE -> QUOTE [label=otherwise]
|
|
|
|
escape -> QUOTE [label=any]
|
|
|
|
quote_end -> limbo [label=_]
|
|
quote_end -> QUOTE [label="\""]
|
|
quote_end -> PAREN [label="()[]"]
|
|
quote_end -> SEP [label=","]
|
|
quote_end -> NUMBER [label="0..9"]
|
|
quote_end -> OPERATOR [label="^*/+->=<"]
|
|
quote_end -> LITERAL [label=otherwise]
|
|
|
|
limbo -> limbo [label=_]
|
|
limbo -> QUOTE [label="\""]
|
|
limbo -> PAREN [label="()[]"]
|
|
limbo -> SEP [label=","]
|
|
limbo -> NUMBER [label="0..9"]
|
|
limbo -> OPERATOR [label="^*/+->=<"]
|
|
limbo -> LITERAL [label=otherwise]
|
|
|
|
PAREN -> limbo [label=_]
|
|
PAREN -> QUOTE [label="\""]
|
|
PAREN -> PAREN [label="()[]"]
|
|
PAREN -> SEP [label=","]
|
|
PAREN -> NUMBER [label="0..9"]
|
|
PAREN -> OPERATOR [label="^*/+->=<"]
|
|
PAREN -> LITERAL [label=otherwise]
|
|
|
|
SEP -> limbo [label=_]
|
|
SEP -> QUOTE [label="\""]
|
|
SEP -> PAREN [label="()[]"]
|
|
SEP -> SEP [label=","]
|
|
SEP -> NUMBER [label="0..9"]
|
|
SEP -> OPERATOR [label="^*/+->=<"]
|
|
SEP -> LITERAL [label=otherwise]
|
|
} |