1 0 $accept : list $end 2 3 1 list : 4 2 | list stat '\n' 5 3 | list error '\n' 6 7 4 stat : expr 8 5 | LETTER '=' expr 9 10 6 expr : '(' expr ')' 11 7 | expr '+' expr 12 8 | expr '-' expr 13 9 | expr '*' expr 14 10 | expr '/' expr 15 11 | expr '%' expr 16 12 | expr '&' expr 17 13 | expr '|' expr 18 14 | '-' expr 19 15 | LETTER 20 16 | number 21 22 17 number : DIGIT 23 18 | number DIGIT 24 26 state 0 27 $accept : . list $end (0) 28 list : . (1) 29 30 . reduce 1 31 32 list goto 1 33 34 35 state 1 36 $accept : list . $end (0) 37 list : list . stat '\n' (2) 38 list : list . error '\n' (3) 39 40 $end accept 41 error shift 2 42 DIGIT shift 3 43 LETTER shift 4 44 '-' shift 5 45 '(' shift 6 46 . error 47 48 stat goto 7 49 expr goto 8 50 number goto 9 51 52 53 state 2 54 list : list error . '\n' (3) 55 56 '\n' shift 10 57 . error 58 59 60 state 3 61 number : DIGIT . (17) 62 63 . reduce 17 64 65 66 state 4 67 stat : LETTER . '=' expr (5) 68 expr : LETTER . (15) 69 70 '=' shift 11 71 '|' reduce 15 72 '&' reduce 15 73 '+' reduce 15 74 '-' reduce 15 75 '*' reduce 15 76 '/' reduce 15 77 '%' reduce 15 78 '\n' reduce 15 79 80 81 state 5 82 expr : '-' . expr (14) 83 84 DIGIT shift 3 85 LETTER shift 12 86 '-' shift 5 87 '(' shift 6 88 . error 89 90 expr goto 13 91 number goto 9 92 93 94 state 6 95 expr : '(' . expr ')' (6) 96 97 DIGIT shift 3 98 LETTER shift 12 99 '-' shift 5 100 '(' shift 6 101 . error 102 103 expr goto 14 104 number goto 9 105 106 107 state 7 108 list : list stat . '\n' (2) 109 110 '\n' shift 15 111 . error 112 113 114 state 8 115 stat : expr . (4) 116 expr : expr . '+' expr (7) 117 expr : expr . '-' expr (8) 118 expr : expr . '*' expr (9) 119 expr : expr . '/' expr (10) 120 expr : expr . '%' expr (11) 121 expr : expr . '&' expr (12) 122 expr : expr . '|' expr (13) 123 124 '|' shift 16 125 '&' shift 17 126 '+' shift 18 127 '-' shift 19 128 '*' shift 20 129 '/' shift 21 130 '%' shift 22 131 '\n' reduce 4 132 133 134 state 9 135 expr : number . (16) 136 number : number . DIGIT (18) 137 138 DIGIT shift 23 139 '|' reduce 16 140 '&' reduce 16 141 '+' reduce 16 142 '-' reduce 16 143 '*' reduce 16 144 '/' reduce 16 145 '%' reduce 16 146 '\n' reduce 16 147 ')' reduce 16 148 149 150 state 10 151 list : list error '\n' . (3) 152 153 . reduce 3 154 155 156 state 11 157 stat : LETTER '=' . expr (5) 158 159 DIGIT shift 3 160 LETTER shift 12 161 '-' shift 5 162 '(' shift 6 163 . error 164 165 expr goto 24 166 number goto 9 167 168 169 state 12 170 expr : LETTER . (15) 171 172 . reduce 15 173 174 175 state 13 176 expr : expr . '+' expr (7) 177 expr : expr . '-' expr (8) 178 expr : expr . '*' expr (9) 179 expr : expr . '/' expr (10) 180 expr : expr . '%' expr (11) 181 expr : expr . '&' expr (12) 182 expr : expr . '|' expr (13) 183 expr : '-' expr . (14) 184 185 . reduce 14 186 187 188 state 14 189 expr : '(' expr . ')' (6) 190 expr : expr . '+' expr (7) 191 expr : expr . '-' expr (8) 192 expr : expr . '*' expr (9) 193 expr : expr . '/' expr (10) 194 expr : expr . '%' expr (11) 195 expr : expr . '&' expr (12) 196 expr : expr . '|' expr (13) 197 198 '|' shift 16 199 '&' shift 17 200 '+' shift 18 201 '-' shift 19 202 '*' shift 20 203 '/' shift 21 204 '%' shift 22 205 ')' shift 25 206 . error 207 208 209 state 15 210 list : list stat '\n' . (2) 211 212 . reduce 2 213 214 215 state 16 216 expr : expr '|' . expr (13) 217 218 DIGIT shift 3 219 LETTER shift 12 220 '-' shift 5 221 '(' shift 6 222 . error 223 224 expr goto 26 225 number goto 9 226 227 228 state 17 229 expr : expr '&' . expr (12) 230 231 DIGIT shift 3 232 LETTER shift 12 233 '-' shift 5 234 '(' shift 6 235 . error 236 237 expr goto 27 238 number goto 9 239 240 241 state 18 242 expr : expr '+' . expr (7) 243 244 DIGIT shift 3 245 LETTER shift 12 246 '-' shift 5 247 '(' shift 6 248 . error 249 250 expr goto 28 251 number goto 9 252 253 254 state 19 255 expr : expr '-' . expr (8) 256 257 DIGIT shift 3 258 LETTER shift 12 259 '-' shift 5 260 '(' shift 6 261 . error 262 263 expr goto 29 264 number goto 9 265 266 267 state 20 268 expr : expr '*' . expr (9) 269 270 DIGIT shift 3 271 LETTER shift 12 272 '-' shift 5 273 '(' shift 6 274 . error 275 276 expr goto 30 277 number goto 9 278 279 280 state 21 281 expr : expr '/' . expr (10) 282 283 DIGIT shift 3 284 LETTER shift 12 285 '-' shift 5 286 '(' shift 6 287 . error 288 289 expr goto 31 290 number goto 9 291 292 293 state 22 294 expr : expr '%' . expr (11) 295 296 DIGIT shift 3 297 LETTER shift 12 298 '-' shift 5 299 '(' shift 6 300 . error 301 302 expr goto 32 303 number goto 9 304 305 306 state 23 307 number : number DIGIT . (18) 308 309 . reduce 18 310 311 312 state 24 313 stat : LETTER '=' expr . (5) 314 expr : expr . '+' expr (7) 315 expr : expr . '-' expr (8) 316 expr : expr . '*' expr (9) 317 expr : expr . '/' expr (10) 318 expr : expr . '%' expr (11) 319 expr : expr . '&' expr (12) 320 expr : expr . '|' expr (13) 321 322 '|' shift 16 323 '&' shift 17 324 '+' shift 18 325 '-' shift 19 326 '*' shift 20 327 '/' shift 21 328 '%' shift 22 329 '\n' reduce 5 330 331 332 state 25 333 expr : '(' expr ')' . (6) 334 335 . reduce 6 336 337 338 state 26 339 expr : expr . '+' expr (7) 340 expr : expr . '-' expr (8) 341 expr : expr . '*' expr (9) 342 expr : expr . '/' expr (10) 343 expr : expr . '%' expr (11) 344 expr : expr . '&' expr (12) 345 expr : expr . '|' expr (13) 346 expr : expr '|' expr . (13) 347 348 '&' shift 17 349 '+' shift 18 350 '-' shift 19 351 '*' shift 20 352 '/' shift 21 353 '%' shift 22 354 '|' reduce 13 355 '\n' reduce 13 356 ')' reduce 13 357 358 359 state 27 360 expr : expr . '+' expr (7) 361 expr : expr . '-' expr (8) 362 expr : expr . '*' expr (9) 363 expr : expr . '/' expr (10) 364 expr : expr . '%' expr (11) 365 expr : expr . '&' expr (12) 366 expr : expr '&' expr . (12) 367 expr : expr . '|' expr (13) 368 369 '+' shift 18 370 '-' shift 19 371 '*' shift 20 372 '/' shift 21 373 '%' shift 22 374 '|' reduce 12 375 '&' reduce 12 376 '\n' reduce 12 377 ')' reduce 12 378 379 380 state 28 381 expr : expr . '+' expr (7) 382 expr : expr '+' expr . (7) 383 expr : expr . '-' expr (8) 384 expr : expr . '*' expr (9) 385 expr : expr . '/' expr (10) 386 expr : expr . '%' expr (11) 387 expr : expr . '&' expr (12) 388 expr : expr . '|' expr (13) 389 390 '*' shift 20 391 '/' shift 21 392 '%' shift 22 393 '|' reduce 7 394 '&' reduce 7 395 '+' reduce 7 396 '-' reduce 7 397 '\n' reduce 7 398 ')' reduce 7 399 400 401 state 29 402 expr : expr . '+' expr (7) 403 expr : expr . '-' expr (8) 404 expr : expr '-' expr . (8) 405 expr : expr . '*' expr (9) 406 expr : expr . '/' expr (10) 407 expr : expr . '%' expr (11) 408 expr : expr . '&' expr (12) 409 expr : expr . '|' expr (13) 410 411 '*' shift 20 412 '/' shift 21 413 '%' shift 22 414 '|' reduce 8 415 '&' reduce 8 416 '+' reduce 8 417 '-' reduce 8 418 '\n' reduce 8 419 ')' reduce 8 420 421 422 state 30 423 expr : expr . '+' expr (7) 424 expr : expr . '-' expr (8) 425 expr : expr . '*' expr (9) 426 expr : expr '*' expr . (9) 427 expr : expr . '/' expr (10) 428 expr : expr . '%' expr (11) 429 expr : expr . '&' expr (12) 430 expr : expr . '|' expr (13) 431 432 . reduce 9 433 434 435 state 31 436 expr : expr . '+' expr (7) 437 expr : expr . '-' expr (8) 438 expr : expr . '*' expr (9) 439 expr : expr . '/' expr (10) 440 expr : expr '/' expr . (10) 441 expr : expr . '%' expr (11) 442 expr : expr . '&' expr (12) 443 expr : expr . '|' expr (13) 444 445 . reduce 10 446 447 448 state 32 449 expr : expr . '+' expr (7) 450 expr : expr . '-' expr (8) 451 expr : expr . '*' expr (9) 452 expr : expr . '/' expr (10) 453 expr : expr . '%' expr (11) 454 expr : expr '%' expr . (11) 455 expr : expr . '&' expr (12) 456 expr : expr . '|' expr (13) 457 458 . reduce 11 459 460 461 16 terminals, 5 nonterminals 462 19 grammar rules, 33 states 463