1# -*- text -*- 2# Parsing Expression Grammar 'TEMPLATE'. 3# Generated for unknown, from file 'TEST' 4 5# 6# Grammar Start Expression 7# 8 9<<MAIN>>: 10 call sym_Expression 11 halt 12 13# 14# value Symbol 'AddOp' 15# 16 17sym_AddOp: 18# / 19# '-' 20# '+' 21 22 symbol_restore AddOp 23 found! jump found_9 24 loc_push 25 26 call choice_7 27 28 fail! value_clear 29 ok! value_leaf AddOp 30 symbol_save AddOp 31 error_nonterminal AddOp 32 loc_pop_discard 33 34found_9: 35 ok! ast_value_push 36 return 37 38choice_7: 39# / 40# '-' 41# '+' 42 43 error_clear 44 45 loc_push 46 error_push 47 48 call char_2 49 50 error_pop_merge 51 ok! jump oknoast_6 52 53 loc_pop_rewind 54 loc_push 55 error_push 56 57 call char_4 58 59 error_pop_merge 60 ok! jump oknoast_6 61 62 loc_pop_rewind 63 status_fail 64 return 65 66oknoast_6: 67 loc_pop_discard 68 return 69 70char_2: 71# '-' 72 73 input_next "t -" 74 ok! test_char "-" 75 return 76 77char_4: 78# '+' 79 80 input_next "t +" 81 ok! test_char "+" 82 return 83# 84# value Symbol 'Digit' 85# 86 87sym_Digit: 88# / 89# '0' 90# '1' 91# '2' 92# '3' 93# '4' 94# '5' 95# '6' 96# '7' 97# '8' 98# '9' 99 100 symbol_restore Digit 101 found! jump found_34 102 loc_push 103 104 call choice_32 105 106 fail! value_clear 107 ok! value_leaf Digit 108 symbol_save Digit 109 error_nonterminal Digit 110 loc_pop_discard 111 112found_34: 113 ok! ast_value_push 114 return 115 116choice_32: 117# / 118# '0' 119# '1' 120# '2' 121# '3' 122# '4' 123# '5' 124# '6' 125# '7' 126# '8' 127# '9' 128 129 error_clear 130 131 loc_push 132 error_push 133 134 call char_11 135 136 error_pop_merge 137 ok! jump oknoast_31 138 139 loc_pop_rewind 140 loc_push 141 error_push 142 143 call char_13 144 145 error_pop_merge 146 ok! jump oknoast_31 147 148 loc_pop_rewind 149 loc_push 150 error_push 151 152 call char_15 153 154 error_pop_merge 155 ok! jump oknoast_31 156 157 loc_pop_rewind 158 loc_push 159 error_push 160 161 call char_17 162 163 error_pop_merge 164 ok! jump oknoast_31 165 166 loc_pop_rewind 167 loc_push 168 error_push 169 170 call char_19 171 172 error_pop_merge 173 ok! jump oknoast_31 174 175 loc_pop_rewind 176 loc_push 177 error_push 178 179 call char_21 180 181 error_pop_merge 182 ok! jump oknoast_31 183 184 loc_pop_rewind 185 loc_push 186 error_push 187 188 call char_23 189 190 error_pop_merge 191 ok! jump oknoast_31 192 193 loc_pop_rewind 194 loc_push 195 error_push 196 197 call char_25 198 199 error_pop_merge 200 ok! jump oknoast_31 201 202 loc_pop_rewind 203 loc_push 204 error_push 205 206 call char_27 207 208 error_pop_merge 209 ok! jump oknoast_31 210 211 loc_pop_rewind 212 loc_push 213 error_push 214 215 call char_29 216 217 error_pop_merge 218 ok! jump oknoast_31 219 220 loc_pop_rewind 221 status_fail 222 return 223 224oknoast_31: 225 loc_pop_discard 226 return 227 228char_11: 229# '0' 230 231 input_next "t 0" 232 ok! test_char "0" 233 return 234 235char_13: 236# '1' 237 238 input_next "t 1" 239 ok! test_char "1" 240 return 241 242char_15: 243# '2' 244 245 input_next "t 2" 246 ok! test_char "2" 247 return 248 249char_17: 250# '3' 251 252 input_next "t 3" 253 ok! test_char "3" 254 return 255 256char_19: 257# '4' 258 259 input_next "t 4" 260 ok! test_char "4" 261 return 262 263char_21: 264# '5' 265 266 input_next "t 5" 267 ok! test_char "5" 268 return 269 270char_23: 271# '6' 272 273 input_next "t 6" 274 ok! test_char "6" 275 return 276 277char_25: 278# '7' 279 280 input_next "t 7" 281 ok! test_char "7" 282 return 283 284char_27: 285# '8' 286 287 input_next "t 8" 288 ok! test_char "8" 289 return 290 291char_29: 292# '9' 293 294 input_next "t 9" 295 ok! test_char "9" 296 return 297# 298# value Symbol 'Expression' 299# 300 301sym_Expression: 302# / 303# (Function) 304# / 305# x 306# '\(' 307# (Expression) 308# '\)' 309# x 310# (Factor) 311# * 312# x 313# (MulOp) 314# (Factor) 315 316 symbol_restore Expression 317 found! jump found_64 318 loc_push 319 ast_push 320 321 call choice_62 322 323 fail! value_clear 324 ok! value_reduce Expression 325 symbol_save Expression 326 error_nonterminal Expression 327 ast_pop_rewind 328 loc_pop_discard 329 330found_64: 331 ok! ast_value_push 332 return 333 334choice_62: 335# / 336# (Function) 337# / 338# x 339# '\(' 340# (Expression) 341# '\)' 342# x 343# (Factor) 344# * 345# x 346# (MulOp) 347# (Factor) 348 349 error_clear 350 351 ast_push 352 loc_push 353 error_push 354 355 call sym_Function 356 357 error_pop_merge 358 ok! jump ok_61 359 360 ast_pop_rewind 361 loc_pop_rewind 362 ast_push 363 loc_push 364 error_push 365 366 call choice_59 367 368 error_pop_merge 369 ok! jump ok_61 370 371 ast_pop_rewind 372 loc_pop_rewind 373 status_fail 374 return 375 376ok_61: 377 ast_pop_discard 378 loc_pop_discard 379 return 380 381choice_59: 382# / 383# x 384# '\(' 385# (Expression) 386# '\)' 387# x 388# (Factor) 389# * 390# x 391# (MulOp) 392# (Factor) 393 394 error_clear 395 396 ast_push 397 loc_push 398 error_push 399 400 call sequence_42 401 402 error_pop_merge 403 ok! jump ok_58 404 405 ast_pop_rewind 406 loc_pop_rewind 407 ast_push 408 loc_push 409 error_push 410 411 call sequence_55 412 413 error_pop_merge 414 ok! jump ok_58 415 416 ast_pop_rewind 417 loc_pop_rewind 418 status_fail 419 return 420 421ok_58: 422 ast_pop_discard 423 loc_pop_discard 424 return 425 426sequence_42: 427# x 428# '\(' 429# (Expression) 430# '\)' 431 432 loc_push 433 error_clear 434 435 error_push 436 437 call char_37 438 439 error_pop_merge 440 fail! jump failednoast_44 441 ast_push 442 error_push 443 444 call sym_Expression 445 446 error_pop_merge 447 fail! jump failed_43 448 error_push 449 450 call char_40 451 452 error_pop_merge 453 fail! jump failed_43 454 455 ast_pop_discard 456 loc_pop_discard 457 return 458 459failed_43: 460 ast_pop_rewind 461 462failednoast_44: 463 loc_pop_rewind 464 return 465 466char_37: 467# '\(' 468 469 input_next "t (" 470 ok! test_char "(" 471 return 472 473char_40: 474# '\)' 475 476 input_next "t )" 477 ok! test_char ")" 478 return 479 480sequence_55: 481# x 482# (Factor) 483# * 484# x 485# (MulOp) 486# (Factor) 487 488 ast_push 489 loc_push 490 error_clear 491 492 error_push 493 494 call sym_Factor 495 496 error_pop_merge 497 fail! jump failed_56 498 error_push 499 500 call kleene_52 501 502 error_pop_merge 503 fail! jump failed_56 504 505 ast_pop_discard 506 loc_pop_discard 507 return 508 509failed_56: 510 ast_pop_rewind 511 loc_pop_rewind 512 return 513 514kleene_52: 515# * 516# x 517# (MulOp) 518# (Factor) 519 520 loc_push 521 error_push 522 523 call sequence_49 524 525 error_pop_merge 526 fail! jump failed_53 527 loc_pop_discard 528 jump kleene_52 529 530failed_53: 531 loc_pop_rewind 532 status_ok 533 return 534 535sequence_49: 536# x 537# (MulOp) 538# (Factor) 539 540 ast_push 541 loc_push 542 error_clear 543 544 error_push 545 546 call sym_MulOp 547 548 error_pop_merge 549 fail! jump failed_50 550 error_push 551 552 call sym_Factor 553 554 error_pop_merge 555 fail! jump failed_50 556 557 ast_pop_discard 558 loc_pop_discard 559 return 560 561failed_50: 562 ast_pop_rewind 563 loc_pop_rewind 564 return 565# 566# value Symbol 'Factor' 567# 568 569sym_Factor: 570# x 571# (Term) 572# * 573# x 574# (AddOp) 575# (Term) 576 577 symbol_restore Factor 578 found! jump found_78 579 loc_push 580 ast_push 581 582 call sequence_75 583 584 fail! value_clear 585 ok! value_reduce Factor 586 symbol_save Factor 587 error_nonterminal Factor 588 ast_pop_rewind 589 loc_pop_discard 590 591found_78: 592 ok! ast_value_push 593 return 594 595sequence_75: 596# x 597# (Term) 598# * 599# x 600# (AddOp) 601# (Term) 602 603 ast_push 604 loc_push 605 error_clear 606 607 error_push 608 609 call sym_Term 610 611 error_pop_merge 612 fail! jump failed_76 613 error_push 614 615 call kleene_72 616 617 error_pop_merge 618 fail! jump failed_76 619 620 ast_pop_discard 621 loc_pop_discard 622 return 623 624failed_76: 625 ast_pop_rewind 626 loc_pop_rewind 627 return 628 629kleene_72: 630# * 631# x 632# (AddOp) 633# (Term) 634 635 loc_push 636 error_push 637 638 call sequence_69 639 640 error_pop_merge 641 fail! jump failed_73 642 loc_pop_discard 643 jump kleene_72 644 645failed_73: 646 loc_pop_rewind 647 status_ok 648 return 649 650sequence_69: 651# x 652# (AddOp) 653# (Term) 654 655 ast_push 656 loc_push 657 error_clear 658 659 error_push 660 661 call sym_AddOp 662 663 error_pop_merge 664 fail! jump failed_70 665 error_push 666 667 call sym_Term 668 669 error_pop_merge 670 fail! jump failed_70 671 672 ast_pop_discard 673 loc_pop_discard 674 return 675 676failed_70: 677 ast_pop_rewind 678 loc_pop_rewind 679 return 680# 681# value Symbol 'Function' 682# 683 684sym_Function: 685# (Sinus) 686 687 symbol_restore Function 688 found! jump found_81 689 loc_push 690 ast_push 691 692 call sym_Sinus 693 694 fail! value_clear 695 ok! value_reduce Function 696 symbol_save Function 697 error_nonterminal Function 698 ast_pop_rewind 699 loc_pop_discard 700 701found_81: 702 ok! ast_value_push 703 return 704# 705# value Symbol 'MulOp' 706# 707 708sym_MulOp: 709# / 710# '*' 711# '/' 712 713 symbol_restore MulOp 714 found! jump found_90 715 loc_push 716 717 call choice_88 718 719 fail! value_clear 720 ok! value_leaf MulOp 721 symbol_save MulOp 722 error_nonterminal MulOp 723 loc_pop_discard 724 725found_90: 726 ok! ast_value_push 727 return 728 729choice_88: 730# / 731# '*' 732# '/' 733 734 error_clear 735 736 loc_push 737 error_push 738 739 call char_83 740 741 error_pop_merge 742 ok! jump oknoast_87 743 744 loc_pop_rewind 745 loc_push 746 error_push 747 748 call char_85 749 750 error_pop_merge 751 ok! jump oknoast_87 752 753 loc_pop_rewind 754 status_fail 755 return 756 757oknoast_87: 758 loc_pop_discard 759 return 760 761char_83: 762# '*' 763 764 input_next "t *" 765 ok! test_char "*" 766 return 767 768char_85: 769# '/' 770 771 input_next "t /" 772 ok! test_char "/" 773 return 774# 775# value Symbol 'Number' 776# 777 778sym_Number: 779# x 780# ? 781# (Sign) 782# + 783# (Digit) 784 785 symbol_restore Number 786 found! jump found_103 787 loc_push 788 ast_push 789 790 call sequence_100 791 792 fail! value_clear 793 ok! value_reduce Number 794 symbol_save Number 795 error_nonterminal Number 796 ast_pop_rewind 797 loc_pop_discard 798 799found_103: 800 ok! ast_value_push 801 return 802 803sequence_100: 804# x 805# ? 806# (Sign) 807# + 808# (Digit) 809 810 ast_push 811 loc_push 812 error_clear 813 814 error_push 815 816 call optional_93 817 818 error_pop_merge 819 fail! jump failed_101 820 error_push 821 822 call poskleene_96 823 824 error_pop_merge 825 fail! jump failed_101 826 827 ast_pop_discard 828 loc_pop_discard 829 return 830 831failed_101: 832 ast_pop_rewind 833 loc_pop_rewind 834 return 835 836optional_93: 837# ? 838# (Sign) 839 840 loc_push 841 error_push 842 843 call sym_Sign 844 845 error_pop_merge 846 fail! loc_pop_rewind 847 ok! loc_pop_discard 848 status_ok 849 return 850 851poskleene_96: 852# + 853# (Digit) 854 855 loc_push 856 857 call sym_Digit 858 859 fail! jump failed_97 860 861loop_98: 862 loc_pop_discard 863 loc_push 864 error_push 865 866 call sym_Digit 867 868 error_pop_merge 869 ok! jump loop_98 870 status_ok 871 872failed_97: 873 loc_pop_rewind 874 return 875# 876# value Symbol 'Sign' 877# 878 879sym_Sign: 880# / 881# '-' 882# '+' 883 884 symbol_restore Sign 885 found! jump found_112 886 loc_push 887 888 call choice_110 889 890 fail! value_clear 891 ok! value_leaf Sign 892 symbol_save Sign 893 error_nonterminal Sign 894 loc_pop_discard 895 896found_112: 897 ok! ast_value_push 898 return 899 900choice_110: 901# / 902# '-' 903# '+' 904 905 error_clear 906 907 loc_push 908 error_push 909 910 call char_105 911 912 error_pop_merge 913 ok! jump oknoast_109 914 915 loc_pop_rewind 916 loc_push 917 error_push 918 919 call char_107 920 921 error_pop_merge 922 ok! jump oknoast_109 923 924 loc_pop_rewind 925 status_fail 926 return 927 928oknoast_109: 929 loc_pop_discard 930 return 931 932char_105: 933# '-' 934 935 input_next "t -" 936 ok! test_char "-" 937 return 938 939char_107: 940# '+' 941 942 input_next "t +" 943 ok! test_char "+" 944 return 945# 946# value Symbol 'Sinus' 947# 948 949sym_Sinus: 950# x 951# 's' 952# 'i' 953# 'n' 954# '\(' 955# (Expression) 956# '\)' 957 958 symbol_restore Sinus 959 found! jump found_129 960 loc_push 961 ast_push 962 963 call sequence_125 964 965 fail! value_clear 966 ok! value_reduce Sinus 967 symbol_save Sinus 968 error_nonterminal Sinus 969 ast_pop_rewind 970 loc_pop_discard 971 972found_129: 973 ok! ast_value_push 974 return 975 976sequence_125: 977# x 978# 's' 979# 'i' 980# 'n' 981# '\(' 982# (Expression) 983# '\)' 984 985 loc_push 986 error_clear 987 988 error_push 989 990 call char_114 991 992 error_pop_merge 993 fail! jump failednoast_127 994 error_push 995 996 call char_116 997 998 error_pop_merge 999 fail! jump failednoast_127 1000 error_push 1001 1002 call char_118 1003 1004 error_pop_merge 1005 fail! jump failednoast_127 1006 error_push 1007 1008 call char_120 1009 1010 error_pop_merge 1011 fail! jump failednoast_127 1012 ast_push 1013 error_push 1014 1015 call sym_Expression 1016 1017 error_pop_merge 1018 fail! jump failed_126 1019 error_push 1020 1021 call char_123 1022 1023 error_pop_merge 1024 fail! jump failed_126 1025 1026 ast_pop_discard 1027 loc_pop_discard 1028 return 1029 1030failed_126: 1031 ast_pop_rewind 1032 1033failednoast_127: 1034 loc_pop_rewind 1035 return 1036 1037char_114: 1038# 's' 1039 1040 input_next "t s" 1041 ok! test_char "s" 1042 return 1043 1044char_116: 1045# 'i' 1046 1047 input_next "t i" 1048 ok! test_char "i" 1049 return 1050 1051char_118: 1052# 'n' 1053 1054 input_next "t n" 1055 ok! test_char "n" 1056 return 1057 1058char_120: 1059# '\(' 1060 1061 input_next "t (" 1062 ok! test_char "(" 1063 return 1064 1065char_123: 1066# '\)' 1067 1068 input_next "t )" 1069 ok! test_char ")" 1070 return 1071# 1072# value Symbol 'Term' 1073# 1074 1075sym_Term: 1076# (Number) 1077 1078 symbol_restore Term 1079 found! jump found_132 1080 loc_push 1081 ast_push 1082 1083 call sym_Number 1084 1085 fail! value_clear 1086 ok! value_reduce Term 1087 symbol_save Term 1088 error_nonterminal Term 1089 ast_pop_rewind 1090 loc_pop_discard 1091 1092found_132: 1093 ok! ast_value_push 1094 return 1095 1096# 1097# 1098