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