1 0 $accept : line $end 2 3 1 lines : 4 2 | lines line 5 6 3 line : dexp '\n' 7 4 | vexp '\n' 8 5 | DREG '=' dexp '\n' 9 6 | VREG '=' vexp '\n' 10 7 | error '\n' 11 12 8 dexp : CONST 13 9 | DREG 14 10 | dexp '+' dexp 15 11 | dexp '-' dexp 16 12 | dexp '*' dexp 17 13 | dexp '/' dexp 18 14 | '-' dexp 19 15 | '(' dexp ')' 20 21 16 vexp : dexp 22 17 | '(' dexp ',' dexp ')' 23 18 | VREG 24 19 | vexp '+' vexp 25 20 | dexp '+' vexp 26 21 | vexp '-' vexp 27 22 | dexp '-' vexp 28 23 | vexp '*' vexp 29 24 | dexp '*' vexp 30 25 | vexp '/' vexp 31 26 | dexp '/' vexp 32 27 | '-' vexp 33 28 | '(' vexp ')' 34 36 state 0 37 $accept : . line $end (0) 38 39 error shift 1 40 DREG shift 2 41 VREG shift 3 42 CONST shift 4 43 '-' shift 5 44 '(' shift 6 45 . error 46 47 line goto 7 48 dexp goto 8 49 vexp goto 9 50 51 52 state 1 53 line : error . '\n' (7) 54 55 '\n' shift 10 56 . error 57 58 59 state 2 60 line : DREG . '=' dexp '\n' (5) 61 dexp : DREG . (9) 62 63 '=' shift 11 64 '+' reduce 9 65 '-' reduce 9 66 '*' reduce 9 67 '/' reduce 9 68 '\n' reduce 9 69 70 71 state 3 72 line : VREG . '=' vexp '\n' (6) 73 vexp : VREG . (18) 74 75 '=' shift 12 76 '+' reduce 18 77 '-' reduce 18 78 '*' reduce 18 79 '/' reduce 18 80 '\n' reduce 18 81 82 83 state 4 84 dexp : CONST . (8) 85 86 . reduce 8 87 88 89 state 5 90 dexp : '-' . dexp (14) 91 vexp : '-' . vexp (27) 92 93 DREG shift 13 94 VREG shift 14 95 CONST shift 4 96 '-' shift 5 97 '(' shift 6 98 . error 99 100 dexp goto 15 101 vexp goto 16 102 103 104 state 6 105 dexp : '(' . dexp ')' (15) 106 vexp : '(' . dexp ',' dexp ')' (17) 107 vexp : '(' . vexp ')' (28) 108 109 DREG shift 13 110 VREG shift 14 111 CONST shift 4 112 '-' shift 5 113 '(' shift 6 114 . error 115 116 dexp goto 17 117 vexp goto 18 118 119 120 state 7 121 $accept : line . $end (0) 122 123 $end accept 124 125 126 8: shift/reduce conflict (shift 19, reduce 16) on '+' 127 8: shift/reduce conflict (shift 20, reduce 16) on '-' 128 8: shift/reduce conflict (shift 21, reduce 16) on '*' 129 8: shift/reduce conflict (shift 22, reduce 16) on '/' 130 8: shift/reduce conflict (shift 23, reduce 16) on '\n' 131 state 8 132 line : dexp . '\n' (3) 133 dexp : dexp . '+' dexp (10) 134 dexp : dexp . '-' dexp (11) 135 dexp : dexp . '*' dexp (12) 136 dexp : dexp . '/' dexp (13) 137 vexp : dexp . (16) 138 vexp : dexp . '+' vexp (20) 139 vexp : dexp . '-' vexp (22) 140 vexp : dexp . '*' vexp (24) 141 vexp : dexp . '/' vexp (26) 142 143 '+' shift 19 144 '-' shift 20 145 '*' shift 21 146 '/' shift 22 147 '\n' shift 23 148 149 150 state 9 151 line : vexp . '\n' (4) 152 vexp : vexp . '+' vexp (19) 153 vexp : vexp . '-' vexp (21) 154 vexp : vexp . '*' vexp (23) 155 vexp : vexp . '/' vexp (25) 156 157 '+' shift 24 158 '-' shift 25 159 '*' shift 26 160 '/' shift 27 161 '\n' shift 28 162 . error 163 164 165 state 10 166 line : error '\n' . (7) 167 168 . reduce 7 169 170 171 state 11 172 line : DREG '=' . dexp '\n' (5) 173 174 DREG shift 13 175 CONST shift 4 176 '-' shift 29 177 '(' shift 30 178 . error 179 180 dexp goto 31 181 182 183 state 12 184 line : VREG '=' . vexp '\n' (6) 185 186 DREG shift 13 187 VREG shift 14 188 CONST shift 4 189 '-' shift 5 190 '(' shift 6 191 . error 192 193 dexp goto 32 194 vexp goto 33 195 196 197 state 13 198 dexp : DREG . (9) 199 200 . reduce 9 201 202 203 state 14 204 vexp : VREG . (18) 205 206 . reduce 18 207 208 209 15: reduce/reduce conflict (reduce 14, reduce 16) on '+' 210 15: reduce/reduce conflict (reduce 14, reduce 16) on '-' 211 15: reduce/reduce conflict (reduce 14, reduce 16) on '*' 212 15: reduce/reduce conflict (reduce 14, reduce 16) on '/' 213 15: reduce/reduce conflict (reduce 14, reduce 16) on '\n' 214 15: reduce/reduce conflict (reduce 14, reduce 16) on ')' 215 state 15 216 dexp : dexp . '+' dexp (10) 217 dexp : dexp . '-' dexp (11) 218 dexp : dexp . '*' dexp (12) 219 dexp : dexp . '/' dexp (13) 220 dexp : '-' dexp . (14) 221 vexp : dexp . (16) 222 vexp : dexp . '+' vexp (20) 223 vexp : dexp . '-' vexp (22) 224 vexp : dexp . '*' vexp (24) 225 vexp : dexp . '/' vexp (26) 226 227 . reduce 14 228 229 230 state 16 231 vexp : vexp . '+' vexp (19) 232 vexp : vexp . '-' vexp (21) 233 vexp : vexp . '*' vexp (23) 234 vexp : vexp . '/' vexp (25) 235 vexp : '-' vexp . (27) 236 237 . reduce 27 238 239 240 17: shift/reduce conflict (shift 19, reduce 16) on '+' 241 17: shift/reduce conflict (shift 20, reduce 16) on '-' 242 17: shift/reduce conflict (shift 21, reduce 16) on '*' 243 17: shift/reduce conflict (shift 22, reduce 16) on '/' 244 17: shift/reduce conflict (shift 34, reduce 16) on ')' 245 state 17 246 dexp : dexp . '+' dexp (10) 247 dexp : dexp . '-' dexp (11) 248 dexp : dexp . '*' dexp (12) 249 dexp : dexp . '/' dexp (13) 250 dexp : '(' dexp . ')' (15) 251 vexp : dexp . (16) 252 vexp : '(' dexp . ',' dexp ')' (17) 253 vexp : dexp . '+' vexp (20) 254 vexp : dexp . '-' vexp (22) 255 vexp : dexp . '*' vexp (24) 256 vexp : dexp . '/' vexp (26) 257 258 '+' shift 19 259 '-' shift 20 260 '*' shift 21 261 '/' shift 22 262 ')' shift 34 263 ',' shift 35 264 265 266 state 18 267 vexp : vexp . '+' vexp (19) 268 vexp : vexp . '-' vexp (21) 269 vexp : vexp . '*' vexp (23) 270 vexp : vexp . '/' vexp (25) 271 vexp : '(' vexp . ')' (28) 272 273 '+' shift 24 274 '-' shift 25 275 '*' shift 26 276 '/' shift 27 277 ')' shift 36 278 . error 279 280 281 state 19 282 dexp : dexp '+' . dexp (10) 283 vexp : dexp '+' . vexp (20) 284 285 DREG shift 13 286 VREG shift 14 287 CONST shift 4 288 '-' shift 5 289 '(' shift 6 290 . error 291 292 dexp goto 37 293 vexp goto 38 294 295 296 state 20 297 dexp : dexp '-' . dexp (11) 298 vexp : dexp '-' . vexp (22) 299 300 DREG shift 13 301 VREG shift 14 302 CONST shift 4 303 '-' shift 5 304 '(' shift 6 305 . error 306 307 dexp goto 39 308 vexp goto 40 309 310 311 state 21 312 dexp : dexp '*' . dexp (12) 313 vexp : dexp '*' . vexp (24) 314 315 DREG shift 13 316 VREG shift 14 317 CONST shift 4 318 '-' shift 5 319 '(' shift 6 320 . error 321 322 dexp goto 41 323 vexp goto 42 324 325 326 state 22 327 dexp : dexp '/' . dexp (13) 328 vexp : dexp '/' . vexp (26) 329 330 DREG shift 13 331 VREG shift 14 332 CONST shift 4 333 '-' shift 5 334 '(' shift 6 335 . error 336 337 dexp goto 43 338 vexp goto 44 339 340 341 state 23 342 line : dexp '\n' . (3) 343 344 . reduce 3 345 346 347 state 24 348 vexp : vexp '+' . vexp (19) 349 350 DREG shift 13 351 VREG shift 14 352 CONST shift 4 353 '-' shift 5 354 '(' shift 6 355 . error 356 357 dexp goto 32 358 vexp goto 45 359 360 361 state 25 362 vexp : vexp '-' . vexp (21) 363 364 DREG shift 13 365 VREG shift 14 366 CONST shift 4 367 '-' shift 5 368 '(' shift 6 369 . error 370 371 dexp goto 32 372 vexp goto 46 373 374 375 state 26 376 vexp : vexp '*' . vexp (23) 377 378 DREG shift 13 379 VREG shift 14 380 CONST shift 4 381 '-' shift 5 382 '(' shift 6 383 . error 384 385 dexp goto 32 386 vexp goto 47 387 388 389 state 27 390 vexp : vexp '/' . vexp (25) 391 392 DREG shift 13 393 VREG shift 14 394 CONST shift 4 395 '-' shift 5 396 '(' shift 6 397 . error 398 399 dexp goto 32 400 vexp goto 48 401 402 403 state 28 404 line : vexp '\n' . (4) 405 406 . reduce 4 407 408 409 state 29 410 dexp : '-' . dexp (14) 411 412 DREG shift 13 413 CONST shift 4 414 '-' shift 29 415 '(' shift 30 416 . error 417 418 dexp goto 49 419 420 421 state 30 422 dexp : '(' . dexp ')' (15) 423 424 DREG shift 13 425 CONST shift 4 426 '-' shift 29 427 '(' shift 30 428 . error 429 430 dexp goto 50 431 432 433 state 31 434 line : DREG '=' dexp . '\n' (5) 435 dexp : dexp . '+' dexp (10) 436 dexp : dexp . '-' dexp (11) 437 dexp : dexp . '*' dexp (12) 438 dexp : dexp . '/' dexp (13) 439 440 '+' shift 51 441 '-' shift 52 442 '*' shift 53 443 '/' shift 54 444 '\n' shift 55 445 . error 446 447 448 32: shift/reduce conflict (shift 19, reduce 16) on '+' 449 32: shift/reduce conflict (shift 20, reduce 16) on '-' 450 32: shift/reduce conflict (shift 21, reduce 16) on '*' 451 32: shift/reduce conflict (shift 22, reduce 16) on '/' 452 state 32 453 dexp : dexp . '+' dexp (10) 454 dexp : dexp . '-' dexp (11) 455 dexp : dexp . '*' dexp (12) 456 dexp : dexp . '/' dexp (13) 457 vexp : dexp . (16) 458 vexp : dexp . '+' vexp (20) 459 vexp : dexp . '-' vexp (22) 460 vexp : dexp . '*' vexp (24) 461 vexp : dexp . '/' vexp (26) 462 463 '+' shift 19 464 '-' shift 20 465 '*' shift 21 466 '/' shift 22 467 '\n' reduce 16 468 ')' reduce 16 469 470 471 state 33 472 line : VREG '=' vexp . '\n' (6) 473 vexp : vexp . '+' vexp (19) 474 vexp : vexp . '-' vexp (21) 475 vexp : vexp . '*' vexp (23) 476 vexp : vexp . '/' vexp (25) 477 478 '+' shift 24 479 '-' shift 25 480 '*' shift 26 481 '/' shift 27 482 '\n' shift 56 483 . error 484 485 486 state 34 487 dexp : '(' dexp ')' . (15) 488 489 . reduce 15 490 491 492 state 35 493 vexp : '(' dexp ',' . dexp ')' (17) 494 495 DREG shift 13 496 CONST shift 4 497 '-' shift 29 498 '(' shift 30 499 . error 500 501 dexp goto 57 502 503 504 state 36 505 vexp : '(' vexp ')' . (28) 506 507 . reduce 28 508 509 510 37: reduce/reduce conflict (reduce 10, reduce 16) on '+' 511 37: reduce/reduce conflict (reduce 10, reduce 16) on '-' 512 37: shift/reduce conflict (shift 21, reduce 16) on '*' 513 37: shift/reduce conflict (shift 22, reduce 16) on '/' 514 37: reduce/reduce conflict (reduce 10, reduce 16) on '\n' 515 37: reduce/reduce conflict (reduce 10, reduce 16) on ')' 516 state 37 517 dexp : dexp . '+' dexp (10) 518 dexp : dexp '+' dexp . (10) 519 dexp : dexp . '-' dexp (11) 520 dexp : dexp . '*' dexp (12) 521 dexp : dexp . '/' dexp (13) 522 vexp : dexp . (16) 523 vexp : dexp . '+' vexp (20) 524 vexp : dexp . '-' vexp (22) 525 vexp : dexp . '*' vexp (24) 526 vexp : dexp . '/' vexp (26) 527 528 '*' shift 21 529 '/' shift 22 530 '+' reduce 10 531 '-' reduce 10 532 '\n' reduce 10 533 ')' reduce 10 534 ',' reduce 10 535 536 537 state 38 538 vexp : vexp . '+' vexp (19) 539 vexp : dexp '+' vexp . (20) 540 vexp : vexp . '-' vexp (21) 541 vexp : vexp . '*' vexp (23) 542 vexp : vexp . '/' vexp (25) 543 544 '*' shift 26 545 '/' shift 27 546 '+' reduce 20 547 '-' reduce 20 548 '\n' reduce 20 549 ')' reduce 20 550 551 552 39: reduce/reduce conflict (reduce 11, reduce 16) on '+' 553 39: reduce/reduce conflict (reduce 11, reduce 16) on '-' 554 39: shift/reduce conflict (shift 21, reduce 16) on '*' 555 39: shift/reduce conflict (shift 22, reduce 16) on '/' 556 39: reduce/reduce conflict (reduce 11, reduce 16) on '\n' 557 39: reduce/reduce conflict (reduce 11, reduce 16) on ')' 558 state 39 559 dexp : dexp . '+' dexp (10) 560 dexp : dexp . '-' dexp (11) 561 dexp : dexp '-' dexp . (11) 562 dexp : dexp . '*' dexp (12) 563 dexp : dexp . '/' dexp (13) 564 vexp : dexp . (16) 565 vexp : dexp . '+' vexp (20) 566 vexp : dexp . '-' vexp (22) 567 vexp : dexp . '*' vexp (24) 568 vexp : dexp . '/' vexp (26) 569 570 '*' shift 21 571 '/' shift 22 572 '+' reduce 11 573 '-' reduce 11 574 '\n' reduce 11 575 ')' reduce 11 576 ',' reduce 11 577 578 579 state 40 580 vexp : vexp . '+' vexp (19) 581 vexp : vexp . '-' vexp (21) 582 vexp : dexp '-' vexp . (22) 583 vexp : vexp . '*' vexp (23) 584 vexp : vexp . '/' vexp (25) 585 586 '*' shift 26 587 '/' shift 27 588 '+' reduce 22 589 '-' reduce 22 590 '\n' reduce 22 591 ')' reduce 22 592 593 594 41: reduce/reduce conflict (reduce 12, reduce 16) on '+' 595 41: reduce/reduce conflict (reduce 12, reduce 16) on '-' 596 41: reduce/reduce conflict (reduce 12, reduce 16) on '*' 597 41: reduce/reduce conflict (reduce 12, reduce 16) on '/' 598 41: reduce/reduce conflict (reduce 12, reduce 16) on '\n' 599 41: reduce/reduce conflict (reduce 12, reduce 16) on ')' 600 state 41 601 dexp : dexp . '+' dexp (10) 602 dexp : dexp . '-' dexp (11) 603 dexp : dexp . '*' dexp (12) 604 dexp : dexp '*' dexp . (12) 605 dexp : dexp . '/' dexp (13) 606 vexp : dexp . (16) 607 vexp : dexp . '+' vexp (20) 608 vexp : dexp . '-' vexp (22) 609 vexp : dexp . '*' vexp (24) 610 vexp : dexp . '/' vexp (26) 611 612 . reduce 12 613 614 615 state 42 616 vexp : vexp . '+' vexp (19) 617 vexp : vexp . '-' vexp (21) 618 vexp : vexp . '*' vexp (23) 619 vexp : dexp '*' vexp . (24) 620 vexp : vexp . '/' vexp (25) 621 622 . reduce 24 623 624 625 43: reduce/reduce conflict (reduce 13, reduce 16) on '+' 626 43: reduce/reduce conflict (reduce 13, reduce 16) on '-' 627 43: reduce/reduce conflict (reduce 13, reduce 16) on '*' 628 43: reduce/reduce conflict (reduce 13, reduce 16) on '/' 629 43: reduce/reduce conflict (reduce 13, reduce 16) on '\n' 630 43: reduce/reduce conflict (reduce 13, reduce 16) on ')' 631 state 43 632 dexp : dexp . '+' dexp (10) 633 dexp : dexp . '-' dexp (11) 634 dexp : dexp . '*' dexp (12) 635 dexp : dexp . '/' dexp (13) 636 dexp : dexp '/' dexp . (13) 637 vexp : dexp . (16) 638 vexp : dexp . '+' vexp (20) 639 vexp : dexp . '-' vexp (22) 640 vexp : dexp . '*' vexp (24) 641 vexp : dexp . '/' vexp (26) 642 643 . reduce 13 644 645 646 state 44 647 vexp : vexp . '+' vexp (19) 648 vexp : vexp . '-' vexp (21) 649 vexp : vexp . '*' vexp (23) 650 vexp : vexp . '/' vexp (25) 651 vexp : dexp '/' vexp . (26) 652 653 . reduce 26 654 655 656 state 45 657 vexp : vexp . '+' vexp (19) 658 vexp : vexp '+' vexp . (19) 659 vexp : vexp . '-' vexp (21) 660 vexp : vexp . '*' vexp (23) 661 vexp : vexp . '/' vexp (25) 662 663 '*' shift 26 664 '/' shift 27 665 '+' reduce 19 666 '-' reduce 19 667 '\n' reduce 19 668 ')' reduce 19 669 670 671 state 46 672 vexp : vexp . '+' vexp (19) 673 vexp : vexp . '-' vexp (21) 674 vexp : vexp '-' vexp . (21) 675 vexp : vexp . '*' vexp (23) 676 vexp : vexp . '/' vexp (25) 677 678 '*' shift 26 679 '/' shift 27 680 '+' reduce 21 681 '-' reduce 21 682 '\n' reduce 21 683 ')' reduce 21 684 685 686 state 47 687 vexp : vexp . '+' vexp (19) 688 vexp : vexp . '-' vexp (21) 689 vexp : vexp . '*' vexp (23) 690 vexp : vexp '*' vexp . (23) 691 vexp : vexp . '/' vexp (25) 692 693 . reduce 23 694 695 696 state 48 697 vexp : vexp . '+' vexp (19) 698 vexp : vexp . '-' vexp (21) 699 vexp : vexp . '*' vexp (23) 700 vexp : vexp . '/' vexp (25) 701 vexp : vexp '/' vexp . (25) 702 703 . reduce 25 704 705 706 state 49 707 dexp : dexp . '+' dexp (10) 708 dexp : dexp . '-' dexp (11) 709 dexp : dexp . '*' dexp (12) 710 dexp : dexp . '/' dexp (13) 711 dexp : '-' dexp . (14) 712 713 . reduce 14 714 715 716 state 50 717 dexp : dexp . '+' dexp (10) 718 dexp : dexp . '-' dexp (11) 719 dexp : dexp . '*' dexp (12) 720 dexp : dexp . '/' dexp (13) 721 dexp : '(' dexp . ')' (15) 722 723 '+' shift 51 724 '-' shift 52 725 '*' shift 53 726 '/' shift 54 727 ')' shift 34 728 . error 729 730 731 state 51 732 dexp : dexp '+' . dexp (10) 733 734 DREG shift 13 735 CONST shift 4 736 '-' shift 29 737 '(' shift 30 738 . error 739 740 dexp goto 58 741 742 743 state 52 744 dexp : dexp '-' . dexp (11) 745 746 DREG shift 13 747 CONST shift 4 748 '-' shift 29 749 '(' shift 30 750 . error 751 752 dexp goto 59 753 754 755 state 53 756 dexp : dexp '*' . dexp (12) 757 758 DREG shift 13 759 CONST shift 4 760 '-' shift 29 761 '(' shift 30 762 . error 763 764 dexp goto 60 765 766 767 state 54 768 dexp : dexp '/' . dexp (13) 769 770 DREG shift 13 771 CONST shift 4 772 '-' shift 29 773 '(' shift 30 774 . error 775 776 dexp goto 61 777 778 779 state 55 780 line : DREG '=' dexp '\n' . (5) 781 782 . reduce 5 783 784 785 state 56 786 line : VREG '=' vexp '\n' . (6) 787 788 . reduce 6 789 790 791 state 57 792 dexp : dexp . '+' dexp (10) 793 dexp : dexp . '-' dexp (11) 794 dexp : dexp . '*' dexp (12) 795 dexp : dexp . '/' dexp (13) 796 vexp : '(' dexp ',' dexp . ')' (17) 797 798 '+' shift 51 799 '-' shift 52 800 '*' shift 53 801 '/' shift 54 802 ')' shift 62 803 . error 804 805 806 state 58 807 dexp : dexp . '+' dexp (10) 808 dexp : dexp '+' dexp . (10) 809 dexp : dexp . '-' dexp (11) 810 dexp : dexp . '*' dexp (12) 811 dexp : dexp . '/' dexp (13) 812 813 '*' shift 53 814 '/' shift 54 815 '+' reduce 10 816 '-' reduce 10 817 '\n' reduce 10 818 ')' reduce 10 819 820 821 state 59 822 dexp : dexp . '+' dexp (10) 823 dexp : dexp . '-' dexp (11) 824 dexp : dexp '-' dexp . (11) 825 dexp : dexp . '*' dexp (12) 826 dexp : dexp . '/' dexp (13) 827 828 '*' shift 53 829 '/' shift 54 830 '+' reduce 11 831 '-' reduce 11 832 '\n' reduce 11 833 ')' reduce 11 834 835 836 state 60 837 dexp : dexp . '+' dexp (10) 838 dexp : dexp . '-' dexp (11) 839 dexp : dexp . '*' dexp (12) 840 dexp : dexp '*' dexp . (12) 841 dexp : dexp . '/' dexp (13) 842 843 . reduce 12 844 845 846 state 61 847 dexp : dexp . '+' dexp (10) 848 dexp : dexp . '-' dexp (11) 849 dexp : dexp . '*' dexp (12) 850 dexp : dexp . '/' dexp (13) 851 dexp : dexp '/' dexp . (13) 852 853 . reduce 13 854 855 856 state 62 857 vexp : '(' dexp ',' dexp ')' . (17) 858 859 . reduce 17 860 861 862 Rules never reduced: 863 lines : (1) 864 lines : lines line (2) 865 866 867 State 8 contains 5 shift/reduce conflicts. 868 State 15 contains 6 reduce/reduce conflicts. 869 State 17 contains 5 shift/reduce conflicts. 870 State 32 contains 4 shift/reduce conflicts. 871 State 37 contains 2 shift/reduce conflicts, 4 reduce/reduce conflicts. 872 State 39 contains 2 shift/reduce conflicts, 4 reduce/reduce conflicts. 873 State 41 contains 6 reduce/reduce conflicts. 874 State 43 contains 6 reduce/reduce conflicts. 875 876 877 15 terminals, 5 nonterminals 878 29 grammar rules, 63 states 879 880 grammar parser grammar 881 symbol# value# symbol 882 0 0 $end 883 1 256 error 884 2 257 DREG 885 3 258 VREG 886 4 259 CONST 887 5 43 '+' 888 6 45 '-' 889 7 42 '*' 890 8 47 '/' 891 9 260 UMINUS 892 10 10 '\n' 893 11 61 '=' 894 12 40 '(' 895 13 41 ')' 896 14 44 ',' 897 15 261 $accept 898 16 262 line 899 17 263 dexp 900 18 264 vexp 901 19 265 lines 902