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