94 lines
2.8 KiB
Text
94 lines
2.8 KiB
Text
digraph lexer {
|
|
rankdir=LR;
|
|
node [shape = doublecircle] LP RP B0 BF DP1 DD0 DD1 DD2 DR0 DR1 INF NAN EXD;
|
|
node [shape = circle];
|
|
BEGIN -> LP [ label = "(" ];
|
|
BEGIN -> RP [ label = ")" ];
|
|
BEGIN -> H [ label = "#" ];
|
|
|
|
subgraph bools {
|
|
H -> B0 [ label = "t,f" ];
|
|
B0 -> BF [ label = "rue,alse" ];
|
|
}
|
|
|
|
/*
|
|
subgraph chars {
|
|
H -> SL [ label = "\\" ];
|
|
SL -> CH1 [ label = "*" ];
|
|
SL -> NMCH [ label = "alarm" ];
|
|
SL -> NMCH [ label = "backspace" ];
|
|
SL -> NMCH [ label = "delete" ];
|
|
SL -> NMCH [ label = "escape" ];
|
|
SL -> NMCH [ label = "newline" ];
|
|
SL -> NMCH [ label = "null" ];
|
|
SL -> NMCH [ label = "return" ];
|
|
SL -> NMCH [ label = "space" ];
|
|
SL -> NMCH [ label = "tab" ];
|
|
SL -> XC [ label = "x" ];
|
|
}
|
|
*/
|
|
|
|
subgraph numbers {
|
|
BEGIN -> DD0 [ label = "0-9" ];
|
|
BEGIN -> SN0 [ label = "+,-" ];
|
|
BEGIN -> DP0 [ label = "." ];
|
|
DD0 -> DD0 [ label = "0-9" ];
|
|
DD0 -> DP1 [ label = "." ];
|
|
DP1 -> DD1 [ label = "0-9" ];
|
|
DP0 -> DD1 [ label = "0-9" ];
|
|
DD1 -> DD1 [ label = "0-9" ];
|
|
SN0 -> DD0 [ label = "0-9" ];
|
|
SN0 -> DP0 [ label = "." ];
|
|
SN0 -> INF [ label = "inf.0" ];
|
|
SN0 -> NAN [ label = "nan.0" ];
|
|
|
|
H -> NEX [ label = "i,e" ];
|
|
NEX -> DD0 [ label = "0-9" ];
|
|
NEX -> SN0 [ label = "+,-" ];
|
|
NEX -> NXH1 [ label = "#" ];
|
|
NXH1 -> NXD1 [ label = "d" ];
|
|
NXD1 -> DD0 [ label = "0-9" ];
|
|
NXD1 -> SN0 [ label = "+,-" ];
|
|
NXH1 -> NXX1 [ label = "b,o,x" ];
|
|
NXX1 -> SN1 [ label = "+,-" ];
|
|
NXX1 -> DR0 [ label = "Dr" ];
|
|
|
|
H -> NBD [ label = "d" ];
|
|
NBD -> DD0 [ label = "0-9" ];
|
|
NBD -> SN0 [ label = "+,-" ];
|
|
NBD -> NBH [ label = "#" ];
|
|
NBH -> NBX [ label = "i,e" ];
|
|
NBX -> SN0 [ label = "+,-" ];
|
|
NBX -> DD0 [ label = "0-9" ];
|
|
|
|
H -> NBS [ label = "b,o,x" ];
|
|
NBS -> DR0 [ label = "Dr" ];
|
|
DR0 -> DR0 [ label = "Dr" ];
|
|
NBS -> NXH [ label = "#" ];
|
|
NXH -> NXX [ label = "i,e" ];
|
|
NXX -> DR0 [ label = "Dr" ];
|
|
|
|
NBS -> SN1 [ label = "+,-" ];
|
|
NXX -> SN1 [ label = "+,-" ];
|
|
SN1 -> DR0 [ label = "Dr" ];
|
|
SN1 -> INF [ label = "inf.0" ];
|
|
SN1 -> NAN [ label = "nan.0" ];
|
|
|
|
DD0 -> EXP [ label = "e" ];
|
|
DP1 -> EXP [ label = "e" ];
|
|
DD1 -> EXP [ label = "e" ];
|
|
|
|
EXP -> EXS [ label = "+,-" ];
|
|
EXS -> EXD [ label = "0-9" ];
|
|
EXP -> EXD [ label = "0-9" ];
|
|
EXD -> EXD [ label = "0-9" ];
|
|
|
|
DR0 -> FR0 [ label = "/" ];
|
|
FR0 -> DR1 [ label = "Dr" ];
|
|
DR1 -> DR1 [ label = "Dr" ];
|
|
|
|
DD0 -> FR1 [ label = "/" ];
|
|
FR1 -> DD2 [ label = "0-9" ];
|
|
DD2 -> DD2 [ label = "0-9" ];
|
|
}
|
|
}
|