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 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 DIGIT shift 3 42 LETTER shift 4 43 '-' 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 number : DIGIT . (17) 61 62 . reduce 17 63 64 65state 4 66 stat : LETTER . '=' expr (5) 67 expr : LETTER . (15) 68 69 '=' shift 11 70 '\n' reduce 15 71 '|' reduce 15 72 '&' reduce 15 73 '+' reduce 15 74 '-' reduce 15 75 '*' reduce 15 76 '/' reduce 15 77 '%' reduce 15 78 79 80state 5 81 expr : '-' . expr (14) 82 83 DIGIT shift 3 84 LETTER shift 12 85 '-' shift 5 86 '(' shift 6 87 . error 88 89 expr goto 13 90 number goto 9 91 92 93state 6 94 expr : '(' . expr ')' (6) 95 96 DIGIT shift 3 97 LETTER shift 12 98 '-' shift 5 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 . '+' expr (7) 116 expr : expr . '-' expr (8) 117 expr : expr . '*' expr (9) 118 expr : expr . '/' expr (10) 119 expr : expr . '%' expr (11) 120 expr : expr . '&' expr (12) 121 expr : expr . '|' expr (13) 122 123 '|' shift 16 124 '&' shift 17 125 '+' shift 18 126 '-' shift 19 127 '*' shift 20 128 '/' 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 '\n' reduce 16 139 '|' reduce 16 140 '&' reduce 16 141 '+' reduce 16 142 '-' reduce 16 143 '*' reduce 16 144 '/' reduce 16 145 '%' reduce 16 146 ')' reduce 16 147 148 149state 10 150 list : list error '\n' . (3) 151 152 . reduce 3 153 154 155state 11 156 stat : LETTER '=' . expr (5) 157 158 DIGIT shift 3 159 LETTER shift 12 160 '-' shift 5 161 '(' shift 6 162 . error 163 164 expr goto 24 165 number goto 9 166 167 168state 12 169 expr : LETTER . (15) 170 171 . reduce 15 172 173 174state 13 175 expr : expr . '+' expr (7) 176 expr : expr . '-' expr (8) 177 expr : expr . '*' expr (9) 178 expr : expr . '/' expr (10) 179 expr : expr . '%' expr (11) 180 expr : expr . '&' expr (12) 181 expr : expr . '|' expr (13) 182 expr : '-' expr . (14) 183 184 . reduce 14 185 186 187state 14 188 expr : '(' expr . ')' (6) 189 expr : expr . '+' expr (7) 190 expr : expr . '-' expr (8) 191 expr : expr . '*' expr (9) 192 expr : expr . '/' expr (10) 193 expr : expr . '%' expr (11) 194 expr : expr . '&' expr (12) 195 expr : expr . '|' expr (13) 196 197 '|' shift 16 198 '&' shift 17 199 '+' shift 18 200 '-' shift 19 201 '*' shift 20 202 '/' shift 21 203 '%' shift 22 204 ')' shift 25 205 . error 206 207 208state 15 209 list : list stat '\n' . (2) 210 211 . reduce 2 212 213 214state 16 215 expr : expr '|' . expr (13) 216 217 DIGIT shift 3 218 LETTER shift 12 219 '-' shift 5 220 '(' shift 6 221 . error 222 223 expr goto 26 224 number goto 9 225 226 227state 17 228 expr : expr '&' . expr (12) 229 230 DIGIT shift 3 231 LETTER shift 12 232 '-' shift 5 233 '(' shift 6 234 . error 235 236 expr goto 27 237 number goto 9 238 239 240state 18 241 expr : expr '+' . expr (7) 242 243 DIGIT shift 3 244 LETTER shift 12 245 '-' shift 5 246 '(' shift 6 247 . error 248 249 expr goto 28 250 number goto 9 251 252 253state 19 254 expr : expr '-' . expr (8) 255 256 DIGIT shift 3 257 LETTER shift 12 258 '-' shift 5 259 '(' shift 6 260 . error 261 262 expr goto 29 263 number goto 9 264 265 266state 20 267 expr : expr '*' . expr (9) 268 269 DIGIT shift 3 270 LETTER shift 12 271 '-' shift 5 272 '(' shift 6 273 . error 274 275 expr goto 30 276 number goto 9 277 278 279state 21 280 expr : expr '/' . expr (10) 281 282 DIGIT shift 3 283 LETTER shift 12 284 '-' shift 5 285 '(' shift 6 286 . error 287 288 expr goto 31 289 number goto 9 290 291 292state 22 293 expr : expr '%' . expr (11) 294 295 DIGIT shift 3 296 LETTER shift 12 297 '-' shift 5 298 '(' shift 6 299 . error 300 301 expr goto 32 302 number goto 9 303 304 305state 23 306 number : number DIGIT . (18) 307 308 . reduce 18 309 310 311state 24 312 stat : LETTER '=' expr . (5) 313 expr : expr . '+' expr (7) 314 expr : expr . '-' expr (8) 315 expr : expr . '*' expr (9) 316 expr : expr . '/' expr (10) 317 expr : expr . '%' expr (11) 318 expr : expr . '&' expr (12) 319 expr : expr . '|' expr (13) 320 321 '|' shift 16 322 '&' shift 17 323 '+' shift 18 324 '-' shift 19 325 '*' shift 20 326 '/' shift 21 327 '%' shift 22 328 '\n' reduce 5 329 330 331state 25 332 expr : '(' expr ')' . (6) 333 334 . reduce 6 335 336 337state 26 338 expr : expr . '+' expr (7) 339 expr : expr . '-' expr (8) 340 expr : expr . '*' expr (9) 341 expr : expr . '/' expr (10) 342 expr : expr . '%' expr (11) 343 expr : expr . '&' expr (12) 344 expr : expr . '|' expr (13) 345 expr : expr '|' expr . (13) 346 347 '&' shift 17 348 '+' shift 18 349 '-' shift 19 350 '*' shift 20 351 '/' shift 21 352 '%' shift 22 353 '\n' reduce 13 354 '|' reduce 13 355 ')' reduce 13 356 357 358state 27 359 expr : expr . '+' expr (7) 360 expr : expr . '-' expr (8) 361 expr : expr . '*' expr (9) 362 expr : expr . '/' expr (10) 363 expr : expr . '%' expr (11) 364 expr : expr . '&' expr (12) 365 expr : expr '&' expr . (12) 366 expr : expr . '|' expr (13) 367 368 '+' shift 18 369 '-' shift 19 370 '*' shift 20 371 '/' shift 21 372 '%' shift 22 373 '\n' reduce 12 374 '|' reduce 12 375 '&' reduce 12 376 ')' reduce 12 377 378 379state 28 380 expr : expr . '+' expr (7) 381 expr : expr '+' expr . (7) 382 expr : expr . '-' expr (8) 383 expr : expr . '*' expr (9) 384 expr : expr . '/' expr (10) 385 expr : expr . '%' expr (11) 386 expr : expr . '&' expr (12) 387 expr : expr . '|' expr (13) 388 389 '*' shift 20 390 '/' shift 21 391 '%' shift 22 392 '\n' reduce 7 393 '|' reduce 7 394 '&' reduce 7 395 '+' reduce 7 396 '-' reduce 7 397 ')' reduce 7 398 399 400state 29 401 expr : expr . '+' expr (7) 402 expr : expr . '-' expr (8) 403 expr : expr '-' expr . (8) 404 expr : expr . '*' expr (9) 405 expr : expr . '/' expr (10) 406 expr : expr . '%' expr (11) 407 expr : expr . '&' expr (12) 408 expr : expr . '|' expr (13) 409 410 '*' shift 20 411 '/' shift 21 412 '%' shift 22 413 '\n' reduce 8 414 '|' reduce 8 415 '&' reduce 8 416 '+' reduce 8 417 '-' reduce 8 418 ')' reduce 8 419 420 421state 30 422 expr : expr . '+' expr (7) 423 expr : expr . '-' expr (8) 424 expr : expr . '*' expr (9) 425 expr : expr '*' expr . (9) 426 expr : expr . '/' expr (10) 427 expr : expr . '%' expr (11) 428 expr : expr . '&' expr (12) 429 expr : expr . '|' expr (13) 430 431 . reduce 9 432 433 434state 31 435 expr : expr . '+' expr (7) 436 expr : expr . '-' expr (8) 437 expr : expr . '*' expr (9) 438 expr : expr . '/' expr (10) 439 expr : expr '/' expr . (10) 440 expr : expr . '%' expr (11) 441 expr : expr . '&' expr (12) 442 expr : expr . '|' expr (13) 443 444 . reduce 10 445 446 447state 32 448 expr : expr . '+' expr (7) 449 expr : expr . '-' expr (8) 450 expr : expr . '*' expr (9) 451 expr : expr . '/' expr (10) 452 expr : expr . '%' expr (11) 453 expr : expr '%' expr . (11) 454 expr : expr . '&' expr (12) 455 expr : expr . '|' expr (13) 456 457 . reduce 11 458 459 46042 terminals, 5 nonterminals 46119 grammar rules, 33 states 462 463grammar parser grammar 464symbol# value# symbol 465 0 0 $end 466 1 256 error 467 2 257 DIGIT 468 3 258 LETTER 469 4 259 OCT1 470 5 127 '\177' 471 6 260 HEX1 472 7 255 '\377' 473 8 261 HEX2 474 9 262 HEX3 475 10 263 STR1 476 11 264 "\177\177\\\n" 477 12 265 STR2 478 13 266 BELL 479 14 7 '\a' 480 15 267 BS 481 16 8 '\b' 482 17 268 NL 483 18 10 '\n' 484 19 269 LF 485 20 12 '\f' 486 21 270 CR 487 22 13 '\r' 488 23 271 TAB 489 24 9 '\t' 490 25 272 VT 491 26 11 '\v' 492 27 64 '@' 493 28 126 '~' 494 29 94 '^' 495 30 35 '#' 496 31 124 '|' 497 32 38 '&' 498 33 43 '+' 499 34 45 '-' 500 35 42 '*' 501 36 47 '/' 502 37 37 '%' 503 38 273 UMINUS 504 39 61 '=' 505 40 40 '(' 506 41 41 ')' 507 42 274 $accept 508 43 275 list 509 44 276 stat 510 45 277 expr 511 46 278 number 512