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