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 TclOO 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 'EOF' 941 # 942 943 method sym_EOF {} { 944 # ! 945 # <dot> 946 947 my si:void_void_symbol_start EOF 948 my notahead_157 949 my si:void_clear_symbol_end EOF 950 return 951 } 952 953 method notahead_157 {} { 954 # ! 955 # <dot> 956 957 my i_loc_push 958 my i_input_next dot 959 my si:void_notahead_exit 960 return 961 } 962 963 # 964 # void Symbol 'EOL' 965 # 966 967 method sym_EOL {} { 968 # [\n\r] 969 970 my si:void_void_symbol_start EOL 971 my si:next_class \n\r 972 my si:void_clear_symbol_end EOL 973 return 974 } 975 976 # 977 # value Symbol 'Expression' 978 # 979 980 method sym_Expression {} { 981 # x 982 # (Sequence) 983 # * 984 # x 985 # (SLASH) 986 # (Sequence) 987 988 my si:value_symbol_start Expression 989 my sequence_169 990 my si:reduce_symbol_end Expression 991 return 992 } 993 994 method sequence_169 {} { 995 # x 996 # (Sequence) 997 # * 998 # x 999 # (SLASH) 1000 # (Sequence) 1001 1002 my si:value_state_push 1003 my sym_Sequence 1004 my si:valuevalue_part 1005 my kleene_167 1006 my si:value_state_merge 1007 return 1008 } 1009 1010 method kleene_167 {} { 1011 # * 1012 # x 1013 # (SLASH) 1014 # (Sequence) 1015 1016 while {1} { 1017 my si:void2_state_push 1018 my sequence_165 1019 my si:kleene_close 1020 } 1021 return 1022 } 1023 1024 method sequence_165 {} { 1025 # x 1026 # (SLASH) 1027 # (Sequence) 1028 1029 my si:void_state_push 1030 my sym_SLASH 1031 my si:voidvalue_part 1032 my sym_Sequence 1033 my si:value_state_merge 1034 return 1035 } 1036 1037 # 1038 # void Symbol 'Final' 1039 # 1040 1041 method sym_Final {} { 1042 # x 1043 # "END" 1044 # (WHITESPACE) 1045 # (SEMICOLON) 1046 # (WHITESPACE) 1047 1048 my si:void_void_symbol_start Final 1049 my sequence_176 1050 my si:void_clear_symbol_end Final 1051 return 1052 } 1053 1054 method sequence_176 {} { 1055 # x 1056 # "END" 1057 # (WHITESPACE) 1058 # (SEMICOLON) 1059 # (WHITESPACE) 1060 1061 my si:void_state_push 1062 my si:next_str END 1063 my si:voidvoid_part 1064 my sym_WHITESPACE 1065 my si:voidvoid_part 1066 my sym_SEMICOLON 1067 my si:voidvoid_part 1068 my sym_WHITESPACE 1069 my si:void_state_merge 1070 return 1071 } 1072 1073 # 1074 # value Symbol 'Grammar' 1075 # 1076 1077 method sym_Grammar {} { 1078 # x 1079 # (WHITESPACE) 1080 # (Header) 1081 # * 1082 # (Definition) 1083 # (Final) 1084 # (EOF) 1085 1086 my si:value_symbol_start Grammar 1087 my sequence_186 1088 my si:reduce_symbol_end Grammar 1089 return 1090 } 1091 1092 method sequence_186 {} { 1093 # x 1094 # (WHITESPACE) 1095 # (Header) 1096 # * 1097 # (Definition) 1098 # (Final) 1099 # (EOF) 1100 1101 my si:void_state_push 1102 my sym_WHITESPACE 1103 my si:voidvalue_part 1104 my sym_Header 1105 my si:valuevalue_part 1106 my kleene_182 1107 my si:valuevalue_part 1108 my sym_Final 1109 my si:valuevalue_part 1110 my sym_EOF 1111 my si:value_state_merge 1112 return 1113 } 1114 1115 method kleene_182 {} { 1116 # * 1117 # (Definition) 1118 1119 while {1} { 1120 my si:void2_state_push 1121 my sym_Definition 1122 my si:kleene_close 1123 } 1124 return 1125 } 1126 1127 # 1128 # leaf Symbol 'GRAPH' 1129 # 1130 1131 method sym_GRAPH {} { 1132 # x 1133 # "<graph>" 1134 # (WHITESPACE) 1135 1136 my si:void_symbol_start GRAPH 1137 my sequence_191 1138 my si:void_leaf_symbol_end GRAPH 1139 return 1140 } 1141 1142 method sequence_191 {} { 1143 # x 1144 # "<graph>" 1145 # (WHITESPACE) 1146 1147 my si:void_state_push 1148 my si:next_str <graph> 1149 my si:voidvoid_part 1150 my sym_WHITESPACE 1151 my si:void_state_merge 1152 return 1153 } 1154 1155 # 1156 # value Symbol 'Header' 1157 # 1158 1159 method sym_Header {} { 1160 # x 1161 # (PEG) 1162 # (Identifier) 1163 # (StartExpr) 1164 1165 my si:value_symbol_start Header 1166 my sequence_197 1167 my si:reduce_symbol_end Header 1168 return 1169 } 1170 1171 method sequence_197 {} { 1172 # x 1173 # (PEG) 1174 # (Identifier) 1175 # (StartExpr) 1176 1177 my si:void_state_push 1178 my sym_PEG 1179 my si:voidvalue_part 1180 my sym_Identifier 1181 my si:valuevalue_part 1182 my sym_StartExpr 1183 my si:value_state_merge 1184 return 1185 } 1186 1187 # 1188 # leaf Symbol 'Ident' 1189 # 1190 1191 method sym_Ident {} { 1192 # x 1193 # / 1194 # [_:] 1195 # <alpha> 1196 # * 1197 # / 1198 # [_:] 1199 # <alnum> 1200 1201 my si:void_symbol_start Ident 1202 my sequence_210 1203 my si:void_leaf_symbol_end Ident 1204 return 1205 } 1206 1207 method sequence_210 {} { 1208 # x 1209 # / 1210 # [_:] 1211 # <alpha> 1212 # * 1213 # / 1214 # [_:] 1215 # <alnum> 1216 1217 my si:void_state_push 1218 my choice_202 1219 my si:voidvoid_part 1220 my kleene_208 1221 my si:void_state_merge 1222 return 1223 } 1224 1225 method choice_202 {} { 1226 # / 1227 # [_:] 1228 # <alpha> 1229 1230 my si:void_state_push 1231 my si:next_class _: 1232 my si:voidvoid_branch 1233 my si:next_alpha 1234 my si:void_state_merge 1235 return 1236 } 1237 1238 method kleene_208 {} { 1239 # * 1240 # / 1241 # [_:] 1242 # <alnum> 1243 1244 while {1} { 1245 my si:void2_state_push 1246 my choice_206 1247 my si:kleene_close 1248 } 1249 return 1250 } 1251 1252 method choice_206 {} { 1253 # / 1254 # [_:] 1255 # <alnum> 1256 1257 my si:void_state_push 1258 my si:next_class _: 1259 my si:voidvoid_branch 1260 my si:next_alnum 1261 my si:void_state_merge 1262 return 1263 } 1264 1265 # 1266 # value Symbol 'Identifier' 1267 # 1268 1269 method sym_Identifier {} { 1270 # x 1271 # (Ident) 1272 # (WHITESPACE) 1273 1274 my si:value_symbol_start Identifier 1275 my sequence_215 1276 my si:reduce_symbol_end Identifier 1277 return 1278 } 1279 1280 method sequence_215 {} { 1281 # x 1282 # (Ident) 1283 # (WHITESPACE) 1284 1285 my si:value_state_push 1286 my sym_Ident 1287 my si:valuevalue_part 1288 my sym_WHITESPACE 1289 my si:value_state_merge 1290 return 1291 } 1292 1293 # 1294 # void Symbol 'IS' 1295 # 1296 1297 method sym_IS {} { 1298 # x 1299 # "<-" 1300 # (WHITESPACE) 1301 1302 my si:void_void_symbol_start IS 1303 my sequence_220 1304 my si:void_clear_symbol_end IS 1305 return 1306 } 1307 1308 method sequence_220 {} { 1309 # x 1310 # "<-" 1311 # (WHITESPACE) 1312 1313 my si:void_state_push 1314 my si:next_str <- 1315 my si:voidvoid_part 1316 my sym_WHITESPACE 1317 my si:void_state_merge 1318 return 1319 } 1320 1321 # 1322 # leaf Symbol 'LEAF' 1323 # 1324 1325 method sym_LEAF {} { 1326 # x 1327 # "leaf" 1328 # (WHITESPACE) 1329 1330 my si:void_symbol_start LEAF 1331 my sequence_225 1332 my si:void_leaf_symbol_end LEAF 1333 return 1334 } 1335 1336 method sequence_225 {} { 1337 # x 1338 # "leaf" 1339 # (WHITESPACE) 1340 1341 my si:void_state_push 1342 my si:next_str leaf 1343 my si:voidvoid_part 1344 my sym_WHITESPACE 1345 my si:void_state_merge 1346 return 1347 } 1348 1349 # 1350 # value Symbol 'Literal' 1351 # 1352 1353 method sym_Literal {} { 1354 # / 1355 # x 1356 # (APOSTROPH) 1357 # * 1358 # x 1359 # ! 1360 # (APOSTROPH) 1361 # (Char) 1362 # (APOSTROPH) 1363 # (WHITESPACE) 1364 # x 1365 # (DAPOSTROPH) 1366 # * 1367 # x 1368 # ! 1369 # (DAPOSTROPH) 1370 # (Char) 1371 # (DAPOSTROPH) 1372 # (WHITESPACE) 1373 1374 my si:value_symbol_start Literal 1375 my choice_254 1376 my si:reduce_symbol_end Literal 1377 return 1378 } 1379 1380 method choice_254 {} { 1381 # / 1382 # x 1383 # (APOSTROPH) 1384 # * 1385 # x 1386 # ! 1387 # (APOSTROPH) 1388 # (Char) 1389 # (APOSTROPH) 1390 # (WHITESPACE) 1391 # x 1392 # (DAPOSTROPH) 1393 # * 1394 # x 1395 # ! 1396 # (DAPOSTROPH) 1397 # (Char) 1398 # (DAPOSTROPH) 1399 # (WHITESPACE) 1400 1401 my si:value_state_push 1402 my sequence_239 1403 my si:valuevalue_branch 1404 my sequence_252 1405 my si:value_state_merge 1406 return 1407 } 1408 1409 method sequence_239 {} { 1410 # x 1411 # (APOSTROPH) 1412 # * 1413 # x 1414 # ! 1415 # (APOSTROPH) 1416 # (Char) 1417 # (APOSTROPH) 1418 # (WHITESPACE) 1419 1420 my si:void_state_push 1421 my sym_APOSTROPH 1422 my si:voidvalue_part 1423 my kleene_235 1424 my si:valuevalue_part 1425 my sym_APOSTROPH 1426 my si:valuevalue_part 1427 my sym_WHITESPACE 1428 my si:value_state_merge 1429 return 1430 } 1431 1432 method kleene_235 {} { 1433 # * 1434 # x 1435 # ! 1436 # (APOSTROPH) 1437 # (Char) 1438 1439 while {1} { 1440 my si:void2_state_push 1441 my sequence_233 1442 my si:kleene_close 1443 } 1444 return 1445 } 1446 1447 method sequence_233 {} { 1448 # x 1449 # ! 1450 # (APOSTROPH) 1451 # (Char) 1452 1453 my si:void_state_push 1454 my notahead_230 1455 my si:voidvalue_part 1456 my sym_Char 1457 my si:value_state_merge 1458 return 1459 } 1460 1461 method notahead_230 {} { 1462 # ! 1463 # (APOSTROPH) 1464 1465 my i_loc_push 1466 my sym_APOSTROPH 1467 my si:void_notahead_exit 1468 return 1469 } 1470 1471 method sequence_252 {} { 1472 # x 1473 # (DAPOSTROPH) 1474 # * 1475 # x 1476 # ! 1477 # (DAPOSTROPH) 1478 # (Char) 1479 # (DAPOSTROPH) 1480 # (WHITESPACE) 1481 1482 my si:void_state_push 1483 my sym_DAPOSTROPH 1484 my si:voidvalue_part 1485 my kleene_248 1486 my si:valuevalue_part 1487 my sym_DAPOSTROPH 1488 my si:valuevalue_part 1489 my sym_WHITESPACE 1490 my si:value_state_merge 1491 return 1492 } 1493 1494 method kleene_248 {} { 1495 # * 1496 # x 1497 # ! 1498 # (DAPOSTROPH) 1499 # (Char) 1500 1501 while {1} { 1502 my si:void2_state_push 1503 my sequence_246 1504 my si:kleene_close 1505 } 1506 return 1507 } 1508 1509 method sequence_246 {} { 1510 # x 1511 # ! 1512 # (DAPOSTROPH) 1513 # (Char) 1514 1515 my si:void_state_push 1516 my notahead_243 1517 my si:voidvalue_part 1518 my sym_Char 1519 my si:value_state_merge 1520 return 1521 } 1522 1523 method notahead_243 {} { 1524 # ! 1525 # (DAPOSTROPH) 1526 1527 my i_loc_push 1528 my sym_DAPOSTROPH 1529 my si:void_notahead_exit 1530 return 1531 } 1532 1533 # 1534 # leaf Symbol 'LOWER' 1535 # 1536 1537 method sym_LOWER {} { 1538 # x 1539 # "<lower>" 1540 # (WHITESPACE) 1541 1542 my si:void_symbol_start LOWER 1543 my sequence_259 1544 my si:void_leaf_symbol_end LOWER 1545 return 1546 } 1547 1548 method sequence_259 {} { 1549 # x 1550 # "<lower>" 1551 # (WHITESPACE) 1552 1553 my si:void_state_push 1554 my si:next_str <lower> 1555 my si:voidvoid_part 1556 my sym_WHITESPACE 1557 my si:void_state_merge 1558 return 1559 } 1560 1561 # 1562 # leaf Symbol 'NOT' 1563 # 1564 1565 method sym_NOT {} { 1566 # x 1567 # '!' 1568 # (WHITESPACE) 1569 1570 my si:void_symbol_start NOT 1571 my sequence_264 1572 my si:void_leaf_symbol_end NOT 1573 return 1574 } 1575 1576 method sequence_264 {} { 1577 # x 1578 # '!' 1579 # (WHITESPACE) 1580 1581 my si:void_state_push 1582 my si:next_char ! 1583 my si:voidvoid_part 1584 my sym_WHITESPACE 1585 my si:void_state_merge 1586 return 1587 } 1588 1589 # 1590 # void Symbol 'OPEN' 1591 # 1592 1593 method sym_OPEN {} { 1594 # x 1595 # '\(' 1596 # (WHITESPACE) 1597 1598 my si:void_void_symbol_start OPEN 1599 my sequence_269 1600 my si:void_clear_symbol_end OPEN 1601 return 1602 } 1603 1604 method sequence_269 {} { 1605 # x 1606 # '\(' 1607 # (WHITESPACE) 1608 1609 my si:void_state_push 1610 my si:next_char \50 1611 my si:voidvoid_part 1612 my sym_WHITESPACE 1613 my si:void_state_merge 1614 return 1615 } 1616 1617 # 1618 # void Symbol 'OPENB' 1619 # 1620 1621 method sym_OPENB {} { 1622 # '[' 1623 1624 my si:void_void_symbol_start OPENB 1625 my si:next_char \133 1626 my si:void_clear_symbol_end OPENB 1627 return 1628 } 1629 1630 # 1631 # void Symbol 'PEG' 1632 # 1633 1634 method sym_PEG {} { 1635 # x 1636 # "PEG" 1637 # ! 1638 # / 1639 # [_:] 1640 # <alnum> 1641 # (WHITESPACE) 1642 1643 my si:void_void_symbol_start PEG 1644 my sequence_281 1645 my si:void_clear_symbol_end PEG 1646 return 1647 } 1648 1649 method sequence_281 {} { 1650 # x 1651 # "PEG" 1652 # ! 1653 # / 1654 # [_:] 1655 # <alnum> 1656 # (WHITESPACE) 1657 1658 my si:void_state_push 1659 my si:next_str PEG 1660 my si:voidvoid_part 1661 my notahead_278 1662 my si:voidvoid_part 1663 my sym_WHITESPACE 1664 my si:void_state_merge 1665 return 1666 } 1667 1668 method notahead_278 {} { 1669 # ! 1670 # / 1671 # [_:] 1672 # <alnum> 1673 1674 my i_loc_push 1675 my choice_206 1676 my si:void_notahead_exit 1677 return 1678 } 1679 1680 # 1681 # leaf Symbol 'PLUS' 1682 # 1683 1684 method sym_PLUS {} { 1685 # x 1686 # '+' 1687 # (WHITESPACE) 1688 1689 my si:void_symbol_start PLUS 1690 my sequence_286 1691 my si:void_leaf_symbol_end PLUS 1692 return 1693 } 1694 1695 method sequence_286 {} { 1696 # x 1697 # '+' 1698 # (WHITESPACE) 1699 1700 my si:void_state_push 1701 my si:next_char + 1702 my si:voidvoid_part 1703 my sym_WHITESPACE 1704 my si:void_state_merge 1705 return 1706 } 1707 1708 # 1709 # value Symbol 'Prefix' 1710 # 1711 1712 method sym_Prefix {} { 1713 # x 1714 # ? 1715 # / 1716 # (AND) 1717 # (NOT) 1718 # (Suffix) 1719 1720 my si:value_symbol_start Prefix 1721 my sequence_296 1722 my si:reduce_symbol_end Prefix 1723 return 1724 } 1725 1726 method sequence_296 {} { 1727 # x 1728 # ? 1729 # / 1730 # (AND) 1731 # (NOT) 1732 # (Suffix) 1733 1734 my si:value_state_push 1735 my optional_293 1736 my si:valuevalue_part 1737 my sym_Suffix 1738 my si:value_state_merge 1739 return 1740 } 1741 1742 method optional_293 {} { 1743 # ? 1744 # / 1745 # (AND) 1746 # (NOT) 1747 1748 my si:void2_state_push 1749 my choice_291 1750 my si:void_state_merge_ok 1751 return 1752 } 1753 1754 method choice_291 {} { 1755 # / 1756 # (AND) 1757 # (NOT) 1758 1759 my si:value_state_push 1760 my sym_AND 1761 my si:valuevalue_branch 1762 my sym_NOT 1763 my si:value_state_merge 1764 return 1765 } 1766 1767 # 1768 # value Symbol 'Primary' 1769 # 1770 1771 method sym_Primary {} { 1772 # / 1773 # (ALNUM) 1774 # (ALPHA) 1775 # (ASCII) 1776 # (CONTROL) 1777 # (DDIGIT) 1778 # (DIGIT) 1779 # (GRAPH) 1780 # (LOWER) 1781 # (PRINTABLE) 1782 # (PUNCT) 1783 # (SPACE) 1784 # (UPPER) 1785 # (WORDCHAR) 1786 # (XDIGIT) 1787 # (Identifier) 1788 # x 1789 # (OPEN) 1790 # (Expression) 1791 # (CLOSE) 1792 # (Literal) 1793 # (Class) 1794 # (DOT) 1795 1796 my si:value_symbol_start Primary 1797 my choice_322 1798 my si:reduce_symbol_end Primary 1799 return 1800 } 1801 1802 method choice_322 {} { 1803 # / 1804 # (ALNUM) 1805 # (ALPHA) 1806 # (ASCII) 1807 # (CONTROL) 1808 # (DDIGIT) 1809 # (DIGIT) 1810 # (GRAPH) 1811 # (LOWER) 1812 # (PRINTABLE) 1813 # (PUNCT) 1814 # (SPACE) 1815 # (UPPER) 1816 # (WORDCHAR) 1817 # (XDIGIT) 1818 # (Identifier) 1819 # x 1820 # (OPEN) 1821 # (Expression) 1822 # (CLOSE) 1823 # (Literal) 1824 # (Class) 1825 # (DOT) 1826 1827 my si:value_state_push 1828 my sym_ALNUM 1829 my si:valuevalue_branch 1830 my sym_ALPHA 1831 my si:valuevalue_branch 1832 my sym_ASCII 1833 my si:valuevalue_branch 1834 my sym_CONTROL 1835 my si:valuevalue_branch 1836 my sym_DDIGIT 1837 my si:valuevalue_branch 1838 my sym_DIGIT 1839 my si:valuevalue_branch 1840 my sym_GRAPH 1841 my si:valuevalue_branch 1842 my sym_LOWER 1843 my si:valuevalue_branch 1844 my sym_PRINTABLE 1845 my si:valuevalue_branch 1846 my sym_PUNCT 1847 my si:valuevalue_branch 1848 my sym_SPACE 1849 my si:valuevalue_branch 1850 my sym_UPPER 1851 my si:valuevalue_branch 1852 my sym_WORDCHAR 1853 my si:valuevalue_branch 1854 my sym_XDIGIT 1855 my si:valuevalue_branch 1856 my sym_Identifier 1857 my si:valuevalue_branch 1858 my sequence_317 1859 my si:valuevalue_branch 1860 my sym_Literal 1861 my si:valuevalue_branch 1862 my sym_Class 1863 my si:valuevalue_branch 1864 my sym_DOT 1865 my si:value_state_merge 1866 return 1867 } 1868 1869 method sequence_317 {} { 1870 # x 1871 # (OPEN) 1872 # (Expression) 1873 # (CLOSE) 1874 1875 my si:void_state_push 1876 my sym_OPEN 1877 my si:voidvalue_part 1878 my sym_Expression 1879 my si:valuevalue_part 1880 my sym_CLOSE 1881 my si:value_state_merge 1882 return 1883 } 1884 1885 # 1886 # leaf Symbol 'PRINTABLE' 1887 # 1888 1889 method sym_PRINTABLE {} { 1890 # x 1891 # "<print>" 1892 # (WHITESPACE) 1893 1894 my si:void_symbol_start PRINTABLE 1895 my sequence_327 1896 my si:void_leaf_symbol_end PRINTABLE 1897 return 1898 } 1899 1900 method sequence_327 {} { 1901 # x 1902 # "<print>" 1903 # (WHITESPACE) 1904 1905 my si:void_state_push 1906 my si:next_str <print> 1907 my si:voidvoid_part 1908 my sym_WHITESPACE 1909 my si:void_state_merge 1910 return 1911 } 1912 1913 # 1914 # leaf Symbol 'PUNCT' 1915 # 1916 1917 method sym_PUNCT {} { 1918 # x 1919 # "<punct>" 1920 # (WHITESPACE) 1921 1922 my si:void_symbol_start PUNCT 1923 my sequence_332 1924 my si:void_leaf_symbol_end PUNCT 1925 return 1926 } 1927 1928 method sequence_332 {} { 1929 # x 1930 # "<punct>" 1931 # (WHITESPACE) 1932 1933 my si:void_state_push 1934 my si:next_str <punct> 1935 my si:voidvoid_part 1936 my sym_WHITESPACE 1937 my si:void_state_merge 1938 return 1939 } 1940 1941 # 1942 # leaf Symbol 'QUESTION' 1943 # 1944 1945 method sym_QUESTION {} { 1946 # x 1947 # '?' 1948 # (WHITESPACE) 1949 1950 my si:void_symbol_start QUESTION 1951 my sequence_337 1952 my si:void_leaf_symbol_end QUESTION 1953 return 1954 } 1955 1956 method sequence_337 {} { 1957 # x 1958 # '?' 1959 # (WHITESPACE) 1960 1961 my si:void_state_push 1962 my si:next_char ? 1963 my si:voidvoid_part 1964 my sym_WHITESPACE 1965 my si:void_state_merge 1966 return 1967 } 1968 1969 # 1970 # value Symbol 'Range' 1971 # 1972 1973 method sym_Range {} { 1974 # / 1975 # x 1976 # (Char) 1977 # (TO) 1978 # (Char) 1979 # (Char) 1980 1981 my si:value_symbol_start Range 1982 my choice_346 1983 my si:reduce_symbol_end Range 1984 return 1985 } 1986 1987 method choice_346 {} { 1988 # / 1989 # x 1990 # (Char) 1991 # (TO) 1992 # (Char) 1993 # (Char) 1994 1995 my si:value_state_push 1996 my sequence_343 1997 my si:valuevalue_branch 1998 my sym_Char 1999 my si:value_state_merge 2000 return 2001 } 2002 2003 method sequence_343 {} { 2004 # x 2005 # (Char) 2006 # (TO) 2007 # (Char) 2008 2009 my si:value_state_push 2010 my sym_Char 2011 my si:valuevalue_part 2012 my sym_TO 2013 my si:valuevalue_part 2014 my sym_Char 2015 my si:value_state_merge 2016 return 2017 } 2018 2019 # 2020 # void Symbol 'SEMICOLON' 2021 # 2022 2023 method sym_SEMICOLON {} { 2024 # x 2025 # ';' 2026 # (WHITESPACE) 2027 2028 my si:void_void_symbol_start SEMICOLON 2029 my sequence_351 2030 my si:void_clear_symbol_end SEMICOLON 2031 return 2032 } 2033 2034 method sequence_351 {} { 2035 # x 2036 # ';' 2037 # (WHITESPACE) 2038 2039 my si:void_state_push 2040 my si:next_char \73 2041 my si:voidvoid_part 2042 my sym_WHITESPACE 2043 my si:void_state_merge 2044 return 2045 } 2046 2047 # 2048 # value Symbol 'Sequence' 2049 # 2050 2051 method sym_Sequence {} { 2052 # + 2053 # (Prefix) 2054 2055 my si:value_symbol_start Sequence 2056 my poskleene_355 2057 my si:reduce_symbol_end Sequence 2058 return 2059 } 2060 2061 method poskleene_355 {} { 2062 # + 2063 # (Prefix) 2064 2065 my i_loc_push 2066 my sym_Prefix 2067 my si:kleene_abort 2068 while {1} { 2069 my si:void2_state_push 2070 my sym_Prefix 2071 my si:kleene_close 2072 } 2073 return 2074 } 2075 2076 # 2077 # void Symbol 'SLASH' 2078 # 2079 2080 method sym_SLASH {} { 2081 # x 2082 # '/' 2083 # (WHITESPACE) 2084 2085 my si:void_void_symbol_start SLASH 2086 my sequence_360 2087 my si:void_clear_symbol_end SLASH 2088 return 2089 } 2090 2091 method sequence_360 {} { 2092 # x 2093 # '/' 2094 # (WHITESPACE) 2095 2096 my si:void_state_push 2097 my si:next_char / 2098 my si:voidvoid_part 2099 my sym_WHITESPACE 2100 my si:void_state_merge 2101 return 2102 } 2103 2104 # 2105 # leaf Symbol 'SPACE' 2106 # 2107 2108 method sym_SPACE {} { 2109 # x 2110 # "<space>" 2111 # (WHITESPACE) 2112 2113 my si:void_symbol_start SPACE 2114 my sequence_365 2115 my si:void_leaf_symbol_end SPACE 2116 return 2117 } 2118 2119 method sequence_365 {} { 2120 # x 2121 # "<space>" 2122 # (WHITESPACE) 2123 2124 my si:void_state_push 2125 my si:next_str <space> 2126 my si:voidvoid_part 2127 my sym_WHITESPACE 2128 my si:void_state_merge 2129 return 2130 } 2131 2132 # 2133 # leaf Symbol 'STAR' 2134 # 2135 2136 method sym_STAR {} { 2137 # x 2138 # '*' 2139 # (WHITESPACE) 2140 2141 my si:void_symbol_start STAR 2142 my sequence_370 2143 my si:void_leaf_symbol_end STAR 2144 return 2145 } 2146 2147 method sequence_370 {} { 2148 # x 2149 # '*' 2150 # (WHITESPACE) 2151 2152 my si:void_state_push 2153 my si:next_char * 2154 my si:voidvoid_part 2155 my sym_WHITESPACE 2156 my si:void_state_merge 2157 return 2158 } 2159 2160 # 2161 # value Symbol 'StartExpr' 2162 # 2163 2164 method sym_StartExpr {} { 2165 # x 2166 # (OPEN) 2167 # (Expression) 2168 # (CLOSE) 2169 2170 my si:value_symbol_start StartExpr 2171 my sequence_317 2172 my si:reduce_symbol_end StartExpr 2173 return 2174 } 2175 2176 # 2177 # value Symbol 'Suffix' 2178 # 2179 2180 method sym_Suffix {} { 2181 # x 2182 # (Primary) 2183 # ? 2184 # / 2185 # (QUESTION) 2186 # (STAR) 2187 # (PLUS) 2188 2189 my si:value_symbol_start Suffix 2190 my sequence_386 2191 my si:reduce_symbol_end Suffix 2192 return 2193 } 2194 2195 method sequence_386 {} { 2196 # x 2197 # (Primary) 2198 # ? 2199 # / 2200 # (QUESTION) 2201 # (STAR) 2202 # (PLUS) 2203 2204 my si:value_state_push 2205 my sym_Primary 2206 my si:valuevalue_part 2207 my optional_384 2208 my si:value_state_merge 2209 return 2210 } 2211 2212 method optional_384 {} { 2213 # ? 2214 # / 2215 # (QUESTION) 2216 # (STAR) 2217 # (PLUS) 2218 2219 my si:void2_state_push 2220 my choice_382 2221 my si:void_state_merge_ok 2222 return 2223 } 2224 2225 method choice_382 {} { 2226 # / 2227 # (QUESTION) 2228 # (STAR) 2229 # (PLUS) 2230 2231 my si:value_state_push 2232 my sym_QUESTION 2233 my si:valuevalue_branch 2234 my sym_STAR 2235 my si:valuevalue_branch 2236 my sym_PLUS 2237 my si:value_state_merge 2238 return 2239 } 2240 2241 # 2242 # void Symbol 'TO' 2243 # 2244 2245 method sym_TO {} { 2246 # '-' 2247 2248 my si:void_void_symbol_start TO 2249 my si:next_char - 2250 my si:void_clear_symbol_end TO 2251 return 2252 } 2253 2254 # 2255 # leaf Symbol 'UPPER' 2256 # 2257 2258 method sym_UPPER {} { 2259 # x 2260 # "<upper>" 2261 # (WHITESPACE) 2262 2263 my si:void_symbol_start UPPER 2264 my sequence_393 2265 my si:void_leaf_symbol_end UPPER 2266 return 2267 } 2268 2269 method sequence_393 {} { 2270 # x 2271 # "<upper>" 2272 # (WHITESPACE) 2273 2274 my si:void_state_push 2275 my si:next_str <upper> 2276 my si:voidvoid_part 2277 my sym_WHITESPACE 2278 my si:void_state_merge 2279 return 2280 } 2281 2282 # 2283 # leaf Symbol 'VOID' 2284 # 2285 2286 method sym_VOID {} { 2287 # x 2288 # "void" 2289 # (WHITESPACE) 2290 2291 my si:void_symbol_start VOID 2292 my sequence_398 2293 my si:void_leaf_symbol_end VOID 2294 return 2295 } 2296 2297 method sequence_398 {} { 2298 # x 2299 # "void" 2300 # (WHITESPACE) 2301 2302 my si:void_state_push 2303 my si:next_str void 2304 my si:voidvoid_part 2305 my sym_WHITESPACE 2306 my si:void_state_merge 2307 return 2308 } 2309 2310 # 2311 # void Symbol 'WHITESPACE' 2312 # 2313 2314 method sym_WHITESPACE {} { 2315 # * 2316 # / 2317 # <space> 2318 # (COMMENT) 2319 2320 my si:void_void_symbol_start WHITESPACE 2321 my kleene_405 2322 my si:void_clear_symbol_end WHITESPACE 2323 return 2324 } 2325 2326 method kleene_405 {} { 2327 # * 2328 # / 2329 # <space> 2330 # (COMMENT) 2331 2332 while {1} { 2333 my si:void2_state_push 2334 my choice_403 2335 my si:kleene_close 2336 } 2337 return 2338 } 2339 2340 method choice_403 {} { 2341 # / 2342 # <space> 2343 # (COMMENT) 2344 2345 my si:void_state_push 2346 my si:next_space 2347 my si:voidvoid_branch 2348 my sym_COMMENT 2349 my si:void_state_merge 2350 return 2351 } 2352 2353 # 2354 # leaf Symbol 'WORDCHAR' 2355 # 2356 2357 method sym_WORDCHAR {} { 2358 # x 2359 # "<wordchar>" 2360 # (WHITESPACE) 2361 2362 my si:void_symbol_start WORDCHAR 2363 my sequence_410 2364 my si:void_leaf_symbol_end WORDCHAR 2365 return 2366 } 2367 2368 method sequence_410 {} { 2369 # x 2370 # "<wordchar>" 2371 # (WHITESPACE) 2372 2373 my si:void_state_push 2374 my si:next_str <wordchar> 2375 my si:voidvoid_part 2376 my sym_WHITESPACE 2377 my si:void_state_merge 2378 return 2379 } 2380 2381 # 2382 # leaf Symbol 'XDIGIT' 2383 # 2384 2385 method sym_XDIGIT {} { 2386 # x 2387 # "<xdigit>" 2388 # (WHITESPACE) 2389 2390 my si:void_symbol_start XDIGIT 2391 my sequence_415 2392 my si:void_leaf_symbol_end XDIGIT 2393 return 2394 } 2395 2396 method sequence_415 {} { 2397 # x 2398 # "<xdigit>" 2399 # (WHITESPACE) 2400 2401 my si:void_state_push 2402 my si:next_str <xdigit> 2403 my si:voidvoid_part 2404 my sym_WHITESPACE 2405 my si:void_state_merge 2406 return 2407 } 2408 2409 ## END of GENERATED CODE. DO NOT EDIT. 2410 # # ## ### ###### ######## ############# 2411} 2412 2413# # ## ### ##### ######## ############# ##################### 2414## Ready 2415 2416package provide OO_PACKAGE 1 2417return 2418