36 | see More Picture if you
37 | liked that one.
NFA | 23 |DFA | 24 |a | 25 |b | 26 |
---|---|---|---|
{0} | 31 |A | 32 |B | 33 |34 | |
{1,2,3,5,8} | 37 |B | 38 |C | 39 |D | 40 |
{2,3,4,5,7,8,9} | 43 |C | 44 |C | 45 |D | 46 |
{2,3,5,6,7,8} | 49 |D | 50 |C | 51 |D | 52 |
NFA | 82 |DFA | 83 |a | 84 |b | 85 |
---|---|---|---|
{0,1,2,4,7} | 90 |A | 91 |B | 92 |C | 93 |
{1,2,3,4,6,7,8,9,11} | 96 |B | 97 |D | 98 |E | 99 |
{1,2,4,5,6,7} | 102 |C | 103 |B | 104 |C | 105 |
{1,2,3,4,6,7,8,9,10,11,13,14,16} | 108 |D | 109 |F | 110 |G | 111 |
{1,2,4,5,6,7,12,13,14,16} | 114 |E | 115 |H | 116 |I | 117 |
{1,2,3,4,6,7,8,9,10,11,13,14,15,16,18} | 120 |F | 121 |F | 122 |G | 123 |
{1,2,4,5,6,7,12,13,14,16,17,18} | 126 |G | 127 |H | 128 |I | 129 |
{1,2,3,4,6,7,8,9,11,15,18} | 132 |H | 133 |D | 134 |E | 135 |
{1,2,4,5,6,7,17,18} | 138 |I | 139 |B | 140 |C | 141 |
state | 78 |a | 79 |b | 80 |ε | 81 |
---|---|---|---|
0 | 86 |{0,1} | 87 |{0} | 88 |∅ | 89 |
1 | 92 |{1,2} | 93 |{1} | 94 |∅ | 95 |
2 | 98 |{2} | 99 |{2,3} | 100 |{0} | 101 |
3 | 104 |∅ | 105 |∅ | 106 |∅ | 107 |
state | 118 |a | 119 |b | 120 |ε | 121 |
---|---|---|---|
0 | 126 |{1} | 127 |∅ | 128 |{3} | 129 |
1 | 132 |∅ | 133 |{2} | 134 |{0} | 135 |
2 | 138 |∅ | 139 |{3} | 140 |{1} | 141 |
3 | 144 |{0} | 145 |∅ | 146 |{2} | 147 |
state | 157 |a | 158 |b | 159 |ε | 160 |
---|---|---|---|
0 | 165 |∅ | 166 |∅ | 167 |{1,2} | 168 |
1 | 171 |{2} | 172 |∅ | 173 |∅ | 174 |
2 | 177 |{2} | 178 |∅ | 179 |∅ | 180 |
3 | 183 |∅ | 184 |{4} | 185 |∅ | 186 |
4 | 189 |∅ | 190 |{4} | 191 |∅ | 192 |
NFA State | 20 |DFA State | 21 |a | 22 |b | 23 |
---|---|---|---|
{0,1,3} | 28 |A | 29 |B | 30 |C | 31 |
{2} | 34 |B | 35 |B | 36 |∅ | 37 |
{4} | 40 |C | 41 |∅ | 42 |C | 43 |
NFA State | 59 |DFA State | 60 |a | 61 |b | 62 |
---|---|---|---|
{0} | 67 |A | 68 |B | 69 |A | 70 |
{0,1} | 73 |B | 74 |C | 75 |B | 76 |
{0,1,2} | 79 |C | 80 |C | 81 |D | 82 |
{0,2,3} | 85 |D | 86 |C | 87 |D | 88 |
NFA State | 104 |DFA State | 105 |a | 106 |b | 107 |
---|---|---|---|
{0,1,2,3} | 112 |A | 113 |A | 114 |A | 115 |
NFA State | 159 |DFA State | 160 |a | 161 |b | 162 |
---|---|---|---|
{0,1,2,3,7} | 167 |A | 168 |B | 169 |C | 170 |
{1,2,3,4,6,7} | 173 |B | 174 |B | 175 |C | 176 |
{1,2,3,5,6,7} | 179 |C | 180 |B | 181 |C | 182 |
NFA State | 202 |DFA State | 203 |a | 204 |b | 205 |
---|---|---|---|
{0,1,2,3,4,5,8,9,10,11} | 210 |A | 211 |B | 212 |C | 213 |
{1,2,3,4,5,6,8,9,10,11} | 216 |B | 217 |B | 218 |C | 219 |
{1,2,3,4,5,7,8,9,10,11} | 222 |C | 223 |B | 224 |C | 225 |
NFA State | 245 |DFA State | 246 |a | 247 |b | 248 |
---|---|---|---|
{0,1,2,3,4,6,7,9,10} | 253 |A | 254 |B | 255 |C | 256 |
{1,2,3,4,5,6,7,9,10} | 259 |B | 260 |B | 261 |C | 262 |
{1,2,3,4,6,7,8,9,10} | 265 |C | 266 |B | 267 |C | 268 |
NFA State | 288 |DFA State | 289 |a | 290 |b | 291 |
---|---|---|---|
{0,1,2,4,7} | 296 |A | 297 |B | 298 |C | 299 |
{1,2,3,4,6,7,8} | 302 |B | 303 |B | 304 |D | 305 |
{1,2,4,5,6,7} | 308 |C | 309 |B | 310 |C | 311 |
{1,2,4,5,6,7,9} | 314 |D | 315 |B | 316 |E | 317 |
{1,2,4,5,6,7,10,11,12,14,17} | 320 |E | 321 |F | 322 |G | 323 |
{1,2,3,4,6,7,8,11,12,13,14,16,17} | 326 |F | 327 |F | 328 |H | 329 |
{1,2,4,5,6,7,11,12,13,15,16,17} | 332 |G | 333 |F | 334 |G | 335 |
{1,2,4,5,6,7,9,11,12,14,15,16,17} | 338 |H | 339 |F | 340 |I | 341 |
{1,2,4,5,6,7,10,11,12,14,15,16,17} | 344 |I | 345 |F | 346 |G | 347 |
node n | 16 |nullable(n) | 17 |firstpos(n) | 18 |
---|---|---|
n = c_1 ? | 23 |true | 24 |firstpos(c_1) | 25 |
n = c_1 + | 28 |nullable(c_1) | 29 |firstpos(c_1) | 30 |
node n | 58 |followpos(n) | 59 |
---|---|
1 | 64 |{1, 2, 3} | 65 |
2 | 68 |{1, 2, 3} | 69 |
3 | 72 |∅ | 73 |
栈 | 44 |输入 | 45 |句柄 | 46 |动作 | 47 |
---|---|---|---|
$ | 52 |000111$ | 53 |54 | | 移入 | 55 |
$0 | 58 |00111$ | 59 |60 | | 移入 | 61 |
$00 | 64 |0111$ | 65 |66 | | 移入 | 67 |
$000 | 70 |111$ | 71 |72 | | 移入 | 73 |
$0001 | 76 |11$ | 77 |01 | 78 |规约:S -> 01 | 79 |
$00S | 82 |11$ | 83 |84 | | 移入 | 85 |
$00S1 | 88 |1$ | 89 |0S1 | 90 |规约:S -> 0S1 | 91 |
$0S | 94 |1$ | 95 |96 | | 移入 | 97 |
$0S1 | 100 |$ | 101 |0S1 | 102 |规约:S -> 0S1 | 103 |
$S | 106 |$ | 107 |108 | | 接受 | 109 |
栈 | 119 |输入 | 120 |句柄 | 121 |动作 | 122 |
---|---|---|---|
$ | 127 |aaa*a++$ | 128 |129 | | 移入 | 130 |
$a | 133 |aa*a++$ | 134 |a | 135 |规约: S -> a | 136 |
$S | 139 |aa*a++$ | 140 |141 | | 移入 | 142 |
$Sa | 145 |a*a++$ | 146 |a | 147 |规约: S -> a | 148 |
$SS | 151 |a*a++$ | 152 |153 | | 移入 | 154 |
$SSa | 157 |*a++$ | 158 |a | 159 |规约: S -> a | 160 |
$SSS | 163 |*a++$ | 164 |165 | | 移入 | 166 |
$SSS* | 169 |a++$ | 170 |SS* | 171 |规约: S -> SS* | 172 |
$SS | 175 |a++$ | 176 |177 | | 移入 | 178 |
$SSa | 181 |++$ | 182 |a | 183 |规约: S -> a | 184 |
$SSS | 187 |++$ | 188 |189 | | 移入 | 190 |
$SSS+ | 193 |+$ | 194 |SS+ | 195 |规约: S -> SS+ | 196 |
$SS | 199 |+$ | 200 |201 | | 移入 | 202 |
$SS+ | 205 |$ | 206 |SS+ | 207 |规约: S -> SS+ | 208 |
$S | 211 |$ | 212 |213 | | 接受 | 214 |
32 | | 产生式 | 33 |语法规则 | 34 |
---|---|---|
1) | 39 |L -> En | 40 |L.val = E.val | 41 |
2) | 44 |E -> TE' | 45 |E'.inh = T.val E.val = E'.syn |
46 |
3) | 49 |E' -> +TE_1' | 50 |E_1'.inh = E'.inh + T.val E'.syn = E_1'.syn |
51 |
4) | 54 |E' -> ε | 55 |E'.syn = E'.inh | 56 |
5) | 59 |T -> FT' | 60 |T'.inh = F.val T.val = T'.syn |
61 |
6) | 64 |T' -> *FT_1' | 65 |T_1'.inh = T'.inh * F.val T'.syn = T_1'.syn |
66 |
7) | 69 |T' -> ε | 70 |T'.syn = T'.inh | 71 |
8) | 74 |F -> (E) | 75 |F.val = E.val | 76 |
9) | 79 |F -> digit | 80 |F.val = digit.lexval | 81 |
69 | | 产生式 | 70 |语法规则 | 71 |
---|---|---|
1) | 76 |S -> L_1.L_2 | 77 |
78 | L_1.isLeft = true 79 | L_2.isLeft = false 80 | S.val = L_1.val + L_2.val 81 | |
82 |
2) | 85 |S -> L | 86 |
87 | L.isLeft = true 88 | S.val = L.val 89 | |
90 |
3) | 93 |L -> L_1B | 94 |
95 | L_1.isLeft = L.isLeft 96 | L.len = L_1.len + 1 97 | L.val = L.isLeft ? L_1.val * 2 + B.val : L_1.val + B.val * 2^(-L.len) 98 | |
99 |
4) | 102 |L -> B | 103 |
104 | L.len = 1 105 | L.val = L.isLeft ? B.val : B.val/2 106 | |
107 |
5) | 110 |B -> 0 | 111 |B.val = 0 | 112 |
6) | 115 |B -> 1 | 116 |B.val = 1 | 117 |
137 | | 产生式 | 138 |语法规则 | 139 |
---|---|---|
1) | 144 |S -> L_1.L_2 | 145 |146 | S.val = L_1.val + L_2.val/L_2.f 147 | | 148 |
2) | 151 |S -> L | 152 |153 | S.val = L.val 154 | | 155 |
3) | 158 |L -> L_1B | 159 |160 | L.val = L_1.val*2 + B.val 161 | L.f = L_1.f * 2 162 | | 163 |
4) | 166 |L -> B | 167 |168 | L.val = B.val 169 | L.f = 2 170 | | 171 |
5) | 174 |B -> 0 | 175 |B.val = 0 | 176 |
6) | 179 |B -> 1 | 180 |B.val = 1 | 181 |
21 | | 产生式 | 22 |语法规则 | 23 |
---|---|---|
1) | 28 |E -> E_1 + T | 29 |E.type = E_1.type === float || T.type === float ? float : int | 30 |
2) | 33 |E -> T | 34 |E.type = T.type | 35 |
3) | 38 |T -> num.num | 39 |T.type = float | 40 |
4) | 43 |T -> num | 44 |T.type = int | 45 |
67 | | 产生式 | 68 |语法规则 | 69 |
---|---|---|
1) | 74 |L -> En | 75 |76 | L.cleanExpr = E.wrapped ? E.cleanExpr : E.expr 77 | | 78 |
2) | 81 |E -> E_1 + T | 82 |
83 | E.wrapped = false 84 | E.precedence = 0 85 | E.expr = E_1.expr || "+" || T.expr 86 | E.cleanExpr = (E_1.wrapped ? E_1.cleanExpr : E_1.expr) || "+" || (T.wrapped ? T.cleanExpr : T.expr) 87 | |
88 |
3) | 91 |E -> T | 92 |
93 | E.wrapped = T.wrapped 94 | E.precedence = T.precedence 95 | E.expr = T.expr 96 | E.cleanExpr = T.cleanExpr 97 | |
98 |
4) | 101 |T -> T_1 * F | 102 |
103 | T.wrapped = false 104 | T.precedence = 1 105 | T.expr = T_1.expr || "*" || F.expr 106 | T.cleanExpr = (T_1.wrapped && T_1.precedence >= 1 ? T_1.cleanExpr : T_1) || * || (F.wrapped && F.precedence >= 1 ? F.cleanExpr : F.expr) 107 | |
108 |
5) | 111 |T -> F | 112 |
113 | T.wrapped = F.wrapped 114 | T.precedence = F.precedence 115 | T.expr = F.expr 116 | T.cleanExpr = F.cleanExpr 117 | |
118 |
6) | 121 |F -> (E) | 122 |
123 | F.wrapped = true 124 | F.precedence = E.precedence 125 | F.expr = "(" || E.expr || ")" 126 | F.cleanExpr = E.expr 127 | |
128 |
7) | 131 |F -> digit | 132 |
133 | F.wrapped = false 134 | F.precedence = 3 135 | F.expr = digit 136 | F.cleanExpr = digit 137 | |
138 |
1 | 28 |id | 29 |a | 30 |31 | |
2 | 34 |id | 35 |b | 36 |37 | |
3 | 40 |+ | 41 |1 | 42 |2 | 43 |
4 | 46 |+ | 47 |3 | 48 |3 | 49 |
1 | 61 |id | 62 |a | 63 |64 | |
2 | 67 |id | 68 |b | 69 |70 | |
3 | 73 |+ | 74 |1 | 75 |2 | 76 |
4 | 79 |+ | 80 |3 | 81 |1 | 82 |
5 | 85 |+ | 86 |4 | 87 |2 | 88 |
1 | 99 |id | 100 |a | 101 |102 | |
2 | 105 |+ | 106 |1 | 107 |1 | 108 |
3 | 111 |+ | 112 |2 | 113 |1 | 114 |
4 | 117 |+ | 118 |3 | 119 |1 | 120 |
5 | 123 |+ | 124 |3 | 125 |4 | 126 |
6 | 129 |+ | 130 |2 | 131 |5 | 132 |
25 | | op | 26 |arg1 | 27 |arg2 | 28 |result | 29 |
---|---|---|---|---|
0 | 34 |+ | 35 |b | 36 |c | 37 |t1 | 38 |
1 | 41 |minus | 42 |t1 | 43 |44 | | t2 | 45 |
2 | 48 |+ | 49 |a | 50 |t2 | 51 |t3 | 52 |
62 | | op | 63 |arg1 | 64 |arg2 | 65 |
---|---|---|---|
0 | 70 |+ | 71 |b | 72 |c | 73 |
1 | 76 |minus | 77 |(0) | 78 |79 | |
2 | 82 |+ | 83 |a | 84 |(1) | 85 |
95 | | op | 96 |arg1 | 97 |arg2 | 98 |
---|---|---|---|
0 | 103 |+ | 104 |b | 105 |c | 106 |
1 | 109 |minus | 110 |(0) | 111 |112 | |
2 | 115 |+ | 116 |a | 117 |(1) | 118 |
126 | | instruction | 127 |
---|---|
0 | 132 |(0) | 133 |
1 | 136 |(1) | 137 |
2 | 140 |(2) | 141 |