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 "ADD-operator" expr 12 8 | expr "SUB-operator" expr 13 9 | expr "MUL-operator" expr 14 10 | expr "DIV-operator" expr 15 11 | expr "MOD-operator" expr 16 12 | expr "AND-operator" expr 17 13 | expr '|' expr 18 14 | "SUB-operator" expr 19 15 | LETTER 20 16 | number 21 22 17 number : DIGIT 23 18 | number DIGIT 24 25state 0 26 $accept : . list $end (0) 27 list : . (1) 28 29 . reduce 1 30 31 list goto 1 32 33 34state 1 35 $accept : list . $end (0) 36 list : list . stat '\n' (2) 37 list : list . error '\n' (3) 38 39 $end accept 40 error shift 2 41 "SUB-operator" shift 3 42 DIGIT shift 4 43 LETTER shift 5 44 '(' shift 6 45 . error 46 47 stat goto 7 48 expr goto 8 49 number goto 9 50 51 52state 2 53 list : list error . '\n' (3) 54 55 '\n' shift 10 56 . error 57 58 59state 3 60 expr : "SUB-operator" . expr (14) 61 62 "SUB-operator" shift 3 63 DIGIT shift 4 64 LETTER shift 11 65 '(' shift 6 66 . error 67 68 expr goto 12 69 number goto 9 70 71 72state 4 73 number : DIGIT . (17) 74 75 . reduce 17 76 77 78state 5 79 stat : LETTER . '=' expr (5) 80 expr : LETTER . (15) 81 82 '=' shift 13 83 "ADD-operator" reduce 15 84 "SUB-operator" reduce 15 85 "MUL-operator" reduce 15 86 "DIV-operator" reduce 15 87 "MOD-operator" reduce 15 88 "AND-operator" reduce 15 89 '|' reduce 15 90 '\n' reduce 15 91 92 93state 6 94 expr : '(' . expr ')' (6) 95 96 "SUB-operator" shift 3 97 DIGIT shift 4 98 LETTER shift 11 99 '(' shift 6 100 . error 101 102 expr goto 14 103 number goto 9 104 105 106state 7 107 list : list stat . '\n' (2) 108 109 '\n' shift 15 110 . error 111 112 113state 8 114 stat : expr . (4) 115 expr : expr . "ADD-operator" expr (7) 116 expr : expr . "SUB-operator" expr (8) 117 expr : expr . "MUL-operator" expr (9) 118 expr : expr . "DIV-operator" expr (10) 119 expr : expr . "MOD-operator" expr (11) 120 expr : expr . "AND-operator" expr (12) 121 expr : expr . '|' expr (13) 122 123 "ADD-operator" shift 16 124 "SUB-operator" shift 17 125 "MUL-operator" shift 18 126 "DIV-operator" shift 19 127 "MOD-operator" shift 20 128 "AND-operator" shift 21 129 '|' shift 22 130 '\n' reduce 4 131 132 133state 9 134 expr : number . (16) 135 number : number . DIGIT (18) 136 137 DIGIT shift 23 138 "ADD-operator" reduce 16 139 "SUB-operator" reduce 16 140 "MUL-operator" reduce 16 141 "DIV-operator" reduce 16 142 "MOD-operator" reduce 16 143 "AND-operator" reduce 16 144 '|' reduce 16 145 '\n' reduce 16 146 ')' reduce 16 147 148 149state 10 150 list : list error '\n' . (3) 151 152 . reduce 3 153 154 155state 11 156 expr : LETTER . (15) 157 158 . reduce 15 159 160 16112: shift/reduce conflict (shift 16, reduce 14) on "ADD-operator" 16212: shift/reduce conflict (shift 17, reduce 14) on "SUB-operator" 16312: shift/reduce conflict (shift 18, reduce 14) on "MUL-operator" 16412: shift/reduce conflict (shift 19, reduce 14) on "DIV-operator" 16512: shift/reduce conflict (shift 20, reduce 14) on "MOD-operator" 16612: shift/reduce conflict (shift 21, reduce 14) on "AND-operator" 167state 12 168 expr : expr . "ADD-operator" expr (7) 169 expr : expr . "SUB-operator" expr (8) 170 expr : expr . "MUL-operator" expr (9) 171 expr : expr . "DIV-operator" expr (10) 172 expr : expr . "MOD-operator" expr (11) 173 expr : expr . "AND-operator" expr (12) 174 expr : expr . '|' expr (13) 175 expr : "SUB-operator" expr . (14) 176 177 "ADD-operator" shift 16 178 "SUB-operator" shift 17 179 "MUL-operator" shift 18 180 "DIV-operator" shift 19 181 "MOD-operator" shift 20 182 "AND-operator" shift 21 183 '|' reduce 14 184 '\n' reduce 14 185 ')' reduce 14 186 187 188state 13 189 stat : LETTER '=' . expr (5) 190 191 "SUB-operator" shift 3 192 DIGIT shift 4 193 LETTER shift 11 194 '(' shift 6 195 . error 196 197 expr goto 24 198 number goto 9 199 200 201state 14 202 expr : '(' expr . ')' (6) 203 expr : expr . "ADD-operator" expr (7) 204 expr : expr . "SUB-operator" expr (8) 205 expr : expr . "MUL-operator" expr (9) 206 expr : expr . "DIV-operator" expr (10) 207 expr : expr . "MOD-operator" expr (11) 208 expr : expr . "AND-operator" expr (12) 209 expr : expr . '|' expr (13) 210 211 "ADD-operator" shift 16 212 "SUB-operator" shift 17 213 "MUL-operator" shift 18 214 "DIV-operator" shift 19 215 "MOD-operator" shift 20 216 "AND-operator" shift 21 217 '|' shift 22 218 ')' shift 25 219 . error 220 221 222state 15 223 list : list stat '\n' . (2) 224 225 . reduce 2 226 227 228state 16 229 expr : expr "ADD-operator" . expr (7) 230 231 "SUB-operator" shift 3 232 DIGIT shift 4 233 LETTER shift 11 234 '(' shift 6 235 . error 236 237 expr goto 26 238 number goto 9 239 240 241state 17 242 expr : expr "SUB-operator" . expr (8) 243 244 "SUB-operator" shift 3 245 DIGIT shift 4 246 LETTER shift 11 247 '(' shift 6 248 . error 249 250 expr goto 27 251 number goto 9 252 253 254state 18 255 expr : expr "MUL-operator" . expr (9) 256 257 "SUB-operator" shift 3 258 DIGIT shift 4 259 LETTER shift 11 260 '(' shift 6 261 . error 262 263 expr goto 28 264 number goto 9 265 266 267state 19 268 expr : expr "DIV-operator" . expr (10) 269 270 "SUB-operator" shift 3 271 DIGIT shift 4 272 LETTER shift 11 273 '(' shift 6 274 . error 275 276 expr goto 29 277 number goto 9 278 279 280state 20 281 expr : expr "MOD-operator" . expr (11) 282 283 "SUB-operator" shift 3 284 DIGIT shift 4 285 LETTER shift 11 286 '(' shift 6 287 . error 288 289 expr goto 30 290 number goto 9 291 292 293state 21 294 expr : expr "AND-operator" . expr (12) 295 296 "SUB-operator" shift 3 297 DIGIT shift 4 298 LETTER shift 11 299 '(' shift 6 300 . error 301 302 expr goto 31 303 number goto 9 304 305 306state 22 307 expr : expr '|' . expr (13) 308 309 "SUB-operator" shift 3 310 DIGIT shift 4 311 LETTER shift 11 312 '(' shift 6 313 . error 314 315 expr goto 32 316 number goto 9 317 318 319state 23 320 number : number DIGIT . (18) 321 322 . reduce 18 323 324 325state 24 326 stat : LETTER '=' expr . (5) 327 expr : expr . "ADD-operator" expr (7) 328 expr : expr . "SUB-operator" expr (8) 329 expr : expr . "MUL-operator" expr (9) 330 expr : expr . "DIV-operator" expr (10) 331 expr : expr . "MOD-operator" expr (11) 332 expr : expr . "AND-operator" expr (12) 333 expr : expr . '|' expr (13) 334 335 "ADD-operator" shift 16 336 "SUB-operator" shift 17 337 "MUL-operator" shift 18 338 "DIV-operator" shift 19 339 "MOD-operator" shift 20 340 "AND-operator" shift 21 341 '|' shift 22 342 '\n' reduce 5 343 344 345state 25 346 expr : '(' expr ')' . (6) 347 348 . reduce 6 349 350 35126: shift/reduce conflict (shift 16, reduce 7) on "ADD-operator" 35226: shift/reduce conflict (shift 17, reduce 7) on "SUB-operator" 35326: shift/reduce conflict (shift 18, reduce 7) on "MUL-operator" 35426: shift/reduce conflict (shift 19, reduce 7) on "DIV-operator" 35526: shift/reduce conflict (shift 20, reduce 7) on "MOD-operator" 35626: shift/reduce conflict (shift 21, reduce 7) on "AND-operator" 35726: shift/reduce conflict (shift 22, reduce 7) on '|' 358state 26 359 expr : expr . "ADD-operator" expr (7) 360 expr : expr "ADD-operator" expr . (7) 361 expr : expr . "SUB-operator" expr (8) 362 expr : expr . "MUL-operator" expr (9) 363 expr : expr . "DIV-operator" expr (10) 364 expr : expr . "MOD-operator" expr (11) 365 expr : expr . "AND-operator" expr (12) 366 expr : expr . '|' expr (13) 367 368 "ADD-operator" shift 16 369 "SUB-operator" shift 17 370 "MUL-operator" shift 18 371 "DIV-operator" shift 19 372 "MOD-operator" shift 20 373 "AND-operator" shift 21 374 '|' shift 22 375 '\n' reduce 7 376 ')' reduce 7 377 378 37927: shift/reduce conflict (shift 16, reduce 8) on "ADD-operator" 38027: shift/reduce conflict (shift 17, reduce 8) on "SUB-operator" 38127: shift/reduce conflict (shift 18, reduce 8) on "MUL-operator" 38227: shift/reduce conflict (shift 19, reduce 8) on "DIV-operator" 38327: shift/reduce conflict (shift 20, reduce 8) on "MOD-operator" 38427: shift/reduce conflict (shift 21, reduce 8) on "AND-operator" 38527: shift/reduce conflict (shift 22, reduce 8) on '|' 386state 27 387 expr : expr . "ADD-operator" expr (7) 388 expr : expr . "SUB-operator" expr (8) 389 expr : expr "SUB-operator" expr . (8) 390 expr : expr . "MUL-operator" expr (9) 391 expr : expr . "DIV-operator" expr (10) 392 expr : expr . "MOD-operator" expr (11) 393 expr : expr . "AND-operator" expr (12) 394 expr : expr . '|' expr (13) 395 396 "ADD-operator" shift 16 397 "SUB-operator" shift 17 398 "MUL-operator" shift 18 399 "DIV-operator" shift 19 400 "MOD-operator" shift 20 401 "AND-operator" shift 21 402 '|' shift 22 403 '\n' reduce 8 404 ')' reduce 8 405 406 40728: shift/reduce conflict (shift 16, reduce 9) on "ADD-operator" 40828: shift/reduce conflict (shift 17, reduce 9) on "SUB-operator" 40928: shift/reduce conflict (shift 18, reduce 9) on "MUL-operator" 41028: shift/reduce conflict (shift 19, reduce 9) on "DIV-operator" 41128: shift/reduce conflict (shift 20, reduce 9) on "MOD-operator" 41228: shift/reduce conflict (shift 21, reduce 9) on "AND-operator" 41328: shift/reduce conflict (shift 22, reduce 9) on '|' 414state 28 415 expr : expr . "ADD-operator" expr (7) 416 expr : expr . "SUB-operator" expr (8) 417 expr : expr . "MUL-operator" expr (9) 418 expr : expr "MUL-operator" expr . (9) 419 expr : expr . "DIV-operator" expr (10) 420 expr : expr . "MOD-operator" expr (11) 421 expr : expr . "AND-operator" expr (12) 422 expr : expr . '|' expr (13) 423 424 "ADD-operator" shift 16 425 "SUB-operator" shift 17 426 "MUL-operator" shift 18 427 "DIV-operator" shift 19 428 "MOD-operator" shift 20 429 "AND-operator" shift 21 430 '|' shift 22 431 '\n' reduce 9 432 ')' reduce 9 433 434 43529: shift/reduce conflict (shift 16, reduce 10) on "ADD-operator" 43629: shift/reduce conflict (shift 17, reduce 10) on "SUB-operator" 43729: shift/reduce conflict (shift 18, reduce 10) on "MUL-operator" 43829: shift/reduce conflict (shift 19, reduce 10) on "DIV-operator" 43929: shift/reduce conflict (shift 20, reduce 10) on "MOD-operator" 44029: shift/reduce conflict (shift 21, reduce 10) on "AND-operator" 44129: shift/reduce conflict (shift 22, reduce 10) on '|' 442state 29 443 expr : expr . "ADD-operator" expr (7) 444 expr : expr . "SUB-operator" expr (8) 445 expr : expr . "MUL-operator" expr (9) 446 expr : expr . "DIV-operator" expr (10) 447 expr : expr "DIV-operator" expr . (10) 448 expr : expr . "MOD-operator" expr (11) 449 expr : expr . "AND-operator" expr (12) 450 expr : expr . '|' expr (13) 451 452 "ADD-operator" shift 16 453 "SUB-operator" shift 17 454 "MUL-operator" shift 18 455 "DIV-operator" shift 19 456 "MOD-operator" shift 20 457 "AND-operator" shift 21 458 '|' shift 22 459 '\n' reduce 10 460 ')' reduce 10 461 462 46330: shift/reduce conflict (shift 16, reduce 11) on "ADD-operator" 46430: shift/reduce conflict (shift 17, reduce 11) on "SUB-operator" 46530: shift/reduce conflict (shift 18, reduce 11) on "MUL-operator" 46630: shift/reduce conflict (shift 19, reduce 11) on "DIV-operator" 46730: shift/reduce conflict (shift 20, reduce 11) on "MOD-operator" 46830: shift/reduce conflict (shift 21, reduce 11) on "AND-operator" 46930: shift/reduce conflict (shift 22, reduce 11) on '|' 470state 30 471 expr : expr . "ADD-operator" expr (7) 472 expr : expr . "SUB-operator" expr (8) 473 expr : expr . "MUL-operator" expr (9) 474 expr : expr . "DIV-operator" expr (10) 475 expr : expr . "MOD-operator" expr (11) 476 expr : expr "MOD-operator" expr . (11) 477 expr : expr . "AND-operator" expr (12) 478 expr : expr . '|' expr (13) 479 480 "ADD-operator" shift 16 481 "SUB-operator" shift 17 482 "MUL-operator" shift 18 483 "DIV-operator" shift 19 484 "MOD-operator" shift 20 485 "AND-operator" shift 21 486 '|' shift 22 487 '\n' reduce 11 488 ')' reduce 11 489 490 49131: shift/reduce conflict (shift 16, reduce 12) on "ADD-operator" 49231: shift/reduce conflict (shift 17, reduce 12) on "SUB-operator" 49331: shift/reduce conflict (shift 18, reduce 12) on "MUL-operator" 49431: shift/reduce conflict (shift 19, reduce 12) on "DIV-operator" 49531: shift/reduce conflict (shift 20, reduce 12) on "MOD-operator" 49631: shift/reduce conflict (shift 21, reduce 12) on "AND-operator" 49731: shift/reduce conflict (shift 22, reduce 12) on '|' 498state 31 499 expr : expr . "ADD-operator" expr (7) 500 expr : expr . "SUB-operator" expr (8) 501 expr : expr . "MUL-operator" expr (9) 502 expr : expr . "DIV-operator" expr (10) 503 expr : expr . "MOD-operator" expr (11) 504 expr : expr . "AND-operator" expr (12) 505 expr : expr "AND-operator" expr . (12) 506 expr : expr . '|' expr (13) 507 508 "ADD-operator" shift 16 509 "SUB-operator" shift 17 510 "MUL-operator" shift 18 511 "DIV-operator" shift 19 512 "MOD-operator" shift 20 513 "AND-operator" shift 21 514 '|' shift 22 515 '\n' reduce 12 516 ')' reduce 12 517 518 51932: shift/reduce conflict (shift 16, reduce 13) on "ADD-operator" 52032: shift/reduce conflict (shift 17, reduce 13) on "SUB-operator" 52132: shift/reduce conflict (shift 18, reduce 13) on "MUL-operator" 52232: shift/reduce conflict (shift 19, reduce 13) on "DIV-operator" 52332: shift/reduce conflict (shift 20, reduce 13) on "MOD-operator" 52432: shift/reduce conflict (shift 21, reduce 13) on "AND-operator" 525state 32 526 expr : expr . "ADD-operator" expr (7) 527 expr : expr . "SUB-operator" expr (8) 528 expr : expr . "MUL-operator" expr (9) 529 expr : expr . "DIV-operator" expr (10) 530 expr : expr . "MOD-operator" expr (11) 531 expr : expr . "AND-operator" expr (12) 532 expr : expr . '|' expr (13) 533 expr : expr '|' expr . (13) 534 535 "ADD-operator" shift 16 536 "SUB-operator" shift 17 537 "MUL-operator" shift 18 538 "DIV-operator" shift 19 539 "MOD-operator" shift 20 540 "AND-operator" shift 21 541 '|' reduce 13 542 '\n' reduce 13 543 ')' reduce 13 544 545 546State 12 contains 6 shift/reduce conflicts. 547State 26 contains 7 shift/reduce conflicts. 548State 27 contains 7 shift/reduce conflicts. 549State 28 contains 7 shift/reduce conflicts. 550State 29 contains 7 shift/reduce conflicts. 551State 30 contains 7 shift/reduce conflicts. 552State 31 contains 7 shift/reduce conflicts. 553State 32 contains 6 shift/reduce conflicts. 554 555 55628 terminals, 5 nonterminals 55719 grammar rules, 33 states 558 559grammar parser grammar 560symbol# value# symbol 561 0 0 $end 562 1 256 error 563 2 257 OP_ADD 564 3 258 "ADD-operator" 565 4 259 OP_SUB 566 5 260 "SUB-operator" 567 6 261 OP_MUL 568 7 262 "MUL-operator" 569 8 263 OP_DIV 570 9 264 "DIV-operator" 571 10 265 OP_MOD 572 11 266 "MOD-operator" 573 12 267 OP_AND 574 13 268 "AND-operator" 575 14 269 DIGIT 576 15 270 LETTER 577 16 124 '|' 578 17 38 '&' 579 18 43 '+' 580 19 45 '-' 581 20 42 '*' 582 21 47 '/' 583 22 37 '%' 584 23 271 UMINUS 585 24 10 '\n' 586 25 61 '=' 587 26 40 '(' 588 27 41 ')' 589 28 272 $accept 590 29 273 list 591 30 274 stat 592 31 275 expr 593 32 276 number 594