1# -*- tcl -*- 2## Parsing Expression Grammar 'page::parse::lemon'. 3## RD parser by the PG backend 'MEwriter'. 4 5# ### ### ### ######### ######### ######### 6## Package description 7 8# The commands provided here match an input provided through a buffer 9# command to the PE grammar 'page::parse::lemon'. The parser is based on the package 10# 'grammar::mengine' (recursive-descent, packrat, pulling chars, 11# pushing the generated AST). 12 13# ### ### ### ######### ######### ######### 14## Requisites 15 16package require grammar::me::tcl 17 18# ### ### ### ######### ######### ######### 19## Implementation 20 21namespace eval ::page::parse::lemon { 22 # Import the virtual machine for matching. 23 24 namespace import ::grammar::me::tcl::* 25 upvar #0 ::grammar::me::tcl::ok ok 26} 27 28# ### ### ### ######### ######### ######### 29## API Implementation. 30 31proc ::page::parse::lemon::parse {nxcmd emvar astvar} { 32 variable ok 33 variable se 34 35 upvar 1 $emvar emsg $astvar ast 36 37 init $nxcmd 38 39 matchSymbol_LemonGrammar ; # (n LemonGrammar) 40 41 isv_nonterminal_reduce ALL -1 42 set ast [sv] 43 if {!$ok} { 44 foreach {l m} [ier_get] break 45 lappend l [lc $l] 46 set mx {} 47 foreach x $m {lappend mx "Expected $x"} 48 set emsg [list $l $mx] 49 } 50 51 return $ok 52} 53 54# ### ### ### ######### ######### ######### 55## Internal helper methods 56 57# Grammar 'page::parse::lemon' 58# 59# ASSIGN = (x (t :) 60# (t :) 61# (t =) 62# (n SPACE)) 63# 64# C_COMMENT = (x (n CCOM_OPEN) 65# (* (x (! (n CCOM_CLOSE)) 66# (dot))) 67# (n CCOM_CLOSE)) 68# 69# CCOM_CLOSE = (x (t *) 70# (t /)) 71# 72# CCOM_OPEN = (x (t /) 73# (t *)) 74# 75# Code = (x (n DCODE) 76# (n Codeblock)) 77# 78# Codeblock = (x (n LBRACE) 79# (* (/ (n Codeblock) 80# (n C_COMMENT) 81# (n Cplusplus_COMMENT) 82# (x (! (n RBRACE)) 83# (dot)))) 84# (n RBRACE)) 85# 86# Cplusplus_COMMENT = (x (t /) 87# (t /) 88# (* (x (! (n EOL)) 89# (dot))) 90# (n EOL)) 91# 92# DCODE = (x (t c) 93# (t o) 94# (t d) 95# (t e) 96# (n SPACE)) 97# 98# DDEFDEST = (x (t d) 99# (t e) 100# (t f) 101# (t a) 102# (t u) 103# (t l) 104# (t t) 105# (t _) 106# (t d) 107# (t e) 108# (t s) 109# (t t) 110# (t r) 111# (t u) 112# (t c) 113# (t t) 114# (t o) 115# (t r) 116# (n SPACE)) 117# 118# DDEFTYPE = (x (t d) 119# (t e) 120# (t f) 121# (t a) 122# (t u) 123# (t l) 124# (t t) 125# (t _) 126# (t t) 127# (t y) 128# (t p) 129# (t e) 130# (n SPACE)) 131# 132# DDEST = (x (t d) 133# (t e) 134# (t s) 135# (t t) 136# (t r) 137# (t u) 138# (t c) 139# (t t) 140# (t o) 141# (t r) 142# (n SPACE)) 143# 144# DefaultDestructor = (x (n DDEFDEST) 145# (n Identifier) 146# (n Codeblock)) 147# 148# DefaultType = (x (n DDEFTYPE) 149# (n Codeblock)) 150# 151# Definition = (* (x (n Identifier) 152# (? (n Label)))) 153# 154# DENDIF = (x (t %) 155# (t e) 156# (t n) 157# (t d) 158# (t i) 159# (t f) 160# (n SPACE)) 161# 162# Destructor = (x (n DDEST) 163# (n Identifier) 164# (n Codeblock)) 165# 166# DEXTRA = (x (t e) 167# (t x) 168# (t t) 169# (t r) 170# (t a) 171# (t _) 172# (t a) 173# (t r) 174# (t g) 175# (t u) 176# (t m) 177# (t e) 178# (t n) 179# (t t) 180# (n SPACE)) 181# 182# DFALLBK = (x (t f) 183# (t a) 184# (t l) 185# (t l) 186# (t b) 187# (t a) 188# (t c) 189# (t k) 190# (n SPACE)) 191# 192# DIFDEF = (x (t %) 193# (t i) 194# (t f) 195# (t d) 196# (t e) 197# (t f) 198# (n SPACE)) 199# 200# DIFNDEF = (x (t %) 201# (t i) 202# (t f) 203# (t n) 204# (t d) 205# (t e) 206# (t f) 207# (n SPACE)) 208# 209# DINCL = (x (t i) 210# (t n) 211# (t c) 212# (t l) 213# (t u) 214# (t d) 215# (t e) 216# (n SPACE)) 217# 218# DINTRO = (t %) 219# 220# Directive = (x (n DINTRO) 221# (/ (n Code) 222# (n DefaultDestructor) 223# (n DefaultType) 224# (n Destructor) 225# (n ExtraArgument) 226# (n Include) 227# (n Left) 228# (n Name) 229# (n Nonassoc) 230# (n ParseAccept) 231# (n ParseFailure) 232# (n Right) 233# (n StackOverflow) 234# (n Stacksize) 235# (n StartSymbol) 236# (n SyntaxError) 237# (n TokenDestructor) 238# (n TokenPrefix) 239# (n TokenType) 240# (n Type) 241# (n Fallback))) 242# 243# DLEFT = (x (t l) 244# (t e) 245# (t f) 246# (t t) 247# (n SPACE)) 248# 249# DNAME = (x (t n) 250# (t a) 251# (t m) 252# (t e) 253# (n SPACE)) 254# 255# DNON = (x (t n) 256# (t o) 257# (t n) 258# (t a) 259# (t s) 260# (t s) 261# (t o) 262# (t c) 263# (n SPACE)) 264# 265# DOT = (x (t .) 266# (n SPACE)) 267# 268# DPACC = (x (t p) 269# (t a) 270# (t r) 271# (t s) 272# (t e) 273# (t _) 274# (t a) 275# (t c) 276# (t c) 277# (t e) 278# (t p) 279# (t t) 280# (n SPACE)) 281# 282# DPFAIL = (x (t p) 283# (t a) 284# (t r) 285# (t s) 286# (t e) 287# (t _) 288# (t f) 289# (t a) 290# (t i) 291# (t l) 292# (t u) 293# (t r) 294# (t e) 295# (n SPACE)) 296# 297# DRIGHT = (x (t r) 298# (t i) 299# (t g) 300# (t h) 301# (t t) 302# (n SPACE)) 303# 304# DSTART = (x (t s) 305# (t t) 306# (t a) 307# (t r) 308# (t t) 309# (t _) 310# (t s) 311# (t y) 312# (t m) 313# (t b) 314# (t o) 315# (t l) 316# (n SPACE)) 317# 318# DSTKOVER = (x (t s) 319# (t t) 320# (t a) 321# (t c) 322# (t k) 323# (t _) 324# (t o) 325# (t v) 326# (t e) 327# (t r) 328# (t f) 329# (t l) 330# (t o) 331# (t w) 332# (n SPACE)) 333# 334# DSTKSZ = (x (t s) 335# (t t) 336# (t a) 337# (t c) 338# (t k) 339# (t _) 340# (t s) 341# (t i) 342# (t z) 343# (t e) 344# (n SPACE)) 345# 346# DSYNERR = (x (t s) 347# (t y) 348# (t n) 349# (t t) 350# (t a) 351# (t x) 352# (t _) 353# (t e) 354# (t r) 355# (t r) 356# (t o) 357# (t r) 358# (n SPACE)) 359# 360# DTOKDEST = (x (t t) 361# (t o) 362# (t k) 363# (t e) 364# (t n) 365# (t _) 366# (t d) 367# (t e) 368# (t s) 369# (t t) 370# (t r) 371# (t u) 372# (t c) 373# (t t) 374# (t o) 375# (t r) 376# (n SPACE)) 377# 378# DTOKPFX = (x (t t) 379# (t o) 380# (t k) 381# (t e) 382# (t n) 383# (t _) 384# (t p) 385# (t r) 386# (t e) 387# (t f) 388# (t i) 389# (t x) 390# (n SPACE)) 391# 392# DTOKTYPE = (x (t t) 393# (t o) 394# (t k) 395# (t e) 396# (t n) 397# (t _) 398# (t t) 399# (t y) 400# (t p) 401# (t e) 402# (n SPACE)) 403# 404# DTYPE = (x (t t) 405# (t y) 406# (t p) 407# (t e) 408# (n SPACE)) 409# 410# Endif = (n DENDIF) 411# 412# EOF = (! (dot)) 413# 414# EOL = (/ (x (t \r) 415# (t \n)) 416# (t \r) 417# (t \n)) 418# 419# ExtraArgument = (x (n DEXTRA) 420# (n Codeblock)) 421# 422# Fallback = (x (n DFALLBK) 423# (+ (n Identifier)) 424# (n DOT)) 425# 426# Ident = (x (/ (alpha) 427# (t _)) 428# (* (/ (alnum) 429# (t _)))) 430# 431# Identifier = (x (n Ident) 432# (n SPACE)) 433# 434# Ifdef = (x (n DIFDEF) 435# (n Identifier)) 436# 437# Ifndef = (x (n DIFNDEF) 438# (n Identifier)) 439# 440# Include = (x (n DINCL) 441# (n Codeblock)) 442# 443# Label = (x (n LPAREN) 444# (n Identifier) 445# (n RPAREN)) 446# 447# LBRACE = (t \{) 448# 449# LBRACKET = (x (t [) 450# (n SPACE)) 451# 452# Left = (x (n DLEFT) 453# (+ (n Identifier)) 454# (n DOT)) 455# 456# LemonGrammar = (x (n SPACE) 457# (+ (n Statement)) 458# (n EOF)) 459# 460# LPAREN = (x (t \() 461# (n SPACE)) 462# 463# Name = (x (n DNAME) 464# (n Identifier)) 465# 466# NatNum = (+ (.. 0 9)) 467# 468# NaturalNumber = (x (n NatNum) 469# (n SPACE)) 470# 471# Nonassoc = (x (n DNON) 472# (+ (n Identifier)) 473# (n DOT)) 474# 475# ParseAccept = (x (n DPACC) 476# (n Codeblock)) 477# 478# ParseFailure = (x (n DPFAIL) 479# (n Codeblock)) 480# 481# Precedence = (x (n LBRACKET) 482# (n Identifier) 483# (n RBRACKET)) 484# 485# RBRACE = (t \}) 486# 487# RBRACKET = (x (t ]) 488# (n SPACE)) 489# 490# Right = (x (n DRIGHT) 491# (+ (n Identifier)) 492# (n DOT)) 493# 494# RPAREN = (x (t \)) 495# (n SPACE)) 496# 497# Rule = (x (n Identifier) 498# (? (n Label)) 499# (n ASSIGN) 500# (n Definition) 501# (n DOT) 502# (? (n Precedence)) 503# (? (n Codeblock))) 504# 505# SPACE = (* (/ (t <blank>) 506# (t \t) 507# (t \n) 508# (t \r) 509# (n C_COMMENT) 510# (n Cplusplus_COMMENT) 511# (n Ifndef) 512# (n Ifdef) 513# (n Endif))) 514# 515# StackOverflow = (x (n DSTKOVER) 516# (n Codeblock)) 517# 518# Stacksize = (x (n DSTKSZ) 519# (n NaturalNumber)) 520# 521# StartSymbol = (x (n DSTART) 522# (n Identifier)) 523# 524# Statement = (x (/ (n Directive) 525# (n Rule)) 526# (n SPACE)) 527# 528# SyntaxError = (x (n DSYNERR) 529# (n Codeblock)) 530# 531# TokenDestructor = (x (n DTOKDEST) 532# (n Identifier) 533# (n Codeblock)) 534# 535# TokenPrefix = (x (n DTOKPFX) 536# (n Identifier)) 537# 538# TokenType = (x (n DTOKTYPE) 539# (n Codeblock)) 540# 541# Type = (x (n DTYPE) 542# (n Identifier) 543# (n Codeblock)) 544# 545 546proc ::page::parse::lemon::matchSymbol_ASSIGN {} { 547 # ASSIGN = (x (t :) 548 # (t :) 549 # (t =) 550 # (n SPACE)) 551 552 if {[inc_restore ASSIGN]} return 553 554 set pos [icl_get] 555 556 eseq53 ; # (x (t :) 557 # (t :) 558 # (t =) 559 # (n SPACE)) 560 561 isv_clear 562 inc_save ASSIGN $pos 563 ier_nonterminal ASSIGN $pos 564 return 565} 566 567proc ::page::parse::lemon::eseq53 {} { 568 569 # (x (t :) 570 # (t :) 571 # (t =) 572 # (n SPACE)) 573 574 variable ok 575 576 set pos [icl_get] 577 578 set old [ier_get] 579 ict_advance : 580 if {$ok} {ict_match_token :} 581 ier_merge $old 582 583 if {!$ok} {icl_rewind $pos ; return} 584 585 set old [ier_get] 586 ict_advance : 587 if {$ok} {ict_match_token :} 588 ier_merge $old 589 590 if {!$ok} {icl_rewind $pos ; return} 591 592 set old [ier_get] 593 ict_advance = 594 if {$ok} {ict_match_token =} 595 ier_merge $old 596 597 if {!$ok} {icl_rewind $pos ; return} 598 599 set old [ier_get] 600 matchSymbol_SPACE ; # (n SPACE) 601 ier_merge $old 602 603 if {!$ok} {icl_rewind $pos ; return} 604 605 return 606} 607 608proc ::page::parse::lemon::matchSymbol_C_COMMENT {} { 609 # C_COMMENT = (x (n CCOM_OPEN) 610 # (* (x (! (n CCOM_CLOSE)) 611 # (dot))) 612 # (n CCOM_CLOSE)) 613 614 if {[inc_restore C_COMMENT]} return 615 616 set pos [icl_get] 617 618 eseq90 ; # (x (n CCOM_OPEN) 619 # (* (x (! (n CCOM_CLOSE)) 620 # (dot))) 621 # (n CCOM_CLOSE)) 622 623 isv_clear 624 inc_save C_COMMENT $pos 625 ier_nonterminal C_COMMENT $pos 626 return 627} 628 629proc ::page::parse::lemon::eseq90 {} { 630 631 # (x (n CCOM_OPEN) 632 # (* (x (! (n CCOM_CLOSE)) 633 # (dot))) 634 # (n CCOM_CLOSE)) 635 636 variable ok 637 638 set pos [icl_get] 639 640 set old [ier_get] 641 matchSymbol_CCOM_OPEN ; # (n CCOM_OPEN) 642 ier_merge $old 643 644 if {!$ok} {icl_rewind $pos ; return} 645 646 set old [ier_get] 647 ekleene89 ; # (* (x (! (n CCOM_CLOSE)) 648 # (dot))) 649 ier_merge $old 650 651 if {!$ok} {icl_rewind $pos ; return} 652 653 set old [ier_get] 654 matchSymbol_CCOM_CLOSE ; # (n CCOM_CLOSE) 655 ier_merge $old 656 657 if {!$ok} {icl_rewind $pos ; return} 658 659 return 660} 661 662proc ::page::parse::lemon::ekleene89 {} { 663 664 # (* (x (! (n CCOM_CLOSE)) 665 # (dot))) 666 667 variable ok 668 669 while {1} { 670 set pos [icl_get] 671 672 set old [ier_get] 673 eseq88 ; # (x (! (n CCOM_CLOSE)) 674 # (dot)) 675 ier_merge $old 676 677 if {$ok} continue 678 break 679 } 680 681 icl_rewind $pos 682 iok_ok 683 return 684} 685 686proc ::page::parse::lemon::eseq88 {} { 687 688 # (x (! (n CCOM_CLOSE)) 689 # (dot)) 690 691 variable ok 692 693 set pos [icl_get] 694 695 set old [ier_get] 696 ebang87 697 ier_merge $old 698 699 if {!$ok} {icl_rewind $pos ; return} 700 701 set old [ier_get] 702 ict_advance "any character" 703 ier_merge $old 704 705 if {!$ok} {icl_rewind $pos ; return} 706 707 return 708} 709 710proc ::page::parse::lemon::ebang87 {} { 711 set pos [icl_get] 712 713 matchSymbol_CCOM_CLOSE ; # (n CCOM_CLOSE) 714 715 icl_rewind $pos 716 iok_negate 717 return 718} 719 720proc ::page::parse::lemon::matchSymbol_CCOM_CLOSE {} { 721 # CCOM_CLOSE = (x (t *) 722 # (t /)) 723 724 if {[inc_restore CCOM_CLOSE]} return 725 726 set pos [icl_get] 727 728 eseq92 ; # (x (t *) 729 # (t /)) 730 731 isv_clear 732 inc_save CCOM_CLOSE $pos 733 ier_nonterminal CCOM_CLOSE $pos 734 return 735} 736 737proc ::page::parse::lemon::eseq92 {} { 738 739 # (x (t *) 740 # (t /)) 741 742 variable ok 743 744 set pos [icl_get] 745 746 set old [ier_get] 747 ict_advance * 748 if {$ok} {ict_match_token *} 749 ier_merge $old 750 751 if {!$ok} {icl_rewind $pos ; return} 752 753 set old [ier_get] 754 ict_advance / 755 if {$ok} {ict_match_token /} 756 ier_merge $old 757 758 if {!$ok} {icl_rewind $pos ; return} 759 760 return 761} 762 763proc ::page::parse::lemon::matchSymbol_CCOM_OPEN {} { 764 # CCOM_OPEN = (x (t /) 765 # (t *)) 766 767 if {[inc_restore CCOM_OPEN]} return 768 769 set pos [icl_get] 770 771 eseq91 ; # (x (t /) 772 # (t *)) 773 774 isv_clear 775 inc_save CCOM_OPEN $pos 776 ier_nonterminal CCOM_OPEN $pos 777 return 778} 779 780proc ::page::parse::lemon::eseq91 {} { 781 782 # (x (t /) 783 # (t *)) 784 785 variable ok 786 787 set pos [icl_get] 788 789 set old [ier_get] 790 ict_advance / 791 if {$ok} {ict_match_token /} 792 ier_merge $old 793 794 if {!$ok} {icl_rewind $pos ; return} 795 796 set old [ier_get] 797 ict_advance * 798 if {$ok} {ict_match_token *} 799 ier_merge $old 800 801 if {!$ok} {icl_rewind $pos ; return} 802 803 return 804} 805 806proc ::page::parse::lemon::matchSymbol_Code {} { 807 # Code = (x (n DCODE) 808 # (n Codeblock)) 809 810 variable ok 811 if {[inc_restore Code]} { 812 if {$ok} ias_push 813 return 814 } 815 816 set pos [icl_get] 817 set mrk [ias_mark] 818 819 eseq16 ; # (x (n DCODE) 820 # (n Codeblock)) 821 822 isv_nonterminal_reduce Code $pos $mrk 823 inc_save Code $pos 824 ias_pop2mark $mrk 825 if {$ok} ias_push 826 ier_nonterminal Code $pos 827 return 828} 829 830proc ::page::parse::lemon::eseq16 {} { 831 832 # (x (n DCODE) 833 # (n Codeblock)) 834 835 variable ok 836 837 set pos [icl_get] 838 839 set old [ier_get] 840 matchSymbol_DCODE ; # (n DCODE) 841 ier_merge $old 842 843 if {!$ok} {icl_rewind $pos ; return} 844 845 set mrk [ias_mark] 846 847 set old [ier_get] 848 matchSymbol_Codeblock ; # (n Codeblock) 849 ier_merge $old 850 851 if {!$ok} { 852 ias_pop2mark $mrk 853 icl_rewind $pos 854 return 855 } 856 857 return 858} 859 860proc ::page::parse::lemon::matchSymbol_Codeblock {} { 861 # Codeblock = (x (n LBRACE) 862 # (* (/ (n Codeblock) 863 # (n C_COMMENT) 864 # (n Cplusplus_COMMENT) 865 # (x (! (n RBRACE)) 866 # (dot)))) 867 # (n RBRACE)) 868 869 variable ok 870 if {[inc_restore Codeblock]} { 871 if {$ok} ias_push 872 return 873 } 874 875 set pos [icl_get] 876 877 eseq45 ; # (x (n LBRACE) 878 # (* (/ (n Codeblock) 879 # (n C_COMMENT) 880 # (n Cplusplus_COMMENT) 881 # (x (! (n RBRACE)) 882 # (dot)))) 883 # (n RBRACE)) 884 885 isv_nonterminal_range Codeblock $pos 886 inc_save Codeblock $pos 887 if {$ok} ias_push 888 ier_nonterminal Codeblock $pos 889 return 890} 891 892proc ::page::parse::lemon::eseq45 {} { 893 894 # (x (n LBRACE) 895 # (* (/ (n Codeblock) 896 # (n C_COMMENT) 897 # (n Cplusplus_COMMENT) 898 # (x (! (n RBRACE)) 899 # (dot)))) 900 # (n RBRACE)) 901 902 variable ok 903 904 set pos [icl_get] 905 906 set old [ier_get] 907 matchSymbol_LBRACE ; # (n LBRACE) 908 ier_merge $old 909 910 if {!$ok} {icl_rewind $pos ; return} 911 912 set old [ier_get] 913 ekleene44 ; # (* (/ (n Codeblock) 914 # (n C_COMMENT) 915 # (n Cplusplus_COMMENT) 916 # (x (! (n RBRACE)) 917 # (dot)))) 918 ier_merge $old 919 920 if {!$ok} {icl_rewind $pos ; return} 921 922 set old [ier_get] 923 matchSymbol_RBRACE ; # (n RBRACE) 924 ier_merge $old 925 926 if {!$ok} {icl_rewind $pos ; return} 927 928 return 929} 930 931proc ::page::parse::lemon::ekleene44 {} { 932 933 # (* (/ (n Codeblock) 934 # (n C_COMMENT) 935 # (n Cplusplus_COMMENT) 936 # (x (! (n RBRACE)) 937 # (dot)))) 938 939 variable ok 940 941 while {1} { 942 set pos [icl_get] 943 944 set old [ier_get] 945 ebra43 ; # (/ (n Codeblock) 946 # (n C_COMMENT) 947 # (n Cplusplus_COMMENT) 948 # (x (! (n RBRACE)) 949 # (dot))) 950 ier_merge $old 951 952 if {$ok} continue 953 break 954 } 955 956 icl_rewind $pos 957 iok_ok 958 return 959} 960 961proc ::page::parse::lemon::ebra43 {} { 962 963 # (/ (n Codeblock) 964 # (n C_COMMENT) 965 # (n Cplusplus_COMMENT) 966 # (x (! (n RBRACE)) 967 # (dot))) 968 969 variable ok 970 971 set pos [icl_get] 972 973 set old [ier_get] 974 set pCodeblock [ias_mark] 975 matchSymbol_Codeblock 976 ias_pop2mark $pCodeblock ; # (n Codeblock) 977 ier_merge $old 978 979 if {$ok} return 980 icl_rewind $pos 981 982 set old [ier_get] 983 matchSymbol_C_COMMENT ; # (n C_COMMENT) 984 ier_merge $old 985 986 if {$ok} return 987 icl_rewind $pos 988 989 set old [ier_get] 990 matchSymbol_Cplusplus_COMMENT ; # (n Cplusplus_COMMENT) 991 ier_merge $old 992 993 if {$ok} return 994 icl_rewind $pos 995 996 set old [ier_get] 997 eseq42 ; # (x (! (n RBRACE)) 998 # (dot)) 999 ier_merge $old 1000 1001 if {$ok} return 1002 icl_rewind $pos 1003 1004 return 1005} 1006 1007proc ::page::parse::lemon::eseq42 {} { 1008 1009 # (x (! (n RBRACE)) 1010 # (dot)) 1011 1012 variable ok 1013 1014 set pos [icl_get] 1015 1016 set old [ier_get] 1017 ebang41 1018 ier_merge $old 1019 1020 if {!$ok} {icl_rewind $pos ; return} 1021 1022 set old [ier_get] 1023 ict_advance "any character" 1024 ier_merge $old 1025 1026 if {!$ok} {icl_rewind $pos ; return} 1027 1028 return 1029} 1030 1031proc ::page::parse::lemon::ebang41 {} { 1032 set pos [icl_get] 1033 1034 matchSymbol_RBRACE ; # (n RBRACE) 1035 1036 icl_rewind $pos 1037 iok_negate 1038 return 1039} 1040 1041proc ::page::parse::lemon::matchSymbol_Cplusplus_COMMENT {} { 1042 # Cplusplus_COMMENT = (x (t /) 1043 # (t /) 1044 # (* (x (! (n EOL)) 1045 # (dot))) 1046 # (n EOL)) 1047 1048 if {[inc_restore Cplusplus_COMMENT]} return 1049 1050 set pos [icl_get] 1051 1052 eseq96 ; # (x (t /) 1053 # (t /) 1054 # (* (x (! (n EOL)) 1055 # (dot))) 1056 # (n EOL)) 1057 1058 isv_clear 1059 inc_save Cplusplus_COMMENT $pos 1060 ier_nonterminal Cplusplus_COMMENT $pos 1061 return 1062} 1063 1064proc ::page::parse::lemon::eseq96 {} { 1065 1066 # (x (t /) 1067 # (t /) 1068 # (* (x (! (n EOL)) 1069 # (dot))) 1070 # (n EOL)) 1071 1072 variable ok 1073 1074 set pos [icl_get] 1075 1076 set old [ier_get] 1077 ict_advance / 1078 if {$ok} {ict_match_token /} 1079 ier_merge $old 1080 1081 if {!$ok} {icl_rewind $pos ; return} 1082 1083 set old [ier_get] 1084 ict_advance / 1085 if {$ok} {ict_match_token /} 1086 ier_merge $old 1087 1088 if {!$ok} {icl_rewind $pos ; return} 1089 1090 set old [ier_get] 1091 ekleene95 ; # (* (x (! (n EOL)) 1092 # (dot))) 1093 ier_merge $old 1094 1095 if {!$ok} {icl_rewind $pos ; return} 1096 1097 set old [ier_get] 1098 matchSymbol_EOL ; # (n EOL) 1099 ier_merge $old 1100 1101 if {!$ok} {icl_rewind $pos ; return} 1102 1103 return 1104} 1105 1106proc ::page::parse::lemon::ekleene95 {} { 1107 1108 # (* (x (! (n EOL)) 1109 # (dot))) 1110 1111 variable ok 1112 1113 while {1} { 1114 set pos [icl_get] 1115 1116 set old [ier_get] 1117 eseq94 ; # (x (! (n EOL)) 1118 # (dot)) 1119 ier_merge $old 1120 1121 if {$ok} continue 1122 break 1123 } 1124 1125 icl_rewind $pos 1126 iok_ok 1127 return 1128} 1129 1130proc ::page::parse::lemon::eseq94 {} { 1131 1132 # (x (! (n EOL)) 1133 # (dot)) 1134 1135 variable ok 1136 1137 set pos [icl_get] 1138 1139 set old [ier_get] 1140 ebang93 1141 ier_merge $old 1142 1143 if {!$ok} {icl_rewind $pos ; return} 1144 1145 set old [ier_get] 1146 ict_advance "any character" 1147 ier_merge $old 1148 1149 if {!$ok} {icl_rewind $pos ; return} 1150 1151 return 1152} 1153 1154proc ::page::parse::lemon::ebang93 {} { 1155 set pos [icl_get] 1156 1157 matchSymbol_EOL ; # (n EOL) 1158 1159 icl_rewind $pos 1160 iok_negate 1161 return 1162} 1163 1164proc ::page::parse::lemon::matchSymbol_DCODE {} { 1165 # DCODE = (x (t c) 1166 # (t o) 1167 # (t d) 1168 # (t e) 1169 # (n SPACE)) 1170 1171 if {[inc_restore DCODE]} return 1172 1173 set pos [icl_get] 1174 1175 eseq59 ; # (x (t c) 1176 # (t o) 1177 # (t d) 1178 # (t e) 1179 # (n SPACE)) 1180 1181 isv_clear 1182 inc_save DCODE $pos 1183 ier_nonterminal DCODE $pos 1184 return 1185} 1186 1187proc ::page::parse::lemon::eseq59 {} { 1188 1189 # (x (t c) 1190 # (t o) 1191 # (t d) 1192 # (t e) 1193 # (n SPACE)) 1194 1195 variable ok 1196 1197 set pos [icl_get] 1198 1199 set old [ier_get] 1200 ict_advance c 1201 if {$ok} {ict_match_token c} 1202 ier_merge $old 1203 1204 if {!$ok} {icl_rewind $pos ; return} 1205 1206 set old [ier_get] 1207 ict_advance o 1208 if {$ok} {ict_match_token o} 1209 ier_merge $old 1210 1211 if {!$ok} {icl_rewind $pos ; return} 1212 1213 set old [ier_get] 1214 ict_advance d 1215 if {$ok} {ict_match_token d} 1216 ier_merge $old 1217 1218 if {!$ok} {icl_rewind $pos ; return} 1219 1220 set old [ier_get] 1221 ict_advance e 1222 if {$ok} {ict_match_token e} 1223 ier_merge $old 1224 1225 if {!$ok} {icl_rewind $pos ; return} 1226 1227 set old [ier_get] 1228 matchSymbol_SPACE ; # (n SPACE) 1229 ier_merge $old 1230 1231 if {!$ok} {icl_rewind $pos ; return} 1232 1233 return 1234} 1235 1236proc ::page::parse::lemon::matchSymbol_DDEFDEST {} { 1237 # DDEFDEST = (x (t d) 1238 # (t e) 1239 # (t f) 1240 # (t a) 1241 # (t u) 1242 # (t l) 1243 # (t t) 1244 # (t _) 1245 # (t d) 1246 # (t e) 1247 # (t s) 1248 # (t t) 1249 # (t r) 1250 # (t u) 1251 # (t c) 1252 # (t t) 1253 # (t o) 1254 # (t r) 1255 # (n SPACE)) 1256 1257 if {[inc_restore DDEFDEST]} return 1258 1259 set pos [icl_get] 1260 1261 eseq60 ; # (x (t d) 1262 # (t e) 1263 # (t f) 1264 # (t a) 1265 # (t u) 1266 # (t l) 1267 # (t t) 1268 # (t _) 1269 # (t d) 1270 # (t e) 1271 # (t s) 1272 # (t t) 1273 # (t r) 1274 # (t u) 1275 # (t c) 1276 # (t t) 1277 # (t o) 1278 # (t r) 1279 # (n SPACE)) 1280 1281 isv_clear 1282 inc_save DDEFDEST $pos 1283 ier_nonterminal DDEFDEST $pos 1284 return 1285} 1286 1287proc ::page::parse::lemon::eseq60 {} { 1288 1289 # (x (t d) 1290 # (t e) 1291 # (t f) 1292 # (t a) 1293 # (t u) 1294 # (t l) 1295 # (t t) 1296 # (t _) 1297 # (t d) 1298 # (t e) 1299 # (t s) 1300 # (t t) 1301 # (t r) 1302 # (t u) 1303 # (t c) 1304 # (t t) 1305 # (t o) 1306 # (t r) 1307 # (n SPACE)) 1308 1309 variable ok 1310 1311 set pos [icl_get] 1312 1313 set old [ier_get] 1314 ict_advance d 1315 if {$ok} {ict_match_token d} 1316 ier_merge $old 1317 1318 if {!$ok} {icl_rewind $pos ; return} 1319 1320 set old [ier_get] 1321 ict_advance e 1322 if {$ok} {ict_match_token e} 1323 ier_merge $old 1324 1325 if {!$ok} {icl_rewind $pos ; return} 1326 1327 set old [ier_get] 1328 ict_advance f 1329 if {$ok} {ict_match_token f} 1330 ier_merge $old 1331 1332 if {!$ok} {icl_rewind $pos ; return} 1333 1334 set old [ier_get] 1335 ict_advance a 1336 if {$ok} {ict_match_token a} 1337 ier_merge $old 1338 1339 if {!$ok} {icl_rewind $pos ; return} 1340 1341 set old [ier_get] 1342 ict_advance u 1343 if {$ok} {ict_match_token u} 1344 ier_merge $old 1345 1346 if {!$ok} {icl_rewind $pos ; return} 1347 1348 set old [ier_get] 1349 ict_advance l 1350 if {$ok} {ict_match_token l} 1351 ier_merge $old 1352 1353 if {!$ok} {icl_rewind $pos ; return} 1354 1355 set old [ier_get] 1356 ict_advance t 1357 if {$ok} {ict_match_token t} 1358 ier_merge $old 1359 1360 if {!$ok} {icl_rewind $pos ; return} 1361 1362 set old [ier_get] 1363 ict_advance _ 1364 if {$ok} {ict_match_token _} 1365 ier_merge $old 1366 1367 if {!$ok} {icl_rewind $pos ; return} 1368 1369 set old [ier_get] 1370 ict_advance d 1371 if {$ok} {ict_match_token d} 1372 ier_merge $old 1373 1374 if {!$ok} {icl_rewind $pos ; return} 1375 1376 set old [ier_get] 1377 ict_advance e 1378 if {$ok} {ict_match_token e} 1379 ier_merge $old 1380 1381 if {!$ok} {icl_rewind $pos ; return} 1382 1383 set old [ier_get] 1384 ict_advance s 1385 if {$ok} {ict_match_token s} 1386 ier_merge $old 1387 1388 if {!$ok} {icl_rewind $pos ; return} 1389 1390 set old [ier_get] 1391 ict_advance t 1392 if {$ok} {ict_match_token t} 1393 ier_merge $old 1394 1395 if {!$ok} {icl_rewind $pos ; return} 1396 1397 set old [ier_get] 1398 ict_advance r 1399 if {$ok} {ict_match_token r} 1400 ier_merge $old 1401 1402 if {!$ok} {icl_rewind $pos ; return} 1403 1404 set old [ier_get] 1405 ict_advance u 1406 if {$ok} {ict_match_token u} 1407 ier_merge $old 1408 1409 if {!$ok} {icl_rewind $pos ; return} 1410 1411 set old [ier_get] 1412 ict_advance c 1413 if {$ok} {ict_match_token c} 1414 ier_merge $old 1415 1416 if {!$ok} {icl_rewind $pos ; return} 1417 1418 set old [ier_get] 1419 ict_advance t 1420 if {$ok} {ict_match_token t} 1421 ier_merge $old 1422 1423 if {!$ok} {icl_rewind $pos ; return} 1424 1425 set old [ier_get] 1426 ict_advance o 1427 if {$ok} {ict_match_token o} 1428 ier_merge $old 1429 1430 if {!$ok} {icl_rewind $pos ; return} 1431 1432 set old [ier_get] 1433 ict_advance r 1434 if {$ok} {ict_match_token r} 1435 ier_merge $old 1436 1437 if {!$ok} {icl_rewind $pos ; return} 1438 1439 set old [ier_get] 1440 matchSymbol_SPACE ; # (n SPACE) 1441 ier_merge $old 1442 1443 if {!$ok} {icl_rewind $pos ; return} 1444 1445 return 1446} 1447 1448proc ::page::parse::lemon::matchSymbol_DDEFTYPE {} { 1449 # DDEFTYPE = (x (t d) 1450 # (t e) 1451 # (t f) 1452 # (t a) 1453 # (t u) 1454 # (t l) 1455 # (t t) 1456 # (t _) 1457 # (t t) 1458 # (t y) 1459 # (t p) 1460 # (t e) 1461 # (n SPACE)) 1462 1463 if {[inc_restore DDEFTYPE]} return 1464 1465 set pos [icl_get] 1466 1467 eseq61 ; # (x (t d) 1468 # (t e) 1469 # (t f) 1470 # (t a) 1471 # (t u) 1472 # (t l) 1473 # (t t) 1474 # (t _) 1475 # (t t) 1476 # (t y) 1477 # (t p) 1478 # (t e) 1479 # (n SPACE)) 1480 1481 isv_clear 1482 inc_save DDEFTYPE $pos 1483 ier_nonterminal DDEFTYPE $pos 1484 return 1485} 1486 1487proc ::page::parse::lemon::eseq61 {} { 1488 1489 # (x (t d) 1490 # (t e) 1491 # (t f) 1492 # (t a) 1493 # (t u) 1494 # (t l) 1495 # (t t) 1496 # (t _) 1497 # (t t) 1498 # (t y) 1499 # (t p) 1500 # (t e) 1501 # (n SPACE)) 1502 1503 variable ok 1504 1505 set pos [icl_get] 1506 1507 set old [ier_get] 1508 ict_advance d 1509 if {$ok} {ict_match_token d} 1510 ier_merge $old 1511 1512 if {!$ok} {icl_rewind $pos ; return} 1513 1514 set old [ier_get] 1515 ict_advance e 1516 if {$ok} {ict_match_token e} 1517 ier_merge $old 1518 1519 if {!$ok} {icl_rewind $pos ; return} 1520 1521 set old [ier_get] 1522 ict_advance f 1523 if {$ok} {ict_match_token f} 1524 ier_merge $old 1525 1526 if {!$ok} {icl_rewind $pos ; return} 1527 1528 set old [ier_get] 1529 ict_advance a 1530 if {$ok} {ict_match_token a} 1531 ier_merge $old 1532 1533 if {!$ok} {icl_rewind $pos ; return} 1534 1535 set old [ier_get] 1536 ict_advance u 1537 if {$ok} {ict_match_token u} 1538 ier_merge $old 1539 1540 if {!$ok} {icl_rewind $pos ; return} 1541 1542 set old [ier_get] 1543 ict_advance l 1544 if {$ok} {ict_match_token l} 1545 ier_merge $old 1546 1547 if {!$ok} {icl_rewind $pos ; return} 1548 1549 set old [ier_get] 1550 ict_advance t 1551 if {$ok} {ict_match_token t} 1552 ier_merge $old 1553 1554 if {!$ok} {icl_rewind $pos ; return} 1555 1556 set old [ier_get] 1557 ict_advance _ 1558 if {$ok} {ict_match_token _} 1559 ier_merge $old 1560 1561 if {!$ok} {icl_rewind $pos ; return} 1562 1563 set old [ier_get] 1564 ict_advance t 1565 if {$ok} {ict_match_token t} 1566 ier_merge $old 1567 1568 if {!$ok} {icl_rewind $pos ; return} 1569 1570 set old [ier_get] 1571 ict_advance y 1572 if {$ok} {ict_match_token y} 1573 ier_merge $old 1574 1575 if {!$ok} {icl_rewind $pos ; return} 1576 1577 set old [ier_get] 1578 ict_advance p 1579 if {$ok} {ict_match_token p} 1580 ier_merge $old 1581 1582 if {!$ok} {icl_rewind $pos ; return} 1583 1584 set old [ier_get] 1585 ict_advance e 1586 if {$ok} {ict_match_token e} 1587 ier_merge $old 1588 1589 if {!$ok} {icl_rewind $pos ; return} 1590 1591 set old [ier_get] 1592 matchSymbol_SPACE ; # (n SPACE) 1593 ier_merge $old 1594 1595 if {!$ok} {icl_rewind $pos ; return} 1596 1597 return 1598} 1599 1600proc ::page::parse::lemon::matchSymbol_DDEST {} { 1601 # DDEST = (x (t d) 1602 # (t e) 1603 # (t s) 1604 # (t t) 1605 # (t r) 1606 # (t u) 1607 # (t c) 1608 # (t t) 1609 # (t o) 1610 # (t r) 1611 # (n SPACE)) 1612 1613 if {[inc_restore DDEST]} return 1614 1615 set pos [icl_get] 1616 1617 eseq62 ; # (x (t d) 1618 # (t e) 1619 # (t s) 1620 # (t t) 1621 # (t r) 1622 # (t u) 1623 # (t c) 1624 # (t t) 1625 # (t o) 1626 # (t r) 1627 # (n SPACE)) 1628 1629 isv_clear 1630 inc_save DDEST $pos 1631 ier_nonterminal DDEST $pos 1632 return 1633} 1634 1635proc ::page::parse::lemon::eseq62 {} { 1636 1637 # (x (t d) 1638 # (t e) 1639 # (t s) 1640 # (t t) 1641 # (t r) 1642 # (t u) 1643 # (t c) 1644 # (t t) 1645 # (t o) 1646 # (t r) 1647 # (n SPACE)) 1648 1649 variable ok 1650 1651 set pos [icl_get] 1652 1653 set old [ier_get] 1654 ict_advance d 1655 if {$ok} {ict_match_token d} 1656 ier_merge $old 1657 1658 if {!$ok} {icl_rewind $pos ; return} 1659 1660 set old [ier_get] 1661 ict_advance e 1662 if {$ok} {ict_match_token e} 1663 ier_merge $old 1664 1665 if {!$ok} {icl_rewind $pos ; return} 1666 1667 set old [ier_get] 1668 ict_advance s 1669 if {$ok} {ict_match_token s} 1670 ier_merge $old 1671 1672 if {!$ok} {icl_rewind $pos ; return} 1673 1674 set old [ier_get] 1675 ict_advance t 1676 if {$ok} {ict_match_token t} 1677 ier_merge $old 1678 1679 if {!$ok} {icl_rewind $pos ; return} 1680 1681 set old [ier_get] 1682 ict_advance r 1683 if {$ok} {ict_match_token r} 1684 ier_merge $old 1685 1686 if {!$ok} {icl_rewind $pos ; return} 1687 1688 set old [ier_get] 1689 ict_advance u 1690 if {$ok} {ict_match_token u} 1691 ier_merge $old 1692 1693 if {!$ok} {icl_rewind $pos ; return} 1694 1695 set old [ier_get] 1696 ict_advance c 1697 if {$ok} {ict_match_token c} 1698 ier_merge $old 1699 1700 if {!$ok} {icl_rewind $pos ; return} 1701 1702 set old [ier_get] 1703 ict_advance t 1704 if {$ok} {ict_match_token t} 1705 ier_merge $old 1706 1707 if {!$ok} {icl_rewind $pos ; return} 1708 1709 set old [ier_get] 1710 ict_advance o 1711 if {$ok} {ict_match_token o} 1712 ier_merge $old 1713 1714 if {!$ok} {icl_rewind $pos ; return} 1715 1716 set old [ier_get] 1717 ict_advance r 1718 if {$ok} {ict_match_token r} 1719 ier_merge $old 1720 1721 if {!$ok} {icl_rewind $pos ; return} 1722 1723 set old [ier_get] 1724 matchSymbol_SPACE ; # (n SPACE) 1725 ier_merge $old 1726 1727 if {!$ok} {icl_rewind $pos ; return} 1728 1729 return 1730} 1731 1732proc ::page::parse::lemon::matchSymbol_DefaultDestructor {} { 1733 # DefaultDestructor = (x (n DDEFDEST) 1734 # (n Identifier) 1735 # (n Codeblock)) 1736 1737 variable ok 1738 if {[inc_restore DefaultDestructor]} { 1739 if {$ok} ias_push 1740 return 1741 } 1742 1743 set pos [icl_get] 1744 set mrk [ias_mark] 1745 1746 eseq17 ; # (x (n DDEFDEST) 1747 # (n Identifier) 1748 # (n Codeblock)) 1749 1750 isv_nonterminal_reduce DefaultDestructor $pos $mrk 1751 inc_save DefaultDestructor $pos 1752 ias_pop2mark $mrk 1753 if {$ok} ias_push 1754 ier_nonterminal DefaultDestructor $pos 1755 return 1756} 1757 1758proc ::page::parse::lemon::eseq17 {} { 1759 1760 # (x (n DDEFDEST) 1761 # (n Identifier) 1762 # (n Codeblock)) 1763 1764 variable ok 1765 1766 set pos [icl_get] 1767 1768 set old [ier_get] 1769 matchSymbol_DDEFDEST ; # (n DDEFDEST) 1770 ier_merge $old 1771 1772 if {!$ok} {icl_rewind $pos ; return} 1773 1774 set mrk [ias_mark] 1775 1776 set old [ier_get] 1777 matchSymbol_Identifier ; # (n Identifier) 1778 ier_merge $old 1779 1780 if {!$ok} { 1781 ias_pop2mark $mrk 1782 icl_rewind $pos 1783 return 1784 } 1785 1786 set old [ier_get] 1787 matchSymbol_Codeblock ; # (n Codeblock) 1788 ier_merge $old 1789 1790 if {!$ok} { 1791 ias_pop2mark $mrk 1792 icl_rewind $pos 1793 return 1794 } 1795 1796 return 1797} 1798 1799proc ::page::parse::lemon::matchSymbol_DefaultType {} { 1800 # DefaultType = (x (n DDEFTYPE) 1801 # (n Codeblock)) 1802 1803 variable ok 1804 if {[inc_restore DefaultType]} { 1805 if {$ok} ias_push 1806 return 1807 } 1808 1809 set pos [icl_get] 1810 set mrk [ias_mark] 1811 1812 eseq18 ; # (x (n DDEFTYPE) 1813 # (n Codeblock)) 1814 1815 isv_nonterminal_reduce DefaultType $pos $mrk 1816 inc_save DefaultType $pos 1817 ias_pop2mark $mrk 1818 if {$ok} ias_push 1819 ier_nonterminal DefaultType $pos 1820 return 1821} 1822 1823proc ::page::parse::lemon::eseq18 {} { 1824 1825 # (x (n DDEFTYPE) 1826 # (n Codeblock)) 1827 1828 variable ok 1829 1830 set pos [icl_get] 1831 1832 set old [ier_get] 1833 matchSymbol_DDEFTYPE ; # (n DDEFTYPE) 1834 ier_merge $old 1835 1836 if {!$ok} {icl_rewind $pos ; return} 1837 1838 set mrk [ias_mark] 1839 1840 set old [ier_get] 1841 matchSymbol_Codeblock ; # (n Codeblock) 1842 ier_merge $old 1843 1844 if {!$ok} { 1845 ias_pop2mark $mrk 1846 icl_rewind $pos 1847 return 1848 } 1849 1850 return 1851} 1852 1853proc ::page::parse::lemon::matchSymbol_Definition {} { 1854 # Definition = (* (x (n Identifier) 1855 # (? (n Label)))) 1856 1857 variable ok 1858 if {[inc_restore Definition]} { 1859 if {$ok} ias_push 1860 return 1861 } 1862 1863 set pos [icl_get] 1864 set mrk [ias_mark] 1865 1866 ekleene11 ; # (* (x (n Identifier) 1867 # (? (n Label)))) 1868 1869 isv_nonterminal_reduce Definition $pos $mrk 1870 inc_save Definition $pos 1871 ias_pop2mark $mrk 1872 if {$ok} ias_push 1873 ier_nonterminal Definition $pos 1874 return 1875} 1876 1877proc ::page::parse::lemon::ekleene11 {} { 1878 1879 # (* (x (n Identifier) 1880 # (? (n Label)))) 1881 1882 variable ok 1883 1884 while {1} { 1885 set pos [icl_get] 1886 1887 set old [ier_get] 1888 eseq10 ; # (x (n Identifier) 1889 # (? (n Label))) 1890 ier_merge $old 1891 1892 if {$ok} continue 1893 break 1894 } 1895 1896 icl_rewind $pos 1897 iok_ok 1898 return 1899} 1900 1901proc ::page::parse::lemon::eseq10 {} { 1902 1903 # (x (n Identifier) 1904 # (? (n Label))) 1905 1906 variable ok 1907 1908 set pos [icl_get] 1909 1910 set mrk [ias_mark] 1911 1912 set old [ier_get] 1913 matchSymbol_Identifier ; # (n Identifier) 1914 ier_merge $old 1915 1916 if {!$ok} { 1917 ias_pop2mark $mrk 1918 icl_rewind $pos 1919 return 1920 } 1921 1922 set old [ier_get] 1923 eopt9 ; # (? (n Label)) 1924 ier_merge $old 1925 1926 if {!$ok} { 1927 ias_pop2mark $mrk 1928 icl_rewind $pos 1929 return 1930 } 1931 1932 return 1933} 1934 1935proc ::page::parse::lemon::eopt9 {} { 1936 1937 # (? (n Label)) 1938 1939 variable ok 1940 1941 set pos [icl_get] 1942 1943 set old [ier_get] 1944 matchSymbol_Label ; # (n Label) 1945 ier_merge $old 1946 1947 if {$ok} return 1948 icl_rewind $pos 1949 iok_ok 1950 return 1951} 1952 1953proc ::page::parse::lemon::matchSymbol_DENDIF {} { 1954 # DENDIF = (x (t %) 1955 # (t e) 1956 # (t n) 1957 # (t d) 1958 # (t i) 1959 # (t f) 1960 # (n SPACE)) 1961 1962 if {[inc_restore DENDIF]} return 1963 1964 set pos [icl_get] 1965 1966 eseq82 ; # (x (t %) 1967 # (t e) 1968 # (t n) 1969 # (t d) 1970 # (t i) 1971 # (t f) 1972 # (n SPACE)) 1973 1974 isv_clear 1975 inc_save DENDIF $pos 1976 ier_nonterminal DENDIF $pos 1977 return 1978} 1979 1980proc ::page::parse::lemon::eseq82 {} { 1981 1982 # (x (t %) 1983 # (t e) 1984 # (t n) 1985 # (t d) 1986 # (t i) 1987 # (t f) 1988 # (n SPACE)) 1989 1990 variable ok 1991 1992 set pos [icl_get] 1993 1994 set old [ier_get] 1995 ict_advance % 1996 if {$ok} {ict_match_token %} 1997 ier_merge $old 1998 1999 if {!$ok} {icl_rewind $pos ; return} 2000 2001 set old [ier_get] 2002 ict_advance e 2003 if {$ok} {ict_match_token e} 2004 ier_merge $old 2005 2006 if {!$ok} {icl_rewind $pos ; return} 2007 2008 set old [ier_get] 2009 ict_advance n 2010 if {$ok} {ict_match_token n} 2011 ier_merge $old 2012 2013 if {!$ok} {icl_rewind $pos ; return} 2014 2015 set old [ier_get] 2016 ict_advance d 2017 if {$ok} {ict_match_token d} 2018 ier_merge $old 2019 2020 if {!$ok} {icl_rewind $pos ; return} 2021 2022 set old [ier_get] 2023 ict_advance i 2024 if {$ok} {ict_match_token i} 2025 ier_merge $old 2026 2027 if {!$ok} {icl_rewind $pos ; return} 2028 2029 set old [ier_get] 2030 ict_advance f 2031 if {$ok} {ict_match_token f} 2032 ier_merge $old 2033 2034 if {!$ok} {icl_rewind $pos ; return} 2035 2036 set old [ier_get] 2037 matchSymbol_SPACE ; # (n SPACE) 2038 ier_merge $old 2039 2040 if {!$ok} {icl_rewind $pos ; return} 2041 2042 return 2043} 2044 2045proc ::page::parse::lemon::matchSymbol_Destructor {} { 2046 # Destructor = (x (n DDEST) 2047 # (n Identifier) 2048 # (n Codeblock)) 2049 2050 variable ok 2051 if {[inc_restore Destructor]} { 2052 if {$ok} ias_push 2053 return 2054 } 2055 2056 set pos [icl_get] 2057 set mrk [ias_mark] 2058 2059 eseq19 ; # (x (n DDEST) 2060 # (n Identifier) 2061 # (n Codeblock)) 2062 2063 isv_nonterminal_reduce Destructor $pos $mrk 2064 inc_save Destructor $pos 2065 ias_pop2mark $mrk 2066 if {$ok} ias_push 2067 ier_nonterminal Destructor $pos 2068 return 2069} 2070 2071proc ::page::parse::lemon::eseq19 {} { 2072 2073 # (x (n DDEST) 2074 # (n Identifier) 2075 # (n Codeblock)) 2076 2077 variable ok 2078 2079 set pos [icl_get] 2080 2081 set old [ier_get] 2082 matchSymbol_DDEST ; # (n DDEST) 2083 ier_merge $old 2084 2085 if {!$ok} {icl_rewind $pos ; return} 2086 2087 set mrk [ias_mark] 2088 2089 set old [ier_get] 2090 matchSymbol_Identifier ; # (n Identifier) 2091 ier_merge $old 2092 2093 if {!$ok} { 2094 ias_pop2mark $mrk 2095 icl_rewind $pos 2096 return 2097 } 2098 2099 set old [ier_get] 2100 matchSymbol_Codeblock ; # (n Codeblock) 2101 ier_merge $old 2102 2103 if {!$ok} { 2104 ias_pop2mark $mrk 2105 icl_rewind $pos 2106 return 2107 } 2108 2109 return 2110} 2111 2112proc ::page::parse::lemon::matchSymbol_DEXTRA {} { 2113 # DEXTRA = (x (t e) 2114 # (t x) 2115 # (t t) 2116 # (t r) 2117 # (t a) 2118 # (t _) 2119 # (t a) 2120 # (t r) 2121 # (t g) 2122 # (t u) 2123 # (t m) 2124 # (t e) 2125 # (t n) 2126 # (t t) 2127 # (n SPACE)) 2128 2129 if {[inc_restore DEXTRA]} return 2130 2131 set pos [icl_get] 2132 2133 eseq63 ; # (x (t e) 2134 # (t x) 2135 # (t t) 2136 # (t r) 2137 # (t a) 2138 # (t _) 2139 # (t a) 2140 # (t r) 2141 # (t g) 2142 # (t u) 2143 # (t m) 2144 # (t e) 2145 # (t n) 2146 # (t t) 2147 # (n SPACE)) 2148 2149 isv_clear 2150 inc_save DEXTRA $pos 2151 ier_nonterminal DEXTRA $pos 2152 return 2153} 2154 2155proc ::page::parse::lemon::eseq63 {} { 2156 2157 # (x (t e) 2158 # (t x) 2159 # (t t) 2160 # (t r) 2161 # (t a) 2162 # (t _) 2163 # (t a) 2164 # (t r) 2165 # (t g) 2166 # (t u) 2167 # (t m) 2168 # (t e) 2169 # (t n) 2170 # (t t) 2171 # (n SPACE)) 2172 2173 variable ok 2174 2175 set pos [icl_get] 2176 2177 set old [ier_get] 2178 ict_advance e 2179 if {$ok} {ict_match_token e} 2180 ier_merge $old 2181 2182 if {!$ok} {icl_rewind $pos ; return} 2183 2184 set old [ier_get] 2185 ict_advance x 2186 if {$ok} {ict_match_token x} 2187 ier_merge $old 2188 2189 if {!$ok} {icl_rewind $pos ; return} 2190 2191 set old [ier_get] 2192 ict_advance t 2193 if {$ok} {ict_match_token t} 2194 ier_merge $old 2195 2196 if {!$ok} {icl_rewind $pos ; return} 2197 2198 set old [ier_get] 2199 ict_advance r 2200 if {$ok} {ict_match_token r} 2201 ier_merge $old 2202 2203 if {!$ok} {icl_rewind $pos ; return} 2204 2205 set old [ier_get] 2206 ict_advance a 2207 if {$ok} {ict_match_token a} 2208 ier_merge $old 2209 2210 if {!$ok} {icl_rewind $pos ; return} 2211 2212 set old [ier_get] 2213 ict_advance _ 2214 if {$ok} {ict_match_token _} 2215 ier_merge $old 2216 2217 if {!$ok} {icl_rewind $pos ; return} 2218 2219 set old [ier_get] 2220 ict_advance a 2221 if {$ok} {ict_match_token a} 2222 ier_merge $old 2223 2224 if {!$ok} {icl_rewind $pos ; return} 2225 2226 set old [ier_get] 2227 ict_advance r 2228 if {$ok} {ict_match_token r} 2229 ier_merge $old 2230 2231 if {!$ok} {icl_rewind $pos ; return} 2232 2233 set old [ier_get] 2234 ict_advance g 2235 if {$ok} {ict_match_token g} 2236 ier_merge $old 2237 2238 if {!$ok} {icl_rewind $pos ; return} 2239 2240 set old [ier_get] 2241 ict_advance u 2242 if {$ok} {ict_match_token u} 2243 ier_merge $old 2244 2245 if {!$ok} {icl_rewind $pos ; return} 2246 2247 set old [ier_get] 2248 ict_advance m 2249 if {$ok} {ict_match_token m} 2250 ier_merge $old 2251 2252 if {!$ok} {icl_rewind $pos ; return} 2253 2254 set old [ier_get] 2255 ict_advance e 2256 if {$ok} {ict_match_token e} 2257 ier_merge $old 2258 2259 if {!$ok} {icl_rewind $pos ; return} 2260 2261 set old [ier_get] 2262 ict_advance n 2263 if {$ok} {ict_match_token n} 2264 ier_merge $old 2265 2266 if {!$ok} {icl_rewind $pos ; return} 2267 2268 set old [ier_get] 2269 ict_advance t 2270 if {$ok} {ict_match_token t} 2271 ier_merge $old 2272 2273 if {!$ok} {icl_rewind $pos ; return} 2274 2275 set old [ier_get] 2276 matchSymbol_SPACE ; # (n SPACE) 2277 ier_merge $old 2278 2279 if {!$ok} {icl_rewind $pos ; return} 2280 2281 return 2282} 2283 2284proc ::page::parse::lemon::matchSymbol_DFALLBK {} { 2285 # DFALLBK = (x (t f) 2286 # (t a) 2287 # (t l) 2288 # (t l) 2289 # (t b) 2290 # (t a) 2291 # (t c) 2292 # (t k) 2293 # (n SPACE)) 2294 2295 if {[inc_restore DFALLBK]} return 2296 2297 set pos [icl_get] 2298 2299 eseq79 ; # (x (t f) 2300 # (t a) 2301 # (t l) 2302 # (t l) 2303 # (t b) 2304 # (t a) 2305 # (t c) 2306 # (t k) 2307 # (n SPACE)) 2308 2309 isv_clear 2310 inc_save DFALLBK $pos 2311 ier_nonterminal DFALLBK $pos 2312 return 2313} 2314 2315proc ::page::parse::lemon::eseq79 {} { 2316 2317 # (x (t f) 2318 # (t a) 2319 # (t l) 2320 # (t l) 2321 # (t b) 2322 # (t a) 2323 # (t c) 2324 # (t k) 2325 # (n SPACE)) 2326 2327 variable ok 2328 2329 set pos [icl_get] 2330 2331 set old [ier_get] 2332 ict_advance f 2333 if {$ok} {ict_match_token f} 2334 ier_merge $old 2335 2336 if {!$ok} {icl_rewind $pos ; return} 2337 2338 set old [ier_get] 2339 ict_advance a 2340 if {$ok} {ict_match_token a} 2341 ier_merge $old 2342 2343 if {!$ok} {icl_rewind $pos ; return} 2344 2345 set old [ier_get] 2346 ict_advance l 2347 if {$ok} {ict_match_token l} 2348 ier_merge $old 2349 2350 if {!$ok} {icl_rewind $pos ; return} 2351 2352 set old [ier_get] 2353 ict_advance l 2354 if {$ok} {ict_match_token l} 2355 ier_merge $old 2356 2357 if {!$ok} {icl_rewind $pos ; return} 2358 2359 set old [ier_get] 2360 ict_advance b 2361 if {$ok} {ict_match_token b} 2362 ier_merge $old 2363 2364 if {!$ok} {icl_rewind $pos ; return} 2365 2366 set old [ier_get] 2367 ict_advance a 2368 if {$ok} {ict_match_token a} 2369 ier_merge $old 2370 2371 if {!$ok} {icl_rewind $pos ; return} 2372 2373 set old [ier_get] 2374 ict_advance c 2375 if {$ok} {ict_match_token c} 2376 ier_merge $old 2377 2378 if {!$ok} {icl_rewind $pos ; return} 2379 2380 set old [ier_get] 2381 ict_advance k 2382 if {$ok} {ict_match_token k} 2383 ier_merge $old 2384 2385 if {!$ok} {icl_rewind $pos ; return} 2386 2387 set old [ier_get] 2388 matchSymbol_SPACE ; # (n SPACE) 2389 ier_merge $old 2390 2391 if {!$ok} {icl_rewind $pos ; return} 2392 2393 return 2394} 2395 2396proc ::page::parse::lemon::matchSymbol_DIFDEF {} { 2397 # DIFDEF = (x (t %) 2398 # (t i) 2399 # (t f) 2400 # (t d) 2401 # (t e) 2402 # (t f) 2403 # (n SPACE)) 2404 2405 if {[inc_restore DIFDEF]} return 2406 2407 set pos [icl_get] 2408 2409 eseq80 ; # (x (t %) 2410 # (t i) 2411 # (t f) 2412 # (t d) 2413 # (t e) 2414 # (t f) 2415 # (n SPACE)) 2416 2417 isv_clear 2418 inc_save DIFDEF $pos 2419 ier_nonterminal DIFDEF $pos 2420 return 2421} 2422 2423proc ::page::parse::lemon::eseq80 {} { 2424 2425 # (x (t %) 2426 # (t i) 2427 # (t f) 2428 # (t d) 2429 # (t e) 2430 # (t f) 2431 # (n SPACE)) 2432 2433 variable ok 2434 2435 set pos [icl_get] 2436 2437 set old [ier_get] 2438 ict_advance % 2439 if {$ok} {ict_match_token %} 2440 ier_merge $old 2441 2442 if {!$ok} {icl_rewind $pos ; return} 2443 2444 set old [ier_get] 2445 ict_advance i 2446 if {$ok} {ict_match_token i} 2447 ier_merge $old 2448 2449 if {!$ok} {icl_rewind $pos ; return} 2450 2451 set old [ier_get] 2452 ict_advance f 2453 if {$ok} {ict_match_token f} 2454 ier_merge $old 2455 2456 if {!$ok} {icl_rewind $pos ; return} 2457 2458 set old [ier_get] 2459 ict_advance d 2460 if {$ok} {ict_match_token d} 2461 ier_merge $old 2462 2463 if {!$ok} {icl_rewind $pos ; return} 2464 2465 set old [ier_get] 2466 ict_advance e 2467 if {$ok} {ict_match_token e} 2468 ier_merge $old 2469 2470 if {!$ok} {icl_rewind $pos ; return} 2471 2472 set old [ier_get] 2473 ict_advance f 2474 if {$ok} {ict_match_token f} 2475 ier_merge $old 2476 2477 if {!$ok} {icl_rewind $pos ; return} 2478 2479 set old [ier_get] 2480 matchSymbol_SPACE ; # (n SPACE) 2481 ier_merge $old 2482 2483 if {!$ok} {icl_rewind $pos ; return} 2484 2485 return 2486} 2487 2488proc ::page::parse::lemon::matchSymbol_DIFNDEF {} { 2489 # DIFNDEF = (x (t %) 2490 # (t i) 2491 # (t f) 2492 # (t n) 2493 # (t d) 2494 # (t e) 2495 # (t f) 2496 # (n SPACE)) 2497 2498 if {[inc_restore DIFNDEF]} return 2499 2500 set pos [icl_get] 2501 2502 eseq81 ; # (x (t %) 2503 # (t i) 2504 # (t f) 2505 # (t n) 2506 # (t d) 2507 # (t e) 2508 # (t f) 2509 # (n SPACE)) 2510 2511 isv_clear 2512 inc_save DIFNDEF $pos 2513 ier_nonterminal DIFNDEF $pos 2514 return 2515} 2516 2517proc ::page::parse::lemon::eseq81 {} { 2518 2519 # (x (t %) 2520 # (t i) 2521 # (t f) 2522 # (t n) 2523 # (t d) 2524 # (t e) 2525 # (t f) 2526 # (n SPACE)) 2527 2528 variable ok 2529 2530 set pos [icl_get] 2531 2532 set old [ier_get] 2533 ict_advance % 2534 if {$ok} {ict_match_token %} 2535 ier_merge $old 2536 2537 if {!$ok} {icl_rewind $pos ; return} 2538 2539 set old [ier_get] 2540 ict_advance i 2541 if {$ok} {ict_match_token i} 2542 ier_merge $old 2543 2544 if {!$ok} {icl_rewind $pos ; return} 2545 2546 set old [ier_get] 2547 ict_advance f 2548 if {$ok} {ict_match_token f} 2549 ier_merge $old 2550 2551 if {!$ok} {icl_rewind $pos ; return} 2552 2553 set old [ier_get] 2554 ict_advance n 2555 if {$ok} {ict_match_token n} 2556 ier_merge $old 2557 2558 if {!$ok} {icl_rewind $pos ; return} 2559 2560 set old [ier_get] 2561 ict_advance d 2562 if {$ok} {ict_match_token d} 2563 ier_merge $old 2564 2565 if {!$ok} {icl_rewind $pos ; return} 2566 2567 set old [ier_get] 2568 ict_advance e 2569 if {$ok} {ict_match_token e} 2570 ier_merge $old 2571 2572 if {!$ok} {icl_rewind $pos ; return} 2573 2574 set old [ier_get] 2575 ict_advance f 2576 if {$ok} {ict_match_token f} 2577 ier_merge $old 2578 2579 if {!$ok} {icl_rewind $pos ; return} 2580 2581 set old [ier_get] 2582 matchSymbol_SPACE ; # (n SPACE) 2583 ier_merge $old 2584 2585 if {!$ok} {icl_rewind $pos ; return} 2586 2587 return 2588} 2589 2590proc ::page::parse::lemon::matchSymbol_DINCL {} { 2591 # DINCL = (x (t i) 2592 # (t n) 2593 # (t c) 2594 # (t l) 2595 # (t u) 2596 # (t d) 2597 # (t e) 2598 # (n SPACE)) 2599 2600 if {[inc_restore DINCL]} return 2601 2602 set pos [icl_get] 2603 2604 eseq64 ; # (x (t i) 2605 # (t n) 2606 # (t c) 2607 # (t l) 2608 # (t u) 2609 # (t d) 2610 # (t e) 2611 # (n SPACE)) 2612 2613 isv_clear 2614 inc_save DINCL $pos 2615 ier_nonterminal DINCL $pos 2616 return 2617} 2618 2619proc ::page::parse::lemon::eseq64 {} { 2620 2621 # (x (t i) 2622 # (t n) 2623 # (t c) 2624 # (t l) 2625 # (t u) 2626 # (t d) 2627 # (t e) 2628 # (n SPACE)) 2629 2630 variable ok 2631 2632 set pos [icl_get] 2633 2634 set old [ier_get] 2635 ict_advance i 2636 if {$ok} {ict_match_token i} 2637 ier_merge $old 2638 2639 if {!$ok} {icl_rewind $pos ; return} 2640 2641 set old [ier_get] 2642 ict_advance n 2643 if {$ok} {ict_match_token n} 2644 ier_merge $old 2645 2646 if {!$ok} {icl_rewind $pos ; return} 2647 2648 set old [ier_get] 2649 ict_advance c 2650 if {$ok} {ict_match_token c} 2651 ier_merge $old 2652 2653 if {!$ok} {icl_rewind $pos ; return} 2654 2655 set old [ier_get] 2656 ict_advance l 2657 if {$ok} {ict_match_token l} 2658 ier_merge $old 2659 2660 if {!$ok} {icl_rewind $pos ; return} 2661 2662 set old [ier_get] 2663 ict_advance u 2664 if {$ok} {ict_match_token u} 2665 ier_merge $old 2666 2667 if {!$ok} {icl_rewind $pos ; return} 2668 2669 set old [ier_get] 2670 ict_advance d 2671 if {$ok} {ict_match_token d} 2672 ier_merge $old 2673 2674 if {!$ok} {icl_rewind $pos ; return} 2675 2676 set old [ier_get] 2677 ict_advance e 2678 if {$ok} {ict_match_token e} 2679 ier_merge $old 2680 2681 if {!$ok} {icl_rewind $pos ; return} 2682 2683 set old [ier_get] 2684 matchSymbol_SPACE ; # (n SPACE) 2685 ier_merge $old 2686 2687 if {!$ok} {icl_rewind $pos ; return} 2688 2689 return 2690} 2691 2692proc ::page::parse::lemon::matchSymbol_DINTRO {} { 2693 # DINTRO = (t %) 2694 2695 variable ok 2696 if {[inc_restore DINTRO]} return 2697 2698 set pos [icl_get] 2699 2700 ict_advance % 2701 if {$ok} {ict_match_token %} 2702 2703 isv_clear 2704 inc_save DINTRO $pos 2705 ier_nonterminal DINTRO $pos 2706 return 2707} 2708 2709proc ::page::parse::lemon::matchSymbol_Directive {} { 2710 # Directive = (x (n DINTRO) 2711 # (/ (n Code) 2712 # (n DefaultDestructor) 2713 # (n DefaultType) 2714 # (n Destructor) 2715 # (n ExtraArgument) 2716 # (n Include) 2717 # (n Left) 2718 # (n Name) 2719 # (n Nonassoc) 2720 # (n ParseAccept) 2721 # (n ParseFailure) 2722 # (n Right) 2723 # (n StackOverflow) 2724 # (n Stacksize) 2725 # (n StartSymbol) 2726 # (n SyntaxError) 2727 # (n TokenDestructor) 2728 # (n TokenPrefix) 2729 # (n TokenType) 2730 # (n Type) 2731 # (n Fallback))) 2732 2733 variable ok 2734 if {[inc_restore Directive]} { 2735 if {$ok} ias_push 2736 return 2737 } 2738 2739 set pos [icl_get] 2740 set mrk [ias_mark] 2741 2742 eseq15 ; # (x (n DINTRO) 2743 # (/ (n Code) 2744 # (n DefaultDestructor) 2745 # (n DefaultType) 2746 # (n Destructor) 2747 # (n ExtraArgument) 2748 # (n Include) 2749 # (n Left) 2750 # (n Name) 2751 # (n Nonassoc) 2752 # (n ParseAccept) 2753 # (n ParseFailure) 2754 # (n Right) 2755 # (n StackOverflow) 2756 # (n Stacksize) 2757 # (n StartSymbol) 2758 # (n SyntaxError) 2759 # (n TokenDestructor) 2760 # (n TokenPrefix) 2761 # (n TokenType) 2762 # (n Type) 2763 # (n Fallback))) 2764 2765 isv_nonterminal_reduce Directive $pos $mrk 2766 inc_save Directive $pos 2767 ias_pop2mark $mrk 2768 if {$ok} ias_push 2769 ier_nonterminal Directive $pos 2770 return 2771} 2772 2773proc ::page::parse::lemon::eseq15 {} { 2774 2775 # (x (n DINTRO) 2776 # (/ (n Code) 2777 # (n DefaultDestructor) 2778 # (n DefaultType) 2779 # (n Destructor) 2780 # (n ExtraArgument) 2781 # (n Include) 2782 # (n Left) 2783 # (n Name) 2784 # (n Nonassoc) 2785 # (n ParseAccept) 2786 # (n ParseFailure) 2787 # (n Right) 2788 # (n StackOverflow) 2789 # (n Stacksize) 2790 # (n StartSymbol) 2791 # (n SyntaxError) 2792 # (n TokenDestructor) 2793 # (n TokenPrefix) 2794 # (n TokenType) 2795 # (n Type) 2796 # (n Fallback))) 2797 2798 variable ok 2799 2800 set pos [icl_get] 2801 2802 set old [ier_get] 2803 matchSymbol_DINTRO ; # (n DINTRO) 2804 ier_merge $old 2805 2806 if {!$ok} {icl_rewind $pos ; return} 2807 2808 set mrk [ias_mark] 2809 2810 set old [ier_get] 2811 ebra14 ; # (/ (n Code) 2812 # (n DefaultDestructor) 2813 # (n DefaultType) 2814 # (n Destructor) 2815 # (n ExtraArgument) 2816 # (n Include) 2817 # (n Left) 2818 # (n Name) 2819 # (n Nonassoc) 2820 # (n ParseAccept) 2821 # (n ParseFailure) 2822 # (n Right) 2823 # (n StackOverflow) 2824 # (n Stacksize) 2825 # (n StartSymbol) 2826 # (n SyntaxError) 2827 # (n TokenDestructor) 2828 # (n TokenPrefix) 2829 # (n TokenType) 2830 # (n Type) 2831 # (n Fallback)) 2832 ier_merge $old 2833 2834 if {!$ok} { 2835 ias_pop2mark $mrk 2836 icl_rewind $pos 2837 return 2838 } 2839 2840 return 2841} 2842 2843proc ::page::parse::lemon::ebra14 {} { 2844 2845 # (/ (n Code) 2846 # (n DefaultDestructor) 2847 # (n DefaultType) 2848 # (n Destructor) 2849 # (n ExtraArgument) 2850 # (n Include) 2851 # (n Left) 2852 # (n Name) 2853 # (n Nonassoc) 2854 # (n ParseAccept) 2855 # (n ParseFailure) 2856 # (n Right) 2857 # (n StackOverflow) 2858 # (n Stacksize) 2859 # (n StartSymbol) 2860 # (n SyntaxError) 2861 # (n TokenDestructor) 2862 # (n TokenPrefix) 2863 # (n TokenType) 2864 # (n Type) 2865 # (n Fallback)) 2866 2867 variable ok 2868 2869 set pos [icl_get] 2870 2871 set mrk [ias_mark] 2872 set old [ier_get] 2873 matchSymbol_Code ; # (n Code) 2874 ier_merge $old 2875 2876 if {$ok} return 2877 ias_pop2mark $mrk 2878 icl_rewind $pos 2879 2880 set mrk [ias_mark] 2881 set old [ier_get] 2882 matchSymbol_DefaultDestructor ; # (n DefaultDestructor) 2883 ier_merge $old 2884 2885 if {$ok} return 2886 ias_pop2mark $mrk 2887 icl_rewind $pos 2888 2889 set mrk [ias_mark] 2890 set old [ier_get] 2891 matchSymbol_DefaultType ; # (n DefaultType) 2892 ier_merge $old 2893 2894 if {$ok} return 2895 ias_pop2mark $mrk 2896 icl_rewind $pos 2897 2898 set mrk [ias_mark] 2899 set old [ier_get] 2900 matchSymbol_Destructor ; # (n Destructor) 2901 ier_merge $old 2902 2903 if {$ok} return 2904 ias_pop2mark $mrk 2905 icl_rewind $pos 2906 2907 set mrk [ias_mark] 2908 set old [ier_get] 2909 matchSymbol_ExtraArgument ; # (n ExtraArgument) 2910 ier_merge $old 2911 2912 if {$ok} return 2913 ias_pop2mark $mrk 2914 icl_rewind $pos 2915 2916 set mrk [ias_mark] 2917 set old [ier_get] 2918 matchSymbol_Include ; # (n Include) 2919 ier_merge $old 2920 2921 if {$ok} return 2922 ias_pop2mark $mrk 2923 icl_rewind $pos 2924 2925 set mrk [ias_mark] 2926 set old [ier_get] 2927 matchSymbol_Left ; # (n Left) 2928 ier_merge $old 2929 2930 if {$ok} return 2931 ias_pop2mark $mrk 2932 icl_rewind $pos 2933 2934 set mrk [ias_mark] 2935 set old [ier_get] 2936 matchSymbol_Name ; # (n Name) 2937 ier_merge $old 2938 2939 if {$ok} return 2940 ias_pop2mark $mrk 2941 icl_rewind $pos 2942 2943 set mrk [ias_mark] 2944 set old [ier_get] 2945 matchSymbol_Nonassoc ; # (n Nonassoc) 2946 ier_merge $old 2947 2948 if {$ok} return 2949 ias_pop2mark $mrk 2950 icl_rewind $pos 2951 2952 set mrk [ias_mark] 2953 set old [ier_get] 2954 matchSymbol_ParseAccept ; # (n ParseAccept) 2955 ier_merge $old 2956 2957 if {$ok} return 2958 ias_pop2mark $mrk 2959 icl_rewind $pos 2960 2961 set mrk [ias_mark] 2962 set old [ier_get] 2963 matchSymbol_ParseFailure ; # (n ParseFailure) 2964 ier_merge $old 2965 2966 if {$ok} return 2967 ias_pop2mark $mrk 2968 icl_rewind $pos 2969 2970 set mrk [ias_mark] 2971 set old [ier_get] 2972 matchSymbol_Right ; # (n Right) 2973 ier_merge $old 2974 2975 if {$ok} return 2976 ias_pop2mark $mrk 2977 icl_rewind $pos 2978 2979 set mrk [ias_mark] 2980 set old [ier_get] 2981 matchSymbol_StackOverflow ; # (n StackOverflow) 2982 ier_merge $old 2983 2984 if {$ok} return 2985 ias_pop2mark $mrk 2986 icl_rewind $pos 2987 2988 set mrk [ias_mark] 2989 set old [ier_get] 2990 matchSymbol_Stacksize ; # (n Stacksize) 2991 ier_merge $old 2992 2993 if {$ok} return 2994 ias_pop2mark $mrk 2995 icl_rewind $pos 2996 2997 set mrk [ias_mark] 2998 set old [ier_get] 2999 matchSymbol_StartSymbol ; # (n StartSymbol) 3000 ier_merge $old 3001 3002 if {$ok} return 3003 ias_pop2mark $mrk 3004 icl_rewind $pos 3005 3006 set mrk [ias_mark] 3007 set old [ier_get] 3008 matchSymbol_SyntaxError ; # (n SyntaxError) 3009 ier_merge $old 3010 3011 if {$ok} return 3012 ias_pop2mark $mrk 3013 icl_rewind $pos 3014 3015 set mrk [ias_mark] 3016 set old [ier_get] 3017 matchSymbol_TokenDestructor ; # (n TokenDestructor) 3018 ier_merge $old 3019 3020 if {$ok} return 3021 ias_pop2mark $mrk 3022 icl_rewind $pos 3023 3024 set mrk [ias_mark] 3025 set old [ier_get] 3026 matchSymbol_TokenPrefix ; # (n TokenPrefix) 3027 ier_merge $old 3028 3029 if {$ok} return 3030 ias_pop2mark $mrk 3031 icl_rewind $pos 3032 3033 set mrk [ias_mark] 3034 set old [ier_get] 3035 matchSymbol_TokenType ; # (n TokenType) 3036 ier_merge $old 3037 3038 if {$ok} return 3039 ias_pop2mark $mrk 3040 icl_rewind $pos 3041 3042 set mrk [ias_mark] 3043 set old [ier_get] 3044 matchSymbol_Type ; # (n Type) 3045 ier_merge $old 3046 3047 if {$ok} return 3048 ias_pop2mark $mrk 3049 icl_rewind $pos 3050 3051 set mrk [ias_mark] 3052 set old [ier_get] 3053 matchSymbol_Fallback ; # (n Fallback) 3054 ier_merge $old 3055 3056 if {$ok} return 3057 ias_pop2mark $mrk 3058 icl_rewind $pos 3059 3060 return 3061} 3062 3063proc ::page::parse::lemon::matchSymbol_DLEFT {} { 3064 # DLEFT = (x (t l) 3065 # (t e) 3066 # (t f) 3067 # (t t) 3068 # (n SPACE)) 3069 3070 if {[inc_restore DLEFT]} return 3071 3072 set pos [icl_get] 3073 3074 eseq65 ; # (x (t l) 3075 # (t e) 3076 # (t f) 3077 # (t t) 3078 # (n SPACE)) 3079 3080 isv_clear 3081 inc_save DLEFT $pos 3082 ier_nonterminal DLEFT $pos 3083 return 3084} 3085 3086proc ::page::parse::lemon::eseq65 {} { 3087 3088 # (x (t l) 3089 # (t e) 3090 # (t f) 3091 # (t t) 3092 # (n SPACE)) 3093 3094 variable ok 3095 3096 set pos [icl_get] 3097 3098 set old [ier_get] 3099 ict_advance l 3100 if {$ok} {ict_match_token l} 3101 ier_merge $old 3102 3103 if {!$ok} {icl_rewind $pos ; return} 3104 3105 set old [ier_get] 3106 ict_advance e 3107 if {$ok} {ict_match_token e} 3108 ier_merge $old 3109 3110 if {!$ok} {icl_rewind $pos ; return} 3111 3112 set old [ier_get] 3113 ict_advance f 3114 if {$ok} {ict_match_token f} 3115 ier_merge $old 3116 3117 if {!$ok} {icl_rewind $pos ; return} 3118 3119 set old [ier_get] 3120 ict_advance t 3121 if {$ok} {ict_match_token t} 3122 ier_merge $old 3123 3124 if {!$ok} {icl_rewind $pos ; return} 3125 3126 set old [ier_get] 3127 matchSymbol_SPACE ; # (n SPACE) 3128 ier_merge $old 3129 3130 if {!$ok} {icl_rewind $pos ; return} 3131 3132 return 3133} 3134 3135proc ::page::parse::lemon::matchSymbol_DNAME {} { 3136 # DNAME = (x (t n) 3137 # (t a) 3138 # (t m) 3139 # (t e) 3140 # (n SPACE)) 3141 3142 if {[inc_restore DNAME]} return 3143 3144 set pos [icl_get] 3145 3146 eseq66 ; # (x (t n) 3147 # (t a) 3148 # (t m) 3149 # (t e) 3150 # (n SPACE)) 3151 3152 isv_clear 3153 inc_save DNAME $pos 3154 ier_nonterminal DNAME $pos 3155 return 3156} 3157 3158proc ::page::parse::lemon::eseq66 {} { 3159 3160 # (x (t n) 3161 # (t a) 3162 # (t m) 3163 # (t e) 3164 # (n SPACE)) 3165 3166 variable ok 3167 3168 set pos [icl_get] 3169 3170 set old [ier_get] 3171 ict_advance n 3172 if {$ok} {ict_match_token n} 3173 ier_merge $old 3174 3175 if {!$ok} {icl_rewind $pos ; return} 3176 3177 set old [ier_get] 3178 ict_advance a 3179 if {$ok} {ict_match_token a} 3180 ier_merge $old 3181 3182 if {!$ok} {icl_rewind $pos ; return} 3183 3184 set old [ier_get] 3185 ict_advance m 3186 if {$ok} {ict_match_token m} 3187 ier_merge $old 3188 3189 if {!$ok} {icl_rewind $pos ; return} 3190 3191 set old [ier_get] 3192 ict_advance e 3193 if {$ok} {ict_match_token e} 3194 ier_merge $old 3195 3196 if {!$ok} {icl_rewind $pos ; return} 3197 3198 set old [ier_get] 3199 matchSymbol_SPACE ; # (n SPACE) 3200 ier_merge $old 3201 3202 if {!$ok} {icl_rewind $pos ; return} 3203 3204 return 3205} 3206 3207proc ::page::parse::lemon::matchSymbol_DNON {} { 3208 # DNON = (x (t n) 3209 # (t o) 3210 # (t n) 3211 # (t a) 3212 # (t s) 3213 # (t s) 3214 # (t o) 3215 # (t c) 3216 # (n SPACE)) 3217 3218 if {[inc_restore DNON]} return 3219 3220 set pos [icl_get] 3221 3222 eseq67 ; # (x (t n) 3223 # (t o) 3224 # (t n) 3225 # (t a) 3226 # (t s) 3227 # (t s) 3228 # (t o) 3229 # (t c) 3230 # (n SPACE)) 3231 3232 isv_clear 3233 inc_save DNON $pos 3234 ier_nonterminal DNON $pos 3235 return 3236} 3237 3238proc ::page::parse::lemon::eseq67 {} { 3239 3240 # (x (t n) 3241 # (t o) 3242 # (t n) 3243 # (t a) 3244 # (t s) 3245 # (t s) 3246 # (t o) 3247 # (t c) 3248 # (n SPACE)) 3249 3250 variable ok 3251 3252 set pos [icl_get] 3253 3254 set old [ier_get] 3255 ict_advance n 3256 if {$ok} {ict_match_token n} 3257 ier_merge $old 3258 3259 if {!$ok} {icl_rewind $pos ; return} 3260 3261 set old [ier_get] 3262 ict_advance o 3263 if {$ok} {ict_match_token o} 3264 ier_merge $old 3265 3266 if {!$ok} {icl_rewind $pos ; return} 3267 3268 set old [ier_get] 3269 ict_advance n 3270 if {$ok} {ict_match_token n} 3271 ier_merge $old 3272 3273 if {!$ok} {icl_rewind $pos ; return} 3274 3275 set old [ier_get] 3276 ict_advance a 3277 if {$ok} {ict_match_token a} 3278 ier_merge $old 3279 3280 if {!$ok} {icl_rewind $pos ; return} 3281 3282 set old [ier_get] 3283 ict_advance s 3284 if {$ok} {ict_match_token s} 3285 ier_merge $old 3286 3287 if {!$ok} {icl_rewind $pos ; return} 3288 3289 set old [ier_get] 3290 ict_advance s 3291 if {$ok} {ict_match_token s} 3292 ier_merge $old 3293 3294 if {!$ok} {icl_rewind $pos ; return} 3295 3296 set old [ier_get] 3297 ict_advance o 3298 if {$ok} {ict_match_token o} 3299 ier_merge $old 3300 3301 if {!$ok} {icl_rewind $pos ; return} 3302 3303 set old [ier_get] 3304 ict_advance c 3305 if {$ok} {ict_match_token c} 3306 ier_merge $old 3307 3308 if {!$ok} {icl_rewind $pos ; return} 3309 3310 set old [ier_get] 3311 matchSymbol_SPACE ; # (n SPACE) 3312 ier_merge $old 3313 3314 if {!$ok} {icl_rewind $pos ; return} 3315 3316 return 3317} 3318 3319proc ::page::parse::lemon::matchSymbol_DOT {} { 3320 # DOT = (x (t .) 3321 # (n SPACE)) 3322 3323 if {[inc_restore DOT]} return 3324 3325 set pos [icl_get] 3326 3327 eseq54 ; # (x (t .) 3328 # (n SPACE)) 3329 3330 isv_clear 3331 inc_save DOT $pos 3332 ier_nonterminal DOT $pos 3333 return 3334} 3335 3336proc ::page::parse::lemon::eseq54 {} { 3337 3338 # (x (t .) 3339 # (n SPACE)) 3340 3341 variable ok 3342 3343 set pos [icl_get] 3344 3345 set old [ier_get] 3346 ict_advance . 3347 if {$ok} {ict_match_token .} 3348 ier_merge $old 3349 3350 if {!$ok} {icl_rewind $pos ; return} 3351 3352 set old [ier_get] 3353 matchSymbol_SPACE ; # (n SPACE) 3354 ier_merge $old 3355 3356 if {!$ok} {icl_rewind $pos ; return} 3357 3358 return 3359} 3360 3361proc ::page::parse::lemon::matchSymbol_DPACC {} { 3362 # DPACC = (x (t p) 3363 # (t a) 3364 # (t r) 3365 # (t s) 3366 # (t e) 3367 # (t _) 3368 # (t a) 3369 # (t c) 3370 # (t c) 3371 # (t e) 3372 # (t p) 3373 # (t t) 3374 # (n SPACE)) 3375 3376 if {[inc_restore DPACC]} return 3377 3378 set pos [icl_get] 3379 3380 eseq68 ; # (x (t p) 3381 # (t a) 3382 # (t r) 3383 # (t s) 3384 # (t e) 3385 # (t _) 3386 # (t a) 3387 # (t c) 3388 # (t c) 3389 # (t e) 3390 # (t p) 3391 # (t t) 3392 # (n SPACE)) 3393 3394 isv_clear 3395 inc_save DPACC $pos 3396 ier_nonterminal DPACC $pos 3397 return 3398} 3399 3400proc ::page::parse::lemon::eseq68 {} { 3401 3402 # (x (t p) 3403 # (t a) 3404 # (t r) 3405 # (t s) 3406 # (t e) 3407 # (t _) 3408 # (t a) 3409 # (t c) 3410 # (t c) 3411 # (t e) 3412 # (t p) 3413 # (t t) 3414 # (n SPACE)) 3415 3416 variable ok 3417 3418 set pos [icl_get] 3419 3420 set old [ier_get] 3421 ict_advance p 3422 if {$ok} {ict_match_token p} 3423 ier_merge $old 3424 3425 if {!$ok} {icl_rewind $pos ; return} 3426 3427 set old [ier_get] 3428 ict_advance a 3429 if {$ok} {ict_match_token a} 3430 ier_merge $old 3431 3432 if {!$ok} {icl_rewind $pos ; return} 3433 3434 set old [ier_get] 3435 ict_advance r 3436 if {$ok} {ict_match_token r} 3437 ier_merge $old 3438 3439 if {!$ok} {icl_rewind $pos ; return} 3440 3441 set old [ier_get] 3442 ict_advance s 3443 if {$ok} {ict_match_token s} 3444 ier_merge $old 3445 3446 if {!$ok} {icl_rewind $pos ; return} 3447 3448 set old [ier_get] 3449 ict_advance e 3450 if {$ok} {ict_match_token e} 3451 ier_merge $old 3452 3453 if {!$ok} {icl_rewind $pos ; return} 3454 3455 set old [ier_get] 3456 ict_advance _ 3457 if {$ok} {ict_match_token _} 3458 ier_merge $old 3459 3460 if {!$ok} {icl_rewind $pos ; return} 3461 3462 set old [ier_get] 3463 ict_advance a 3464 if {$ok} {ict_match_token a} 3465 ier_merge $old 3466 3467 if {!$ok} {icl_rewind $pos ; return} 3468 3469 set old [ier_get] 3470 ict_advance c 3471 if {$ok} {ict_match_token c} 3472 ier_merge $old 3473 3474 if {!$ok} {icl_rewind $pos ; return} 3475 3476 set old [ier_get] 3477 ict_advance c 3478 if {$ok} {ict_match_token c} 3479 ier_merge $old 3480 3481 if {!$ok} {icl_rewind $pos ; return} 3482 3483 set old [ier_get] 3484 ict_advance e 3485 if {$ok} {ict_match_token e} 3486 ier_merge $old 3487 3488 if {!$ok} {icl_rewind $pos ; return} 3489 3490 set old [ier_get] 3491 ict_advance p 3492 if {$ok} {ict_match_token p} 3493 ier_merge $old 3494 3495 if {!$ok} {icl_rewind $pos ; return} 3496 3497 set old [ier_get] 3498 ict_advance t 3499 if {$ok} {ict_match_token t} 3500 ier_merge $old 3501 3502 if {!$ok} {icl_rewind $pos ; return} 3503 3504 set old [ier_get] 3505 matchSymbol_SPACE ; # (n SPACE) 3506 ier_merge $old 3507 3508 if {!$ok} {icl_rewind $pos ; return} 3509 3510 return 3511} 3512 3513proc ::page::parse::lemon::matchSymbol_DPFAIL {} { 3514 # DPFAIL = (x (t p) 3515 # (t a) 3516 # (t r) 3517 # (t s) 3518 # (t e) 3519 # (t _) 3520 # (t f) 3521 # (t a) 3522 # (t i) 3523 # (t l) 3524 # (t u) 3525 # (t r) 3526 # (t e) 3527 # (n SPACE)) 3528 3529 if {[inc_restore DPFAIL]} return 3530 3531 set pos [icl_get] 3532 3533 eseq69 ; # (x (t p) 3534 # (t a) 3535 # (t r) 3536 # (t s) 3537 # (t e) 3538 # (t _) 3539 # (t f) 3540 # (t a) 3541 # (t i) 3542 # (t l) 3543 # (t u) 3544 # (t r) 3545 # (t e) 3546 # (n SPACE)) 3547 3548 isv_clear 3549 inc_save DPFAIL $pos 3550 ier_nonterminal DPFAIL $pos 3551 return 3552} 3553 3554proc ::page::parse::lemon::eseq69 {} { 3555 3556 # (x (t p) 3557 # (t a) 3558 # (t r) 3559 # (t s) 3560 # (t e) 3561 # (t _) 3562 # (t f) 3563 # (t a) 3564 # (t i) 3565 # (t l) 3566 # (t u) 3567 # (t r) 3568 # (t e) 3569 # (n SPACE)) 3570 3571 variable ok 3572 3573 set pos [icl_get] 3574 3575 set old [ier_get] 3576 ict_advance p 3577 if {$ok} {ict_match_token p} 3578 ier_merge $old 3579 3580 if {!$ok} {icl_rewind $pos ; return} 3581 3582 set old [ier_get] 3583 ict_advance a 3584 if {$ok} {ict_match_token a} 3585 ier_merge $old 3586 3587 if {!$ok} {icl_rewind $pos ; return} 3588 3589 set old [ier_get] 3590 ict_advance r 3591 if {$ok} {ict_match_token r} 3592 ier_merge $old 3593 3594 if {!$ok} {icl_rewind $pos ; return} 3595 3596 set old [ier_get] 3597 ict_advance s 3598 if {$ok} {ict_match_token s} 3599 ier_merge $old 3600 3601 if {!$ok} {icl_rewind $pos ; return} 3602 3603 set old [ier_get] 3604 ict_advance e 3605 if {$ok} {ict_match_token e} 3606 ier_merge $old 3607 3608 if {!$ok} {icl_rewind $pos ; return} 3609 3610 set old [ier_get] 3611 ict_advance _ 3612 if {$ok} {ict_match_token _} 3613 ier_merge $old 3614 3615 if {!$ok} {icl_rewind $pos ; return} 3616 3617 set old [ier_get] 3618 ict_advance f 3619 if {$ok} {ict_match_token f} 3620 ier_merge $old 3621 3622 if {!$ok} {icl_rewind $pos ; return} 3623 3624 set old [ier_get] 3625 ict_advance a 3626 if {$ok} {ict_match_token a} 3627 ier_merge $old 3628 3629 if {!$ok} {icl_rewind $pos ; return} 3630 3631 set old [ier_get] 3632 ict_advance i 3633 if {$ok} {ict_match_token i} 3634 ier_merge $old 3635 3636 if {!$ok} {icl_rewind $pos ; return} 3637 3638 set old [ier_get] 3639 ict_advance l 3640 if {$ok} {ict_match_token l} 3641 ier_merge $old 3642 3643 if {!$ok} {icl_rewind $pos ; return} 3644 3645 set old [ier_get] 3646 ict_advance u 3647 if {$ok} {ict_match_token u} 3648 ier_merge $old 3649 3650 if {!$ok} {icl_rewind $pos ; return} 3651 3652 set old [ier_get] 3653 ict_advance r 3654 if {$ok} {ict_match_token r} 3655 ier_merge $old 3656 3657 if {!$ok} {icl_rewind $pos ; return} 3658 3659 set old [ier_get] 3660 ict_advance e 3661 if {$ok} {ict_match_token e} 3662 ier_merge $old 3663 3664 if {!$ok} {icl_rewind $pos ; return} 3665 3666 set old [ier_get] 3667 matchSymbol_SPACE ; # (n SPACE) 3668 ier_merge $old 3669 3670 if {!$ok} {icl_rewind $pos ; return} 3671 3672 return 3673} 3674 3675proc ::page::parse::lemon::matchSymbol_DRIGHT {} { 3676 # DRIGHT = (x (t r) 3677 # (t i) 3678 # (t g) 3679 # (t h) 3680 # (t t) 3681 # (n SPACE)) 3682 3683 if {[inc_restore DRIGHT]} return 3684 3685 set pos [icl_get] 3686 3687 eseq70 ; # (x (t r) 3688 # (t i) 3689 # (t g) 3690 # (t h) 3691 # (t t) 3692 # (n SPACE)) 3693 3694 isv_clear 3695 inc_save DRIGHT $pos 3696 ier_nonterminal DRIGHT $pos 3697 return 3698} 3699 3700proc ::page::parse::lemon::eseq70 {} { 3701 3702 # (x (t r) 3703 # (t i) 3704 # (t g) 3705 # (t h) 3706 # (t t) 3707 # (n SPACE)) 3708 3709 variable ok 3710 3711 set pos [icl_get] 3712 3713 set old [ier_get] 3714 ict_advance r 3715 if {$ok} {ict_match_token r} 3716 ier_merge $old 3717 3718 if {!$ok} {icl_rewind $pos ; return} 3719 3720 set old [ier_get] 3721 ict_advance i 3722 if {$ok} {ict_match_token i} 3723 ier_merge $old 3724 3725 if {!$ok} {icl_rewind $pos ; return} 3726 3727 set old [ier_get] 3728 ict_advance g 3729 if {$ok} {ict_match_token g} 3730 ier_merge $old 3731 3732 if {!$ok} {icl_rewind $pos ; return} 3733 3734 set old [ier_get] 3735 ict_advance h 3736 if {$ok} {ict_match_token h} 3737 ier_merge $old 3738 3739 if {!$ok} {icl_rewind $pos ; return} 3740 3741 set old [ier_get] 3742 ict_advance t 3743 if {$ok} {ict_match_token t} 3744 ier_merge $old 3745 3746 if {!$ok} {icl_rewind $pos ; return} 3747 3748 set old [ier_get] 3749 matchSymbol_SPACE ; # (n SPACE) 3750 ier_merge $old 3751 3752 if {!$ok} {icl_rewind $pos ; return} 3753 3754 return 3755} 3756 3757proc ::page::parse::lemon::matchSymbol_DSTART {} { 3758 # DSTART = (x (t s) 3759 # (t t) 3760 # (t a) 3761 # (t r) 3762 # (t t) 3763 # (t _) 3764 # (t s) 3765 # (t y) 3766 # (t m) 3767 # (t b) 3768 # (t o) 3769 # (t l) 3770 # (n SPACE)) 3771 3772 if {[inc_restore DSTART]} return 3773 3774 set pos [icl_get] 3775 3776 eseq73 ; # (x (t s) 3777 # (t t) 3778 # (t a) 3779 # (t r) 3780 # (t t) 3781 # (t _) 3782 # (t s) 3783 # (t y) 3784 # (t m) 3785 # (t b) 3786 # (t o) 3787 # (t l) 3788 # (n SPACE)) 3789 3790 isv_clear 3791 inc_save DSTART $pos 3792 ier_nonterminal DSTART $pos 3793 return 3794} 3795 3796proc ::page::parse::lemon::eseq73 {} { 3797 3798 # (x (t s) 3799 # (t t) 3800 # (t a) 3801 # (t r) 3802 # (t t) 3803 # (t _) 3804 # (t s) 3805 # (t y) 3806 # (t m) 3807 # (t b) 3808 # (t o) 3809 # (t l) 3810 # (n SPACE)) 3811 3812 variable ok 3813 3814 set pos [icl_get] 3815 3816 set old [ier_get] 3817 ict_advance s 3818 if {$ok} {ict_match_token s} 3819 ier_merge $old 3820 3821 if {!$ok} {icl_rewind $pos ; return} 3822 3823 set old [ier_get] 3824 ict_advance t 3825 if {$ok} {ict_match_token t} 3826 ier_merge $old 3827 3828 if {!$ok} {icl_rewind $pos ; return} 3829 3830 set old [ier_get] 3831 ict_advance a 3832 if {$ok} {ict_match_token a} 3833 ier_merge $old 3834 3835 if {!$ok} {icl_rewind $pos ; return} 3836 3837 set old [ier_get] 3838 ict_advance r 3839 if {$ok} {ict_match_token r} 3840 ier_merge $old 3841 3842 if {!$ok} {icl_rewind $pos ; return} 3843 3844 set old [ier_get] 3845 ict_advance t 3846 if {$ok} {ict_match_token t} 3847 ier_merge $old 3848 3849 if {!$ok} {icl_rewind $pos ; return} 3850 3851 set old [ier_get] 3852 ict_advance _ 3853 if {$ok} {ict_match_token _} 3854 ier_merge $old 3855 3856 if {!$ok} {icl_rewind $pos ; return} 3857 3858 set old [ier_get] 3859 ict_advance s 3860 if {$ok} {ict_match_token s} 3861 ier_merge $old 3862 3863 if {!$ok} {icl_rewind $pos ; return} 3864 3865 set old [ier_get] 3866 ict_advance y 3867 if {$ok} {ict_match_token y} 3868 ier_merge $old 3869 3870 if {!$ok} {icl_rewind $pos ; return} 3871 3872 set old [ier_get] 3873 ict_advance m 3874 if {$ok} {ict_match_token m} 3875 ier_merge $old 3876 3877 if {!$ok} {icl_rewind $pos ; return} 3878 3879 set old [ier_get] 3880 ict_advance b 3881 if {$ok} {ict_match_token b} 3882 ier_merge $old 3883 3884 if {!$ok} {icl_rewind $pos ; return} 3885 3886 set old [ier_get] 3887 ict_advance o 3888 if {$ok} {ict_match_token o} 3889 ier_merge $old 3890 3891 if {!$ok} {icl_rewind $pos ; return} 3892 3893 set old [ier_get] 3894 ict_advance l 3895 if {$ok} {ict_match_token l} 3896 ier_merge $old 3897 3898 if {!$ok} {icl_rewind $pos ; return} 3899 3900 set old [ier_get] 3901 matchSymbol_SPACE ; # (n SPACE) 3902 ier_merge $old 3903 3904 if {!$ok} {icl_rewind $pos ; return} 3905 3906 return 3907} 3908 3909proc ::page::parse::lemon::matchSymbol_DSTKOVER {} { 3910 # DSTKOVER = (x (t s) 3911 # (t t) 3912 # (t a) 3913 # (t c) 3914 # (t k) 3915 # (t _) 3916 # (t o) 3917 # (t v) 3918 # (t e) 3919 # (t r) 3920 # (t f) 3921 # (t l) 3922 # (t o) 3923 # (t w) 3924 # (n SPACE)) 3925 3926 if {[inc_restore DSTKOVER]} return 3927 3928 set pos [icl_get] 3929 3930 eseq71 ; # (x (t s) 3931 # (t t) 3932 # (t a) 3933 # (t c) 3934 # (t k) 3935 # (t _) 3936 # (t o) 3937 # (t v) 3938 # (t e) 3939 # (t r) 3940 # (t f) 3941 # (t l) 3942 # (t o) 3943 # (t w) 3944 # (n SPACE)) 3945 3946 isv_clear 3947 inc_save DSTKOVER $pos 3948 ier_nonterminal DSTKOVER $pos 3949 return 3950} 3951 3952proc ::page::parse::lemon::eseq71 {} { 3953 3954 # (x (t s) 3955 # (t t) 3956 # (t a) 3957 # (t c) 3958 # (t k) 3959 # (t _) 3960 # (t o) 3961 # (t v) 3962 # (t e) 3963 # (t r) 3964 # (t f) 3965 # (t l) 3966 # (t o) 3967 # (t w) 3968 # (n SPACE)) 3969 3970 variable ok 3971 3972 set pos [icl_get] 3973 3974 set old [ier_get] 3975 ict_advance s 3976 if {$ok} {ict_match_token s} 3977 ier_merge $old 3978 3979 if {!$ok} {icl_rewind $pos ; return} 3980 3981 set old [ier_get] 3982 ict_advance t 3983 if {$ok} {ict_match_token t} 3984 ier_merge $old 3985 3986 if {!$ok} {icl_rewind $pos ; return} 3987 3988 set old [ier_get] 3989 ict_advance a 3990 if {$ok} {ict_match_token a} 3991 ier_merge $old 3992 3993 if {!$ok} {icl_rewind $pos ; return} 3994 3995 set old [ier_get] 3996 ict_advance c 3997 if {$ok} {ict_match_token c} 3998 ier_merge $old 3999 4000 if {!$ok} {icl_rewind $pos ; return} 4001 4002 set old [ier_get] 4003 ict_advance k 4004 if {$ok} {ict_match_token k} 4005 ier_merge $old 4006 4007 if {!$ok} {icl_rewind $pos ; return} 4008 4009 set old [ier_get] 4010 ict_advance _ 4011 if {$ok} {ict_match_token _} 4012 ier_merge $old 4013 4014 if {!$ok} {icl_rewind $pos ; return} 4015 4016 set old [ier_get] 4017 ict_advance o 4018 if {$ok} {ict_match_token o} 4019 ier_merge $old 4020 4021 if {!$ok} {icl_rewind $pos ; return} 4022 4023 set old [ier_get] 4024 ict_advance v 4025 if {$ok} {ict_match_token v} 4026 ier_merge $old 4027 4028 if {!$ok} {icl_rewind $pos ; return} 4029 4030 set old [ier_get] 4031 ict_advance e 4032 if {$ok} {ict_match_token e} 4033 ier_merge $old 4034 4035 if {!$ok} {icl_rewind $pos ; return} 4036 4037 set old [ier_get] 4038 ict_advance r 4039 if {$ok} {ict_match_token r} 4040 ier_merge $old 4041 4042 if {!$ok} {icl_rewind $pos ; return} 4043 4044 set old [ier_get] 4045 ict_advance f 4046 if {$ok} {ict_match_token f} 4047 ier_merge $old 4048 4049 if {!$ok} {icl_rewind $pos ; return} 4050 4051 set old [ier_get] 4052 ict_advance l 4053 if {$ok} {ict_match_token l} 4054 ier_merge $old 4055 4056 if {!$ok} {icl_rewind $pos ; return} 4057 4058 set old [ier_get] 4059 ict_advance o 4060 if {$ok} {ict_match_token o} 4061 ier_merge $old 4062 4063 if {!$ok} {icl_rewind $pos ; return} 4064 4065 set old [ier_get] 4066 ict_advance w 4067 if {$ok} {ict_match_token w} 4068 ier_merge $old 4069 4070 if {!$ok} {icl_rewind $pos ; return} 4071 4072 set old [ier_get] 4073 matchSymbol_SPACE ; # (n SPACE) 4074 ier_merge $old 4075 4076 if {!$ok} {icl_rewind $pos ; return} 4077 4078 return 4079} 4080 4081proc ::page::parse::lemon::matchSymbol_DSTKSZ {} { 4082 # DSTKSZ = (x (t s) 4083 # (t t) 4084 # (t a) 4085 # (t c) 4086 # (t k) 4087 # (t _) 4088 # (t s) 4089 # (t i) 4090 # (t z) 4091 # (t e) 4092 # (n SPACE)) 4093 4094 if {[inc_restore DSTKSZ]} return 4095 4096 set pos [icl_get] 4097 4098 eseq72 ; # (x (t s) 4099 # (t t) 4100 # (t a) 4101 # (t c) 4102 # (t k) 4103 # (t _) 4104 # (t s) 4105 # (t i) 4106 # (t z) 4107 # (t e) 4108 # (n SPACE)) 4109 4110 isv_clear 4111 inc_save DSTKSZ $pos 4112 ier_nonterminal DSTKSZ $pos 4113 return 4114} 4115 4116proc ::page::parse::lemon::eseq72 {} { 4117 4118 # (x (t s) 4119 # (t t) 4120 # (t a) 4121 # (t c) 4122 # (t k) 4123 # (t _) 4124 # (t s) 4125 # (t i) 4126 # (t z) 4127 # (t e) 4128 # (n SPACE)) 4129 4130 variable ok 4131 4132 set pos [icl_get] 4133 4134 set old [ier_get] 4135 ict_advance s 4136 if {$ok} {ict_match_token s} 4137 ier_merge $old 4138 4139 if {!$ok} {icl_rewind $pos ; return} 4140 4141 set old [ier_get] 4142 ict_advance t 4143 if {$ok} {ict_match_token t} 4144 ier_merge $old 4145 4146 if {!$ok} {icl_rewind $pos ; return} 4147 4148 set old [ier_get] 4149 ict_advance a 4150 if {$ok} {ict_match_token a} 4151 ier_merge $old 4152 4153 if {!$ok} {icl_rewind $pos ; return} 4154 4155 set old [ier_get] 4156 ict_advance c 4157 if {$ok} {ict_match_token c} 4158 ier_merge $old 4159 4160 if {!$ok} {icl_rewind $pos ; return} 4161 4162 set old [ier_get] 4163 ict_advance k 4164 if {$ok} {ict_match_token k} 4165 ier_merge $old 4166 4167 if {!$ok} {icl_rewind $pos ; return} 4168 4169 set old [ier_get] 4170 ict_advance _ 4171 if {$ok} {ict_match_token _} 4172 ier_merge $old 4173 4174 if {!$ok} {icl_rewind $pos ; return} 4175 4176 set old [ier_get] 4177 ict_advance s 4178 if {$ok} {ict_match_token s} 4179 ier_merge $old 4180 4181 if {!$ok} {icl_rewind $pos ; return} 4182 4183 set old [ier_get] 4184 ict_advance i 4185 if {$ok} {ict_match_token i} 4186 ier_merge $old 4187 4188 if {!$ok} {icl_rewind $pos ; return} 4189 4190 set old [ier_get] 4191 ict_advance z 4192 if {$ok} {ict_match_token z} 4193 ier_merge $old 4194 4195 if {!$ok} {icl_rewind $pos ; return} 4196 4197 set old [ier_get] 4198 ict_advance e 4199 if {$ok} {ict_match_token e} 4200 ier_merge $old 4201 4202 if {!$ok} {icl_rewind $pos ; return} 4203 4204 set old [ier_get] 4205 matchSymbol_SPACE ; # (n SPACE) 4206 ier_merge $old 4207 4208 if {!$ok} {icl_rewind $pos ; return} 4209 4210 return 4211} 4212 4213proc ::page::parse::lemon::matchSymbol_DSYNERR {} { 4214 # DSYNERR = (x (t s) 4215 # (t y) 4216 # (t n) 4217 # (t t) 4218 # (t a) 4219 # (t x) 4220 # (t _) 4221 # (t e) 4222 # (t r) 4223 # (t r) 4224 # (t o) 4225 # (t r) 4226 # (n SPACE)) 4227 4228 if {[inc_restore DSYNERR]} return 4229 4230 set pos [icl_get] 4231 4232 eseq74 ; # (x (t s) 4233 # (t y) 4234 # (t n) 4235 # (t t) 4236 # (t a) 4237 # (t x) 4238 # (t _) 4239 # (t e) 4240 # (t r) 4241 # (t r) 4242 # (t o) 4243 # (t r) 4244 # (n SPACE)) 4245 4246 isv_clear 4247 inc_save DSYNERR $pos 4248 ier_nonterminal DSYNERR $pos 4249 return 4250} 4251 4252proc ::page::parse::lemon::eseq74 {} { 4253 4254 # (x (t s) 4255 # (t y) 4256 # (t n) 4257 # (t t) 4258 # (t a) 4259 # (t x) 4260 # (t _) 4261 # (t e) 4262 # (t r) 4263 # (t r) 4264 # (t o) 4265 # (t r) 4266 # (n SPACE)) 4267 4268 variable ok 4269 4270 set pos [icl_get] 4271 4272 set old [ier_get] 4273 ict_advance s 4274 if {$ok} {ict_match_token s} 4275 ier_merge $old 4276 4277 if {!$ok} {icl_rewind $pos ; return} 4278 4279 set old [ier_get] 4280 ict_advance y 4281 if {$ok} {ict_match_token y} 4282 ier_merge $old 4283 4284 if {!$ok} {icl_rewind $pos ; return} 4285 4286 set old [ier_get] 4287 ict_advance n 4288 if {$ok} {ict_match_token n} 4289 ier_merge $old 4290 4291 if {!$ok} {icl_rewind $pos ; return} 4292 4293 set old [ier_get] 4294 ict_advance t 4295 if {$ok} {ict_match_token t} 4296 ier_merge $old 4297 4298 if {!$ok} {icl_rewind $pos ; return} 4299 4300 set old [ier_get] 4301 ict_advance a 4302 if {$ok} {ict_match_token a} 4303 ier_merge $old 4304 4305 if {!$ok} {icl_rewind $pos ; return} 4306 4307 set old [ier_get] 4308 ict_advance x 4309 if {$ok} {ict_match_token x} 4310 ier_merge $old 4311 4312 if {!$ok} {icl_rewind $pos ; return} 4313 4314 set old [ier_get] 4315 ict_advance _ 4316 if {$ok} {ict_match_token _} 4317 ier_merge $old 4318 4319 if {!$ok} {icl_rewind $pos ; return} 4320 4321 set old [ier_get] 4322 ict_advance e 4323 if {$ok} {ict_match_token e} 4324 ier_merge $old 4325 4326 if {!$ok} {icl_rewind $pos ; return} 4327 4328 set old [ier_get] 4329 ict_advance r 4330 if {$ok} {ict_match_token r} 4331 ier_merge $old 4332 4333 if {!$ok} {icl_rewind $pos ; return} 4334 4335 set old [ier_get] 4336 ict_advance r 4337 if {$ok} {ict_match_token r} 4338 ier_merge $old 4339 4340 if {!$ok} {icl_rewind $pos ; return} 4341 4342 set old [ier_get] 4343 ict_advance o 4344 if {$ok} {ict_match_token o} 4345 ier_merge $old 4346 4347 if {!$ok} {icl_rewind $pos ; return} 4348 4349 set old [ier_get] 4350 ict_advance r 4351 if {$ok} {ict_match_token r} 4352 ier_merge $old 4353 4354 if {!$ok} {icl_rewind $pos ; return} 4355 4356 set old [ier_get] 4357 matchSymbol_SPACE ; # (n SPACE) 4358 ier_merge $old 4359 4360 if {!$ok} {icl_rewind $pos ; return} 4361 4362 return 4363} 4364 4365proc ::page::parse::lemon::matchSymbol_DTOKDEST {} { 4366 # DTOKDEST = (x (t t) 4367 # (t o) 4368 # (t k) 4369 # (t e) 4370 # (t n) 4371 # (t _) 4372 # (t d) 4373 # (t e) 4374 # (t s) 4375 # (t t) 4376 # (t r) 4377 # (t u) 4378 # (t c) 4379 # (t t) 4380 # (t o) 4381 # (t r) 4382 # (n SPACE)) 4383 4384 if {[inc_restore DTOKDEST]} return 4385 4386 set pos [icl_get] 4387 4388 eseq75 ; # (x (t t) 4389 # (t o) 4390 # (t k) 4391 # (t e) 4392 # (t n) 4393 # (t _) 4394 # (t d) 4395 # (t e) 4396 # (t s) 4397 # (t t) 4398 # (t r) 4399 # (t u) 4400 # (t c) 4401 # (t t) 4402 # (t o) 4403 # (t r) 4404 # (n SPACE)) 4405 4406 isv_clear 4407 inc_save DTOKDEST $pos 4408 ier_nonterminal DTOKDEST $pos 4409 return 4410} 4411 4412proc ::page::parse::lemon::eseq75 {} { 4413 4414 # (x (t t) 4415 # (t o) 4416 # (t k) 4417 # (t e) 4418 # (t n) 4419 # (t _) 4420 # (t d) 4421 # (t e) 4422 # (t s) 4423 # (t t) 4424 # (t r) 4425 # (t u) 4426 # (t c) 4427 # (t t) 4428 # (t o) 4429 # (t r) 4430 # (n SPACE)) 4431 4432 variable ok 4433 4434 set pos [icl_get] 4435 4436 set old [ier_get] 4437 ict_advance t 4438 if {$ok} {ict_match_token t} 4439 ier_merge $old 4440 4441 if {!$ok} {icl_rewind $pos ; return} 4442 4443 set old [ier_get] 4444 ict_advance o 4445 if {$ok} {ict_match_token o} 4446 ier_merge $old 4447 4448 if {!$ok} {icl_rewind $pos ; return} 4449 4450 set old [ier_get] 4451 ict_advance k 4452 if {$ok} {ict_match_token k} 4453 ier_merge $old 4454 4455 if {!$ok} {icl_rewind $pos ; return} 4456 4457 set old [ier_get] 4458 ict_advance e 4459 if {$ok} {ict_match_token e} 4460 ier_merge $old 4461 4462 if {!$ok} {icl_rewind $pos ; return} 4463 4464 set old [ier_get] 4465 ict_advance n 4466 if {$ok} {ict_match_token n} 4467 ier_merge $old 4468 4469 if {!$ok} {icl_rewind $pos ; return} 4470 4471 set old [ier_get] 4472 ict_advance _ 4473 if {$ok} {ict_match_token _} 4474 ier_merge $old 4475 4476 if {!$ok} {icl_rewind $pos ; return} 4477 4478 set old [ier_get] 4479 ict_advance d 4480 if {$ok} {ict_match_token d} 4481 ier_merge $old 4482 4483 if {!$ok} {icl_rewind $pos ; return} 4484 4485 set old [ier_get] 4486 ict_advance e 4487 if {$ok} {ict_match_token e} 4488 ier_merge $old 4489 4490 if {!$ok} {icl_rewind $pos ; return} 4491 4492 set old [ier_get] 4493 ict_advance s 4494 if {$ok} {ict_match_token s} 4495 ier_merge $old 4496 4497 if {!$ok} {icl_rewind $pos ; return} 4498 4499 set old [ier_get] 4500 ict_advance t 4501 if {$ok} {ict_match_token t} 4502 ier_merge $old 4503 4504 if {!$ok} {icl_rewind $pos ; return} 4505 4506 set old [ier_get] 4507 ict_advance r 4508 if {$ok} {ict_match_token r} 4509 ier_merge $old 4510 4511 if {!$ok} {icl_rewind $pos ; return} 4512 4513 set old [ier_get] 4514 ict_advance u 4515 if {$ok} {ict_match_token u} 4516 ier_merge $old 4517 4518 if {!$ok} {icl_rewind $pos ; return} 4519 4520 set old [ier_get] 4521 ict_advance c 4522 if {$ok} {ict_match_token c} 4523 ier_merge $old 4524 4525 if {!$ok} {icl_rewind $pos ; return} 4526 4527 set old [ier_get] 4528 ict_advance t 4529 if {$ok} {ict_match_token t} 4530 ier_merge $old 4531 4532 if {!$ok} {icl_rewind $pos ; return} 4533 4534 set old [ier_get] 4535 ict_advance o 4536 if {$ok} {ict_match_token o} 4537 ier_merge $old 4538 4539 if {!$ok} {icl_rewind $pos ; return} 4540 4541 set old [ier_get] 4542 ict_advance r 4543 if {$ok} {ict_match_token r} 4544 ier_merge $old 4545 4546 if {!$ok} {icl_rewind $pos ; return} 4547 4548 set old [ier_get] 4549 matchSymbol_SPACE ; # (n SPACE) 4550 ier_merge $old 4551 4552 if {!$ok} {icl_rewind $pos ; return} 4553 4554 return 4555} 4556 4557proc ::page::parse::lemon::matchSymbol_DTOKPFX {} { 4558 # DTOKPFX = (x (t t) 4559 # (t o) 4560 # (t k) 4561 # (t e) 4562 # (t n) 4563 # (t _) 4564 # (t p) 4565 # (t r) 4566 # (t e) 4567 # (t f) 4568 # (t i) 4569 # (t x) 4570 # (n SPACE)) 4571 4572 if {[inc_restore DTOKPFX]} return 4573 4574 set pos [icl_get] 4575 4576 eseq76 ; # (x (t t) 4577 # (t o) 4578 # (t k) 4579 # (t e) 4580 # (t n) 4581 # (t _) 4582 # (t p) 4583 # (t r) 4584 # (t e) 4585 # (t f) 4586 # (t i) 4587 # (t x) 4588 # (n SPACE)) 4589 4590 isv_clear 4591 inc_save DTOKPFX $pos 4592 ier_nonterminal DTOKPFX $pos 4593 return 4594} 4595 4596proc ::page::parse::lemon::eseq76 {} { 4597 4598 # (x (t t) 4599 # (t o) 4600 # (t k) 4601 # (t e) 4602 # (t n) 4603 # (t _) 4604 # (t p) 4605 # (t r) 4606 # (t e) 4607 # (t f) 4608 # (t i) 4609 # (t x) 4610 # (n SPACE)) 4611 4612 variable ok 4613 4614 set pos [icl_get] 4615 4616 set old [ier_get] 4617 ict_advance t 4618 if {$ok} {ict_match_token t} 4619 ier_merge $old 4620 4621 if {!$ok} {icl_rewind $pos ; return} 4622 4623 set old [ier_get] 4624 ict_advance o 4625 if {$ok} {ict_match_token o} 4626 ier_merge $old 4627 4628 if {!$ok} {icl_rewind $pos ; return} 4629 4630 set old [ier_get] 4631 ict_advance k 4632 if {$ok} {ict_match_token k} 4633 ier_merge $old 4634 4635 if {!$ok} {icl_rewind $pos ; return} 4636 4637 set old [ier_get] 4638 ict_advance e 4639 if {$ok} {ict_match_token e} 4640 ier_merge $old 4641 4642 if {!$ok} {icl_rewind $pos ; return} 4643 4644 set old [ier_get] 4645 ict_advance n 4646 if {$ok} {ict_match_token n} 4647 ier_merge $old 4648 4649 if {!$ok} {icl_rewind $pos ; return} 4650 4651 set old [ier_get] 4652 ict_advance _ 4653 if {$ok} {ict_match_token _} 4654 ier_merge $old 4655 4656 if {!$ok} {icl_rewind $pos ; return} 4657 4658 set old [ier_get] 4659 ict_advance p 4660 if {$ok} {ict_match_token p} 4661 ier_merge $old 4662 4663 if {!$ok} {icl_rewind $pos ; return} 4664 4665 set old [ier_get] 4666 ict_advance r 4667 if {$ok} {ict_match_token r} 4668 ier_merge $old 4669 4670 if {!$ok} {icl_rewind $pos ; return} 4671 4672 set old [ier_get] 4673 ict_advance e 4674 if {$ok} {ict_match_token e} 4675 ier_merge $old 4676 4677 if {!$ok} {icl_rewind $pos ; return} 4678 4679 set old [ier_get] 4680 ict_advance f 4681 if {$ok} {ict_match_token f} 4682 ier_merge $old 4683 4684 if {!$ok} {icl_rewind $pos ; return} 4685 4686 set old [ier_get] 4687 ict_advance i 4688 if {$ok} {ict_match_token i} 4689 ier_merge $old 4690 4691 if {!$ok} {icl_rewind $pos ; return} 4692 4693 set old [ier_get] 4694 ict_advance x 4695 if {$ok} {ict_match_token x} 4696 ier_merge $old 4697 4698 if {!$ok} {icl_rewind $pos ; return} 4699 4700 set old [ier_get] 4701 matchSymbol_SPACE ; # (n SPACE) 4702 ier_merge $old 4703 4704 if {!$ok} {icl_rewind $pos ; return} 4705 4706 return 4707} 4708 4709proc ::page::parse::lemon::matchSymbol_DTOKTYPE {} { 4710 # DTOKTYPE = (x (t t) 4711 # (t o) 4712 # (t k) 4713 # (t e) 4714 # (t n) 4715 # (t _) 4716 # (t t) 4717 # (t y) 4718 # (t p) 4719 # (t e) 4720 # (n SPACE)) 4721 4722 if {[inc_restore DTOKTYPE]} return 4723 4724 set pos [icl_get] 4725 4726 eseq77 ; # (x (t t) 4727 # (t o) 4728 # (t k) 4729 # (t e) 4730 # (t n) 4731 # (t _) 4732 # (t t) 4733 # (t y) 4734 # (t p) 4735 # (t e) 4736 # (n SPACE)) 4737 4738 isv_clear 4739 inc_save DTOKTYPE $pos 4740 ier_nonterminal DTOKTYPE $pos 4741 return 4742} 4743 4744proc ::page::parse::lemon::eseq77 {} { 4745 4746 # (x (t t) 4747 # (t o) 4748 # (t k) 4749 # (t e) 4750 # (t n) 4751 # (t _) 4752 # (t t) 4753 # (t y) 4754 # (t p) 4755 # (t e) 4756 # (n SPACE)) 4757 4758 variable ok 4759 4760 set pos [icl_get] 4761 4762 set old [ier_get] 4763 ict_advance t 4764 if {$ok} {ict_match_token t} 4765 ier_merge $old 4766 4767 if {!$ok} {icl_rewind $pos ; return} 4768 4769 set old [ier_get] 4770 ict_advance o 4771 if {$ok} {ict_match_token o} 4772 ier_merge $old 4773 4774 if {!$ok} {icl_rewind $pos ; return} 4775 4776 set old [ier_get] 4777 ict_advance k 4778 if {$ok} {ict_match_token k} 4779 ier_merge $old 4780 4781 if {!$ok} {icl_rewind $pos ; return} 4782 4783 set old [ier_get] 4784 ict_advance e 4785 if {$ok} {ict_match_token e} 4786 ier_merge $old 4787 4788 if {!$ok} {icl_rewind $pos ; return} 4789 4790 set old [ier_get] 4791 ict_advance n 4792 if {$ok} {ict_match_token n} 4793 ier_merge $old 4794 4795 if {!$ok} {icl_rewind $pos ; return} 4796 4797 set old [ier_get] 4798 ict_advance _ 4799 if {$ok} {ict_match_token _} 4800 ier_merge $old 4801 4802 if {!$ok} {icl_rewind $pos ; return} 4803 4804 set old [ier_get] 4805 ict_advance t 4806 if {$ok} {ict_match_token t} 4807 ier_merge $old 4808 4809 if {!$ok} {icl_rewind $pos ; return} 4810 4811 set old [ier_get] 4812 ict_advance y 4813 if {$ok} {ict_match_token y} 4814 ier_merge $old 4815 4816 if {!$ok} {icl_rewind $pos ; return} 4817 4818 set old [ier_get] 4819 ict_advance p 4820 if {$ok} {ict_match_token p} 4821 ier_merge $old 4822 4823 if {!$ok} {icl_rewind $pos ; return} 4824 4825 set old [ier_get] 4826 ict_advance e 4827 if {$ok} {ict_match_token e} 4828 ier_merge $old 4829 4830 if {!$ok} {icl_rewind $pos ; return} 4831 4832 set old [ier_get] 4833 matchSymbol_SPACE ; # (n SPACE) 4834 ier_merge $old 4835 4836 if {!$ok} {icl_rewind $pos ; return} 4837 4838 return 4839} 4840 4841proc ::page::parse::lemon::matchSymbol_DTYPE {} { 4842 # DTYPE = (x (t t) 4843 # (t y) 4844 # (t p) 4845 # (t e) 4846 # (n SPACE)) 4847 4848 if {[inc_restore DTYPE]} return 4849 4850 set pos [icl_get] 4851 4852 eseq78 ; # (x (t t) 4853 # (t y) 4854 # (t p) 4855 # (t e) 4856 # (n SPACE)) 4857 4858 isv_clear 4859 inc_save DTYPE $pos 4860 ier_nonterminal DTYPE $pos 4861 return 4862} 4863 4864proc ::page::parse::lemon::eseq78 {} { 4865 4866 # (x (t t) 4867 # (t y) 4868 # (t p) 4869 # (t e) 4870 # (n SPACE)) 4871 4872 variable ok 4873 4874 set pos [icl_get] 4875 4876 set old [ier_get] 4877 ict_advance t 4878 if {$ok} {ict_match_token t} 4879 ier_merge $old 4880 4881 if {!$ok} {icl_rewind $pos ; return} 4882 4883 set old [ier_get] 4884 ict_advance y 4885 if {$ok} {ict_match_token y} 4886 ier_merge $old 4887 4888 if {!$ok} {icl_rewind $pos ; return} 4889 4890 set old [ier_get] 4891 ict_advance p 4892 if {$ok} {ict_match_token p} 4893 ier_merge $old 4894 4895 if {!$ok} {icl_rewind $pos ; return} 4896 4897 set old [ier_get] 4898 ict_advance e 4899 if {$ok} {ict_match_token e} 4900 ier_merge $old 4901 4902 if {!$ok} {icl_rewind $pos ; return} 4903 4904 set old [ier_get] 4905 matchSymbol_SPACE ; # (n SPACE) 4906 ier_merge $old 4907 4908 if {!$ok} {icl_rewind $pos ; return} 4909 4910 return 4911} 4912 4913proc ::page::parse::lemon::matchSymbol_Endif {} { 4914 # Endif = (n DENDIF) 4915 4916 if {[inc_restore Endif]} return 4917 4918 set pos [icl_get] 4919 4920 matchSymbol_DENDIF ; # (n DENDIF) 4921 4922 isv_clear 4923 inc_save Endif $pos 4924 ier_nonterminal Endif $pos 4925 return 4926} 4927 4928proc ::page::parse::lemon::matchSymbol_EOF {} { 4929 # EOF = (! (dot)) 4930 4931 if {[inc_restore EOF]} return 4932 4933 set pos [icl_get] 4934 4935 ebang99 4936 4937 isv_clear 4938 inc_save EOF $pos 4939 ier_nonterminal EOF $pos 4940 return 4941} 4942 4943proc ::page::parse::lemon::ebang99 {} { 4944 set pos [icl_get] 4945 4946 ict_advance "any character" 4947 4948 icl_rewind $pos 4949 iok_negate 4950 return 4951} 4952 4953proc ::page::parse::lemon::matchSymbol_EOL {} { 4954 # EOL = (/ (x (t \r) 4955 # (t \n)) 4956 # (t \r) 4957 # (t \n)) 4958 4959 if {[inc_restore EOL]} return 4960 4961 set pos [icl_get] 4962 4963 ebra98 ; # (/ (x (t \r) 4964 # (t \n)) 4965 # (t \r) 4966 # (t \n)) 4967 4968 isv_clear 4969 inc_save EOL $pos 4970 ier_nonterminal EOL $pos 4971 return 4972} 4973 4974proc ::page::parse::lemon::ebra98 {} { 4975 4976 # (/ (x (t \r) 4977 # (t \n)) 4978 # (t \r) 4979 # (t \n)) 4980 4981 variable ok 4982 4983 set pos [icl_get] 4984 4985 set old [ier_get] 4986 eseq97 ; # (x (t \r) 4987 # (t \n)) 4988 ier_merge $old 4989 4990 if {$ok} return 4991 icl_rewind $pos 4992 4993 set old [ier_get] 4994 ict_advance \\r 4995 if {$ok} {ict_match_token \r} 4996 ier_merge $old 4997 4998 if {$ok} return 4999 icl_rewind $pos 5000 5001 set old [ier_get] 5002 ict_advance \\n 5003 if {$ok} {ict_match_token \n} 5004 ier_merge $old 5005 5006 if {$ok} return 5007 icl_rewind $pos 5008 5009 return 5010} 5011 5012proc ::page::parse::lemon::eseq97 {} { 5013 5014 # (x (t \r) 5015 # (t \n)) 5016 5017 variable ok 5018 5019 set pos [icl_get] 5020 5021 set old [ier_get] 5022 ict_advance \\r 5023 if {$ok} {ict_match_token \r} 5024 ier_merge $old 5025 5026 if {!$ok} {icl_rewind $pos ; return} 5027 5028 set old [ier_get] 5029 ict_advance \\n 5030 if {$ok} {ict_match_token \n} 5031 ier_merge $old 5032 5033 if {!$ok} {icl_rewind $pos ; return} 5034 5035 return 5036} 5037 5038proc ::page::parse::lemon::matchSymbol_ExtraArgument {} { 5039 # ExtraArgument = (x (n DEXTRA) 5040 # (n Codeblock)) 5041 5042 variable ok 5043 if {[inc_restore ExtraArgument]} { 5044 if {$ok} ias_push 5045 return 5046 } 5047 5048 set pos [icl_get] 5049 set mrk [ias_mark] 5050 5051 eseq20 ; # (x (n DEXTRA) 5052 # (n Codeblock)) 5053 5054 isv_nonterminal_reduce ExtraArgument $pos $mrk 5055 inc_save ExtraArgument $pos 5056 ias_pop2mark $mrk 5057 if {$ok} ias_push 5058 ier_nonterminal ExtraArgument $pos 5059 return 5060} 5061 5062proc ::page::parse::lemon::eseq20 {} { 5063 5064 # (x (n DEXTRA) 5065 # (n Codeblock)) 5066 5067 variable ok 5068 5069 set pos [icl_get] 5070 5071 set old [ier_get] 5072 matchSymbol_DEXTRA ; # (n DEXTRA) 5073 ier_merge $old 5074 5075 if {!$ok} {icl_rewind $pos ; return} 5076 5077 set mrk [ias_mark] 5078 5079 set old [ier_get] 5080 matchSymbol_Codeblock ; # (n Codeblock) 5081 ier_merge $old 5082 5083 if {!$ok} { 5084 ias_pop2mark $mrk 5085 icl_rewind $pos 5086 return 5087 } 5088 5089 return 5090} 5091 5092proc ::page::parse::lemon::matchSymbol_Fallback {} { 5093 # Fallback = (x (n DFALLBK) 5094 # (+ (n Identifier)) 5095 # (n DOT)) 5096 5097 variable ok 5098 if {[inc_restore Fallback]} { 5099 if {$ok} ias_push 5100 return 5101 } 5102 5103 set pos [icl_get] 5104 set mrk [ias_mark] 5105 5106 eseq40 ; # (x (n DFALLBK) 5107 # (+ (n Identifier)) 5108 # (n DOT)) 5109 5110 isv_nonterminal_reduce Fallback $pos $mrk 5111 inc_save Fallback $pos 5112 ias_pop2mark $mrk 5113 if {$ok} ias_push 5114 ier_nonterminal Fallback $pos 5115 return 5116} 5117 5118proc ::page::parse::lemon::eseq40 {} { 5119 5120 # (x (n DFALLBK) 5121 # (+ (n Identifier)) 5122 # (n DOT)) 5123 5124 variable ok 5125 5126 set pos [icl_get] 5127 5128 set old [ier_get] 5129 matchSymbol_DFALLBK ; # (n DFALLBK) 5130 ier_merge $old 5131 5132 if {!$ok} {icl_rewind $pos ; return} 5133 5134 set mrk [ias_mark] 5135 5136 set old [ier_get] 5137 epkleene39 ; # (+ (n Identifier)) 5138 ier_merge $old 5139 5140 if {!$ok} { 5141 ias_pop2mark $mrk 5142 icl_rewind $pos 5143 return 5144 } 5145 5146 set old [ier_get] 5147 matchSymbol_DOT ; # (n DOT) 5148 ier_merge $old 5149 5150 if {!$ok} { 5151 ias_pop2mark $mrk 5152 icl_rewind $pos 5153 return 5154 } 5155 5156 return 5157} 5158 5159proc ::page::parse::lemon::epkleene39 {} { 5160 5161 # (+ (n Identifier)) 5162 5163 variable ok 5164 5165 set pos [icl_get] 5166 5167 set old [ier_get] 5168 matchSymbol_Identifier ; # (n Identifier) 5169 ier_merge $old 5170 5171 if {!$ok} { 5172 icl_rewind $pos 5173 return 5174 } 5175 5176 while {1} { 5177 set pos [icl_get] 5178 5179 set old [ier_get] 5180 matchSymbol_Identifier ; # (n Identifier) 5181 ier_merge $old 5182 5183 if {$ok} continue 5184 break 5185 } 5186 5187 icl_rewind $pos 5188 iok_ok 5189 return 5190} 5191 5192proc ::page::parse::lemon::matchSymbol_Ident {} { 5193 # Ident = (x (/ (alpha) 5194 # (t _)) 5195 # (* (/ (alnum) 5196 # (t _)))) 5197 5198 variable ok 5199 if {[inc_restore Ident]} { 5200 if {$ok} ias_push 5201 return 5202 } 5203 5204 set pos [icl_get] 5205 5206 eseq50 ; # (x (/ (alpha) 5207 # (t _)) 5208 # (* (/ (alnum) 5209 # (t _)))) 5210 5211 isv_nonterminal_range Ident $pos 5212 inc_save Ident $pos 5213 if {$ok} ias_push 5214 ier_nonterminal Ident $pos 5215 return 5216} 5217 5218proc ::page::parse::lemon::eseq50 {} { 5219 5220 # (x (/ (alpha) 5221 # (t _)) 5222 # (* (/ (alnum) 5223 # (t _)))) 5224 5225 variable ok 5226 5227 set pos [icl_get] 5228 5229 set old [ier_get] 5230 ebra47 ; # (/ (alpha) 5231 # (t _)) 5232 ier_merge $old 5233 5234 if {!$ok} {icl_rewind $pos ; return} 5235 5236 set old [ier_get] 5237 ekleene49 ; # (* (/ (alnum) 5238 # (t _))) 5239 ier_merge $old 5240 5241 if {!$ok} {icl_rewind $pos ; return} 5242 5243 return 5244} 5245 5246proc ::page::parse::lemon::ebra47 {} { 5247 5248 # (/ (alpha) 5249 # (t _)) 5250 5251 variable ok 5252 5253 set pos [icl_get] 5254 5255 set old [ier_get] 5256 ict_advance alpha 5257 if {$ok} {ict_match_tokclass alpha} 5258 ier_merge $old 5259 5260 if {$ok} return 5261 icl_rewind $pos 5262 5263 set old [ier_get] 5264 ict_advance _ 5265 if {$ok} {ict_match_token _} 5266 ier_merge $old 5267 5268 if {$ok} return 5269 icl_rewind $pos 5270 5271 return 5272} 5273 5274proc ::page::parse::lemon::ekleene49 {} { 5275 5276 # (* (/ (alnum) 5277 # (t _))) 5278 5279 variable ok 5280 5281 while {1} { 5282 set pos [icl_get] 5283 5284 set old [ier_get] 5285 ebra48 ; # (/ (alnum) 5286 # (t _)) 5287 ier_merge $old 5288 5289 if {$ok} continue 5290 break 5291 } 5292 5293 icl_rewind $pos 5294 iok_ok 5295 return 5296} 5297 5298proc ::page::parse::lemon::ebra48 {} { 5299 5300 # (/ (alnum) 5301 # (t _)) 5302 5303 variable ok 5304 5305 set pos [icl_get] 5306 5307 set old [ier_get] 5308 ict_advance alnum 5309 if {$ok} {ict_match_tokclass alnum} 5310 ier_merge $old 5311 5312 if {$ok} return 5313 icl_rewind $pos 5314 5315 set old [ier_get] 5316 ict_advance _ 5317 if {$ok} {ict_match_token _} 5318 ier_merge $old 5319 5320 if {$ok} return 5321 icl_rewind $pos 5322 5323 return 5324} 5325 5326proc ::page::parse::lemon::matchSymbol_Identifier {} { 5327 # Identifier = (x (n Ident) 5328 # (n SPACE)) 5329 5330 variable ok 5331 if {[inc_restore Identifier]} { 5332 if {$ok} ias_push 5333 return 5334 } 5335 5336 set pos [icl_get] 5337 set mrk [ias_mark] 5338 5339 eseq46 ; # (x (n Ident) 5340 # (n SPACE)) 5341 5342 isv_nonterminal_reduce Identifier $pos $mrk 5343 inc_save Identifier $pos 5344 ias_pop2mark $mrk 5345 if {$ok} ias_push 5346 ier_nonterminal Identifier $pos 5347 return 5348} 5349 5350proc ::page::parse::lemon::eseq46 {} { 5351 5352 # (x (n Ident) 5353 # (n SPACE)) 5354 5355 variable ok 5356 5357 set pos [icl_get] 5358 5359 set mrk [ias_mark] 5360 5361 set old [ier_get] 5362 matchSymbol_Ident ; # (n Ident) 5363 ier_merge $old 5364 5365 if {!$ok} { 5366 ias_pop2mark $mrk 5367 icl_rewind $pos 5368 return 5369 } 5370 5371 set old [ier_get] 5372 matchSymbol_SPACE ; # (n SPACE) 5373 ier_merge $old 5374 5375 if {!$ok} { 5376 ias_pop2mark $mrk 5377 icl_rewind $pos 5378 return 5379 } 5380 5381 return 5382} 5383 5384proc ::page::parse::lemon::matchSymbol_Ifdef {} { 5385 # Ifdef = (x (n DIFDEF) 5386 # (n Identifier)) 5387 5388 if {[inc_restore Ifdef]} return 5389 5390 set pos [icl_get] 5391 5392 eseq83 ; # (x (n DIFDEF) 5393 # (n Identifier)) 5394 5395 isv_clear 5396 inc_save Ifdef $pos 5397 ier_nonterminal Ifdef $pos 5398 return 5399} 5400 5401proc ::page::parse::lemon::eseq83 {} { 5402 5403 # (x (n DIFDEF) 5404 # (n Identifier)) 5405 5406 variable ok 5407 5408 set pos [icl_get] 5409 5410 set old [ier_get] 5411 matchSymbol_DIFDEF ; # (n DIFDEF) 5412 ier_merge $old 5413 5414 if {!$ok} {icl_rewind $pos ; return} 5415 5416 set old [ier_get] 5417 set pIdentifier [ias_mark] 5418 matchSymbol_Identifier 5419 ias_pop2mark $pIdentifier ; # (n Identifier) 5420 ier_merge $old 5421 5422 if {!$ok} {icl_rewind $pos ; return} 5423 5424 return 5425} 5426 5427proc ::page::parse::lemon::matchSymbol_Ifndef {} { 5428 # Ifndef = (x (n DIFNDEF) 5429 # (n Identifier)) 5430 5431 if {[inc_restore Ifndef]} return 5432 5433 set pos [icl_get] 5434 5435 eseq84 ; # (x (n DIFNDEF) 5436 # (n Identifier)) 5437 5438 isv_clear 5439 inc_save Ifndef $pos 5440 ier_nonterminal Ifndef $pos 5441 return 5442} 5443 5444proc ::page::parse::lemon::eseq84 {} { 5445 5446 # (x (n DIFNDEF) 5447 # (n Identifier)) 5448 5449 variable ok 5450 5451 set pos [icl_get] 5452 5453 set old [ier_get] 5454 matchSymbol_DIFNDEF ; # (n DIFNDEF) 5455 ier_merge $old 5456 5457 if {!$ok} {icl_rewind $pos ; return} 5458 5459 set old [ier_get] 5460 set pIdentifier [ias_mark] 5461 matchSymbol_Identifier 5462 ias_pop2mark $pIdentifier ; # (n Identifier) 5463 ier_merge $old 5464 5465 if {!$ok} {icl_rewind $pos ; return} 5466 5467 return 5468} 5469 5470proc ::page::parse::lemon::matchSymbol_Include {} { 5471 # Include = (x (n DINCL) 5472 # (n Codeblock)) 5473 5474 variable ok 5475 if {[inc_restore Include]} { 5476 if {$ok} ias_push 5477 return 5478 } 5479 5480 set pos [icl_get] 5481 set mrk [ias_mark] 5482 5483 eseq21 ; # (x (n DINCL) 5484 # (n Codeblock)) 5485 5486 isv_nonterminal_reduce Include $pos $mrk 5487 inc_save Include $pos 5488 ias_pop2mark $mrk 5489 if {$ok} ias_push 5490 ier_nonterminal Include $pos 5491 return 5492} 5493 5494proc ::page::parse::lemon::eseq21 {} { 5495 5496 # (x (n DINCL) 5497 # (n Codeblock)) 5498 5499 variable ok 5500 5501 set pos [icl_get] 5502 5503 set old [ier_get] 5504 matchSymbol_DINCL ; # (n DINCL) 5505 ier_merge $old 5506 5507 if {!$ok} {icl_rewind $pos ; return} 5508 5509 set mrk [ias_mark] 5510 5511 set old [ier_get] 5512 matchSymbol_Codeblock ; # (n Codeblock) 5513 ier_merge $old 5514 5515 if {!$ok} { 5516 ias_pop2mark $mrk 5517 icl_rewind $pos 5518 return 5519 } 5520 5521 return 5522} 5523 5524proc ::page::parse::lemon::matchSymbol_Label {} { 5525 # Label = (x (n LPAREN) 5526 # (n Identifier) 5527 # (n RPAREN)) 5528 5529 variable ok 5530 if {[inc_restore Label]} { 5531 if {$ok} ias_push 5532 return 5533 } 5534 5535 set pos [icl_get] 5536 set mrk [ias_mark] 5537 5538 eseq12 ; # (x (n LPAREN) 5539 # (n Identifier) 5540 # (n RPAREN)) 5541 5542 isv_nonterminal_reduce Label $pos $mrk 5543 inc_save Label $pos 5544 ias_pop2mark $mrk 5545 if {$ok} ias_push 5546 ier_nonterminal Label $pos 5547 return 5548} 5549 5550proc ::page::parse::lemon::eseq12 {} { 5551 5552 # (x (n LPAREN) 5553 # (n Identifier) 5554 # (n RPAREN)) 5555 5556 variable ok 5557 5558 set pos [icl_get] 5559 5560 set old [ier_get] 5561 matchSymbol_LPAREN ; # (n LPAREN) 5562 ier_merge $old 5563 5564 if {!$ok} {icl_rewind $pos ; return} 5565 5566 set mrk [ias_mark] 5567 5568 set old [ier_get] 5569 matchSymbol_Identifier ; # (n Identifier) 5570 ier_merge $old 5571 5572 if {!$ok} { 5573 ias_pop2mark $mrk 5574 icl_rewind $pos 5575 return 5576 } 5577 5578 set old [ier_get] 5579 matchSymbol_RPAREN ; # (n RPAREN) 5580 ier_merge $old 5581 5582 if {!$ok} { 5583 ias_pop2mark $mrk 5584 icl_rewind $pos 5585 return 5586 } 5587 5588 return 5589} 5590 5591proc ::page::parse::lemon::matchSymbol_LBRACE {} { 5592 # LBRACE = (t \{) 5593 5594 variable ok 5595 if {[inc_restore LBRACE]} return 5596 5597 set pos [icl_get] 5598 5599 ict_advance \{ 5600 if {$ok} {ict_match_token \173} 5601 5602 isv_clear 5603 inc_save LBRACE $pos 5604 ier_nonterminal LBRACE $pos 5605 return 5606} 5607 5608proc ::page::parse::lemon::matchSymbol_LBRACKET {} { 5609 # LBRACKET = (x (t [) 5610 # (n SPACE)) 5611 5612 if {[inc_restore LBRACKET]} return 5613 5614 set pos [icl_get] 5615 5616 eseq57 ; # (x (t [) 5617 # (n SPACE)) 5618 5619 isv_clear 5620 inc_save LBRACKET $pos 5621 ier_nonterminal LBRACKET $pos 5622 return 5623} 5624 5625proc ::page::parse::lemon::eseq57 {} { 5626 5627 # (x (t [) 5628 # (n SPACE)) 5629 5630 variable ok 5631 5632 set pos [icl_get] 5633 5634 set old [ier_get] 5635 ict_advance \[ 5636 if {$ok} {ict_match_token \133} 5637 ier_merge $old 5638 5639 if {!$ok} {icl_rewind $pos ; return} 5640 5641 set old [ier_get] 5642 matchSymbol_SPACE ; # (n SPACE) 5643 ier_merge $old 5644 5645 if {!$ok} {icl_rewind $pos ; return} 5646 5647 return 5648} 5649 5650proc ::page::parse::lemon::matchSymbol_Left {} { 5651 # Left = (x (n DLEFT) 5652 # (+ (n Identifier)) 5653 # (n DOT)) 5654 5655 variable ok 5656 if {[inc_restore Left]} { 5657 if {$ok} ias_push 5658 return 5659 } 5660 5661 set pos [icl_get] 5662 set mrk [ias_mark] 5663 5664 eseq23 ; # (x (n DLEFT) 5665 # (+ (n Identifier)) 5666 # (n DOT)) 5667 5668 isv_nonterminal_reduce Left $pos $mrk 5669 inc_save Left $pos 5670 ias_pop2mark $mrk 5671 if {$ok} ias_push 5672 ier_nonterminal Left $pos 5673 return 5674} 5675 5676proc ::page::parse::lemon::eseq23 {} { 5677 5678 # (x (n DLEFT) 5679 # (+ (n Identifier)) 5680 # (n DOT)) 5681 5682 variable ok 5683 5684 set pos [icl_get] 5685 5686 set old [ier_get] 5687 matchSymbol_DLEFT ; # (n DLEFT) 5688 ier_merge $old 5689 5690 if {!$ok} {icl_rewind $pos ; return} 5691 5692 set mrk [ias_mark] 5693 5694 set old [ier_get] 5695 epkleene22 ; # (+ (n Identifier)) 5696 ier_merge $old 5697 5698 if {!$ok} { 5699 ias_pop2mark $mrk 5700 icl_rewind $pos 5701 return 5702 } 5703 5704 set old [ier_get] 5705 matchSymbol_DOT ; # (n DOT) 5706 ier_merge $old 5707 5708 if {!$ok} { 5709 ias_pop2mark $mrk 5710 icl_rewind $pos 5711 return 5712 } 5713 5714 return 5715} 5716 5717proc ::page::parse::lemon::epkleene22 {} { 5718 5719 # (+ (n Identifier)) 5720 5721 variable ok 5722 5723 set pos [icl_get] 5724 5725 set old [ier_get] 5726 matchSymbol_Identifier ; # (n Identifier) 5727 ier_merge $old 5728 5729 if {!$ok} { 5730 icl_rewind $pos 5731 return 5732 } 5733 5734 while {1} { 5735 set pos [icl_get] 5736 5737 set old [ier_get] 5738 matchSymbol_Identifier ; # (n Identifier) 5739 ier_merge $old 5740 5741 if {$ok} continue 5742 break 5743 } 5744 5745 icl_rewind $pos 5746 iok_ok 5747 return 5748} 5749 5750proc ::page::parse::lemon::matchSymbol_LemonGrammar {} { 5751 # LemonGrammar = (x (n SPACE) 5752 # (+ (n Statement)) 5753 # (n EOF)) 5754 5755 variable ok 5756 if {[inc_restore LemonGrammar]} { 5757 if {$ok} ias_push 5758 return 5759 } 5760 5761 set pos [icl_get] 5762 set mrk [ias_mark] 5763 5764 eseq2 ; # (x (n SPACE) 5765 # (+ (n Statement)) 5766 # (n EOF)) 5767 5768 isv_nonterminal_reduce LemonGrammar $pos $mrk 5769 inc_save LemonGrammar $pos 5770 ias_pop2mark $mrk 5771 if {$ok} ias_push 5772 ier_nonterminal LemonGrammar $pos 5773 return 5774} 5775 5776proc ::page::parse::lemon::eseq2 {} { 5777 5778 # (x (n SPACE) 5779 # (+ (n Statement)) 5780 # (n EOF)) 5781 5782 variable ok 5783 5784 set pos [icl_get] 5785 5786 set old [ier_get] 5787 matchSymbol_SPACE ; # (n SPACE) 5788 ier_merge $old 5789 5790 if {!$ok} {icl_rewind $pos ; return} 5791 5792 set mrk [ias_mark] 5793 5794 set old [ier_get] 5795 epkleene1 ; # (+ (n Statement)) 5796 ier_merge $old 5797 5798 if {!$ok} { 5799 ias_pop2mark $mrk 5800 icl_rewind $pos 5801 return 5802 } 5803 5804 set old [ier_get] 5805 matchSymbol_EOF ; # (n EOF) 5806 ier_merge $old 5807 5808 if {!$ok} { 5809 ias_pop2mark $mrk 5810 icl_rewind $pos 5811 return 5812 } 5813 5814 return 5815} 5816 5817proc ::page::parse::lemon::epkleene1 {} { 5818 5819 # (+ (n Statement)) 5820 5821 variable ok 5822 5823 set pos [icl_get] 5824 5825 set old [ier_get] 5826 matchSymbol_Statement ; # (n Statement) 5827 ier_merge $old 5828 5829 if {!$ok} { 5830 icl_rewind $pos 5831 return 5832 } 5833 5834 while {1} { 5835 set pos [icl_get] 5836 5837 set old [ier_get] 5838 matchSymbol_Statement ; # (n Statement) 5839 ier_merge $old 5840 5841 if {$ok} continue 5842 break 5843 } 5844 5845 icl_rewind $pos 5846 iok_ok 5847 return 5848} 5849 5850proc ::page::parse::lemon::matchSymbol_LPAREN {} { 5851 # LPAREN = (x (t \() 5852 # (n SPACE)) 5853 5854 if {[inc_restore LPAREN]} return 5855 5856 set pos [icl_get] 5857 5858 eseq55 ; # (x (t \() 5859 # (n SPACE)) 5860 5861 isv_clear 5862 inc_save LPAREN $pos 5863 ier_nonterminal LPAREN $pos 5864 return 5865} 5866 5867proc ::page::parse::lemon::eseq55 {} { 5868 5869 # (x (t \() 5870 # (n SPACE)) 5871 5872 variable ok 5873 5874 set pos [icl_get] 5875 5876 set old [ier_get] 5877 ict_advance \( 5878 if {$ok} {ict_match_token \50} 5879 ier_merge $old 5880 5881 if {!$ok} {icl_rewind $pos ; return} 5882 5883 set old [ier_get] 5884 matchSymbol_SPACE ; # (n SPACE) 5885 ier_merge $old 5886 5887 if {!$ok} {icl_rewind $pos ; return} 5888 5889 return 5890} 5891 5892proc ::page::parse::lemon::matchSymbol_Name {} { 5893 # Name = (x (n DNAME) 5894 # (n Identifier)) 5895 5896 variable ok 5897 if {[inc_restore Name]} { 5898 if {$ok} ias_push 5899 return 5900 } 5901 5902 set pos [icl_get] 5903 set mrk [ias_mark] 5904 5905 eseq24 ; # (x (n DNAME) 5906 # (n Identifier)) 5907 5908 isv_nonterminal_reduce Name $pos $mrk 5909 inc_save Name $pos 5910 ias_pop2mark $mrk 5911 if {$ok} ias_push 5912 ier_nonterminal Name $pos 5913 return 5914} 5915 5916proc ::page::parse::lemon::eseq24 {} { 5917 5918 # (x (n DNAME) 5919 # (n Identifier)) 5920 5921 variable ok 5922 5923 set pos [icl_get] 5924 5925 set old [ier_get] 5926 matchSymbol_DNAME ; # (n DNAME) 5927 ier_merge $old 5928 5929 if {!$ok} {icl_rewind $pos ; return} 5930 5931 set mrk [ias_mark] 5932 5933 set old [ier_get] 5934 matchSymbol_Identifier ; # (n Identifier) 5935 ier_merge $old 5936 5937 if {!$ok} { 5938 ias_pop2mark $mrk 5939 icl_rewind $pos 5940 return 5941 } 5942 5943 return 5944} 5945 5946proc ::page::parse::lemon::matchSymbol_NatNum {} { 5947 # NatNum = (+ (.. 0 9)) 5948 5949 variable ok 5950 if {[inc_restore NatNum]} { 5951 if {$ok} ias_push 5952 return 5953 } 5954 5955 set pos [icl_get] 5956 5957 epkleene52 ; # (+ (.. 0 9)) 5958 5959 isv_nonterminal_range NatNum $pos 5960 inc_save NatNum $pos 5961 if {$ok} ias_push 5962 ier_nonterminal NatNum $pos 5963 return 5964} 5965 5966proc ::page::parse::lemon::epkleene52 {} { 5967 5968 # (+ (.. 0 9)) 5969 5970 variable ok 5971 5972 set pos [icl_get] 5973 5974 set old [ier_get] 5975 ict_advance "any in 0..9" 5976 if {$ok} {ict_match_tokrange 0 9} 5977 ier_merge $old 5978 5979 if {!$ok} { 5980 icl_rewind $pos 5981 return 5982 } 5983 5984 while {1} { 5985 set pos [icl_get] 5986 5987 set old [ier_get] 5988 ict_advance "any in 0..9" 5989 if {$ok} {ict_match_tokrange 0 9} 5990 ier_merge $old 5991 5992 if {$ok} continue 5993 break 5994 } 5995 5996 icl_rewind $pos 5997 iok_ok 5998 return 5999} 6000 6001proc ::page::parse::lemon::matchSymbol_NaturalNumber {} { 6002 # NaturalNumber = (x (n NatNum) 6003 # (n SPACE)) 6004 6005 variable ok 6006 if {[inc_restore NaturalNumber]} { 6007 if {$ok} ias_push 6008 return 6009 } 6010 6011 set pos [icl_get] 6012 set mrk [ias_mark] 6013 6014 eseq51 ; # (x (n NatNum) 6015 # (n SPACE)) 6016 6017 isv_nonterminal_reduce NaturalNumber $pos $mrk 6018 inc_save NaturalNumber $pos 6019 ias_pop2mark $mrk 6020 if {$ok} ias_push 6021 ier_nonterminal NaturalNumber $pos 6022 return 6023} 6024 6025proc ::page::parse::lemon::eseq51 {} { 6026 6027 # (x (n NatNum) 6028 # (n SPACE)) 6029 6030 variable ok 6031 6032 set pos [icl_get] 6033 6034 set mrk [ias_mark] 6035 6036 set old [ier_get] 6037 matchSymbol_NatNum ; # (n NatNum) 6038 ier_merge $old 6039 6040 if {!$ok} { 6041 ias_pop2mark $mrk 6042 icl_rewind $pos 6043 return 6044 } 6045 6046 set old [ier_get] 6047 matchSymbol_SPACE ; # (n SPACE) 6048 ier_merge $old 6049 6050 if {!$ok} { 6051 ias_pop2mark $mrk 6052 icl_rewind $pos 6053 return 6054 } 6055 6056 return 6057} 6058 6059proc ::page::parse::lemon::matchSymbol_Nonassoc {} { 6060 # Nonassoc = (x (n DNON) 6061 # (+ (n Identifier)) 6062 # (n DOT)) 6063 6064 variable ok 6065 if {[inc_restore Nonassoc]} { 6066 if {$ok} ias_push 6067 return 6068 } 6069 6070 set pos [icl_get] 6071 set mrk [ias_mark] 6072 6073 eseq26 ; # (x (n DNON) 6074 # (+ (n Identifier)) 6075 # (n DOT)) 6076 6077 isv_nonterminal_reduce Nonassoc $pos $mrk 6078 inc_save Nonassoc $pos 6079 ias_pop2mark $mrk 6080 if {$ok} ias_push 6081 ier_nonterminal Nonassoc $pos 6082 return 6083} 6084 6085proc ::page::parse::lemon::eseq26 {} { 6086 6087 # (x (n DNON) 6088 # (+ (n Identifier)) 6089 # (n DOT)) 6090 6091 variable ok 6092 6093 set pos [icl_get] 6094 6095 set old [ier_get] 6096 matchSymbol_DNON ; # (n DNON) 6097 ier_merge $old 6098 6099 if {!$ok} {icl_rewind $pos ; return} 6100 6101 set mrk [ias_mark] 6102 6103 set old [ier_get] 6104 epkleene25 ; # (+ (n Identifier)) 6105 ier_merge $old 6106 6107 if {!$ok} { 6108 ias_pop2mark $mrk 6109 icl_rewind $pos 6110 return 6111 } 6112 6113 set old [ier_get] 6114 matchSymbol_DOT ; # (n DOT) 6115 ier_merge $old 6116 6117 if {!$ok} { 6118 ias_pop2mark $mrk 6119 icl_rewind $pos 6120 return 6121 } 6122 6123 return 6124} 6125 6126proc ::page::parse::lemon::epkleene25 {} { 6127 6128 # (+ (n Identifier)) 6129 6130 variable ok 6131 6132 set pos [icl_get] 6133 6134 set old [ier_get] 6135 matchSymbol_Identifier ; # (n Identifier) 6136 ier_merge $old 6137 6138 if {!$ok} { 6139 icl_rewind $pos 6140 return 6141 } 6142 6143 while {1} { 6144 set pos [icl_get] 6145 6146 set old [ier_get] 6147 matchSymbol_Identifier ; # (n Identifier) 6148 ier_merge $old 6149 6150 if {$ok} continue 6151 break 6152 } 6153 6154 icl_rewind $pos 6155 iok_ok 6156 return 6157} 6158 6159proc ::page::parse::lemon::matchSymbol_ParseAccept {} { 6160 # ParseAccept = (x (n DPACC) 6161 # (n Codeblock)) 6162 6163 variable ok 6164 if {[inc_restore ParseAccept]} { 6165 if {$ok} ias_push 6166 return 6167 } 6168 6169 set pos [icl_get] 6170 set mrk [ias_mark] 6171 6172 eseq27 ; # (x (n DPACC) 6173 # (n Codeblock)) 6174 6175 isv_nonterminal_reduce ParseAccept $pos $mrk 6176 inc_save ParseAccept $pos 6177 ias_pop2mark $mrk 6178 if {$ok} ias_push 6179 ier_nonterminal ParseAccept $pos 6180 return 6181} 6182 6183proc ::page::parse::lemon::eseq27 {} { 6184 6185 # (x (n DPACC) 6186 # (n Codeblock)) 6187 6188 variable ok 6189 6190 set pos [icl_get] 6191 6192 set old [ier_get] 6193 matchSymbol_DPACC ; # (n DPACC) 6194 ier_merge $old 6195 6196 if {!$ok} {icl_rewind $pos ; return} 6197 6198 set mrk [ias_mark] 6199 6200 set old [ier_get] 6201 matchSymbol_Codeblock ; # (n Codeblock) 6202 ier_merge $old 6203 6204 if {!$ok} { 6205 ias_pop2mark $mrk 6206 icl_rewind $pos 6207 return 6208 } 6209 6210 return 6211} 6212 6213proc ::page::parse::lemon::matchSymbol_ParseFailure {} { 6214 # ParseFailure = (x (n DPFAIL) 6215 # (n Codeblock)) 6216 6217 variable ok 6218 if {[inc_restore ParseFailure]} { 6219 if {$ok} ias_push 6220 return 6221 } 6222 6223 set pos [icl_get] 6224 set mrk [ias_mark] 6225 6226 eseq28 ; # (x (n DPFAIL) 6227 # (n Codeblock)) 6228 6229 isv_nonterminal_reduce ParseFailure $pos $mrk 6230 inc_save ParseFailure $pos 6231 ias_pop2mark $mrk 6232 if {$ok} ias_push 6233 ier_nonterminal ParseFailure $pos 6234 return 6235} 6236 6237proc ::page::parse::lemon::eseq28 {} { 6238 6239 # (x (n DPFAIL) 6240 # (n Codeblock)) 6241 6242 variable ok 6243 6244 set pos [icl_get] 6245 6246 set old [ier_get] 6247 matchSymbol_DPFAIL ; # (n DPFAIL) 6248 ier_merge $old 6249 6250 if {!$ok} {icl_rewind $pos ; return} 6251 6252 set mrk [ias_mark] 6253 6254 set old [ier_get] 6255 matchSymbol_Codeblock ; # (n Codeblock) 6256 ier_merge $old 6257 6258 if {!$ok} { 6259 ias_pop2mark $mrk 6260 icl_rewind $pos 6261 return 6262 } 6263 6264 return 6265} 6266 6267proc ::page::parse::lemon::matchSymbol_Precedence {} { 6268 # Precedence = (x (n LBRACKET) 6269 # (n Identifier) 6270 # (n RBRACKET)) 6271 6272 variable ok 6273 if {[inc_restore Precedence]} { 6274 if {$ok} ias_push 6275 return 6276 } 6277 6278 set pos [icl_get] 6279 set mrk [ias_mark] 6280 6281 eseq13 ; # (x (n LBRACKET) 6282 # (n Identifier) 6283 # (n RBRACKET)) 6284 6285 isv_nonterminal_reduce Precedence $pos $mrk 6286 inc_save Precedence $pos 6287 ias_pop2mark $mrk 6288 if {$ok} ias_push 6289 ier_nonterminal Precedence $pos 6290 return 6291} 6292 6293proc ::page::parse::lemon::eseq13 {} { 6294 6295 # (x (n LBRACKET) 6296 # (n Identifier) 6297 # (n RBRACKET)) 6298 6299 variable ok 6300 6301 set pos [icl_get] 6302 6303 set old [ier_get] 6304 matchSymbol_LBRACKET ; # (n LBRACKET) 6305 ier_merge $old 6306 6307 if {!$ok} {icl_rewind $pos ; return} 6308 6309 set mrk [ias_mark] 6310 6311 set old [ier_get] 6312 matchSymbol_Identifier ; # (n Identifier) 6313 ier_merge $old 6314 6315 if {!$ok} { 6316 ias_pop2mark $mrk 6317 icl_rewind $pos 6318 return 6319 } 6320 6321 set old [ier_get] 6322 matchSymbol_RBRACKET ; # (n RBRACKET) 6323 ier_merge $old 6324 6325 if {!$ok} { 6326 ias_pop2mark $mrk 6327 icl_rewind $pos 6328 return 6329 } 6330 6331 return 6332} 6333 6334proc ::page::parse::lemon::matchSymbol_RBRACE {} { 6335 # RBRACE = (t \}) 6336 6337 variable ok 6338 if {[inc_restore RBRACE]} return 6339 6340 set pos [icl_get] 6341 6342 ict_advance \} 6343 if {$ok} {ict_match_token \175} 6344 6345 isv_clear 6346 inc_save RBRACE $pos 6347 ier_nonterminal RBRACE $pos 6348 return 6349} 6350 6351proc ::page::parse::lemon::matchSymbol_RBRACKET {} { 6352 # RBRACKET = (x (t ]) 6353 # (n SPACE)) 6354 6355 if {[inc_restore RBRACKET]} return 6356 6357 set pos [icl_get] 6358 6359 eseq58 ; # (x (t ]) 6360 # (n SPACE)) 6361 6362 isv_clear 6363 inc_save RBRACKET $pos 6364 ier_nonterminal RBRACKET $pos 6365 return 6366} 6367 6368proc ::page::parse::lemon::eseq58 {} { 6369 6370 # (x (t ]) 6371 # (n SPACE)) 6372 6373 variable ok 6374 6375 set pos [icl_get] 6376 6377 set old [ier_get] 6378 ict_advance \] 6379 if {$ok} {ict_match_token \135} 6380 ier_merge $old 6381 6382 if {!$ok} {icl_rewind $pos ; return} 6383 6384 set old [ier_get] 6385 matchSymbol_SPACE ; # (n SPACE) 6386 ier_merge $old 6387 6388 if {!$ok} {icl_rewind $pos ; return} 6389 6390 return 6391} 6392 6393proc ::page::parse::lemon::matchSymbol_Right {} { 6394 # Right = (x (n DRIGHT) 6395 # (+ (n Identifier)) 6396 # (n DOT)) 6397 6398 variable ok 6399 if {[inc_restore Right]} { 6400 if {$ok} ias_push 6401 return 6402 } 6403 6404 set pos [icl_get] 6405 set mrk [ias_mark] 6406 6407 eseq30 ; # (x (n DRIGHT) 6408 # (+ (n Identifier)) 6409 # (n DOT)) 6410 6411 isv_nonterminal_reduce Right $pos $mrk 6412 inc_save Right $pos 6413 ias_pop2mark $mrk 6414 if {$ok} ias_push 6415 ier_nonterminal Right $pos 6416 return 6417} 6418 6419proc ::page::parse::lemon::eseq30 {} { 6420 6421 # (x (n DRIGHT) 6422 # (+ (n Identifier)) 6423 # (n DOT)) 6424 6425 variable ok 6426 6427 set pos [icl_get] 6428 6429 set old [ier_get] 6430 matchSymbol_DRIGHT ; # (n DRIGHT) 6431 ier_merge $old 6432 6433 if {!$ok} {icl_rewind $pos ; return} 6434 6435 set mrk [ias_mark] 6436 6437 set old [ier_get] 6438 epkleene29 ; # (+ (n Identifier)) 6439 ier_merge $old 6440 6441 if {!$ok} { 6442 ias_pop2mark $mrk 6443 icl_rewind $pos 6444 return 6445 } 6446 6447 set old [ier_get] 6448 matchSymbol_DOT ; # (n DOT) 6449 ier_merge $old 6450 6451 if {!$ok} { 6452 ias_pop2mark $mrk 6453 icl_rewind $pos 6454 return 6455 } 6456 6457 return 6458} 6459 6460proc ::page::parse::lemon::epkleene29 {} { 6461 6462 # (+ (n Identifier)) 6463 6464 variable ok 6465 6466 set pos [icl_get] 6467 6468 set old [ier_get] 6469 matchSymbol_Identifier ; # (n Identifier) 6470 ier_merge $old 6471 6472 if {!$ok} { 6473 icl_rewind $pos 6474 return 6475 } 6476 6477 while {1} { 6478 set pos [icl_get] 6479 6480 set old [ier_get] 6481 matchSymbol_Identifier ; # (n Identifier) 6482 ier_merge $old 6483 6484 if {$ok} continue 6485 break 6486 } 6487 6488 icl_rewind $pos 6489 iok_ok 6490 return 6491} 6492 6493proc ::page::parse::lemon::matchSymbol_RPAREN {} { 6494 # RPAREN = (x (t \)) 6495 # (n SPACE)) 6496 6497 if {[inc_restore RPAREN]} return 6498 6499 set pos [icl_get] 6500 6501 eseq56 ; # (x (t \)) 6502 # (n SPACE)) 6503 6504 isv_clear 6505 inc_save RPAREN $pos 6506 ier_nonterminal RPAREN $pos 6507 return 6508} 6509 6510proc ::page::parse::lemon::eseq56 {} { 6511 6512 # (x (t \)) 6513 # (n SPACE)) 6514 6515 variable ok 6516 6517 set pos [icl_get] 6518 6519 set old [ier_get] 6520 ict_advance \) 6521 if {$ok} {ict_match_token \51} 6522 ier_merge $old 6523 6524 if {!$ok} {icl_rewind $pos ; return} 6525 6526 set old [ier_get] 6527 matchSymbol_SPACE ; # (n SPACE) 6528 ier_merge $old 6529 6530 if {!$ok} {icl_rewind $pos ; return} 6531 6532 return 6533} 6534 6535proc ::page::parse::lemon::matchSymbol_Rule {} { 6536 # Rule = (x (n Identifier) 6537 # (? (n Label)) 6538 # (n ASSIGN) 6539 # (n Definition) 6540 # (n DOT) 6541 # (? (n Precedence)) 6542 # (? (n Codeblock))) 6543 6544 variable ok 6545 if {[inc_restore Rule]} { 6546 if {$ok} ias_push 6547 return 6548 } 6549 6550 set pos [icl_get] 6551 set mrk [ias_mark] 6552 6553 eseq8 ; # (x (n Identifier) 6554 # (? (n Label)) 6555 # (n ASSIGN) 6556 # (n Definition) 6557 # (n DOT) 6558 # (? (n Precedence)) 6559 # (? (n Codeblock))) 6560 6561 isv_nonterminal_reduce Rule $pos $mrk 6562 inc_save Rule $pos 6563 ias_pop2mark $mrk 6564 if {$ok} ias_push 6565 ier_nonterminal Rule $pos 6566 return 6567} 6568 6569proc ::page::parse::lemon::eseq8 {} { 6570 6571 # (x (n Identifier) 6572 # (? (n Label)) 6573 # (n ASSIGN) 6574 # (n Definition) 6575 # (n DOT) 6576 # (? (n Precedence)) 6577 # (? (n Codeblock))) 6578 6579 variable ok 6580 6581 set pos [icl_get] 6582 6583 set mrk [ias_mark] 6584 6585 set old [ier_get] 6586 matchSymbol_Identifier ; # (n Identifier) 6587 ier_merge $old 6588 6589 if {!$ok} { 6590 ias_pop2mark $mrk 6591 icl_rewind $pos 6592 return 6593 } 6594 6595 set old [ier_get] 6596 eopt5 ; # (? (n Label)) 6597 ier_merge $old 6598 6599 if {!$ok} { 6600 ias_pop2mark $mrk 6601 icl_rewind $pos 6602 return 6603 } 6604 6605 set old [ier_get] 6606 matchSymbol_ASSIGN ; # (n ASSIGN) 6607 ier_merge $old 6608 6609 if {!$ok} { 6610 ias_pop2mark $mrk 6611 icl_rewind $pos 6612 return 6613 } 6614 6615 set old [ier_get] 6616 matchSymbol_Definition ; # (n Definition) 6617 ier_merge $old 6618 6619 if {!$ok} { 6620 ias_pop2mark $mrk 6621 icl_rewind $pos 6622 return 6623 } 6624 6625 set old [ier_get] 6626 matchSymbol_DOT ; # (n DOT) 6627 ier_merge $old 6628 6629 if {!$ok} { 6630 ias_pop2mark $mrk 6631 icl_rewind $pos 6632 return 6633 } 6634 6635 set old [ier_get] 6636 eopt6 ; # (? (n Precedence)) 6637 ier_merge $old 6638 6639 if {!$ok} { 6640 ias_pop2mark $mrk 6641 icl_rewind $pos 6642 return 6643 } 6644 6645 set old [ier_get] 6646 eopt7 ; # (? (n Codeblock)) 6647 ier_merge $old 6648 6649 if {!$ok} { 6650 ias_pop2mark $mrk 6651 icl_rewind $pos 6652 return 6653 } 6654 6655 return 6656} 6657 6658proc ::page::parse::lemon::eopt5 {} { 6659 6660 # (? (n Label)) 6661 6662 variable ok 6663 6664 set pos [icl_get] 6665 6666 set old [ier_get] 6667 matchSymbol_Label ; # (n Label) 6668 ier_merge $old 6669 6670 if {$ok} return 6671 icl_rewind $pos 6672 iok_ok 6673 return 6674} 6675 6676proc ::page::parse::lemon::eopt6 {} { 6677 6678 # (? (n Precedence)) 6679 6680 variable ok 6681 6682 set pos [icl_get] 6683 6684 set old [ier_get] 6685 matchSymbol_Precedence ; # (n Precedence) 6686 ier_merge $old 6687 6688 if {$ok} return 6689 icl_rewind $pos 6690 iok_ok 6691 return 6692} 6693 6694proc ::page::parse::lemon::eopt7 {} { 6695 6696 # (? (n Codeblock)) 6697 6698 variable ok 6699 6700 set pos [icl_get] 6701 6702 set old [ier_get] 6703 matchSymbol_Codeblock ; # (n Codeblock) 6704 ier_merge $old 6705 6706 if {$ok} return 6707 icl_rewind $pos 6708 iok_ok 6709 return 6710} 6711 6712proc ::page::parse::lemon::matchSymbol_SPACE {} { 6713 # SPACE = (* (/ (t <blank>) 6714 # (t \t) 6715 # (t \n) 6716 # (t \r) 6717 # (n C_COMMENT) 6718 # (n Cplusplus_COMMENT) 6719 # (n Ifndef) 6720 # (n Ifdef) 6721 # (n Endif))) 6722 6723 if {[inc_restore SPACE]} return 6724 6725 set pos [icl_get] 6726 6727 ekleene86 ; # (* (/ (t <blank>) 6728 # (t \t) 6729 # (t \n) 6730 # (t \r) 6731 # (n C_COMMENT) 6732 # (n Cplusplus_COMMENT) 6733 # (n Ifndef) 6734 # (n Ifdef) 6735 # (n Endif))) 6736 6737 isv_clear 6738 inc_save SPACE $pos 6739 ier_nonterminal SPACE $pos 6740 return 6741} 6742 6743proc ::page::parse::lemon::ekleene86 {} { 6744 6745 # (* (/ (t <blank>) 6746 # (t \t) 6747 # (t \n) 6748 # (t \r) 6749 # (n C_COMMENT) 6750 # (n Cplusplus_COMMENT) 6751 # (n Ifndef) 6752 # (n Ifdef) 6753 # (n Endif))) 6754 6755 variable ok 6756 6757 while {1} { 6758 set pos [icl_get] 6759 6760 set old [ier_get] 6761 ebra85 ; # (/ (t <blank>) 6762 # (t \t) 6763 # (t \n) 6764 # (t \r) 6765 # (n C_COMMENT) 6766 # (n Cplusplus_COMMENT) 6767 # (n Ifndef) 6768 # (n Ifdef) 6769 # (n Endif)) 6770 ier_merge $old 6771 6772 if {$ok} continue 6773 break 6774 } 6775 6776 icl_rewind $pos 6777 iok_ok 6778 return 6779} 6780 6781proc ::page::parse::lemon::ebra85 {} { 6782 6783 # (/ (t <blank>) 6784 # (t \t) 6785 # (t \n) 6786 # (t \r) 6787 # (n C_COMMENT) 6788 # (n Cplusplus_COMMENT) 6789 # (n Ifndef) 6790 # (n Ifdef) 6791 # (n Endif)) 6792 6793 variable ok 6794 6795 set pos [icl_get] 6796 6797 set old [ier_get] 6798 ict_advance <blank> 6799 if {$ok} {ict_match_token \40} 6800 ier_merge $old 6801 6802 if {$ok} return 6803 icl_rewind $pos 6804 6805 set old [ier_get] 6806 ict_advance \\t 6807 if {$ok} {ict_match_token \t} 6808 ier_merge $old 6809 6810 if {$ok} return 6811 icl_rewind $pos 6812 6813 set old [ier_get] 6814 ict_advance \\n 6815 if {$ok} {ict_match_token \n} 6816 ier_merge $old 6817 6818 if {$ok} return 6819 icl_rewind $pos 6820 6821 set old [ier_get] 6822 ict_advance \\r 6823 if {$ok} {ict_match_token \r} 6824 ier_merge $old 6825 6826 if {$ok} return 6827 icl_rewind $pos 6828 6829 set old [ier_get] 6830 matchSymbol_C_COMMENT ; # (n C_COMMENT) 6831 ier_merge $old 6832 6833 if {$ok} return 6834 icl_rewind $pos 6835 6836 set old [ier_get] 6837 matchSymbol_Cplusplus_COMMENT ; # (n Cplusplus_COMMENT) 6838 ier_merge $old 6839 6840 if {$ok} return 6841 icl_rewind $pos 6842 6843 set old [ier_get] 6844 matchSymbol_Ifndef ; # (n Ifndef) 6845 ier_merge $old 6846 6847 if {$ok} return 6848 icl_rewind $pos 6849 6850 set old [ier_get] 6851 matchSymbol_Ifdef ; # (n Ifdef) 6852 ier_merge $old 6853 6854 if {$ok} return 6855 icl_rewind $pos 6856 6857 set old [ier_get] 6858 matchSymbol_Endif ; # (n Endif) 6859 ier_merge $old 6860 6861 if {$ok} return 6862 icl_rewind $pos 6863 6864 return 6865} 6866 6867proc ::page::parse::lemon::matchSymbol_StackOverflow {} { 6868 # StackOverflow = (x (n DSTKOVER) 6869 # (n Codeblock)) 6870 6871 variable ok 6872 if {[inc_restore StackOverflow]} { 6873 if {$ok} ias_push 6874 return 6875 } 6876 6877 set pos [icl_get] 6878 set mrk [ias_mark] 6879 6880 eseq31 ; # (x (n DSTKOVER) 6881 # (n Codeblock)) 6882 6883 isv_nonterminal_reduce StackOverflow $pos $mrk 6884 inc_save StackOverflow $pos 6885 ias_pop2mark $mrk 6886 if {$ok} ias_push 6887 ier_nonterminal StackOverflow $pos 6888 return 6889} 6890 6891proc ::page::parse::lemon::eseq31 {} { 6892 6893 # (x (n DSTKOVER) 6894 # (n Codeblock)) 6895 6896 variable ok 6897 6898 set pos [icl_get] 6899 6900 set old [ier_get] 6901 matchSymbol_DSTKOVER ; # (n DSTKOVER) 6902 ier_merge $old 6903 6904 if {!$ok} {icl_rewind $pos ; return} 6905 6906 set mrk [ias_mark] 6907 6908 set old [ier_get] 6909 matchSymbol_Codeblock ; # (n Codeblock) 6910 ier_merge $old 6911 6912 if {!$ok} { 6913 ias_pop2mark $mrk 6914 icl_rewind $pos 6915 return 6916 } 6917 6918 return 6919} 6920 6921proc ::page::parse::lemon::matchSymbol_Stacksize {} { 6922 # Stacksize = (x (n DSTKSZ) 6923 # (n NaturalNumber)) 6924 6925 variable ok 6926 if {[inc_restore Stacksize]} { 6927 if {$ok} ias_push 6928 return 6929 } 6930 6931 set pos [icl_get] 6932 set mrk [ias_mark] 6933 6934 eseq32 ; # (x (n DSTKSZ) 6935 # (n NaturalNumber)) 6936 6937 isv_nonterminal_reduce Stacksize $pos $mrk 6938 inc_save Stacksize $pos 6939 ias_pop2mark $mrk 6940 if {$ok} ias_push 6941 ier_nonterminal Stacksize $pos 6942 return 6943} 6944 6945proc ::page::parse::lemon::eseq32 {} { 6946 6947 # (x (n DSTKSZ) 6948 # (n NaturalNumber)) 6949 6950 variable ok 6951 6952 set pos [icl_get] 6953 6954 set old [ier_get] 6955 matchSymbol_DSTKSZ ; # (n DSTKSZ) 6956 ier_merge $old 6957 6958 if {!$ok} {icl_rewind $pos ; return} 6959 6960 set mrk [ias_mark] 6961 6962 set old [ier_get] 6963 matchSymbol_NaturalNumber ; # (n NaturalNumber) 6964 ier_merge $old 6965 6966 if {!$ok} { 6967 ias_pop2mark $mrk 6968 icl_rewind $pos 6969 return 6970 } 6971 6972 return 6973} 6974 6975proc ::page::parse::lemon::matchSymbol_StartSymbol {} { 6976 # StartSymbol = (x (n DSTART) 6977 # (n Identifier)) 6978 6979 variable ok 6980 if {[inc_restore StartSymbol]} { 6981 if {$ok} ias_push 6982 return 6983 } 6984 6985 set pos [icl_get] 6986 set mrk [ias_mark] 6987 6988 eseq33 ; # (x (n DSTART) 6989 # (n Identifier)) 6990 6991 isv_nonterminal_reduce StartSymbol $pos $mrk 6992 inc_save StartSymbol $pos 6993 ias_pop2mark $mrk 6994 if {$ok} ias_push 6995 ier_nonterminal StartSymbol $pos 6996 return 6997} 6998 6999proc ::page::parse::lemon::eseq33 {} { 7000 7001 # (x (n DSTART) 7002 # (n Identifier)) 7003 7004 variable ok 7005 7006 set pos [icl_get] 7007 7008 set old [ier_get] 7009 matchSymbol_DSTART ; # (n DSTART) 7010 ier_merge $old 7011 7012 if {!$ok} {icl_rewind $pos ; return} 7013 7014 set mrk [ias_mark] 7015 7016 set old [ier_get] 7017 matchSymbol_Identifier ; # (n Identifier) 7018 ier_merge $old 7019 7020 if {!$ok} { 7021 ias_pop2mark $mrk 7022 icl_rewind $pos 7023 return 7024 } 7025 7026 return 7027} 7028 7029proc ::page::parse::lemon::matchSymbol_Statement {} { 7030 # Statement = (x (/ (n Directive) 7031 # (n Rule)) 7032 # (n SPACE)) 7033 7034 variable ok 7035 if {[inc_restore Statement]} { 7036 if {$ok} ias_push 7037 return 7038 } 7039 7040 set pos [icl_get] 7041 set mrk [ias_mark] 7042 7043 eseq4 ; # (x (/ (n Directive) 7044 # (n Rule)) 7045 # (n SPACE)) 7046 7047 isv_nonterminal_reduce Statement $pos $mrk 7048 inc_save Statement $pos 7049 ias_pop2mark $mrk 7050 if {$ok} ias_push 7051 ier_nonterminal Statement $pos 7052 return 7053} 7054 7055proc ::page::parse::lemon::eseq4 {} { 7056 7057 # (x (/ (n Directive) 7058 # (n Rule)) 7059 # (n SPACE)) 7060 7061 variable ok 7062 7063 set pos [icl_get] 7064 7065 set mrk [ias_mark] 7066 7067 set old [ier_get] 7068 ebra3 ; # (/ (n Directive) 7069 # (n Rule)) 7070 ier_merge $old 7071 7072 if {!$ok} { 7073 ias_pop2mark $mrk 7074 icl_rewind $pos 7075 return 7076 } 7077 7078 set old [ier_get] 7079 matchSymbol_SPACE ; # (n SPACE) 7080 ier_merge $old 7081 7082 if {!$ok} { 7083 ias_pop2mark $mrk 7084 icl_rewind $pos 7085 return 7086 } 7087 7088 return 7089} 7090 7091proc ::page::parse::lemon::ebra3 {} { 7092 7093 # (/ (n Directive) 7094 # (n Rule)) 7095 7096 variable ok 7097 7098 set pos [icl_get] 7099 7100 set mrk [ias_mark] 7101 set old [ier_get] 7102 matchSymbol_Directive ; # (n Directive) 7103 ier_merge $old 7104 7105 if {$ok} return 7106 ias_pop2mark $mrk 7107 icl_rewind $pos 7108 7109 set mrk [ias_mark] 7110 set old [ier_get] 7111 matchSymbol_Rule ; # (n Rule) 7112 ier_merge $old 7113 7114 if {$ok} return 7115 ias_pop2mark $mrk 7116 icl_rewind $pos 7117 7118 return 7119} 7120 7121proc ::page::parse::lemon::matchSymbol_SyntaxError {} { 7122 # SyntaxError = (x (n DSYNERR) 7123 # (n Codeblock)) 7124 7125 variable ok 7126 if {[inc_restore SyntaxError]} { 7127 if {$ok} ias_push 7128 return 7129 } 7130 7131 set pos [icl_get] 7132 set mrk [ias_mark] 7133 7134 eseq34 ; # (x (n DSYNERR) 7135 # (n Codeblock)) 7136 7137 isv_nonterminal_reduce SyntaxError $pos $mrk 7138 inc_save SyntaxError $pos 7139 ias_pop2mark $mrk 7140 if {$ok} ias_push 7141 ier_nonterminal SyntaxError $pos 7142 return 7143} 7144 7145proc ::page::parse::lemon::eseq34 {} { 7146 7147 # (x (n DSYNERR) 7148 # (n Codeblock)) 7149 7150 variable ok 7151 7152 set pos [icl_get] 7153 7154 set old [ier_get] 7155 matchSymbol_DSYNERR ; # (n DSYNERR) 7156 ier_merge $old 7157 7158 if {!$ok} {icl_rewind $pos ; return} 7159 7160 set mrk [ias_mark] 7161 7162 set old [ier_get] 7163 matchSymbol_Codeblock ; # (n Codeblock) 7164 ier_merge $old 7165 7166 if {!$ok} { 7167 ias_pop2mark $mrk 7168 icl_rewind $pos 7169 return 7170 } 7171 7172 return 7173} 7174 7175proc ::page::parse::lemon::matchSymbol_TokenDestructor {} { 7176 # TokenDestructor = (x (n DTOKDEST) 7177 # (n Identifier) 7178 # (n Codeblock)) 7179 7180 variable ok 7181 if {[inc_restore TokenDestructor]} { 7182 if {$ok} ias_push 7183 return 7184 } 7185 7186 set pos [icl_get] 7187 set mrk [ias_mark] 7188 7189 eseq35 ; # (x (n DTOKDEST) 7190 # (n Identifier) 7191 # (n Codeblock)) 7192 7193 isv_nonterminal_reduce TokenDestructor $pos $mrk 7194 inc_save TokenDestructor $pos 7195 ias_pop2mark $mrk 7196 if {$ok} ias_push 7197 ier_nonterminal TokenDestructor $pos 7198 return 7199} 7200 7201proc ::page::parse::lemon::eseq35 {} { 7202 7203 # (x (n DTOKDEST) 7204 # (n Identifier) 7205 # (n Codeblock)) 7206 7207 variable ok 7208 7209 set pos [icl_get] 7210 7211 set old [ier_get] 7212 matchSymbol_DTOKDEST ; # (n DTOKDEST) 7213 ier_merge $old 7214 7215 if {!$ok} {icl_rewind $pos ; return} 7216 7217 set mrk [ias_mark] 7218 7219 set old [ier_get] 7220 matchSymbol_Identifier ; # (n Identifier) 7221 ier_merge $old 7222 7223 if {!$ok} { 7224 ias_pop2mark $mrk 7225 icl_rewind $pos 7226 return 7227 } 7228 7229 set old [ier_get] 7230 matchSymbol_Codeblock ; # (n Codeblock) 7231 ier_merge $old 7232 7233 if {!$ok} { 7234 ias_pop2mark $mrk 7235 icl_rewind $pos 7236 return 7237 } 7238 7239 return 7240} 7241 7242proc ::page::parse::lemon::matchSymbol_TokenPrefix {} { 7243 # TokenPrefix = (x (n DTOKPFX) 7244 # (n Identifier)) 7245 7246 variable ok 7247 if {[inc_restore TokenPrefix]} { 7248 if {$ok} ias_push 7249 return 7250 } 7251 7252 set pos [icl_get] 7253 set mrk [ias_mark] 7254 7255 eseq36 ; # (x (n DTOKPFX) 7256 # (n Identifier)) 7257 7258 isv_nonterminal_reduce TokenPrefix $pos $mrk 7259 inc_save TokenPrefix $pos 7260 ias_pop2mark $mrk 7261 if {$ok} ias_push 7262 ier_nonterminal TokenPrefix $pos 7263 return 7264} 7265 7266proc ::page::parse::lemon::eseq36 {} { 7267 7268 # (x (n DTOKPFX) 7269 # (n Identifier)) 7270 7271 variable ok 7272 7273 set pos [icl_get] 7274 7275 set old [ier_get] 7276 matchSymbol_DTOKPFX ; # (n DTOKPFX) 7277 ier_merge $old 7278 7279 if {!$ok} {icl_rewind $pos ; return} 7280 7281 set mrk [ias_mark] 7282 7283 set old [ier_get] 7284 matchSymbol_Identifier ; # (n Identifier) 7285 ier_merge $old 7286 7287 if {!$ok} { 7288 ias_pop2mark $mrk 7289 icl_rewind $pos 7290 return 7291 } 7292 7293 return 7294} 7295 7296proc ::page::parse::lemon::matchSymbol_TokenType {} { 7297 # TokenType = (x (n DTOKTYPE) 7298 # (n Codeblock)) 7299 7300 variable ok 7301 if {[inc_restore TokenType]} { 7302 if {$ok} ias_push 7303 return 7304 } 7305 7306 set pos [icl_get] 7307 set mrk [ias_mark] 7308 7309 eseq37 ; # (x (n DTOKTYPE) 7310 # (n Codeblock)) 7311 7312 isv_nonterminal_reduce TokenType $pos $mrk 7313 inc_save TokenType $pos 7314 ias_pop2mark $mrk 7315 if {$ok} ias_push 7316 ier_nonterminal TokenType $pos 7317 return 7318} 7319 7320proc ::page::parse::lemon::eseq37 {} { 7321 7322 # (x (n DTOKTYPE) 7323 # (n Codeblock)) 7324 7325 variable ok 7326 7327 set pos [icl_get] 7328 7329 set old [ier_get] 7330 matchSymbol_DTOKTYPE ; # (n DTOKTYPE) 7331 ier_merge $old 7332 7333 if {!$ok} {icl_rewind $pos ; return} 7334 7335 set mrk [ias_mark] 7336 7337 set old [ier_get] 7338 matchSymbol_Codeblock ; # (n Codeblock) 7339 ier_merge $old 7340 7341 if {!$ok} { 7342 ias_pop2mark $mrk 7343 icl_rewind $pos 7344 return 7345 } 7346 7347 return 7348} 7349 7350proc ::page::parse::lemon::matchSymbol_Type {} { 7351 # Type = (x (n DTYPE) 7352 # (n Identifier) 7353 # (n Codeblock)) 7354 7355 variable ok 7356 if {[inc_restore Type]} { 7357 if {$ok} ias_push 7358 return 7359 } 7360 7361 set pos [icl_get] 7362 set mrk [ias_mark] 7363 7364 eseq38 ; # (x (n DTYPE) 7365 # (n Identifier) 7366 # (n Codeblock)) 7367 7368 isv_nonterminal_reduce Type $pos $mrk 7369 inc_save Type $pos 7370 ias_pop2mark $mrk 7371 if {$ok} ias_push 7372 ier_nonterminal Type $pos 7373 return 7374} 7375 7376proc ::page::parse::lemon::eseq38 {} { 7377 7378 # (x (n DTYPE) 7379 # (n Identifier) 7380 # (n Codeblock)) 7381 7382 variable ok 7383 7384 set pos [icl_get] 7385 7386 set old [ier_get] 7387 matchSymbol_DTYPE ; # (n DTYPE) 7388 ier_merge $old 7389 7390 if {!$ok} {icl_rewind $pos ; return} 7391 7392 set mrk [ias_mark] 7393 7394 set old [ier_get] 7395 matchSymbol_Identifier ; # (n Identifier) 7396 ier_merge $old 7397 7398 if {!$ok} { 7399 ias_pop2mark $mrk 7400 icl_rewind $pos 7401 return 7402 } 7403 7404 set old [ier_get] 7405 matchSymbol_Codeblock ; # (n Codeblock) 7406 ier_merge $old 7407 7408 if {!$ok} { 7409 ias_pop2mark $mrk 7410 icl_rewind $pos 7411 return 7412 } 7413 7414 return 7415} 7416 7417# ### ### ### ######### ######### ######### 7418## Package Management 7419 7420package provide page::parse::lemon 0.1 7421