1## -*- tcl -*- 2## 3## OO-based Tcl/PARAM implementation of the parsing 4## expression grammar 5## 6## TEMPLATE 7## 8## Generated from file TEST 9## for user unknown 10## 11# # ## ### ##### ######## ############# ##################### 12## Requirements 13 14package require Tcl 8.5 15package require OO 16package require pt::rde::oo ; # OO-based implementation of the 17 # PARAM virtual machine 18 # underlying the Tcl/PARAM code 19 # used below. 20 21# # ## ### ##### ######## ############# ##################### 22## 23 24oo::class create PARSER { 25 # # ## ### ##### ######## ############# 26 ## Public API 27 28 superclass pt::rde::oo ; # TODO - Define this class. 29 # Or can we inherit from a snit 30 # class too ? 31 32 method parse {channel} { 33 my reset $channel 34 my MAIN ; # Entrypoint for the generated code. 35 return [my complete] 36 } 37 38 method parset {text} { 39 my reset 40 my data $text 41 my MAIN ; # Entrypoint for the generated code. 42 return [my complete] 43 } 44 45 # # ## ### ###### ######## ############# 46 ## BEGIN of GENERATED CODE. DO NOT EDIT. 47 48 # 49 # Grammar Start Expression 50 # 51 52 method MAIN {} { 53 my sym_Grammar 54 return 55 } 56 57 # 58 # leaf Symbol 'ALNUM' 59 # 60 61 method sym_ALNUM {} { 62 # x 63 # "<alnum>" 64 # (WHITESPACE) 65 66 my si:void_symbol_start ALNUM 67 my sequence_4 68 my si:void_leaf_symbol_end ALNUM 69 return 70 } 71 72 method sequence_4 {} { 73 # x 74 # "<alnum>" 75 # (WHITESPACE) 76 77 my si:void_state_push 78 my si:next_str <alnum> 79 my si:voidvoid_part 80 my sym_WHITESPACE 81 my si:void_state_merge 82 return 83 } 84 85 # 86 # leaf Symbol 'ALPHA' 87 # 88 89 method sym_ALPHA {} { 90 # x 91 # "<alpha>" 92 # (WHITESPACE) 93 94 my si:void_symbol_start ALPHA 95 my sequence_9 96 my si:void_leaf_symbol_end ALPHA 97 return 98 } 99 100 method sequence_9 {} { 101 # x 102 # "<alpha>" 103 # (WHITESPACE) 104 105 my si:void_state_push 106 my si:next_str <alpha> 107 my si:voidvoid_part 108 my sym_WHITESPACE 109 my si:void_state_merge 110 return 111 } 112 113 # 114 # leaf Symbol 'AND' 115 # 116 117 method sym_AND {} { 118 # x 119 # '&' 120 # (WHITESPACE) 121 122 my si:void_symbol_start AND 123 my sequence_14 124 my si:void_leaf_symbol_end AND 125 return 126 } 127 128 method sequence_14 {} { 129 # x 130 # '&' 131 # (WHITESPACE) 132 133 my si:void_state_push 134 my si:next_char & 135 my si:voidvoid_part 136 my sym_WHITESPACE 137 my si:void_state_merge 138 return 139 } 140 141 # 142 # void Symbol 'APOSTROPH' 143 # 144 145 method sym_APOSTROPH {} { 146 # ''' 147 148 my si:void_void_symbol_start APOSTROPH 149 my si:next_char ' 150 my si:void_clear_symbol_end APOSTROPH 151 return 152 } 153 154 # 155 # leaf Symbol 'ASCII' 156 # 157 158 method sym_ASCII {} { 159 # x 160 # "<ascii>" 161 # (WHITESPACE) 162 163 my si:void_symbol_start ASCII 164 my sequence_21 165 my si:void_leaf_symbol_end ASCII 166 return 167 } 168 169 method sequence_21 {} { 170 # x 171 # "<ascii>" 172 # (WHITESPACE) 173 174 my si:void_state_push 175 my si:next_str <ascii> 176 my si:voidvoid_part 177 my sym_WHITESPACE 178 my si:void_state_merge 179 return 180 } 181 182 # 183 # value Symbol 'Attribute' 184 # 185 186 method sym_Attribute {} { 187 # x 188 # / 189 # (VOID) 190 # (LEAF) 191 # (COLON) 192 193 my si:value_symbol_start Attribute 194 my sequence_29 195 my si:reduce_symbol_end Attribute 196 return 197 } 198 199 method sequence_29 {} { 200 # x 201 # / 202 # (VOID) 203 # (LEAF) 204 # (COLON) 205 206 my si:value_state_push 207 my choice_26 208 my si:valuevalue_part 209 my sym_COLON 210 my si:value_state_merge 211 return 212 } 213 214 method choice_26 {} { 215 # / 216 # (VOID) 217 # (LEAF) 218 219 my si:value_state_push 220 my sym_VOID 221 my si:valuevalue_branch 222 my sym_LEAF 223 my si:value_state_merge 224 return 225 } 226 227 # 228 # value Symbol 'Char' 229 # 230 231 method sym_Char {} { 232 # / 233 # (CharSpecial) 234 # (CharOctalFull) 235 # (CharOctalPart) 236 # (CharUnicode) 237 # (CharUnescaped) 238 239 my si:value_symbol_start Char 240 my choice_37 241 my si:reduce_symbol_end Char 242 return 243 } 244 245 method choice_37 {} { 246 # / 247 # (CharSpecial) 248 # (CharOctalFull) 249 # (CharOctalPart) 250 # (CharUnicode) 251 # (CharUnescaped) 252 253 my si:value_state_push 254 my sym_CharSpecial 255 my si:valuevalue_branch 256 my sym_CharOctalFull 257 my si:valuevalue_branch 258 my sym_CharOctalPart 259 my si:valuevalue_branch 260 my sym_CharUnicode 261 my si:valuevalue_branch 262 my sym_CharUnescaped 263 my si:value_state_merge 264 return 265 } 266 267 # 268 # leaf Symbol 'CharOctalFull' 269 # 270 271 method sym_CharOctalFull {} { 272 # x 273 # '\' 274 # range (0 .. 2) 275 # range (0 .. 7) 276 # range (0 .. 7) 277 278 my si:void_symbol_start CharOctalFull 279 my sequence_44 280 my si:void_leaf_symbol_end CharOctalFull 281 return 282 } 283 284 method sequence_44 {} { 285 # x 286 # '\' 287 # range (0 .. 2) 288 # range (0 .. 7) 289 # range (0 .. 7) 290 291 my si:void_state_push 292 my si:next_char \134 293 my si:voidvoid_part 294 my si:next_range 0 2 295 my si:voidvoid_part 296 my si:next_range 0 7 297 my si:voidvoid_part 298 my si:next_range 0 7 299 my si:void_state_merge 300 return 301 } 302 303 # 304 # leaf Symbol 'CharOctalPart' 305 # 306 307 method sym_CharOctalPart {} { 308 # x 309 # '\' 310 # range (0 .. 7) 311 # ? 312 # range (0 .. 7) 313 314 my si:void_symbol_start CharOctalPart 315 my sequence_52 316 my si:void_leaf_symbol_end CharOctalPart 317 return 318 } 319 320 method sequence_52 {} { 321 # x 322 # '\' 323 # range (0 .. 7) 324 # ? 325 # range (0 .. 7) 326 327 my si:void_state_push 328 my si:next_char \134 329 my si:voidvoid_part 330 my si:next_range 0 7 331 my si:voidvoid_part 332 my optional_50 333 my si:void_state_merge 334 return 335 } 336 337 method optional_50 {} { 338 # ? 339 # range (0 .. 7) 340 341 my si:void2_state_push 342 my si:next_range 0 7 343 my si:void_state_merge_ok 344 return 345 } 346 347 # 348 # leaf Symbol 'CharSpecial' 349 # 350 351 method sym_CharSpecial {} { 352 # x 353 # '\' 354 # [nrt'\"[]\] 355 356 my si:void_symbol_start CharSpecial 357 my sequence_57 358 my si:void_leaf_symbol_end CharSpecial 359 return 360 } 361 362 method sequence_57 {} { 363 # x 364 # '\' 365 # [nrt'\"[]\] 366 367 my si:void_state_push 368 my si:next_char \134 369 my si:voidvoid_part 370 my si:next_class nrt'\42\133\135\134 371 my si:void_state_merge 372 return 373 } 374 375 # 376 # leaf Symbol 'CharUnescaped' 377 # 378 379 method sym_CharUnescaped {} { 380 # x 381 # ! 382 # '\' 383 # <dot> 384 385 my si:void_symbol_start CharUnescaped 386 my sequence_64 387 my si:void_leaf_symbol_end CharUnescaped 388 return 389 } 390 391 method sequence_64 {} { 392 # x 393 # ! 394 # '\' 395 # <dot> 396 397 my si:void_state_push 398 my notahead_61 399 my si:voidvoid_part 400 my i_input_next dot 401 my si:void_state_merge 402 return 403 } 404 405 method notahead_61 {} { 406 # ! 407 # '\' 408 409 my i_loc_push 410 my si:next_char \134 411 my si:void_notahead_exit 412 return 413 } 414 415 # 416 # leaf Symbol 'CharUnicode' 417 # 418 419 method sym_CharUnicode {} { 420 # x 421 # "\u" 422 # <xdigit> 423 # ? 424 # x 425 # <xdigit> 426 # ? 427 # x 428 # <xdigit> 429 # ? 430 # <xdigit> 431 432 my si:void_symbol_start CharUnicode 433 my sequence_82 434 my si:void_leaf_symbol_end CharUnicode 435 return 436 } 437 438 method sequence_82 {} { 439 # x 440 # "\u" 441 # <xdigit> 442 # ? 443 # x 444 # <xdigit> 445 # ? 446 # x 447 # <xdigit> 448 # ? 449 # <xdigit> 450 451 my si:void_state_push 452 my si:next_str \134u 453 my si:voidvoid_part 454 my si:next_xdigit 455 my si:voidvoid_part 456 my optional_80 457 my si:void_state_merge 458 return 459 } 460 461 method optional_80 {} { 462 # ? 463 # x 464 # <xdigit> 465 # ? 466 # x 467 # <xdigit> 468 # ? 469 # <xdigit> 470 471 my si:void2_state_push 472 my sequence_78 473 my si:void_state_merge_ok 474 return 475 } 476 477 method sequence_78 {} { 478 # x 479 # <xdigit> 480 # ? 481 # x 482 # <xdigit> 483 # ? 484 # <xdigit> 485 486 my si:void_state_push 487 my si:next_xdigit 488 my si:voidvoid_part 489 my optional_76 490 my si:void_state_merge 491 return 492 } 493 494 method optional_76 {} { 495 # ? 496 # x 497 # <xdigit> 498 # ? 499 # <xdigit> 500 501 my si:void2_state_push 502 my sequence_74 503 my si:void_state_merge_ok 504 return 505 } 506 507 method sequence_74 {} { 508 # x 509 # <xdigit> 510 # ? 511 # <xdigit> 512 513 my si:void_state_push 514 my si:next_xdigit 515 my si:voidvoid_part 516 my optional_72 517 my si:void_state_merge 518 return 519 } 520 521 method optional_72 {} { 522 # ? 523 # <xdigit> 524 525 my si:void2_state_push 526 my si:next_xdigit 527 my si:void_state_merge_ok 528 return 529 } 530 531 # 532 # value Symbol 'Class' 533 # 534 535 method sym_Class {} { 536 # x 537 # (OPENB) 538 # * 539 # x 540 # ! 541 # (CLOSEB) 542 # (Range) 543 # (CLOSEB) 544 # (WHITESPACE) 545 546 my si:value_symbol_start Class 547 my sequence_96 548 my si:reduce_symbol_end Class 549 return 550 } 551 552 method sequence_96 {} { 553 # x 554 # (OPENB) 555 # * 556 # x 557 # ! 558 # (CLOSEB) 559 # (Range) 560 # (CLOSEB) 561 # (WHITESPACE) 562 563 my si:void_state_push 564 my sym_OPENB 565 my si:voidvalue_part 566 my kleene_92 567 my si:valuevalue_part 568 my sym_CLOSEB 569 my si:valuevalue_part 570 my sym_WHITESPACE 571 my si:value_state_merge 572 return 573 } 574 575 method kleene_92 {} { 576 # * 577 # x 578 # ! 579 # (CLOSEB) 580 # (Range) 581 582 while {1} { 583 my si:void2_state_push 584 my sequence_90 585 my si:kleene_close 586 } 587 return 588 } 589 590 method sequence_90 {} { 591 # x 592 # ! 593 # (CLOSEB) 594 # (Range) 595 596 my si:void_state_push 597 my notahead_87 598 my si:voidvalue_part 599 my sym_Range 600 my si:value_state_merge 601 return 602 } 603 604 method notahead_87 {} { 605 # ! 606 # (CLOSEB) 607 608 my i_loc_push 609 my sym_CLOSEB 610 my si:void_notahead_exit 611 return 612 } 613 614 # 615 # void Symbol 'CLOSE' 616 # 617 618 method sym_CLOSE {} { 619 # x 620 # '\)' 621 # (WHITESPACE) 622 623 my si:void_void_symbol_start CLOSE 624 my sequence_101 625 my si:void_clear_symbol_end CLOSE 626 return 627 } 628 629 method sequence_101 {} { 630 # x 631 # '\)' 632 # (WHITESPACE) 633 634 my si:void_state_push 635 my si:next_char \51 636 my si:voidvoid_part 637 my sym_WHITESPACE 638 my si:void_state_merge 639 return 640 } 641 642 # 643 # void Symbol 'CLOSEB' 644 # 645 646 method sym_CLOSEB {} { 647 # ']' 648 649 my si:void_void_symbol_start CLOSEB 650 my si:next_char \135 651 my si:void_clear_symbol_end CLOSEB 652 return 653 } 654 655 # 656 # void Symbol 'COLON' 657 # 658 659 method sym_COLON {} { 660 # x 661 # ':' 662 # (WHITESPACE) 663 664 my si:void_void_symbol_start COLON 665 my sequence_108 666 my si:void_clear_symbol_end COLON 667 return 668 } 669 670 method sequence_108 {} { 671 # x 672 # ':' 673 # (WHITESPACE) 674 675 my si:void_state_push 676 my si:next_char : 677 my si:voidvoid_part 678 my sym_WHITESPACE 679 my si:void_state_merge 680 return 681 } 682 683 # 684 # void Symbol 'COMMENT' 685 # 686 687 method sym_COMMENT {} { 688 # x 689 # '#' 690 # * 691 # x 692 # ! 693 # (EOL) 694 # <dot> 695 # (EOL) 696 697 my si:void_void_symbol_start COMMENT 698 my sequence_121 699 my si:void_clear_symbol_end COMMENT 700 return 701 } 702 703 method sequence_121 {} { 704 # x 705 # '#' 706 # * 707 # x 708 # ! 709 # (EOL) 710 # <dot> 711 # (EOL) 712 713 my si:void_state_push 714 my si:next_char # 715 my si:voidvoid_part 716 my kleene_118 717 my si:voidvoid_part 718 my sym_EOL 719 my si:void_state_merge 720 return 721 } 722 723 method kleene_118 {} { 724 # * 725 # x 726 # ! 727 # (EOL) 728 # <dot> 729 730 while {1} { 731 my si:void2_state_push 732 my sequence_116 733 my si:kleene_close 734 } 735 return 736 } 737 738 method sequence_116 {} { 739 # x 740 # ! 741 # (EOL) 742 # <dot> 743 744 my si:void_state_push 745 my notahead_113 746 my si:voidvoid_part 747 my i_input_next dot 748 my si:void_state_merge 749 return 750 } 751 752 method notahead_113 {} { 753 # ! 754 # (EOL) 755 756 my i_loc_push 757 my sym_EOL 758 my si:void_notahead_exit 759 return 760 } 761 762 # 763 # leaf Symbol 'CONTROL' 764 # 765 766 method sym_CONTROL {} { 767 # x 768 # "<control>" 769 # (WHITESPACE) 770 771 my si:void_symbol_start CONTROL 772 my sequence_126 773 my si:void_leaf_symbol_end CONTROL 774 return 775 } 776 777 method sequence_126 {} { 778 # x 779 # "<control>" 780 # (WHITESPACE) 781 782 my si:void_state_push 783 my si:next_str <control> 784 my si:voidvoid_part 785 my sym_WHITESPACE 786 my si:void_state_merge 787 return 788 } 789 790 # 791 # void Symbol 'DAPOSTROPH' 792 # 793 794 method sym_DAPOSTROPH {} { 795 # '\"' 796 797 my si:void_void_symbol_start DAPOSTROPH 798 my si:next_char \42 799 my si:void_clear_symbol_end DAPOSTROPH 800 return 801 } 802 803 # 804 # leaf Symbol 'DDIGIT' 805 # 806 807 method sym_DDIGIT {} { 808 # x 809 # "<ddigit>" 810 # (WHITESPACE) 811 812 my si:void_symbol_start DDIGIT 813 my sequence_133 814 my si:void_leaf_symbol_end DDIGIT 815 return 816 } 817 818 method sequence_133 {} { 819 # x 820 # "<ddigit>" 821 # (WHITESPACE) 822 823 my si:void_state_push 824 my si:next_str <ddigit> 825 my si:voidvoid_part 826 my sym_WHITESPACE 827 my si:void_state_merge 828 return 829 } 830 831 # 832 # value Symbol 'Definition' 833 # 834 835 method sym_Definition {} { 836 # x 837 # ? 838 # (Attribute) 839 # (Identifier) 840 # (IS) 841 # (Expression) 842 # (SEMICOLON) 843 844 my si:value_symbol_start Definition 845 my sequence_143 846 my si:reduce_symbol_end Definition 847 return 848 } 849 850 method sequence_143 {} { 851 # x 852 # ? 853 # (Attribute) 854 # (Identifier) 855 # (IS) 856 # (Expression) 857 # (SEMICOLON) 858 859 my si:value_state_push 860 my optional_137 861 my si:valuevalue_part 862 my sym_Identifier 863 my si:valuevalue_part 864 my sym_IS 865 my si:valuevalue_part 866 my sym_Expression 867 my si:valuevalue_part 868 my sym_SEMICOLON 869 my si:value_state_merge 870 return 871 } 872 873 method optional_137 {} { 874 # ? 875 # (Attribute) 876 877 my si:void2_state_push 878 my sym_Attribute 879 my si:void_state_merge_ok 880 return 881 } 882 883 # 884 # leaf Symbol 'DIGIT' 885 # 886 887 method sym_DIGIT {} { 888 # x 889 # "<digit>" 890 # (WHITESPACE) 891 892 my si:void_symbol_start DIGIT 893 my sequence_148 894 my si:void_leaf_symbol_end DIGIT 895 return 896 } 897 898 method sequence_148 {} { 899 # x 900 # "<digit>" 901 # (WHITESPACE) 902 903 my si:void_state_push 904 my si:next_str <digit> 905 my si:voidvoid_part 906 my sym_WHITESPACE 907 my si:void_state_merge 908 return 909 } 910 911 # 912 # leaf Symbol 'DOT' 913 # 914 915 method sym_DOT {} { 916 # x 917 # '.' 918 # (WHITESPACE) 919 920 my si:void_symbol_start DOT 921 my sequence_153 922 my si:void_leaf_symbol_end DOT 923 return 924 } 925 926 method sequence_153 {} { 927 # x 928 # '.' 929 # (WHITESPACE) 930 931 my si:void_state_push 932 my si:next_char . 933 my si:voidvoid_part 934 my sym_WHITESPACE 935 my si:void_state_merge 936 return 937 } 938 939 # 940 # void Symbol 'END' 941 # 942 943 method sym_END {} { 944 # x 945 # "END" 946 # (WHITESPACE) 947 948 my si:void_void_symbol_start END 949 my sequence_158 950 my si:void_clear_symbol_end END 951 return 952 } 953 954 method sequence_158 {} { 955 # x 956 # "END" 957 # (WHITESPACE) 958 959 my si:void_state_push 960 my si:next_str END 961 my si:voidvoid_part 962 my sym_WHITESPACE 963 my si:void_state_merge 964 return 965 } 966 967 # 968 # void Symbol 'EOF' 969 # 970 971 method sym_EOF {} { 972 # ! 973 # <dot> 974 975 my si:void_void_symbol_start EOF 976 my notahead_162 977 my si:void_clear_symbol_end EOF 978 return 979 } 980 981 method notahead_162 {} { 982 # ! 983 # <dot> 984 985 my i_loc_push 986 my i_input_next dot 987 my si:void_notahead_exit 988 return 989 } 990 991 # 992 # void Symbol 'EOL' 993 # 994 995 method sym_EOL {} { 996 # [\n\r] 997 998 my si:void_void_symbol_start EOL 999 my si:next_class \n\r 1000 my si:void_clear_symbol_end EOL 1001 return 1002 } 1003 1004 # 1005 # value Symbol 'Expression' 1006 # 1007 1008 method sym_Expression {} { 1009 # x 1010 # (Sequence) 1011 # * 1012 # x 1013 # (SLASH) 1014 # (Sequence) 1015 1016 my si:value_symbol_start Expression 1017 my sequence_174 1018 my si:reduce_symbol_end Expression 1019 return 1020 } 1021 1022 method sequence_174 {} { 1023 # x 1024 # (Sequence) 1025 # * 1026 # x 1027 # (SLASH) 1028 # (Sequence) 1029 1030 my si:value_state_push 1031 my sym_Sequence 1032 my si:valuevalue_part 1033 my kleene_172 1034 my si:value_state_merge 1035 return 1036 } 1037 1038 method kleene_172 {} { 1039 # * 1040 # x 1041 # (SLASH) 1042 # (Sequence) 1043 1044 while {1} { 1045 my si:void2_state_push 1046 my sequence_170 1047 my si:kleene_close 1048 } 1049 return 1050 } 1051 1052 method sequence_170 {} { 1053 # x 1054 # (SLASH) 1055 # (Sequence) 1056 1057 my si:void_state_push 1058 my sym_SLASH 1059 my si:voidvalue_part 1060 my sym_Sequence 1061 my si:value_state_merge 1062 return 1063 } 1064 1065 # 1066 # void Symbol 'Final' 1067 # 1068 1069 method sym_Final {} { 1070 # x 1071 # (END) 1072 # (SEMICOLON) 1073 # (WHITESPACE) 1074 1075 my si:void_void_symbol_start Final 1076 my sequence_180 1077 my si:void_clear_symbol_end Final 1078 return 1079 } 1080 1081 method sequence_180 {} { 1082 # x 1083 # (END) 1084 # (SEMICOLON) 1085 # (WHITESPACE) 1086 1087 my si:void_state_push 1088 my sym_END 1089 my si:voidvoid_part 1090 my sym_SEMICOLON 1091 my si:voidvoid_part 1092 my sym_WHITESPACE 1093 my si:void_state_merge 1094 return 1095 } 1096 1097 # 1098 # value Symbol 'Grammar' 1099 # 1100 1101 method sym_Grammar {} { 1102 # x 1103 # (WHITESPACE) 1104 # (Header) 1105 # * 1106 # (Definition) 1107 # (Final) 1108 # (EOF) 1109 1110 my si:value_symbol_start Grammar 1111 my sequence_190 1112 my si:reduce_symbol_end Grammar 1113 return 1114 } 1115 1116 method sequence_190 {} { 1117 # x 1118 # (WHITESPACE) 1119 # (Header) 1120 # * 1121 # (Definition) 1122 # (Final) 1123 # (EOF) 1124 1125 my si:void_state_push 1126 my sym_WHITESPACE 1127 my si:voidvalue_part 1128 my sym_Header 1129 my si:valuevalue_part 1130 my kleene_186 1131 my si:valuevalue_part 1132 my sym_Final 1133 my si:valuevalue_part 1134 my sym_EOF 1135 my si:value_state_merge 1136 return 1137 } 1138 1139 method kleene_186 {} { 1140 # * 1141 # (Definition) 1142 1143 while {1} { 1144 my si:void2_state_push 1145 my sym_Definition 1146 my si:kleene_close 1147 } 1148 return 1149 } 1150 1151 # 1152 # leaf Symbol 'GRAPH' 1153 # 1154 1155 method sym_GRAPH {} { 1156 # x 1157 # "<graph>" 1158 # (WHITESPACE) 1159 1160 my si:void_symbol_start GRAPH 1161 my sequence_195 1162 my si:void_leaf_symbol_end GRAPH 1163 return 1164 } 1165 1166 method sequence_195 {} { 1167 # x 1168 # "<graph>" 1169 # (WHITESPACE) 1170 1171 my si:void_state_push 1172 my si:next_str <graph> 1173 my si:voidvoid_part 1174 my sym_WHITESPACE 1175 my si:void_state_merge 1176 return 1177 } 1178 1179 # 1180 # value Symbol 'Header' 1181 # 1182 1183 method sym_Header {} { 1184 # x 1185 # (PEG) 1186 # (Identifier) 1187 # (StartExpr) 1188 1189 my si:value_symbol_start Header 1190 my sequence_201 1191 my si:reduce_symbol_end Header 1192 return 1193 } 1194 1195 method sequence_201 {} { 1196 # x 1197 # (PEG) 1198 # (Identifier) 1199 # (StartExpr) 1200 1201 my si:void_state_push 1202 my sym_PEG 1203 my si:voidvalue_part 1204 my sym_Identifier 1205 my si:valuevalue_part 1206 my sym_StartExpr 1207 my si:value_state_merge 1208 return 1209 } 1210 1211 # 1212 # leaf Symbol 'Ident' 1213 # 1214 1215 method sym_Ident {} { 1216 # x 1217 # / 1218 # [_:] 1219 # <alpha> 1220 # * 1221 # / 1222 # [_:] 1223 # <alnum> 1224 1225 my si:void_symbol_start Ident 1226 my sequence_214 1227 my si:void_leaf_symbol_end Ident 1228 return 1229 } 1230 1231 method sequence_214 {} { 1232 # x 1233 # / 1234 # [_:] 1235 # <alpha> 1236 # * 1237 # / 1238 # [_:] 1239 # <alnum> 1240 1241 my si:void_state_push 1242 my choice_206 1243 my si:voidvoid_part 1244 my kleene_212 1245 my si:void_state_merge 1246 return 1247 } 1248 1249 method choice_206 {} { 1250 # / 1251 # [_:] 1252 # <alpha> 1253 1254 my si:void_state_push 1255 my si:next_class _: 1256 my si:voidvoid_branch 1257 my si:next_alpha 1258 my si:void_state_merge 1259 return 1260 } 1261 1262 method kleene_212 {} { 1263 # * 1264 # / 1265 # [_:] 1266 # <alnum> 1267 1268 while {1} { 1269 my si:void2_state_push 1270 my choice_210 1271 my si:kleene_close 1272 } 1273 return 1274 } 1275 1276 method choice_210 {} { 1277 # / 1278 # [_:] 1279 # <alnum> 1280 1281 my si:void_state_push 1282 my si:next_class _: 1283 my si:voidvoid_branch 1284 my si:next_alnum 1285 my si:void_state_merge 1286 return 1287 } 1288 1289 # 1290 # value Symbol 'Identifier' 1291 # 1292 1293 method sym_Identifier {} { 1294 # x 1295 # (Ident) 1296 # (WHITESPACE) 1297 1298 my si:value_symbol_start Identifier 1299 my sequence_219 1300 my si:reduce_symbol_end Identifier 1301 return 1302 } 1303 1304 method sequence_219 {} { 1305 # x 1306 # (Ident) 1307 # (WHITESPACE) 1308 1309 my si:value_state_push 1310 my sym_Ident 1311 my si:valuevalue_part 1312 my sym_WHITESPACE 1313 my si:value_state_merge 1314 return 1315 } 1316 1317 # 1318 # void Symbol 'IS' 1319 # 1320 1321 method sym_IS {} { 1322 # x 1323 # "<-" 1324 # (WHITESPACE) 1325 1326 my si:void_void_symbol_start IS 1327 my sequence_224 1328 my si:void_clear_symbol_end IS 1329 return 1330 } 1331 1332 method sequence_224 {} { 1333 # x 1334 # "<-" 1335 # (WHITESPACE) 1336 1337 my si:void_state_push 1338 my si:next_str <- 1339 my si:voidvoid_part 1340 my sym_WHITESPACE 1341 my si:void_state_merge 1342 return 1343 } 1344 1345 # 1346 # leaf Symbol 'LEAF' 1347 # 1348 1349 method sym_LEAF {} { 1350 # x 1351 # "leaf" 1352 # (WHITESPACE) 1353 1354 my si:void_symbol_start LEAF 1355 my sequence_229 1356 my si:void_leaf_symbol_end LEAF 1357 return 1358 } 1359 1360 method sequence_229 {} { 1361 # x 1362 # "leaf" 1363 # (WHITESPACE) 1364 1365 my si:void_state_push 1366 my si:next_str leaf 1367 my si:voidvoid_part 1368 my sym_WHITESPACE 1369 my si:void_state_merge 1370 return 1371 } 1372 1373 # 1374 # value Symbol 'Literal' 1375 # 1376 1377 method sym_Literal {} { 1378 # / 1379 # x 1380 # (APOSTROPH) 1381 # * 1382 # x 1383 # ! 1384 # (APOSTROPH) 1385 # (Char) 1386 # (APOSTROPH) 1387 # (WHITESPACE) 1388 # x 1389 # (DAPOSTROPH) 1390 # * 1391 # x 1392 # ! 1393 # (DAPOSTROPH) 1394 # (Char) 1395 # (DAPOSTROPH) 1396 # (WHITESPACE) 1397 1398 my si:value_symbol_start Literal 1399 my choice_258 1400 my si:reduce_symbol_end Literal 1401 return 1402 } 1403 1404 method choice_258 {} { 1405 # / 1406 # x 1407 # (APOSTROPH) 1408 # * 1409 # x 1410 # ! 1411 # (APOSTROPH) 1412 # (Char) 1413 # (APOSTROPH) 1414 # (WHITESPACE) 1415 # x 1416 # (DAPOSTROPH) 1417 # * 1418 # x 1419 # ! 1420 # (DAPOSTROPH) 1421 # (Char) 1422 # (DAPOSTROPH) 1423 # (WHITESPACE) 1424 1425 my si:value_state_push 1426 my sequence_243 1427 my si:valuevalue_branch 1428 my sequence_256 1429 my si:value_state_merge 1430 return 1431 } 1432 1433 method sequence_243 {} { 1434 # x 1435 # (APOSTROPH) 1436 # * 1437 # x 1438 # ! 1439 # (APOSTROPH) 1440 # (Char) 1441 # (APOSTROPH) 1442 # (WHITESPACE) 1443 1444 my si:void_state_push 1445 my sym_APOSTROPH 1446 my si:voidvalue_part 1447 my kleene_239 1448 my si:valuevalue_part 1449 my sym_APOSTROPH 1450 my si:valuevalue_part 1451 my sym_WHITESPACE 1452 my si:value_state_merge 1453 return 1454 } 1455 1456 method kleene_239 {} { 1457 # * 1458 # x 1459 # ! 1460 # (APOSTROPH) 1461 # (Char) 1462 1463 while {1} { 1464 my si:void2_state_push 1465 my sequence_237 1466 my si:kleene_close 1467 } 1468 return 1469 } 1470 1471 method sequence_237 {} { 1472 # x 1473 # ! 1474 # (APOSTROPH) 1475 # (Char) 1476 1477 my si:void_state_push 1478 my notahead_234 1479 my si:voidvalue_part 1480 my sym_Char 1481 my si:value_state_merge 1482 return 1483 } 1484 1485 method notahead_234 {} { 1486 # ! 1487 # (APOSTROPH) 1488 1489 my i_loc_push 1490 my sym_APOSTROPH 1491 my si:void_notahead_exit 1492 return 1493 } 1494 1495 method sequence_256 {} { 1496 # x 1497 # (DAPOSTROPH) 1498 # * 1499 # x 1500 # ! 1501 # (DAPOSTROPH) 1502 # (Char) 1503 # (DAPOSTROPH) 1504 # (WHITESPACE) 1505 1506 my si:void_state_push 1507 my sym_DAPOSTROPH 1508 my si:voidvalue_part 1509 my kleene_252 1510 my si:valuevalue_part 1511 my sym_DAPOSTROPH 1512 my si:valuevalue_part 1513 my sym_WHITESPACE 1514 my si:value_state_merge 1515 return 1516 } 1517 1518 method kleene_252 {} { 1519 # * 1520 # x 1521 # ! 1522 # (DAPOSTROPH) 1523 # (Char) 1524 1525 while {1} { 1526 my si:void2_state_push 1527 my sequence_250 1528 my si:kleene_close 1529 } 1530 return 1531 } 1532 1533 method sequence_250 {} { 1534 # x 1535 # ! 1536 # (DAPOSTROPH) 1537 # (Char) 1538 1539 my si:void_state_push 1540 my notahead_247 1541 my si:voidvalue_part 1542 my sym_Char 1543 my si:value_state_merge 1544 return 1545 } 1546 1547 method notahead_247 {} { 1548 # ! 1549 # (DAPOSTROPH) 1550 1551 my i_loc_push 1552 my sym_DAPOSTROPH 1553 my si:void_notahead_exit 1554 return 1555 } 1556 1557 # 1558 # leaf Symbol 'LOWER' 1559 # 1560 1561 method sym_LOWER {} { 1562 # x 1563 # "<lower>" 1564 # (WHITESPACE) 1565 1566 my si:void_symbol_start LOWER 1567 my sequence_263 1568 my si:void_leaf_symbol_end LOWER 1569 return 1570 } 1571 1572 method sequence_263 {} { 1573 # x 1574 # "<lower>" 1575 # (WHITESPACE) 1576 1577 my si:void_state_push 1578 my si:next_str <lower> 1579 my si:voidvoid_part 1580 my sym_WHITESPACE 1581 my si:void_state_merge 1582 return 1583 } 1584 1585 # 1586 # leaf Symbol 'NOT' 1587 # 1588 1589 method sym_NOT {} { 1590 # x 1591 # '!' 1592 # (WHITESPACE) 1593 1594 my si:void_symbol_start NOT 1595 my sequence_268 1596 my si:void_leaf_symbol_end NOT 1597 return 1598 } 1599 1600 method sequence_268 {} { 1601 # x 1602 # '!' 1603 # (WHITESPACE) 1604 1605 my si:void_state_push 1606 my si:next_char ! 1607 my si:voidvoid_part 1608 my sym_WHITESPACE 1609 my si:void_state_merge 1610 return 1611 } 1612 1613 # 1614 # void Symbol 'OPEN' 1615 # 1616 1617 method sym_OPEN {} { 1618 # x 1619 # '\(' 1620 # (WHITESPACE) 1621 1622 my si:void_void_symbol_start OPEN 1623 my sequence_273 1624 my si:void_clear_symbol_end OPEN 1625 return 1626 } 1627 1628 method sequence_273 {} { 1629 # x 1630 # '\(' 1631 # (WHITESPACE) 1632 1633 my si:void_state_push 1634 my si:next_char \50 1635 my si:voidvoid_part 1636 my sym_WHITESPACE 1637 my si:void_state_merge 1638 return 1639 } 1640 1641 # 1642 # void Symbol 'OPENB' 1643 # 1644 1645 method sym_OPENB {} { 1646 # '[' 1647 1648 my si:void_void_symbol_start OPENB 1649 my si:next_char \133 1650 my si:void_clear_symbol_end OPENB 1651 return 1652 } 1653 1654 # 1655 # void Symbol 'PEG' 1656 # 1657 1658 method sym_PEG {} { 1659 # x 1660 # "PEG" 1661 # (WHITESPACE) 1662 1663 my si:void_void_symbol_start PEG 1664 my sequence_280 1665 my si:void_clear_symbol_end PEG 1666 return 1667 } 1668 1669 method sequence_280 {} { 1670 # x 1671 # "PEG" 1672 # (WHITESPACE) 1673 1674 my si:void_state_push 1675 my si:next_str PEG 1676 my si:voidvoid_part 1677 my sym_WHITESPACE 1678 my si:void_state_merge 1679 return 1680 } 1681 1682 # 1683 # leaf Symbol 'PLUS' 1684 # 1685 1686 method sym_PLUS {} { 1687 # x 1688 # '+' 1689 # (WHITESPACE) 1690 1691 my si:void_symbol_start PLUS 1692 my sequence_285 1693 my si:void_leaf_symbol_end PLUS 1694 return 1695 } 1696 1697 method sequence_285 {} { 1698 # x 1699 # '+' 1700 # (WHITESPACE) 1701 1702 my si:void_state_push 1703 my si:next_char + 1704 my si:voidvoid_part 1705 my sym_WHITESPACE 1706 my si:void_state_merge 1707 return 1708 } 1709 1710 # 1711 # value Symbol 'Prefix' 1712 # 1713 1714 method sym_Prefix {} { 1715 # x 1716 # ? 1717 # / 1718 # (AND) 1719 # (NOT) 1720 # (Suffix) 1721 1722 my si:value_symbol_start Prefix 1723 my sequence_295 1724 my si:reduce_symbol_end Prefix 1725 return 1726 } 1727 1728 method sequence_295 {} { 1729 # x 1730 # ? 1731 # / 1732 # (AND) 1733 # (NOT) 1734 # (Suffix) 1735 1736 my si:value_state_push 1737 my optional_292 1738 my si:valuevalue_part 1739 my sym_Suffix 1740 my si:value_state_merge 1741 return 1742 } 1743 1744 method optional_292 {} { 1745 # ? 1746 # / 1747 # (AND) 1748 # (NOT) 1749 1750 my si:void2_state_push 1751 my choice_290 1752 my si:void_state_merge_ok 1753 return 1754 } 1755 1756 method choice_290 {} { 1757 # / 1758 # (AND) 1759 # (NOT) 1760 1761 my si:value_state_push 1762 my sym_AND 1763 my si:valuevalue_branch 1764 my sym_NOT 1765 my si:value_state_merge 1766 return 1767 } 1768 1769 # 1770 # value Symbol 'Primary' 1771 # 1772 1773 method sym_Primary {} { 1774 # / 1775 # (ALNUM) 1776 # (ALPHA) 1777 # (ASCII) 1778 # (CONTROL) 1779 # (DDIGIT) 1780 # (DIGIT) 1781 # (GRAPH) 1782 # (LOWER) 1783 # (PRINTABLE) 1784 # (PUNCT) 1785 # (SPACE) 1786 # (UPPER) 1787 # (WORDCHAR) 1788 # (XDIGIT) 1789 # (Identifier) 1790 # x 1791 # (OPEN) 1792 # (Expression) 1793 # (CLOSE) 1794 # (Literal) 1795 # (Class) 1796 # (DOT) 1797 1798 my si:value_symbol_start Primary 1799 my choice_321 1800 my si:reduce_symbol_end Primary 1801 return 1802 } 1803 1804 method choice_321 {} { 1805 # / 1806 # (ALNUM) 1807 # (ALPHA) 1808 # (ASCII) 1809 # (CONTROL) 1810 # (DDIGIT) 1811 # (DIGIT) 1812 # (GRAPH) 1813 # (LOWER) 1814 # (PRINTABLE) 1815 # (PUNCT) 1816 # (SPACE) 1817 # (UPPER) 1818 # (WORDCHAR) 1819 # (XDIGIT) 1820 # (Identifier) 1821 # x 1822 # (OPEN) 1823 # (Expression) 1824 # (CLOSE) 1825 # (Literal) 1826 # (Class) 1827 # (DOT) 1828 1829 my si:value_state_push 1830 my sym_ALNUM 1831 my si:valuevalue_branch 1832 my sym_ALPHA 1833 my si:valuevalue_branch 1834 my sym_ASCII 1835 my si:valuevalue_branch 1836 my sym_CONTROL 1837 my si:valuevalue_branch 1838 my sym_DDIGIT 1839 my si:valuevalue_branch 1840 my sym_DIGIT 1841 my si:valuevalue_branch 1842 my sym_GRAPH 1843 my si:valuevalue_branch 1844 my sym_LOWER 1845 my si:valuevalue_branch 1846 my sym_PRINTABLE 1847 my si:valuevalue_branch 1848 my sym_PUNCT 1849 my si:valuevalue_branch 1850 my sym_SPACE 1851 my si:valuevalue_branch 1852 my sym_UPPER 1853 my si:valuevalue_branch 1854 my sym_WORDCHAR 1855 my si:valuevalue_branch 1856 my sym_XDIGIT 1857 my si:valuevalue_branch 1858 my sym_Identifier 1859 my si:valuevalue_branch 1860 my sequence_316 1861 my si:valuevalue_branch 1862 my sym_Literal 1863 my si:valuevalue_branch 1864 my sym_Class 1865 my si:valuevalue_branch 1866 my sym_DOT 1867 my si:value_state_merge 1868 return 1869 } 1870 1871 method sequence_316 {} { 1872 # x 1873 # (OPEN) 1874 # (Expression) 1875 # (CLOSE) 1876 1877 my si:void_state_push 1878 my sym_OPEN 1879 my si:voidvalue_part 1880 my sym_Expression 1881 my si:valuevalue_part 1882 my sym_CLOSE 1883 my si:value_state_merge 1884 return 1885 } 1886 1887 # 1888 # leaf Symbol 'PRINTABLE' 1889 # 1890 1891 method sym_PRINTABLE {} { 1892 # x 1893 # "<print>" 1894 # (WHITESPACE) 1895 1896 my si:void_symbol_start PRINTABLE 1897 my sequence_326 1898 my si:void_leaf_symbol_end PRINTABLE 1899 return 1900 } 1901 1902 method sequence_326 {} { 1903 # x 1904 # "<print>" 1905 # (WHITESPACE) 1906 1907 my si:void_state_push 1908 my si:next_str <print> 1909 my si:voidvoid_part 1910 my sym_WHITESPACE 1911 my si:void_state_merge 1912 return 1913 } 1914 1915 # 1916 # leaf Symbol 'PUNCT' 1917 # 1918 1919 method sym_PUNCT {} { 1920 # x 1921 # "<punct>" 1922 # (WHITESPACE) 1923 1924 my si:void_symbol_start PUNCT 1925 my sequence_331 1926 my si:void_leaf_symbol_end PUNCT 1927 return 1928 } 1929 1930 method sequence_331 {} { 1931 # x 1932 # "<punct>" 1933 # (WHITESPACE) 1934 1935 my si:void_state_push 1936 my si:next_str <punct> 1937 my si:voidvoid_part 1938 my sym_WHITESPACE 1939 my si:void_state_merge 1940 return 1941 } 1942 1943 # 1944 # leaf Symbol 'QUESTION' 1945 # 1946 1947 method sym_QUESTION {} { 1948 # x 1949 # '?' 1950 # (WHITESPACE) 1951 1952 my si:void_symbol_start QUESTION 1953 my sequence_336 1954 my si:void_leaf_symbol_end QUESTION 1955 return 1956 } 1957 1958 method sequence_336 {} { 1959 # x 1960 # '?' 1961 # (WHITESPACE) 1962 1963 my si:void_state_push 1964 my si:next_char ? 1965 my si:voidvoid_part 1966 my sym_WHITESPACE 1967 my si:void_state_merge 1968 return 1969 } 1970 1971 # 1972 # value Symbol 'Range' 1973 # 1974 1975 method sym_Range {} { 1976 # / 1977 # x 1978 # (Char) 1979 # (TO) 1980 # (Char) 1981 # (Char) 1982 1983 my si:value_symbol_start Range 1984 my choice_345 1985 my si:reduce_symbol_end Range 1986 return 1987 } 1988 1989 method choice_345 {} { 1990 # / 1991 # x 1992 # (Char) 1993 # (TO) 1994 # (Char) 1995 # (Char) 1996 1997 my si:value_state_push 1998 my sequence_342 1999 my si:valuevalue_branch 2000 my sym_Char 2001 my si:value_state_merge 2002 return 2003 } 2004 2005 method sequence_342 {} { 2006 # x 2007 # (Char) 2008 # (TO) 2009 # (Char) 2010 2011 my si:value_state_push 2012 my sym_Char 2013 my si:valuevalue_part 2014 my sym_TO 2015 my si:valuevalue_part 2016 my sym_Char 2017 my si:value_state_merge 2018 return 2019 } 2020 2021 # 2022 # void Symbol 'SEMICOLON' 2023 # 2024 2025 method sym_SEMICOLON {} { 2026 # x 2027 # ';' 2028 # (WHITESPACE) 2029 2030 my si:void_void_symbol_start SEMICOLON 2031 my sequence_350 2032 my si:void_clear_symbol_end SEMICOLON 2033 return 2034 } 2035 2036 method sequence_350 {} { 2037 # x 2038 # ';' 2039 # (WHITESPACE) 2040 2041 my si:void_state_push 2042 my si:next_char \73 2043 my si:voidvoid_part 2044 my sym_WHITESPACE 2045 my si:void_state_merge 2046 return 2047 } 2048 2049 # 2050 # value Symbol 'Sequence' 2051 # 2052 2053 method sym_Sequence {} { 2054 # + 2055 # (Prefix) 2056 2057 my si:value_symbol_start Sequence 2058 my poskleene_354 2059 my si:reduce_symbol_end Sequence 2060 return 2061 } 2062 2063 method poskleene_354 {} { 2064 # + 2065 # (Prefix) 2066 2067 my i_loc_push 2068 my sym_Prefix 2069 my si:kleene_abort 2070 while {1} { 2071 my si:void2_state_push 2072 my sym_Prefix 2073 my si:kleene_close 2074 } 2075 return 2076 } 2077 2078 # 2079 # void Symbol 'SLASH' 2080 # 2081 2082 method sym_SLASH {} { 2083 # x 2084 # '/' 2085 # (WHITESPACE) 2086 2087 my si:void_void_symbol_start SLASH 2088 my sequence_359 2089 my si:void_clear_symbol_end SLASH 2090 return 2091 } 2092 2093 method sequence_359 {} { 2094 # x 2095 # '/' 2096 # (WHITESPACE) 2097 2098 my si:void_state_push 2099 my si:next_char / 2100 my si:voidvoid_part 2101 my sym_WHITESPACE 2102 my si:void_state_merge 2103 return 2104 } 2105 2106 # 2107 # leaf Symbol 'SPACE' 2108 # 2109 2110 method sym_SPACE {} { 2111 # x 2112 # "<space>" 2113 # (WHITESPACE) 2114 2115 my si:void_symbol_start SPACE 2116 my sequence_364 2117 my si:void_leaf_symbol_end SPACE 2118 return 2119 } 2120 2121 method sequence_364 {} { 2122 # x 2123 # "<space>" 2124 # (WHITESPACE) 2125 2126 my si:void_state_push 2127 my si:next_str <space> 2128 my si:voidvoid_part 2129 my sym_WHITESPACE 2130 my si:void_state_merge 2131 return 2132 } 2133 2134 # 2135 # leaf Symbol 'STAR' 2136 # 2137 2138 method sym_STAR {} { 2139 # x 2140 # '*' 2141 # (WHITESPACE) 2142 2143 my si:void_symbol_start STAR 2144 my sequence_369 2145 my si:void_leaf_symbol_end STAR 2146 return 2147 } 2148 2149 method sequence_369 {} { 2150 # x 2151 # '*' 2152 # (WHITESPACE) 2153 2154 my si:void_state_push 2155 my si:next_char * 2156 my si:voidvoid_part 2157 my sym_WHITESPACE 2158 my si:void_state_merge 2159 return 2160 } 2161 2162 # 2163 # value Symbol 'StartExpr' 2164 # 2165 2166 method sym_StartExpr {} { 2167 # x 2168 # (OPEN) 2169 # (Expression) 2170 # (CLOSE) 2171 2172 my si:value_symbol_start StartExpr 2173 my sequence_316 2174 my si:reduce_symbol_end StartExpr 2175 return 2176 } 2177 2178 # 2179 # value Symbol 'Suffix' 2180 # 2181 2182 method sym_Suffix {} { 2183 # x 2184 # (Primary) 2185 # ? 2186 # / 2187 # (QUESTION) 2188 # (STAR) 2189 # (PLUS) 2190 2191 my si:value_symbol_start Suffix 2192 my sequence_385 2193 my si:reduce_symbol_end Suffix 2194 return 2195 } 2196 2197 method sequence_385 {} { 2198 # x 2199 # (Primary) 2200 # ? 2201 # / 2202 # (QUESTION) 2203 # (STAR) 2204 # (PLUS) 2205 2206 my si:value_state_push 2207 my sym_Primary 2208 my si:valuevalue_part 2209 my optional_383 2210 my si:value_state_merge 2211 return 2212 } 2213 2214 method optional_383 {} { 2215 # ? 2216 # / 2217 # (QUESTION) 2218 # (STAR) 2219 # (PLUS) 2220 2221 my si:void2_state_push 2222 my choice_381 2223 my si:void_state_merge_ok 2224 return 2225 } 2226 2227 method choice_381 {} { 2228 # / 2229 # (QUESTION) 2230 # (STAR) 2231 # (PLUS) 2232 2233 my si:value_state_push 2234 my sym_QUESTION 2235 my si:valuevalue_branch 2236 my sym_STAR 2237 my si:valuevalue_branch 2238 my sym_PLUS 2239 my si:value_state_merge 2240 return 2241 } 2242 2243 # 2244 # void Symbol 'TO' 2245 # 2246 2247 method sym_TO {} { 2248 # '-' 2249 2250 my si:void_void_symbol_start TO 2251 my si:next_char - 2252 my si:void_clear_symbol_end TO 2253 return 2254 } 2255 2256 # 2257 # leaf Symbol 'UPPER' 2258 # 2259 2260 method sym_UPPER {} { 2261 # x 2262 # "<upper>" 2263 # (WHITESPACE) 2264 2265 my si:void_symbol_start UPPER 2266 my sequence_392 2267 my si:void_leaf_symbol_end UPPER 2268 return 2269 } 2270 2271 method sequence_392 {} { 2272 # x 2273 # "<upper>" 2274 # (WHITESPACE) 2275 2276 my si:void_state_push 2277 my si:next_str <upper> 2278 my si:voidvoid_part 2279 my sym_WHITESPACE 2280 my si:void_state_merge 2281 return 2282 } 2283 2284 # 2285 # leaf Symbol 'VOID' 2286 # 2287 2288 method sym_VOID {} { 2289 # x 2290 # "void" 2291 # (WHITESPACE) 2292 2293 my si:void_symbol_start VOID 2294 my sequence_397 2295 my si:void_leaf_symbol_end VOID 2296 return 2297 } 2298 2299 method sequence_397 {} { 2300 # x 2301 # "void" 2302 # (WHITESPACE) 2303 2304 my si:void_state_push 2305 my si:next_str void 2306 my si:voidvoid_part 2307 my sym_WHITESPACE 2308 my si:void_state_merge 2309 return 2310 } 2311 2312 # 2313 # void Symbol 'WHITESPACE' 2314 # 2315 2316 method sym_WHITESPACE {} { 2317 # * 2318 # / 2319 # <space> 2320 # (COMMENT) 2321 2322 my si:void_void_symbol_start WHITESPACE 2323 my kleene_404 2324 my si:void_clear_symbol_end WHITESPACE 2325 return 2326 } 2327 2328 method kleene_404 {} { 2329 # * 2330 # / 2331 # <space> 2332 # (COMMENT) 2333 2334 while {1} { 2335 my si:void2_state_push 2336 my choice_402 2337 my si:kleene_close 2338 } 2339 return 2340 } 2341 2342 method choice_402 {} { 2343 # / 2344 # <space> 2345 # (COMMENT) 2346 2347 my si:void_state_push 2348 my si:next_space 2349 my si:voidvoid_branch 2350 my sym_COMMENT 2351 my si:void_state_merge 2352 return 2353 } 2354 2355 # 2356 # leaf Symbol 'WORDCHAR' 2357 # 2358 2359 method sym_WORDCHAR {} { 2360 # x 2361 # "<wordchar>" 2362 # (WHITESPACE) 2363 2364 my si:void_symbol_start WORDCHAR 2365 my sequence_409 2366 my si:void_leaf_symbol_end WORDCHAR 2367 return 2368 } 2369 2370 method sequence_409 {} { 2371 # x 2372 # "<wordchar>" 2373 # (WHITESPACE) 2374 2375 my si:void_state_push 2376 my si:next_str <wordchar> 2377 my si:voidvoid_part 2378 my sym_WHITESPACE 2379 my si:void_state_merge 2380 return 2381 } 2382 2383 # 2384 # leaf Symbol 'XDIGIT' 2385 # 2386 2387 method sym_XDIGIT {} { 2388 # x 2389 # "<xdigit>" 2390 # (WHITESPACE) 2391 2392 my si:void_symbol_start XDIGIT 2393 my sequence_414 2394 my si:void_leaf_symbol_end XDIGIT 2395 return 2396 } 2397 2398 method sequence_414 {} { 2399 # x 2400 # "<xdigit>" 2401 # (WHITESPACE) 2402 2403 my si:void_state_push 2404 my si:next_str <xdigit> 2405 my si:voidvoid_part 2406 my sym_WHITESPACE 2407 my si:void_state_merge 2408 return 2409 } 2410 2411 ## END of GENERATED CODE. DO NOT EDIT. 2412 # # ## ### ###### ######## ############# 2413} 2414 2415# # ## ### ##### ######## ############# ##################### 2416## Ready 2417 2418package provide OO_PACKAGE 1 2419return 2420