parse_peg.tcl
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 package require grammar::me::tcl
00019 
00020 
00021 
00022 
00023 namespace ::page::parse::peg {
00024     
00025 
00026     namespace import ::grammar::me::tcl::*
00027     upvar 
00028 }
00029 
00030 
00031 
00032 
00033 ret  ::page::parse::peg::parse (type nxcmd , type emvar , type astvar) {
00034     variable ok
00035     variable se
00036 
00037     upvar 1 $emvar emsg $astvar ast
00038 
00039     init $nxcmd
00040 
00041     matchSymbol_Grammar    ; # (n Grammar)
00042 
00043     isv_nonterminal_reduce ALL -1
00044     set ast [sv]
00045     if {!$ok} {
00046         foreach {l m} [ier_get] break
00047         lappend l [lc $l]
00048         set emsg [list $l $m]
00049     }
00050 
00051     return $ok
00052 }
00053 
00054 
00055 
00056 
00057 
00058 
00059 
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 
00096 
00097 
00098 
00099 
00100 
00101 
00102 
00103 
00104 
00105 
00106 
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 
00117 
00118 
00119 
00120 
00121 
00122 
00123 
00124 
00125 
00126 
00127 
00128 
00129 
00130 
00131 
00132 
00133 
00134 
00135 
00136 
00137 
00138 
00139 
00140 
00141 
00142 
00143 
00144 
00145 
00146 
00147 
00148 
00149 
00150 
00151 
00152 
00153 
00154 
00155 
00156 
00157 
00158 
00159 
00160 
00161 
00162 
00163 
00164 
00165 
00166 
00167 
00168 
00169 
00170 
00171 
00172 
00173 
00174 
00175 
00176 
00177 
00178 
00179 
00180 
00181 
00182 
00183 
00184 
00185 
00186 
00187 
00188 
00189 
00190 
00191 
00192 
00193 
00194 
00195 
00196 
00197 
00198 
00199 
00200 
00201 
00202 
00203 
00204 
00205 
00206 
00207 
00208 
00209 
00210 
00211 
00212 
00213 
00214 
00215 
00216 
00217 
00218 
00219 
00220 
00221 
00222 
00223 
00224 
00225 
00226 
00227 
00228 
00229 
00230 
00231 
00232 
00233 
00234 
00235 
00236 
00237 
00238 
00239 
00240 
00241 
00242 
00243 
00244 
00245 
00246 
00247 
00248 
00249 
00250 
00251 
00252 
00253 
00254 
00255 
00256 
00257 
00258 
00259 
00260 
00261 
00262 
00263 
00264 
00265 
00266 
00267 
00268 
00269 
00270 
00271 
00272 
00273 
00274 
00275 
00276 
00277 
00278 
00279 
00280 
00281 
00282 
00283 
00284 
00285 
00286 
00287 
00288 
00289 
00290 
00291 
00292 
00293 
00294 
00295 
00296 ret  ::page::parse::peg::matchSymbol_ALNUM () {
00297     # ALNUM = (x (t <)
00298     #            (t a)
00299     #            (t l)
00300     #            (t n)
00301     #            (t u)
00302     #            (t m)
00303     #            (t >)
00304     #            (n SPACE))
00305 
00306     variable ok
00307     if {[inc_restore ALNUM]} {
00308         if {$ok} ias_push
00309         return
00310     }
00311 
00312     set pos [icl_get]
00313 
00314     eseq75                ; # (x (t <)
00315                             #    (t a)
00316                             #    (t l)
00317                             #    (t n)
00318                             #    (t u)
00319                             #    (t m)
00320                             #    (t >)
00321                             #    (n SPACE))
00322 
00323     isv_nonterminal_leaf   ALNUM $pos
00324     inc_save               ALNUM $pos
00325     if {$ok} ias_push
00326     ier_nonterminal        "Expected ALNUM" $pos
00327     return
00328 }
00329 
00330 ret  ::page::parse::peg::eseq75 () {
00331 
00332     # (x (t <)
00333     #    (t a)
00334     #    (t l)
00335     #    (t n)
00336     #    (t u)
00337     #    (t m)
00338     #    (t >)
00339     #    (n SPACE))
00340 
00341     variable ok
00342 
00343     set pos [icl_get]
00344 
00345     set old [ier_get]
00346     ict_advance "Expected < (got EOF)"
00347     if {$ok} {ict_match_token < "Expected <"}
00348     ier_merge $old
00349 
00350     if {!$ok} {icl_rewind $pos ; return}
00351 
00352     set old [ier_get]
00353     ict_advance "Expected a (got EOF)"
00354     if {$ok} {ict_match_token a "Expected a"}
00355     ier_merge $old
00356 
00357     if {!$ok} {icl_rewind $pos ; return}
00358 
00359     set old [ier_get]
00360     ict_advance "Expected l (got EOF)"
00361     if {$ok} {ict_match_token l "Expected l"}
00362     ier_merge $old
00363 
00364     if {!$ok} {icl_rewind $pos ; return}
00365 
00366     set old [ier_get]
00367     ict_advance "Expected n (got EOF)"
00368     if {$ok} {ict_match_token n "Expected n"}
00369     ier_merge $old
00370 
00371     if {!$ok} {icl_rewind $pos ; return}
00372 
00373     set old [ier_get]
00374     ict_advance "Expected u (got EOF)"
00375     if {$ok} {ict_match_token u "Expected u"}
00376     ier_merge $old
00377 
00378     if {!$ok} {icl_rewind $pos ; return}
00379 
00380     set old [ier_get]
00381     ict_advance "Expected m (got EOF)"
00382     if {$ok} {ict_match_token m "Expected m"}
00383     ier_merge $old
00384 
00385     if {!$ok} {icl_rewind $pos ; return}
00386 
00387     set old [ier_get]
00388     ict_advance "Expected > (got EOF)"
00389     if {$ok} {ict_match_token > "Expected >"}
00390     ier_merge $old
00391 
00392     if {!$ok} {icl_rewind $pos ; return}
00393 
00394     set old [ier_get]
00395     matchSymbol_SPACE    ; # (n SPACE)
00396     ier_merge $old
00397 
00398     if {!$ok} {icl_rewind $pos ; return}
00399 
00400     return
00401 }
00402 
00403 ret  ::page::parse::peg::matchSymbol_ALPHA () {
00404     # ALPHA = (x (t <)
00405     #            (t a)
00406     #            (t l)
00407     #            (t p)
00408     #            (t h)
00409     #            (t a)
00410     #            (t >)
00411     #            (n SPACE))
00412 
00413     variable ok
00414     if {[inc_restore ALPHA]} {
00415         if {$ok} ias_push
00416         return
00417     }
00418 
00419     set pos [icl_get]
00420 
00421     eseq74                ; # (x (t <)
00422                             #    (t a)
00423                             #    (t l)
00424                             #    (t p)
00425                             #    (t h)
00426                             #    (t a)
00427                             #    (t >)
00428                             #    (n SPACE))
00429 
00430     isv_nonterminal_leaf   ALPHA $pos
00431     inc_save               ALPHA $pos
00432     if {$ok} ias_push
00433     ier_nonterminal        "Expected ALPHA" $pos
00434     return
00435 }
00436 
00437 ret  ::page::parse::peg::eseq74 () {
00438 
00439     # (x (t <)
00440     #    (t a)
00441     #    (t l)
00442     #    (t p)
00443     #    (t h)
00444     #    (t a)
00445     #    (t >)
00446     #    (n SPACE))
00447 
00448     variable ok
00449 
00450     set pos [icl_get]
00451 
00452     set old [ier_get]
00453     ict_advance "Expected < (got EOF)"
00454     if {$ok} {ict_match_token < "Expected <"}
00455     ier_merge $old
00456 
00457     if {!$ok} {icl_rewind $pos ; return}
00458 
00459     set old [ier_get]
00460     ict_advance "Expected a (got EOF)"
00461     if {$ok} {ict_match_token a "Expected a"}
00462     ier_merge $old
00463 
00464     if {!$ok} {icl_rewind $pos ; return}
00465 
00466     set old [ier_get]
00467     ict_advance "Expected l (got EOF)"
00468     if {$ok} {ict_match_token l "Expected l"}
00469     ier_merge $old
00470 
00471     if {!$ok} {icl_rewind $pos ; return}
00472 
00473     set old [ier_get]
00474     ict_advance "Expected p (got EOF)"
00475     if {$ok} {ict_match_token p "Expected p"}
00476     ier_merge $old
00477 
00478     if {!$ok} {icl_rewind $pos ; return}
00479 
00480     set old [ier_get]
00481     ict_advance "Expected h (got EOF)"
00482     if {$ok} {ict_match_token h "Expected h"}
00483     ier_merge $old
00484 
00485     if {!$ok} {icl_rewind $pos ; return}
00486 
00487     set old [ier_get]
00488     ict_advance "Expected a (got EOF)"
00489     if {$ok} {ict_match_token a "Expected a"}
00490     ier_merge $old
00491 
00492     if {!$ok} {icl_rewind $pos ; return}
00493 
00494     set old [ier_get]
00495     ict_advance "Expected > (got EOF)"
00496     if {$ok} {ict_match_token > "Expected >"}
00497     ier_merge $old
00498 
00499     if {!$ok} {icl_rewind $pos ; return}
00500 
00501     set old [ier_get]
00502     matchSymbol_SPACE    ; # (n SPACE)
00503     ier_merge $old
00504 
00505     if {!$ok} {icl_rewind $pos ; return}
00506 
00507     return
00508 }
00509 
00510 ret  ::page::parse::peg::matchSymbol_AND () {
00511     # AND = (x (t &)
00512     #          (n SPACE))
00513 
00514     variable ok
00515     if {[inc_restore AND]} {
00516         if {$ok} ias_push
00517         return
00518     }
00519 
00520     set pos [icl_get]
00521 
00522     eseq66                ; # (x (t &)
00523                             #    (n SPACE))
00524 
00525     isv_nonterminal_leaf   AND $pos
00526     inc_save               AND $pos
00527     if {$ok} ias_push
00528     ier_nonterminal        "Expected AND" $pos
00529     return
00530 }
00531 
00532 ret  ::page::parse::peg::eseq66 () {
00533 
00534     # (x (t &)
00535     #    (n SPACE))
00536 
00537     variable ok
00538 
00539     set pos [icl_get]
00540 
00541     set old [ier_get]
00542     ict_advance "Expected & (got EOF)"
00543     if {$ok} {ict_match_token & "Expected &"}
00544     ier_merge $old
00545 
00546     if {!$ok} {icl_rewind $pos ; return}
00547 
00548     set old [ier_get]
00549     matchSymbol_SPACE    ; # (n SPACE)
00550     ier_merge $old
00551 
00552     if {!$ok} {icl_rewind $pos ; return}
00553 
00554     return
00555 }
00556 
00557 ret  ::page::parse::peg::matchSymbol_APOSTROPH () {
00558     # APOSTROPH = (t ')
00559 
00560     variable ok
00561     if {[inc_restore APOSTROPH]} return
00562 
00563     set pos [icl_get]
00564 
00565     ict_advance "Expected ' (got EOF)"
00566     if {$ok} {ict_match_token ' "Expected '"}
00567 
00568     isv_clear
00569     inc_save               APOSTROPH $pos
00570     ier_nonterminal        "Expected APOSTROPH" $pos
00571     return
00572 }
00573 
00574 ret  ::page::parse::peg::matchSymbol_Attribute () {
00575     # Attribute = (x (/ (n VOID)
00576     #                   (n LEAF)
00577     #                   (n MATCH))
00578     #                (n COLON))
00579 
00580     variable ok
00581     if {[inc_restore Attribute]} {
00582         if {$ok} ias_push
00583         return
00584     }
00585 
00586     set pos [icl_get]
00587     set mrk [ias_mark]
00588 
00589     eseq7                ; # (x (/ (n VOID)
00590                            #       (n LEAF)
00591                            #       (n MATCH))
00592                            #    (n COLON))
00593 
00594     isv_nonterminal_reduce Attribute $pos $mrk
00595     inc_save               Attribute $pos
00596     ias_pop2mark             $mrk
00597     if {$ok} ias_push
00598     ier_nonterminal        "Expected Attribute" $pos
00599     return
00600 }
00601 
00602 ret  ::page::parse::peg::eseq7 () {
00603 
00604     # (x (/ (n VOID)
00605     #       (n LEAF)
00606     #       (n MATCH))
00607     #    (n COLON))
00608 
00609     variable ok
00610 
00611     set pos [icl_get]
00612 
00613     set mrk [ias_mark]
00614 
00615     set old [ier_get]
00616     ebra6                ; # (/ (n VOID)
00617                            #    (n LEAF)
00618                            #    (n MATCH))
00619     ier_merge $old
00620 
00621     if {!$ok} {
00622         ias_pop2mark $mrk
00623         icl_rewind   $pos
00624         return
00625     }
00626 
00627     set old [ier_get]
00628     matchSymbol_COLON    ; # (n COLON)
00629     ier_merge $old
00630 
00631     if {!$ok} {
00632         ias_pop2mark $mrk
00633         icl_rewind   $pos
00634         return
00635     }
00636 
00637     return
00638 }
00639 
00640 ret  ::page::parse::peg::ebra6 () {
00641 
00642     # (/ (n VOID)
00643     #    (n LEAF)
00644     #    (n MATCH))
00645 
00646     variable ok
00647 
00648     set pos [icl_get]
00649 
00650     set mrk [ias_mark]
00651     set old [ier_get]
00652     matchSymbol_VOID    ; # (n VOID)
00653     ier_merge $old
00654 
00655     if {$ok} return
00656     ias_pop2mark $mrk
00657     icl_rewind   $pos
00658 
00659     set mrk [ias_mark]
00660     set old [ier_get]
00661     matchSymbol_LEAF    ; # (n LEAF)
00662     ier_merge $old
00663 
00664     if {$ok} return
00665     ias_pop2mark $mrk
00666     icl_rewind   $pos
00667 
00668     set mrk [ias_mark]
00669     set old [ier_get]
00670     matchSymbol_MATCH    ; # (n MATCH)
00671     ier_merge $old
00672 
00673     if {$ok} return
00674     ias_pop2mark $mrk
00675     icl_rewind   $pos
00676 
00677     return
00678 }
00679 
00680 ret  ::page::parse::peg::matchSymbol_Char () {
00681     # Char = (/ (n CharSpecial)
00682     #           (n CharOctalFull)
00683     #           (n CharOctalPart)
00684     #           (n CharUnicode)
00685     #           (n CharUnescaped))
00686 
00687     variable ok
00688     if {[inc_restore Char]} {
00689         if {$ok} ias_push
00690         return
00691     }
00692 
00693     set pos [icl_get]
00694     set mrk [ias_mark]
00695 
00696     ebra42                ; # (/ (n CharSpecial)
00697                             #    (n CharOctalFull)
00698                             #    (n CharOctalPart)
00699                             #    (n CharUnicode)
00700                             #    (n CharUnescaped))
00701 
00702     isv_nonterminal_reduce Char $pos $mrk
00703     inc_save               Char $pos
00704     ias_pop2mark             $mrk
00705     if {$ok} ias_push
00706     ier_nonterminal        "Expected Char" $pos
00707     return
00708 }
00709 
00710 ret  ::page::parse::peg::ebra42 () {
00711 
00712     # (/ (n CharSpecial)
00713     #    (n CharOctalFull)
00714     #    (n CharOctalPart)
00715     #    (n CharUnicode)
00716     #    (n CharUnescaped))
00717 
00718     variable ok
00719 
00720     set pos [icl_get]
00721 
00722     set mrk [ias_mark]
00723     set old [ier_get]
00724     matchSymbol_CharSpecial    ; # (n CharSpecial)
00725     ier_merge $old
00726 
00727     if {$ok} return
00728     ias_pop2mark $mrk
00729     icl_rewind   $pos
00730 
00731     set mrk [ias_mark]
00732     set old [ier_get]
00733     matchSymbol_CharOctalFull    ; # (n CharOctalFull)
00734     ier_merge $old
00735 
00736     if {$ok} return
00737     ias_pop2mark $mrk
00738     icl_rewind   $pos
00739 
00740     set mrk [ias_mark]
00741     set old [ier_get]
00742     matchSymbol_CharOctalPart    ; # (n CharOctalPart)
00743     ier_merge $old
00744 
00745     if {$ok} return
00746     ias_pop2mark $mrk
00747     icl_rewind   $pos
00748 
00749     set mrk [ias_mark]
00750     set old [ier_get]
00751     matchSymbol_CharUnicode    ; # (n CharUnicode)
00752     ier_merge $old
00753 
00754     if {$ok} return
00755     ias_pop2mark $mrk
00756     icl_rewind   $pos
00757 
00758     set mrk [ias_mark]
00759     set old [ier_get]
00760     matchSymbol_CharUnescaped    ; # (n CharUnescaped)
00761     ier_merge $old
00762 
00763     if {$ok} return
00764     ias_pop2mark $mrk
00765     icl_rewind   $pos
00766 
00767     return
00768 }
00769 
00770 ret  ::page::parse::peg::matchSymbol_CharOctalFull () {
00771     # CharOctalFull = (x (t \)
00772     #                    (.. 0 2)
00773     #                    (.. 0 7)
00774     #                    (.. 0 7))
00775 
00776     variable ok
00777     if {[inc_restore CharOctalFull]} {
00778         if {$ok} ias_push
00779         return
00780     }
00781 
00782     set pos [icl_get]
00783 
00784     eseq45                ; # (x (t \)
00785                             #    (.. 0 2)
00786                             #    (.. 0 7)
00787                             #    (.. 0 7))
00788 
00789     isv_nonterminal_range  CharOctalFull $pos
00790     inc_save               CharOctalFull $pos
00791     if {$ok} ias_push
00792     ier_nonterminal        "Expected CharOctalFull" $pos
00793     return
00794 }
00795 
00796 ret  ::page::parse::peg::eseq45 () {
00797 
00798     # (x (t \)
00799     #    (.. 0 2)
00800     #    (.. 0 7)
00801     #    (.. 0 7))
00802 
00803     variable ok
00804 
00805     set pos [icl_get]
00806 
00807     set old [ier_get]
00808     ict_advance "Expected \\ (got EOF)"
00809     if {$ok} {ict_match_token \134 "Expected \\"}
00810     ier_merge $old
00811 
00812     if {!$ok} {icl_rewind $pos ; return}
00813 
00814     set old [ier_get]
00815     ict_advance "Expected \[0..2\] (got EOF)"
00816     if {$ok} {ict_match_tokrange 0 2 "Expected \[0..2\]"}
00817     ier_merge $old
00818 
00819     if {!$ok} {icl_rewind $pos ; return}
00820 
00821     set old [ier_get]
00822     ict_advance "Expected \[0..7\] (got EOF)"
00823     if {$ok} {ict_match_tokrange 0 7 "Expected \[0..7\]"}
00824     ier_merge $old
00825 
00826     if {!$ok} {icl_rewind $pos ; return}
00827 
00828     set old [ier_get]
00829     ict_advance "Expected \[0..7\] (got EOF)"
00830     if {$ok} {ict_match_tokrange 0 7 "Expected \[0..7\]"}
00831     ier_merge $old
00832 
00833     if {!$ok} {icl_rewind $pos ; return}
00834 
00835     return
00836 }
00837 
00838 ret  ::page::parse::peg::matchSymbol_CharOctalPart () {
00839     # CharOctalPart = (x (t \)
00840     #                    (.. 0 7)
00841     #                    (? (.. 0 7)))
00842 
00843     variable ok
00844     if {[inc_restore CharOctalPart]} {
00845         if {$ok} ias_push
00846         return
00847     }
00848 
00849     set pos [icl_get]
00850 
00851     eseq47                ; # (x (t \)
00852                             #    (.. 0 7)
00853                             #    (? (.. 0 7)))
00854 
00855     isv_nonterminal_range  CharOctalPart $pos
00856     inc_save               CharOctalPart $pos
00857     if {$ok} ias_push
00858     ier_nonterminal        "Expected CharOctalPart" $pos
00859     return
00860 }
00861 
00862 ret  ::page::parse::peg::eseq47 () {
00863 
00864     # (x (t \)
00865     #    (.. 0 7)
00866     #    (? (.. 0 7)))
00867 
00868     variable ok
00869 
00870     set pos [icl_get]
00871 
00872     set old [ier_get]
00873     ict_advance "Expected \\ (got EOF)"
00874     if {$ok} {ict_match_token \134 "Expected \\"}
00875     ier_merge $old
00876 
00877     if {!$ok} {icl_rewind $pos ; return}
00878 
00879     set old [ier_get]
00880     ict_advance "Expected \[0..7\] (got EOF)"
00881     if {$ok} {ict_match_tokrange 0 7 "Expected \[0..7\]"}
00882     ier_merge $old
00883 
00884     if {!$ok} {icl_rewind $pos ; return}
00885 
00886     set old [ier_get]
00887     eopt46                ; # (? (.. 0 7))
00888     ier_merge $old
00889 
00890     if {!$ok} {icl_rewind $pos ; return}
00891 
00892     return
00893 }
00894 
00895 ret  ::page::parse::peg::eopt46 () {
00896 
00897     # (? (.. 0 7))
00898 
00899     variable ok
00900 
00901     set pos [icl_get]
00902 
00903     set old [ier_get]
00904     ict_advance "Expected \[0..7\] (got EOF)"
00905     if {$ok} {ict_match_tokrange 0 7 "Expected \[0..7\]"}
00906     ier_merge $old
00907 
00908     if {$ok} return
00909     icl_rewind $pos
00910     iok_ok
00911     return
00912 }
00913 
00914 ret  ::page::parse::peg::matchSymbol_CharSpecial () {
00915     # CharSpecial = (x (t \)
00916     #                  (/ (t n)
00917     #                     (t r)
00918     #                     (t t)
00919     #                     (t ')
00920     #                     (t \")
00921     #                     (t [)
00922     #                     (t ])
00923     #                     (t \)))
00924 
00925     variable ok
00926     if {[inc_restore CharSpecial]} {
00927         if {$ok} ias_push
00928         return
00929     }
00930 
00931     set pos [icl_get]
00932 
00933     eseq44                ; # (x (t \)
00934                             #    (/ (t n)
00935                             #       (t r)
00936                             #       (t t)
00937                             #       (t ')
00938                             #       (t \")
00939                             #       (t [)
00940                             #       (t ])
00941                             #       (t \)))
00942 
00943     isv_nonterminal_range  CharSpecial $pos
00944     inc_save               CharSpecial $pos
00945     if {$ok} ias_push
00946     ier_nonterminal        "Expected CharSpecial" $pos
00947     return
00948 }
00949 
00950 ret  ::page::parse::peg::eseq44 () {
00951 
00952     # (x (t \)
00953     #    (/ (t n)
00954     #       (t r)
00955     #       (t t)
00956     #       (t ')
00957     #       (t \")
00958     #       (t [)
00959     #       (t ])
00960     #       (t \)))
00961 
00962     variable ok
00963 
00964     set pos [icl_get]
00965 
00966     set old [ier_get]
00967     ict_advance "Expected \\ (got EOF)"
00968     if {$ok} {ict_match_token \134 "Expected \\"}
00969     ier_merge $old
00970 
00971     if {!$ok} {icl_rewind $pos ; return}
00972 
00973     set old [ier_get]
00974     ebra43                ; # (/ (t n)
00975                             #    (t r)
00976                             #    (t t)
00977                             #    (t ')
00978                             #    (t \")
00979                             #    (t [)
00980                             #    (t ])
00981                             #    (t \))
00982     ier_merge $old
00983 
00984     if {!$ok} {icl_rewind $pos ; return}
00985 
00986     return
00987 }
00988 
00989 ret  ::page::parse::peg::ebra43 () {
00990 
00991     # (/ (t n)
00992     #    (t r)
00993     #    (t t)
00994     #    (t ')
00995     #    (t \")
00996     #    (t [)
00997     #    (t ])
00998     #    (t \))
00999 
01000     variable ok
01001 
01002     set pos [icl_get]
01003 
01004     set old [ier_get]
01005     ict_advance "Expected n (got EOF)"
01006     if {$ok} {ict_match_token n "Expected n"}
01007     ier_merge $old
01008 
01009     if {$ok} return
01010     icl_rewind   $pos
01011 
01012     set old [ier_get]
01013     ict_advance "Expected r (got EOF)"
01014     if {$ok} {ict_match_token r "Expected r"}
01015     ier_merge $old
01016 
01017     if {$ok} return
01018     icl_rewind   $pos
01019 
01020     set old [ier_get]
01021     ict_advance "Expected t (got EOF)"
01022     if {$ok} {ict_match_token t "Expected t"}
01023     ier_merge $old
01024 
01025     if {$ok} return
01026     icl_rewind   $pos
01027 
01028     set old [ier_get]
01029     ict_advance "Expected ' (got EOF)"
01030     if {$ok} {ict_match_token ' "Expected '"}
01031     ier_merge $old
01032 
01033     if {$ok} return
01034     icl_rewind   $pos
01035 
01036     set old [ier_get]
01037     ict_advance "Expected \" (got EOF)"
01038     if {$ok} {ict_match_token \42 "Expected \""}
01039     ier_merge $old
01040 
01041     if {$ok} return
01042     icl_rewind   $pos
01043 
01044     set old [ier_get]
01045     ict_advance "Expected \[ (got EOF)"
01046     if {$ok} {ict_match_token \133 "Expected \["}
01047     ier_merge $old
01048 
01049     if {$ok} return
01050     icl_rewind   $pos
01051 
01052     set old [ier_get]
01053     ict_advance "Expected \] (got EOF)"
01054     if {$ok} {ict_match_token \135 "Expected \]"}
01055     ier_merge $old
01056 
01057     if {$ok} return
01058     icl_rewind   $pos
01059 
01060     set old [ier_get]
01061     ict_advance "Expected \\ (got EOF)"
01062     if {$ok} {ict_match_token \134 "Expected \\"}
01063     ier_merge $old
01064 
01065     if {$ok} return
01066     icl_rewind   $pos
01067 
01068     return
01069 }
01070 
01071 ret  ::page::parse::peg::matchSymbol_CharUnescaped () {
01072     # CharUnescaped = (x (! (t \))
01073     #                    (dot))
01074 
01075     variable ok
01076     if {[inc_restore CharUnescaped]} {
01077         if {$ok} ias_push
01078         return
01079     }
01080 
01081     set pos [icl_get]
01082 
01083     eseq55                ; # (x (! (t \))
01084                             #    (dot))
01085 
01086     isv_nonterminal_range  CharUnescaped $pos
01087     inc_save               CharUnescaped $pos
01088     if {$ok} ias_push
01089     ier_nonterminal        "Expected CharUnescaped" $pos
01090     return
01091 }
01092 
01093 ret  ::page::parse::peg::eseq55 () {
01094 
01095     # (x (! (t \))
01096     #    (dot))
01097 
01098     variable ok
01099 
01100     set pos [icl_get]
01101 
01102     set old [ier_get]
01103     ebang54
01104     ier_merge $old
01105 
01106     if {!$ok} {icl_rewind $pos ; return}
01107 
01108     set old [ier_get]
01109     ict_advance "Expected any character (got EOF)"
01110     ier_merge $old
01111 
01112     if {!$ok} {icl_rewind $pos ; return}
01113 
01114     return
01115 }
01116 
01117 ret  ::page::parse::peg::ebang54 () {
01118     variable ok
01119 
01120     set pos [icl_get]
01121 
01122     ict_advance "Expected \\ (got EOF)"
01123     if {$ok} {ict_match_token \134 "Expected \\"}
01124 
01125     icl_rewind $pos
01126     iok_negate
01127     return
01128 }
01129 
01130 ret  ::page::parse::peg::matchSymbol_CharUnicode () {
01131     # CharUnicode = (x (t \)
01132     #                  (t u)
01133     #                  (n HexDigit)
01134     #                  (? (x (n HexDigit)
01135     #                        (? (x (n HexDigit)
01136     #                              (? (n HexDigit)))))))
01137 
01138     variable ok
01139     if {[inc_restore CharUnicode]} {
01140         if {$ok} ias_push
01141         return
01142     }
01143 
01144     set pos [icl_get]
01145 
01146     eseq53                ; # (x (t \)
01147                             #    (t u)
01148                             #    (n HexDigit)
01149                             #    (? (x (n HexDigit)
01150                             #          (? (x (n HexDigit)
01151                             #                (? (n HexDigit)))))))
01152 
01153     isv_nonterminal_range  CharUnicode $pos
01154     inc_save               CharUnicode $pos
01155     if {$ok} ias_push
01156     ier_nonterminal        "Expected CharUnicode" $pos
01157     return
01158 }
01159 
01160 ret  ::page::parse::peg::eseq53 () {
01161 
01162     # (x (t \)
01163     #    (t u)
01164     #    (n HexDigit)
01165     #    (? (x (n HexDigit)
01166     #          (? (x (n HexDigit)
01167     #                (? (n HexDigit)))))))
01168 
01169     variable ok
01170 
01171     set pos [icl_get]
01172 
01173     set old [ier_get]
01174     ict_advance "Expected \\ (got EOF)"
01175     if {$ok} {ict_match_token \134 "Expected \\"}
01176     ier_merge $old
01177 
01178     if {!$ok} {icl_rewind $pos ; return}
01179 
01180     set old [ier_get]
01181     ict_advance "Expected u (got EOF)"
01182     if {$ok} {ict_match_token u "Expected u"}
01183     ier_merge $old
01184 
01185     if {!$ok} {icl_rewind $pos ; return}
01186 
01187     set old [ier_get]
01188     matchSymbol_HexDigit    ; # (n HexDigit)
01189     ier_merge $old
01190 
01191     if {!$ok} {icl_rewind $pos ; return}
01192 
01193     set old [ier_get]
01194     eopt52                ; # (? (x (n HexDigit)
01195                             #       (? (x (n HexDigit)
01196                             #             (? (n HexDigit))))))
01197     ier_merge $old
01198 
01199     if {!$ok} {icl_rewind $pos ; return}
01200 
01201     return
01202 }
01203 
01204 ret  ::page::parse::peg::eopt52 () {
01205 
01206     # (? (x (n HexDigit)
01207     #       (? (x (n HexDigit)
01208     #             (? (n HexDigit))))))
01209 
01210     variable ok
01211 
01212     set pos [icl_get]
01213 
01214     set old [ier_get]
01215     eseq51                ; # (x (n HexDigit)
01216                             #    (? (x (n HexDigit)
01217                             #          (? (n HexDigit)))))
01218     ier_merge $old
01219 
01220     if {$ok} return
01221     icl_rewind $pos
01222     iok_ok
01223     return
01224 }
01225 
01226 ret  ::page::parse::peg::eseq51 () {
01227 
01228     # (x (n HexDigit)
01229     #    (? (x (n HexDigit)
01230     #          (? (n HexDigit)))))
01231 
01232     variable ok
01233 
01234     set pos [icl_get]
01235 
01236     set old [ier_get]
01237     matchSymbol_HexDigit    ; # (n HexDigit)
01238     ier_merge $old
01239 
01240     if {!$ok} {icl_rewind $pos ; return}
01241 
01242     set old [ier_get]
01243     eopt50                ; # (? (x (n HexDigit)
01244                             #       (? (n HexDigit))))
01245     ier_merge $old
01246 
01247     if {!$ok} {icl_rewind $pos ; return}
01248 
01249     return
01250 }
01251 
01252 ret  ::page::parse::peg::eopt50 () {
01253 
01254     # (? (x (n HexDigit)
01255     #       (? (n HexDigit))))
01256 
01257     variable ok
01258 
01259     set pos [icl_get]
01260 
01261     set old [ier_get]
01262     eseq49                ; # (x (n HexDigit)
01263                             #    (? (n HexDigit)))
01264     ier_merge $old
01265 
01266     if {$ok} return
01267     icl_rewind $pos
01268     iok_ok
01269     return
01270 }
01271 
01272 ret  ::page::parse::peg::eseq49 () {
01273 
01274     # (x (n HexDigit)
01275     #    (? (n HexDigit)))
01276 
01277     variable ok
01278 
01279     set pos [icl_get]
01280 
01281     set old [ier_get]
01282     matchSymbol_HexDigit    ; # (n HexDigit)
01283     ier_merge $old
01284 
01285     if {!$ok} {icl_rewind $pos ; return}
01286 
01287     set old [ier_get]
01288     eopt48                ; # (? (n HexDigit))
01289     ier_merge $old
01290 
01291     if {!$ok} {icl_rewind $pos ; return}
01292 
01293     return
01294 }
01295 
01296 ret  ::page::parse::peg::eopt48 () {
01297 
01298     # (? (n HexDigit))
01299 
01300     variable ok
01301 
01302     set pos [icl_get]
01303 
01304     set old [ier_get]
01305     matchSymbol_HexDigit    ; # (n HexDigit)
01306     ier_merge $old
01307 
01308     if {$ok} return
01309     icl_rewind $pos
01310     iok_ok
01311     return
01312 }
01313 
01314 ret  ::page::parse::peg::matchSymbol_Class () {
01315     # Class = (x (n OPENB)
01316     #            (* (x (! (n CLOSEB))
01317     #                  (n Range)))
01318     #            (n CLOSEB)
01319     #            (n SPACE))
01320 
01321     variable ok
01322     if {[inc_restore Class]} {
01323         if {$ok} ias_push
01324         return
01325     }
01326 
01327     set pos [icl_get]
01328     set mrk [ias_mark]
01329 
01330     eseq32                ; # (x (n OPENB)
01331                             #    (* (x (! (n CLOSEB))
01332                             #          (n Range)))
01333                             #    (n CLOSEB)
01334                             #    (n SPACE))
01335 
01336     isv_nonterminal_reduce Class $pos $mrk
01337     inc_save               Class $pos
01338     ias_pop2mark             $mrk
01339     if {$ok} ias_push
01340     ier_nonterminal        "Expected Class" $pos
01341     return
01342 }
01343 
01344 ret  ::page::parse::peg::eseq32 () {
01345 
01346     # (x (n OPENB)
01347     #    (* (x (! (n CLOSEB))
01348     #          (n Range)))
01349     #    (n CLOSEB)
01350     #    (n SPACE))
01351 
01352     variable ok
01353 
01354     set pos [icl_get]
01355 
01356     set old [ier_get]
01357     matchSymbol_OPENB    ; # (n OPENB)
01358     ier_merge $old
01359 
01360     if {!$ok} {icl_rewind $pos ; return}
01361 
01362     set mrk [ias_mark]
01363 
01364     set old [ier_get]
01365     ekleene31                ; # (* (x (! (n CLOSEB))
01366                                #       (n Range)))
01367     ier_merge $old
01368 
01369     if {!$ok} {
01370         ias_pop2mark $mrk
01371         icl_rewind   $pos
01372         return
01373     }
01374 
01375     set old [ier_get]
01376     matchSymbol_CLOSEB    ; # (n CLOSEB)
01377     ier_merge $old
01378 
01379     if {!$ok} {
01380         ias_pop2mark $mrk
01381         icl_rewind   $pos
01382         return
01383     }
01384 
01385     set old [ier_get]
01386     matchSymbol_SPACE    ; # (n SPACE)
01387     ier_merge $old
01388 
01389     if {!$ok} {
01390         ias_pop2mark $mrk
01391         icl_rewind   $pos
01392         return
01393     }
01394 
01395     return
01396 }
01397 
01398 ret  ::page::parse::peg::ekleene31 () {
01399 
01400     # (* (x (! (n CLOSEB))
01401     #       (n Range)))
01402 
01403     variable ok
01404 
01405     while {1} {
01406         set pos [icl_get]
01407 
01408         set old [ier_get]
01409         eseq30                ; # (x (! (n CLOSEB))
01410                                 #    (n Range))
01411         ier_merge $old
01412 
01413         if {$ok} continue
01414         break
01415     }
01416 
01417     icl_rewind $pos
01418     iok_ok
01419     return
01420 }
01421 
01422 ret  ::page::parse::peg::eseq30 () {
01423 
01424     # (x (! (n CLOSEB))
01425     #    (n Range))
01426 
01427     variable ok
01428 
01429     set pos [icl_get]
01430 
01431     set old [ier_get]
01432     ebang29
01433     ier_merge $old
01434 
01435     if {!$ok} {icl_rewind $pos ; return}
01436 
01437     set mrk [ias_mark]
01438 
01439     set old [ier_get]
01440     matchSymbol_Range    ; # (n Range)
01441     ier_merge $old
01442 
01443     if {!$ok} {
01444         ias_pop2mark $mrk
01445         icl_rewind   $pos
01446         return
01447     }
01448 
01449     return
01450 }
01451 
01452 ret  ::page::parse::peg::ebang29 () {
01453     set pos [icl_get]
01454 
01455     matchSymbol_CLOSEB    ; # (n CLOSEB)
01456 
01457     icl_rewind $pos
01458     iok_negate
01459     return
01460 }
01461 
01462 ret  ::page::parse::peg::matchSymbol_CLOSE () {
01463     # CLOSE = (x (t \))
01464     #            (n SPACE))
01465 
01466     if {[inc_restore CLOSE]} return
01467 
01468     set pos [icl_get]
01469 
01470     eseq72                ; # (x (t \))
01471                             #    (n SPACE))
01472 
01473     isv_clear
01474     inc_save               CLOSE $pos
01475     ier_nonterminal        "Expected CLOSE" $pos
01476     return
01477 }
01478 
01479 ret  ::page::parse::peg::eseq72 () {
01480 
01481     # (x (t \))
01482     #    (n SPACE))
01483 
01484     variable ok
01485 
01486     set pos [icl_get]
01487 
01488     set old [ier_get]
01489     ict_advance "Expected \) (got EOF)"
01490     if {$ok} {ict_match_token \51 "Expected \)"}
01491     ier_merge $old
01492 
01493     if {!$ok} {icl_rewind $pos ; return}
01494 
01495     set old [ier_get]
01496     matchSymbol_SPACE    ; # (n SPACE)
01497     ier_merge $old
01498 
01499     if {!$ok} {icl_rewind $pos ; return}
01500 
01501     return
01502 }
01503 
01504 ret  ::page::parse::peg::matchSymbol_CLOSEB () {
01505     # CLOSEB = (t ])
01506 
01507     variable ok
01508     if {[inc_restore CLOSEB]} return
01509 
01510     set pos [icl_get]
01511 
01512     ict_advance "Expected \] (got EOF)"
01513     if {$ok} {ict_match_token \135 "Expected \]"}
01514 
01515     isv_clear
01516     inc_save               CLOSEB $pos
01517     ier_nonterminal        "Expected CLOSEB" $pos
01518     return
01519 }
01520 
01521 ret  ::page::parse::peg::matchSymbol_COLON () {
01522     # COLON = (x (t :)
01523     #            (n SPACE))
01524 
01525     if {[inc_restore COLON]} return
01526 
01527     set pos [icl_get]
01528 
01529     eseq64                ; # (x (t :)
01530                             #    (n SPACE))
01531 
01532     isv_clear
01533     inc_save               COLON $pos
01534     ier_nonterminal        "Expected COLON" $pos
01535     return
01536 }
01537 
01538 ret  ::page::parse::peg::eseq64 () {
01539 
01540     # (x (t :)
01541     #    (n SPACE))
01542 
01543     variable ok
01544 
01545     set pos [icl_get]
01546 
01547     set old [ier_get]
01548     ict_advance "Expected : (got EOF)"
01549     if {$ok} {ict_match_token : "Expected :"}
01550     ier_merge $old
01551 
01552     if {!$ok} {icl_rewind $pos ; return}
01553 
01554     set old [ier_get]
01555     matchSymbol_SPACE    ; # (n SPACE)
01556     ier_merge $old
01557 
01558     if {!$ok} {icl_rewind $pos ; return}
01559 
01560     return
01561 }
01562 
01563 ret  ::page::parse::peg::matchSymbol_COMMENT () {
01564     # COMMENT = (x (t #)
01565     #              (* (x (! (n EOL))
01566     #                    (dot)))
01567     #              (n EOL))
01568 
01569     if {[inc_restore COMMENT]} return
01570 
01571     set pos [icl_get]
01572 
01573     eseq81                ; # (x (t #)
01574                             #    (* (x (! (n EOL))
01575                             #          (dot)))
01576                             #    (n EOL))
01577 
01578     isv_clear
01579     inc_save               COMMENT $pos
01580     ier_nonterminal        "Expected COMMENT" $pos
01581     return
01582 }
01583 
01584 ret  ::page::parse::peg::eseq81 () {
01585 
01586     # (x (t #)
01587     #    (* (x (! (n EOL))
01588     #          (dot)))
01589     #    (n EOL))
01590 
01591     variable ok
01592 
01593     set pos [icl_get]
01594 
01595     set old [ier_get]
01596     ict_advance "Expected # (got EOF)"
01597     if {$ok} {ict_match_token # "Expected #"}
01598     ier_merge $old
01599 
01600     if {!$ok} {icl_rewind $pos ; return}
01601 
01602     set old [ier_get]
01603     ekleene80                ; # (* (x (! (n EOL))
01604                                #       (dot)))
01605     ier_merge $old
01606 
01607     if {!$ok} {icl_rewind $pos ; return}
01608 
01609     set old [ier_get]
01610     matchSymbol_EOL    ; # (n EOL)
01611     ier_merge $old
01612 
01613     if {!$ok} {icl_rewind $pos ; return}
01614 
01615     return
01616 }
01617 
01618 ret  ::page::parse::peg::ekleene80 () {
01619 
01620     # (* (x (! (n EOL))
01621     #       (dot)))
01622 
01623     variable ok
01624 
01625     while {1} {
01626         set pos [icl_get]
01627 
01628         set old [ier_get]
01629         eseq79                ; # (x (! (n EOL))
01630                                 #    (dot))
01631         ier_merge $old
01632 
01633         if {$ok} continue
01634         break
01635     }
01636 
01637     icl_rewind $pos
01638     iok_ok
01639     return
01640 }
01641 
01642 ret  ::page::parse::peg::eseq79 () {
01643 
01644     # (x (! (n EOL))
01645     #    (dot))
01646 
01647     variable ok
01648 
01649     set pos [icl_get]
01650 
01651     set old [ier_get]
01652     ebang78
01653     ier_merge $old
01654 
01655     if {!$ok} {icl_rewind $pos ; return}
01656 
01657     set old [ier_get]
01658     ict_advance "Expected any character (got EOF)"
01659     ier_merge $old
01660 
01661     if {!$ok} {icl_rewind $pos ; return}
01662 
01663     return
01664 }
01665 
01666 ret  ::page::parse::peg::ebang78 () {
01667     set pos [icl_get]
01668 
01669     matchSymbol_EOL    ; # (n EOL)
01670 
01671     icl_rewind $pos
01672     iok_negate
01673     return
01674 }
01675 
01676 ret  ::page::parse::peg::matchSymbol_DAPOSTROPH () {
01677     # DAPOSTROPH = (t \")
01678 
01679     variable ok
01680     if {[inc_restore DAPOSTROPH]} return
01681 
01682     set pos [icl_get]
01683 
01684     ict_advance "Expected \" (got EOF)"
01685     if {$ok} {ict_match_token \42 "Expected \""}
01686 
01687     isv_clear
01688     inc_save               DAPOSTROPH $pos
01689     ier_nonterminal        "Expected DAPOSTROPH" $pos
01690     return
01691 }
01692 
01693 ret  ::page::parse::peg::matchSymbol_Definition () {
01694     # Definition = (x (? (n Attribute))
01695     #                 (n Identifier)
01696     #                 (n IS)
01697     #                 (n Expression)
01698     #                 (n SEMICOLON))
01699 
01700     variable ok
01701     if {[inc_restore Definition]} {
01702         if {$ok} ias_push
01703         return
01704     }
01705 
01706     set pos [icl_get]
01707     set mrk [ias_mark]
01708 
01709     eseq5                ; # (x (? (n Attribute))
01710                            #    (n Identifier)
01711                            #    (n IS)
01712                            #    (n Expression)
01713                            #    (n SEMICOLON))
01714 
01715     isv_nonterminal_reduce Definition $pos $mrk
01716     inc_save               Definition $pos
01717     ias_pop2mark             $mrk
01718     if {$ok} ias_push
01719     ier_nonterminal        "Expected Definition" $pos
01720     return
01721 }
01722 
01723 ret  ::page::parse::peg::eseq5 () {
01724 
01725     # (x (? (n Attribute))
01726     #    (n Identifier)
01727     #    (n IS)
01728     #    (n Expression)
01729     #    (n SEMICOLON))
01730 
01731     variable ok
01732 
01733     set pos [icl_get]
01734 
01735     set mrk [ias_mark]
01736 
01737     set old [ier_get]
01738     eopt4                ; # (? (n Attribute))
01739     ier_merge $old
01740 
01741     if {!$ok} {
01742         ias_pop2mark $mrk
01743         icl_rewind   $pos
01744         return
01745     }
01746 
01747     set old [ier_get]
01748     matchSymbol_Identifier    ; # (n Identifier)
01749     ier_merge $old
01750 
01751     if {!$ok} {
01752         ias_pop2mark $mrk
01753         icl_rewind   $pos
01754         return
01755     }
01756 
01757     set old [ier_get]
01758     matchSymbol_IS    ; # (n IS)
01759     ier_merge $old
01760 
01761     if {!$ok} {
01762         ias_pop2mark $mrk
01763         icl_rewind   $pos
01764         return
01765     }
01766 
01767     set old [ier_get]
01768     matchSymbol_Expression    ; # (n Expression)
01769     ier_merge $old
01770 
01771     if {!$ok} {
01772         ias_pop2mark $mrk
01773         icl_rewind   $pos
01774         return
01775     }
01776 
01777     set old [ier_get]
01778     matchSymbol_SEMICOLON    ; # (n SEMICOLON)
01779     ier_merge $old
01780 
01781     if {!$ok} {
01782         ias_pop2mark $mrk
01783         icl_rewind   $pos
01784         return
01785     }
01786 
01787     return
01788 }
01789 
01790 ret  ::page::parse::peg::eopt4 () {
01791 
01792     # (? (n Attribute))
01793 
01794     variable ok
01795 
01796     set pos [icl_get]
01797 
01798     set old [ier_get]
01799     matchSymbol_Attribute    ; # (n Attribute)
01800     ier_merge $old
01801 
01802     if {$ok} return
01803     icl_rewind $pos
01804     iok_ok
01805     return
01806 }
01807 
01808 ret  ::page::parse::peg::matchSymbol_DOT () {
01809     # DOT = (x (t .)
01810     #          (n SPACE))
01811 
01812     variable ok
01813     if {[inc_restore DOT]} {
01814         if {$ok} ias_push
01815         return
01816     }
01817 
01818     set pos [icl_get]
01819 
01820     eseq73                ; # (x (t .)
01821                             #    (n SPACE))
01822 
01823     isv_nonterminal_leaf   DOT $pos
01824     inc_save               DOT $pos
01825     if {$ok} ias_push
01826     ier_nonterminal        "Expected DOT" $pos
01827     return
01828 }
01829 
01830 ret  ::page::parse::peg::eseq73 () {
01831 
01832     # (x (t .)
01833     #    (n SPACE))
01834 
01835     variable ok
01836 
01837     set pos [icl_get]
01838 
01839     set old [ier_get]
01840     ict_advance "Expected . (got EOF)"
01841     if {$ok} {ict_match_token . "Expected ."}
01842     ier_merge $old
01843 
01844     if {!$ok} {icl_rewind $pos ; return}
01845 
01846     set old [ier_get]
01847     matchSymbol_SPACE    ; # (n SPACE)
01848     ier_merge $old
01849 
01850     if {!$ok} {icl_rewind $pos ; return}
01851 
01852     return
01853 }
01854 
01855 ret  ::page::parse::peg::matchSymbol_END () {
01856     # END = (x (t E)
01857     #          (t N)
01858     #          (t D)
01859     #          (n SPACE))
01860 
01861     if {[inc_restore END]} return
01862 
01863     set pos [icl_get]
01864 
01865     eseq62                ; # (x (t E)
01866                             #    (t N)
01867                             #    (t D)
01868                             #    (n SPACE))
01869 
01870     isv_clear
01871     inc_save               END $pos
01872     ier_nonterminal        "Expected END" $pos
01873     return
01874 }
01875 
01876 ret  ::page::parse::peg::eseq62 () {
01877 
01878     # (x (t E)
01879     #    (t N)
01880     #    (t D)
01881     #    (n SPACE))
01882 
01883     variable ok
01884 
01885     set pos [icl_get]
01886 
01887     set old [ier_get]
01888     ict_advance "Expected E (got EOF)"
01889     if {$ok} {ict_match_token E "Expected E"}
01890     ier_merge $old
01891 
01892     if {!$ok} {icl_rewind $pos ; return}
01893 
01894     set old [ier_get]
01895     ict_advance "Expected N (got EOF)"
01896     if {$ok} {ict_match_token N "Expected N"}
01897     ier_merge $old
01898 
01899     if {!$ok} {icl_rewind $pos ; return}
01900 
01901     set old [ier_get]
01902     ict_advance "Expected D (got EOF)"
01903     if {$ok} {ict_match_token D "Expected D"}
01904     ier_merge $old
01905 
01906     if {!$ok} {icl_rewind $pos ; return}
01907 
01908     set old [ier_get]
01909     matchSymbol_SPACE    ; # (n SPACE)
01910     ier_merge $old
01911 
01912     if {!$ok} {icl_rewind $pos ; return}
01913 
01914     return
01915 }
01916 
01917 ret  ::page::parse::peg::matchSymbol_EOF () {
01918     # EOF = (! (dot))
01919 
01920     if {[inc_restore EOF]} return
01921 
01922     set pos [icl_get]
01923 
01924     ebang84
01925 
01926     isv_clear
01927     inc_save               EOF $pos
01928     ier_nonterminal        "Expected EOF" $pos
01929     return
01930 }
01931 
01932 ret  ::page::parse::peg::ebang84 () {
01933     set pos [icl_get]
01934 
01935     ict_advance "Expected any character (got EOF)"
01936 
01937     icl_rewind $pos
01938     iok_negate
01939     return
01940 }
01941 
01942 ret  ::page::parse::peg::matchSymbol_EOL () {
01943     # EOL = (/ (x (t \n)
01944     #             (t \r))
01945     #          (t \n)
01946     #          (t \r))
01947 
01948     if {[inc_restore EOL]} return
01949 
01950     set pos [icl_get]
01951 
01952     ebra83                ; # (/ (x (t \n)
01953                             #       (t \r))
01954                             #    (t \n)
01955                             #    (t \r))
01956 
01957     isv_clear
01958     inc_save               EOL $pos
01959     ier_nonterminal        "Expected EOL" $pos
01960     return
01961 }
01962 
01963 ret  ::page::parse::peg::ebra83 () {
01964 
01965     # (/ (x (t \n)
01966     #       (t \r))
01967     #    (t \n)
01968     #    (t \r))
01969 
01970     variable ok
01971 
01972     set pos [icl_get]
01973 
01974     set old [ier_get]
01975     eseq82                ; # (x (t \n)
01976                             #    (t \r))
01977     ier_merge $old
01978 
01979     if {$ok} return
01980     icl_rewind   $pos
01981 
01982     set old [ier_get]
01983     ict_advance "Expected \\n (got EOF)"
01984     if {$ok} {ict_match_token \n "Expected \\n"}
01985     ier_merge $old
01986 
01987     if {$ok} return
01988     icl_rewind   $pos
01989 
01990     set old [ier_get]
01991     ict_advance "Expected \\r (got EOF)"
01992     if {$ok} {ict_match_token \r "Expected \\r"}
01993     ier_merge $old
01994 
01995     if {$ok} return
01996     icl_rewind   $pos
01997 
01998     return
01999 }
02000 
02001 ret  ::page::parse::peg::eseq82 () {
02002 
02003     # (x (t \n)
02004     #    (t \r))
02005 
02006     variable ok
02007 
02008     set pos [icl_get]
02009 
02010     set old [ier_get]
02011     ict_advance "Expected \\n (got EOF)"
02012     if {$ok} {ict_match_token \n "Expected \\n"}
02013     ier_merge $old
02014 
02015     if {!$ok} {icl_rewind $pos ; return}
02016 
02017     set old [ier_get]
02018     ict_advance "Expected \\r (got EOF)"
02019     if {$ok} {ict_match_token \r "Expected \\r"}
02020     ier_merge $old
02021 
02022     if {!$ok} {icl_rewind $pos ; return}
02023 
02024     return
02025 }
02026 
02027 ret  ::page::parse::peg::matchSymbol_Expression () {
02028     # Expression = (x (n Sequence)
02029     #                 (* (x (n SLASH)
02030     #                       (n Sequence))))
02031 
02032     variable ok
02033     if {[inc_restore Expression]} {
02034         if {$ok} ias_push
02035         return
02036     }
02037 
02038     set pos [icl_get]
02039     set mrk [ias_mark]
02040 
02041     eseq10                ; # (x (n Sequence)
02042                             #    (* (x (n SLASH)
02043                             #          (n Sequence))))
02044 
02045     isv_nonterminal_reduce Expression $pos $mrk
02046     inc_save               Expression $pos
02047     ias_pop2mark             $mrk
02048     if {$ok} ias_push
02049     ier_nonterminal        "Expected Expression" $pos
02050     return
02051 }
02052 
02053 ret  ::page::parse::peg::eseq10 () {
02054 
02055     # (x (n Sequence)
02056     #    (* (x (n SLASH)
02057     #          (n Sequence))))
02058 
02059     variable ok
02060 
02061     set pos [icl_get]
02062 
02063     set mrk [ias_mark]
02064 
02065     set old [ier_get]
02066     matchSymbol_Sequence    ; # (n Sequence)
02067     ier_merge $old
02068 
02069     if {!$ok} {
02070         ias_pop2mark $mrk
02071         icl_rewind   $pos
02072         return
02073     }
02074 
02075     set old [ier_get]
02076     ekleene9                ; # (* (x (n SLASH)
02077                               #       (n Sequence)))
02078     ier_merge $old
02079 
02080     if {!$ok} {
02081         ias_pop2mark $mrk
02082         icl_rewind   $pos
02083         return
02084     }
02085 
02086     return
02087 }
02088 
02089 ret  ::page::parse::peg::ekleene9 () {
02090 
02091     # (* (x (n SLASH)
02092     #       (n Sequence)))
02093 
02094     variable ok
02095 
02096     while {1} {
02097         set pos [icl_get]
02098 
02099         set old [ier_get]
02100         eseq8                ; # (x (n SLASH)
02101                                #    (n Sequence))
02102         ier_merge $old
02103 
02104         if {$ok} continue
02105         break
02106     }
02107 
02108     icl_rewind $pos
02109     iok_ok
02110     return
02111 }
02112 
02113 ret  ::page::parse::peg::eseq8 () {
02114 
02115     # (x (n SLASH)
02116     #    (n Sequence))
02117 
02118     variable ok
02119 
02120     set pos [icl_get]
02121 
02122     set old [ier_get]
02123     matchSymbol_SLASH    ; # (n SLASH)
02124     ier_merge $old
02125 
02126     if {!$ok} {icl_rewind $pos ; return}
02127 
02128     set mrk [ias_mark]
02129 
02130     set old [ier_get]
02131     matchSymbol_Sequence    ; # (n Sequence)
02132     ier_merge $old
02133 
02134     if {!$ok} {
02135         ias_pop2mark $mrk
02136         icl_rewind   $pos
02137         return
02138     }
02139 
02140     return
02141 }
02142 
02143 ret  ::page::parse::peg::matchSymbol_Final () {
02144     # Final = (x (n END)
02145     #            (n SEMICOLON)
02146     #            (n SPACE))
02147 
02148     if {[inc_restore Final]} return
02149 
02150     set pos [icl_get]
02151 
02152     eseq36                ; # (x (n END)
02153                             #    (n SEMICOLON)
02154                             #    (n SPACE))
02155 
02156     isv_clear
02157     inc_save               Final $pos
02158     ier_nonterminal        "Expected Final" $pos
02159     return
02160 }
02161 
02162 ret  ::page::parse::peg::eseq36 () {
02163 
02164     # (x (n END)
02165     #    (n SEMICOLON)
02166     #    (n SPACE))
02167 
02168     variable ok
02169 
02170     set pos [icl_get]
02171 
02172     set old [ier_get]
02173     matchSymbol_END    ; # (n END)
02174     ier_merge $old
02175 
02176     if {!$ok} {icl_rewind $pos ; return}
02177 
02178     set old [ier_get]
02179     matchSymbol_SEMICOLON    ; # (n SEMICOLON)
02180     ier_merge $old
02181 
02182     if {!$ok} {icl_rewind $pos ; return}
02183 
02184     set old [ier_get]
02185     matchSymbol_SPACE    ; # (n SPACE)
02186     ier_merge $old
02187 
02188     if {!$ok} {icl_rewind $pos ; return}
02189 
02190     return
02191 }
02192 
02193 ret  ::page::parse::peg::matchSymbol_Grammar () {
02194     # Grammar = (x (n SPACE)
02195     #              (n Header)
02196     #              (+ (n Definition))
02197     #              (n Final)
02198     #              (n EOF))
02199 
02200     variable ok
02201     if {[inc_restore Grammar]} {
02202         if {$ok} ias_push
02203         return
02204     }
02205 
02206     set pos [icl_get]
02207     set mrk [ias_mark]
02208 
02209     eseq2                ; # (x (n SPACE)
02210                            #    (n Header)
02211                            #    (+ (n Definition))
02212                            #    (n Final)
02213                            #    (n EOF))
02214 
02215     isv_nonterminal_reduce Grammar $pos $mrk
02216     inc_save               Grammar $pos
02217     ias_pop2mark             $mrk
02218     if {$ok} ias_push
02219     ier_nonterminal        "Expected Grammar" $pos
02220     return
02221 }
02222 
02223 ret  ::page::parse::peg::eseq2 () {
02224 
02225     # (x (n SPACE)
02226     #    (n Header)
02227     #    (+ (n Definition))
02228     #    (n Final)
02229     #    (n EOF))
02230 
02231     variable ok
02232 
02233     set pos [icl_get]
02234 
02235     set old [ier_get]
02236     matchSymbol_SPACE    ; # (n SPACE)
02237     ier_merge $old
02238 
02239     if {!$ok} {icl_rewind $pos ; return}
02240 
02241     set mrk [ias_mark]
02242 
02243     set old [ier_get]
02244     matchSymbol_Header    ; # (n Header)
02245     ier_merge $old
02246 
02247     if {!$ok} {
02248         ias_pop2mark $mrk
02249         icl_rewind   $pos
02250         return
02251     }
02252 
02253     set old [ier_get]
02254     epkleene1                ; # (+ (n Definition))
02255     ier_merge $old
02256 
02257     if {!$ok} {
02258         ias_pop2mark $mrk
02259         icl_rewind   $pos
02260         return
02261     }
02262 
02263     set old [ier_get]
02264     matchSymbol_Final    ; # (n Final)
02265     ier_merge $old
02266 
02267     if {!$ok} {
02268         ias_pop2mark $mrk
02269         icl_rewind   $pos
02270         return
02271     }
02272 
02273     set old [ier_get]
02274     matchSymbol_EOF    ; # (n EOF)
02275     ier_merge $old
02276 
02277     if {!$ok} {
02278         ias_pop2mark $mrk
02279         icl_rewind   $pos
02280         return
02281     }
02282 
02283     return
02284 }
02285 
02286 ret  ::page::parse::peg::epkleene1 () {
02287 
02288     # (+ (n Definition))
02289 
02290     variable ok
02291 
02292     set pos [icl_get]
02293 
02294     set old [ier_get]
02295     matchSymbol_Definition    ; # (n Definition)
02296     ier_merge $old
02297 
02298     if {!$ok} {
02299         icl_rewind $pos
02300         return
02301     }
02302 
02303     while {1} {
02304         set pos [icl_get]
02305 
02306         set old [ier_get]
02307         matchSymbol_Definition    ; # (n Definition)
02308         ier_merge $old
02309 
02310         if {$ok} continue
02311         break
02312     }
02313 
02314     icl_rewind $pos
02315     iok_ok
02316     return
02317 }
02318 
02319 ret  ::page::parse::peg::matchSymbol_Header () {
02320     # Header = (x (n PEG)
02321     #             (n Identifier)
02322     #             (n StartExpr))
02323 
02324     variable ok
02325     if {[inc_restore Header]} {
02326         if {$ok} ias_push
02327         return
02328     }
02329 
02330     set pos [icl_get]
02331     set mrk [ias_mark]
02332 
02333     eseq3                ; # (x (n PEG)
02334                            #    (n Identifier)
02335                            #    (n StartExpr))
02336 
02337     isv_nonterminal_reduce Header $pos $mrk
02338     inc_save               Header $pos
02339     ias_pop2mark             $mrk
02340     if {$ok} ias_push
02341     ier_nonterminal        "Expected Header" $pos
02342     return
02343 }
02344 
02345 ret  ::page::parse::peg::eseq3 () {
02346 
02347     # (x (n PEG)
02348     #    (n Identifier)
02349     #    (n StartExpr))
02350 
02351     variable ok
02352 
02353     set pos [icl_get]
02354 
02355     set old [ier_get]
02356     matchSymbol_PEG    ; # (n PEG)
02357     ier_merge $old
02358 
02359     if {!$ok} {icl_rewind $pos ; return}
02360 
02361     set mrk [ias_mark]
02362 
02363     set old [ier_get]
02364     matchSymbol_Identifier    ; # (n Identifier)
02365     ier_merge $old
02366 
02367     if {!$ok} {
02368         ias_pop2mark $mrk
02369         icl_rewind   $pos
02370         return
02371     }
02372 
02373     set old [ier_get]
02374     matchSymbol_StartExpr    ; # (n StartExpr)
02375     ier_merge $old
02376 
02377     if {!$ok} {
02378         ias_pop2mark $mrk
02379         icl_rewind   $pos
02380         return
02381     }
02382 
02383     return
02384 }
02385 
02386 ret  ::page::parse::peg::matchSymbol_HexDigit () {
02387     # HexDigit = (/ (.. 0 9)
02388     #               (.. a f)
02389     #               (.. A F))
02390 
02391     if {[inc_restore HexDigit]} return
02392 
02393     set pos [icl_get]
02394 
02395     ebra56                ; # (/ (.. 0 9)
02396                             #    (.. a f)
02397                             #    (.. A F))
02398 
02399     isv_clear
02400     inc_save               HexDigit $pos
02401     ier_nonterminal        "Expected HexDigit" $pos
02402     return
02403 }
02404 
02405 ret  ::page::parse::peg::ebra56 () {
02406 
02407     # (/ (.. 0 9)
02408     #    (.. a f)
02409     #    (.. A F))
02410 
02411     variable ok
02412 
02413     set pos [icl_get]
02414 
02415     set old [ier_get]
02416     ict_advance "Expected \[0..9\] (got EOF)"
02417     if {$ok} {ict_match_tokrange 0 9 "Expected \[0..9\]"}
02418     ier_merge $old
02419 
02420     if {$ok} return
02421     icl_rewind   $pos
02422 
02423     set old [ier_get]
02424     ict_advance "Expected \[a..f\] (got EOF)"
02425     if {$ok} {ict_match_tokrange a f "Expected \[a..f\]"}
02426     ier_merge $old
02427 
02428     if {$ok} return
02429     icl_rewind   $pos
02430 
02431     set old [ier_get]
02432     ict_advance "Expected \[A..F\] (got EOF)"
02433     if {$ok} {ict_match_tokrange A F "Expected \[A..F\]"}
02434     ier_merge $old
02435 
02436     if {$ok} return
02437     icl_rewind   $pos
02438 
02439     return
02440 }
02441 
02442 ret  ::page::parse::peg::matchSymbol_Ident () {
02443     # Ident = (x (/ (t _)
02444     #               (t :)
02445     #               (alpha))
02446     #            (* (/ (t _)
02447     #                  (t :)
02448     #                  (alnum))))
02449 
02450     variable ok
02451     if {[inc_restore Ident]} {
02452         if {$ok} ias_push
02453         return
02454     }
02455 
02456     set pos [icl_get]
02457 
02458     eseq41                ; # (x (/ (t _)
02459                             #       (t :)
02460                             #       (alpha))
02461                             #    (* (/ (t _)
02462                             #          (t :)
02463                             #          (alnum))))
02464 
02465     isv_nonterminal_range  Ident $pos
02466     inc_save               Ident $pos
02467     if {$ok} ias_push
02468     ier_nonterminal        "Expected Ident" $pos
02469     return
02470 }
02471 
02472 ret  ::page::parse::peg::eseq41 () {
02473 
02474     # (x (/ (t _)
02475     #       (t :)
02476     #       (alpha))
02477     #    (* (/ (t _)
02478     #          (t :)
02479     #          (alnum))))
02480 
02481     variable ok
02482 
02483     set pos [icl_get]
02484 
02485     set old [ier_get]
02486     ebra38                ; # (/ (t _)
02487                             #    (t :)
02488                             #    (alpha))
02489     ier_merge $old
02490 
02491     if {!$ok} {icl_rewind $pos ; return}
02492 
02493     set old [ier_get]
02494     ekleene40                ; # (* (/ (t _)
02495                                #       (t :)
02496                                #       (alnum)))
02497     ier_merge $old
02498 
02499     if {!$ok} {icl_rewind $pos ; return}
02500 
02501     return
02502 }
02503 
02504 ret  ::page::parse::peg::ebra38 () {
02505 
02506     # (/ (t _)
02507     #    (t :)
02508     #    (alpha))
02509 
02510     variable ok
02511 
02512     set pos [icl_get]
02513 
02514     set old [ier_get]
02515     ict_advance "Expected _ (got EOF)"
02516     if {$ok} {ict_match_token _ "Expected _"}
02517     ier_merge $old
02518 
02519     if {$ok} return
02520     icl_rewind   $pos
02521 
02522     set old [ier_get]
02523     ict_advance "Expected : (got EOF)"
02524     if {$ok} {ict_match_token : "Expected :"}
02525     ier_merge $old
02526 
02527     if {$ok} return
02528     icl_rewind   $pos
02529 
02530     set old [ier_get]
02531     ict_advance "Expected <alpha> (got EOF)"
02532     if {$ok} {ict_match_tokclass alpha "Expected <alpha>"}
02533     ier_merge $old
02534 
02535     if {$ok} return
02536     icl_rewind   $pos
02537 
02538     return
02539 }
02540 
02541 ret  ::page::parse::peg::ekleene40 () {
02542 
02543     # (* (/ (t _)
02544     #       (t :)
02545     #       (alnum)))
02546 
02547     variable ok
02548 
02549     while {1} {
02550         set pos [icl_get]
02551 
02552         set old [ier_get]
02553         ebra39                ; # (/ (t _)
02554                                 #    (t :)
02555                                 #    (alnum))
02556         ier_merge $old
02557 
02558         if {$ok} continue
02559         break
02560     }
02561 
02562     icl_rewind $pos
02563     iok_ok
02564     return
02565 }
02566 
02567 ret  ::page::parse::peg::ebra39 () {
02568 
02569     # (/ (t _)
02570     #    (t :)
02571     #    (alnum))
02572 
02573     variable ok
02574 
02575     set pos [icl_get]
02576 
02577     set old [ier_get]
02578     ict_advance "Expected _ (got EOF)"
02579     if {$ok} {ict_match_token _ "Expected _"}
02580     ier_merge $old
02581 
02582     if {$ok} return
02583     icl_rewind   $pos
02584 
02585     set old [ier_get]
02586     ict_advance "Expected : (got EOF)"
02587     if {$ok} {ict_match_token : "Expected :"}
02588     ier_merge $old
02589 
02590     if {$ok} return
02591     icl_rewind   $pos
02592 
02593     set old [ier_get]
02594     ict_advance "Expected <alnum> (got EOF)"
02595     if {$ok} {ict_match_tokclass alnum "Expected <alnum>"}
02596     ier_merge $old
02597 
02598     if {$ok} return
02599     icl_rewind   $pos
02600 
02601     return
02602 }
02603 
02604 ret  ::page::parse::peg::matchSymbol_Identifier () {
02605     # Identifier = (x (n Ident)
02606     #                 (n SPACE))
02607 
02608     variable ok
02609     if {[inc_restore Identifier]} {
02610         if {$ok} ias_push
02611         return
02612     }
02613 
02614     set pos [icl_get]
02615     set mrk [ias_mark]
02616 
02617     eseq37                ; # (x (n Ident)
02618                             #    (n SPACE))
02619 
02620     isv_nonterminal_reduce Identifier $pos $mrk
02621     inc_save               Identifier $pos
02622     ias_pop2mark             $mrk
02623     if {$ok} ias_push
02624     ier_nonterminal        "Expected Identifier" $pos
02625     return
02626 }
02627 
02628 ret  ::page::parse::peg::eseq37 () {
02629 
02630     # (x (n Ident)
02631     #    (n SPACE))
02632 
02633     variable ok
02634 
02635     set pos [icl_get]
02636 
02637     set mrk [ias_mark]
02638 
02639     set old [ier_get]
02640     matchSymbol_Ident    ; # (n Ident)
02641     ier_merge $old
02642 
02643     if {!$ok} {
02644         ias_pop2mark $mrk
02645         icl_rewind   $pos
02646         return
02647     }
02648 
02649     set old [ier_get]
02650     matchSymbol_SPACE    ; # (n SPACE)
02651     ier_merge $old
02652 
02653     if {!$ok} {
02654         ias_pop2mark $mrk
02655         icl_rewind   $pos
02656         return
02657     }
02658 
02659     return
02660 }
02661 
02662 ret  ::page::parse::peg::matchSymbol_IS () {
02663     # IS = (x (t <)
02664     #         (t -)
02665     #         (n SPACE))
02666 
02667     if {[inc_restore IS]} return
02668 
02669     set pos [icl_get]
02670 
02671     eseq58                ; # (x (t <)
02672                             #    (t -)
02673                             #    (n SPACE))
02674 
02675     isv_clear
02676     inc_save               IS $pos
02677     ier_nonterminal        "Expected IS" $pos
02678     return
02679 }
02680 
02681 ret  ::page::parse::peg::eseq58 () {
02682 
02683     # (x (t <)
02684     #    (t -)
02685     #    (n SPACE))
02686 
02687     variable ok
02688 
02689     set pos [icl_get]
02690 
02691     set old [ier_get]
02692     ict_advance "Expected < (got EOF)"
02693     if {$ok} {ict_match_token < "Expected <"}
02694     ier_merge $old
02695 
02696     if {!$ok} {icl_rewind $pos ; return}
02697 
02698     set old [ier_get]
02699     ict_advance "Expected - (got EOF)"
02700     if {$ok} {ict_match_token - "Expected -"}
02701     ier_merge $old
02702 
02703     if {!$ok} {icl_rewind $pos ; return}
02704 
02705     set old [ier_get]
02706     matchSymbol_SPACE    ; # (n SPACE)
02707     ier_merge $old
02708 
02709     if {!$ok} {icl_rewind $pos ; return}
02710 
02711     return
02712 }
02713 
02714 ret  ::page::parse::peg::matchSymbol_LEAF () {
02715     # LEAF = (x (t l)
02716     #           (t e)
02717     #           (t a)
02718     #           (t f)
02719     #           (n SPACE))
02720 
02721     variable ok
02722     if {[inc_restore LEAF]} {
02723         if {$ok} ias_push
02724         return
02725     }
02726 
02727     set pos [icl_get]
02728 
02729     eseq60                ; # (x (t l)
02730                             #    (t e)
02731                             #    (t a)
02732                             #    (t f)
02733                             #    (n SPACE))
02734 
02735     isv_nonterminal_leaf   LEAF $pos
02736     inc_save               LEAF $pos
02737     if {$ok} ias_push
02738     ier_nonterminal        "Expected LEAF" $pos
02739     return
02740 }
02741 
02742 ret  ::page::parse::peg::eseq60 () {
02743 
02744     # (x (t l)
02745     #    (t e)
02746     #    (t a)
02747     #    (t f)
02748     #    (n SPACE))
02749 
02750     variable ok
02751 
02752     set pos [icl_get]
02753 
02754     set old [ier_get]
02755     ict_advance "Expected l (got EOF)"
02756     if {$ok} {ict_match_token l "Expected l"}
02757     ier_merge $old
02758 
02759     if {!$ok} {icl_rewind $pos ; return}
02760 
02761     set old [ier_get]
02762     ict_advance "Expected e (got EOF)"
02763     if {$ok} {ict_match_token e "Expected e"}
02764     ier_merge $old
02765 
02766     if {!$ok} {icl_rewind $pos ; return}
02767 
02768     set old [ier_get]
02769     ict_advance "Expected a (got EOF)"
02770     if {$ok} {ict_match_token a "Expected a"}
02771     ier_merge $old
02772 
02773     if {!$ok} {icl_rewind $pos ; return}
02774 
02775     set old [ier_get]
02776     ict_advance "Expected f (got EOF)"
02777     if {$ok} {ict_match_token f "Expected f"}
02778     ier_merge $old
02779 
02780     if {!$ok} {icl_rewind $pos ; return}
02781 
02782     set old [ier_get]
02783     matchSymbol_SPACE    ; # (n SPACE)
02784     ier_merge $old
02785 
02786     if {!$ok} {icl_rewind $pos ; return}
02787 
02788     return
02789 }
02790 
02791 ret  ::page::parse::peg::matchSymbol_Literal () {
02792     # Literal = (/ (x (n APOSTROPH)
02793     #                 (* (x (! (n APOSTROPH))
02794     #                       (n Char)))
02795     #                 (n APOSTROPH)
02796     #                 (n SPACE))
02797     #              (x (n DAPOSTROPH)
02798     #                 (* (x (! (n DAPOSTROPH))
02799     #                       (n Char)))
02800     #                 (n DAPOSTROPH)
02801     #                 (n SPACE)))
02802 
02803     variable ok
02804     if {[inc_restore Literal]} {
02805         if {$ok} ias_push
02806         return
02807     }
02808 
02809     set pos [icl_get]
02810     set mrk [ias_mark]
02811 
02812     ebra28                ; # (/ (x (n APOSTROPH)
02813                             #       (* (x (! (n APOSTROPH))
02814                             #             (n Char)))
02815                             #       (n APOSTROPH)
02816                             #       (n SPACE))
02817                             #    (x (n DAPOSTROPH)
02818                             #       (* (x (! (n DAPOSTROPH))
02819                             #             (n Char)))
02820                             #       (n DAPOSTROPH)
02821                             #       (n SPACE)))
02822 
02823     isv_nonterminal_reduce Literal $pos $mrk
02824     inc_save               Literal $pos
02825     ias_pop2mark             $mrk
02826     if {$ok} ias_push
02827     ier_nonterminal        "Expected Literal" $pos
02828     return
02829 }
02830 
02831 ret  ::page::parse::peg::ebra28 () {
02832 
02833     # (/ (x (n APOSTROPH)
02834     #       (* (x (! (n APOSTROPH))
02835     #             (n Char)))
02836     #       (n APOSTROPH)
02837     #       (n SPACE))
02838     #    (x (n DAPOSTROPH)
02839     #       (* (x (! (n DAPOSTROPH))
02840     #             (n Char)))
02841     #       (n DAPOSTROPH)
02842     #       (n SPACE)))
02843 
02844     variable ok
02845 
02846     set pos [icl_get]
02847 
02848     set mrk [ias_mark]
02849     set old [ier_get]
02850     eseq23                ; # (x (n APOSTROPH)
02851                             #    (* (x (! (n APOSTROPH))
02852                             #          (n Char)))
02853                             #    (n APOSTROPH)
02854                             #    (n SPACE))
02855     ier_merge $old
02856 
02857     if {$ok} return
02858     ias_pop2mark $mrk
02859     icl_rewind   $pos
02860 
02861     set mrk [ias_mark]
02862     set old [ier_get]
02863     eseq27                ; # (x (n DAPOSTROPH)
02864                             #    (* (x (! (n DAPOSTROPH))
02865                             #          (n Char)))
02866                             #    (n DAPOSTROPH)
02867                             #    (n SPACE))
02868     ier_merge $old
02869 
02870     if {$ok} return
02871     ias_pop2mark $mrk
02872     icl_rewind   $pos
02873 
02874     return
02875 }
02876 
02877 ret  ::page::parse::peg::eseq23 () {
02878 
02879     # (x (n APOSTROPH)
02880     #    (* (x (! (n APOSTROPH))
02881     #          (n Char)))
02882     #    (n APOSTROPH)
02883     #    (n SPACE))
02884 
02885     variable ok
02886 
02887     set pos [icl_get]
02888 
02889     set old [ier_get]
02890     matchSymbol_APOSTROPH    ; # (n APOSTROPH)
02891     ier_merge $old
02892 
02893     if {!$ok} {icl_rewind $pos ; return}
02894 
02895     set mrk [ias_mark]
02896 
02897     set old [ier_get]
02898     ekleene22                ; # (* (x (! (n APOSTROPH))
02899                                #       (n Char)))
02900     ier_merge $old
02901 
02902     if {!$ok} {
02903         ias_pop2mark $mrk
02904         icl_rewind   $pos
02905         return
02906     }
02907 
02908     set old [ier_get]
02909     matchSymbol_APOSTROPH    ; # (n APOSTROPH)
02910     ier_merge $old
02911 
02912     if {!$ok} {
02913         ias_pop2mark $mrk
02914         icl_rewind   $pos
02915         return
02916     }
02917 
02918     set old [ier_get]
02919     matchSymbol_SPACE    ; # (n SPACE)
02920     ier_merge $old
02921 
02922     if {!$ok} {
02923         ias_pop2mark $mrk
02924         icl_rewind   $pos
02925         return
02926     }
02927 
02928     return
02929 }
02930 
02931 ret  ::page::parse::peg::ekleene22 () {
02932 
02933     # (* (x (! (n APOSTROPH))
02934     #       (n Char)))
02935 
02936     variable ok
02937 
02938     while {1} {
02939         set pos [icl_get]
02940 
02941         set old [ier_get]
02942         eseq21                ; # (x (! (n APOSTROPH))
02943                                 #    (n Char))
02944         ier_merge $old
02945 
02946         if {$ok} continue
02947         break
02948     }
02949 
02950     icl_rewind $pos
02951     iok_ok
02952     return
02953 }
02954 
02955 ret  ::page::parse::peg::eseq21 () {
02956 
02957     # (x (! (n APOSTROPH))
02958     #    (n Char))
02959 
02960     variable ok
02961 
02962     set pos [icl_get]
02963 
02964     set old [ier_get]
02965     ebang20
02966     ier_merge $old
02967 
02968     if {!$ok} {icl_rewind $pos ; return}
02969 
02970     set mrk [ias_mark]
02971 
02972     set old [ier_get]
02973     matchSymbol_Char    ; # (n Char)
02974     ier_merge $old
02975 
02976     if {!$ok} {
02977         ias_pop2mark $mrk
02978         icl_rewind   $pos
02979         return
02980     }
02981 
02982     return
02983 }
02984 
02985 ret  ::page::parse::peg::ebang20 () {
02986     set pos [icl_get]
02987 
02988     matchSymbol_APOSTROPH    ; # (n APOSTROPH)
02989 
02990     icl_rewind $pos
02991     iok_negate
02992     return
02993 }
02994 
02995 ret  ::page::parse::peg::eseq27 () {
02996 
02997     # (x (n DAPOSTROPH)
02998     #    (* (x (! (n DAPOSTROPH))
02999     #          (n Char)))
03000     #    (n DAPOSTROPH)
03001     #    (n SPACE))
03002 
03003     variable ok
03004 
03005     set pos [icl_get]
03006 
03007     set old [ier_get]
03008     matchSymbol_DAPOSTROPH    ; # (n DAPOSTROPH)
03009     ier_merge $old
03010 
03011     if {!$ok} {icl_rewind $pos ; return}
03012 
03013     set mrk [ias_mark]
03014 
03015     set old [ier_get]
03016     ekleene26                ; # (* (x (! (n DAPOSTROPH))
03017                                #       (n Char)))
03018     ier_merge $old
03019 
03020     if {!$ok} {
03021         ias_pop2mark $mrk
03022         icl_rewind   $pos
03023         return
03024     }
03025 
03026     set old [ier_get]
03027     matchSymbol_DAPOSTROPH    ; # (n DAPOSTROPH)
03028     ier_merge $old
03029 
03030     if {!$ok} {
03031         ias_pop2mark $mrk
03032         icl_rewind   $pos
03033         return
03034     }
03035 
03036     set old [ier_get]
03037     matchSymbol_SPACE    ; # (n SPACE)
03038     ier_merge $old
03039 
03040     if {!$ok} {
03041         ias_pop2mark $mrk
03042         icl_rewind   $pos
03043         return
03044     }
03045 
03046     return
03047 }
03048 
03049 ret  ::page::parse::peg::ekleene26 () {
03050 
03051     # (* (x (! (n DAPOSTROPH))
03052     #       (n Char)))
03053 
03054     variable ok
03055 
03056     while {1} {
03057         set pos [icl_get]
03058 
03059         set old [ier_get]
03060         eseq25                ; # (x (! (n DAPOSTROPH))
03061                                 #    (n Char))
03062         ier_merge $old
03063 
03064         if {$ok} continue
03065         break
03066     }
03067 
03068     icl_rewind $pos
03069     iok_ok
03070     return
03071 }
03072 
03073 ret  ::page::parse::peg::eseq25 () {
03074 
03075     # (x (! (n DAPOSTROPH))
03076     #    (n Char))
03077 
03078     variable ok
03079 
03080     set pos [icl_get]
03081 
03082     set old [ier_get]
03083     ebang24
03084     ier_merge $old
03085 
03086     if {!$ok} {icl_rewind $pos ; return}
03087 
03088     set mrk [ias_mark]
03089 
03090     set old [ier_get]
03091     matchSymbol_Char    ; # (n Char)
03092     ier_merge $old
03093 
03094     if {!$ok} {
03095         ias_pop2mark $mrk
03096         icl_rewind   $pos
03097         return
03098     }
03099 
03100     return
03101 }
03102 
03103 ret  ::page::parse::peg::ebang24 () {
03104     set pos [icl_get]
03105 
03106     matchSymbol_DAPOSTROPH    ; # (n DAPOSTROPH)
03107 
03108     icl_rewind $pos
03109     iok_negate
03110     return
03111 }
03112 
03113 ret  ::page::parse::peg::matchSymbol_MATCH () {
03114     # MATCH = (x (t m)
03115     #            (t a)
03116     #            (t t)
03117     #            (t c)
03118     #            (t h)
03119     #            (n SPACE))
03120 
03121     variable ok
03122     if {[inc_restore MATCH]} {
03123         if {$ok} ias_push
03124         return
03125     }
03126 
03127     set pos [icl_get]
03128 
03129     eseq61                ; # (x (t m)
03130                             #    (t a)
03131                             #    (t t)
03132                             #    (t c)
03133                             #    (t h)
03134                             #    (n SPACE))
03135 
03136     isv_nonterminal_leaf   MATCH $pos
03137     inc_save               MATCH $pos
03138     if {$ok} ias_push
03139     ier_nonterminal        "Expected MATCH" $pos
03140     return
03141 }
03142 
03143 ret  ::page::parse::peg::eseq61 () {
03144 
03145     # (x (t m)
03146     #    (t a)
03147     #    (t t)
03148     #    (t c)
03149     #    (t h)
03150     #    (n SPACE))
03151 
03152     variable ok
03153 
03154     set pos [icl_get]
03155 
03156     set old [ier_get]
03157     ict_advance "Expected m (got EOF)"
03158     if {$ok} {ict_match_token m "Expected m"}
03159     ier_merge $old
03160 
03161     if {!$ok} {icl_rewind $pos ; return}
03162 
03163     set old [ier_get]
03164     ict_advance "Expected a (got EOF)"
03165     if {$ok} {ict_match_token a "Expected a"}
03166     ier_merge $old
03167 
03168     if {!$ok} {icl_rewind $pos ; return}
03169 
03170     set old [ier_get]
03171     ict_advance "Expected t (got EOF)"
03172     if {$ok} {ict_match_token t "Expected t"}
03173     ier_merge $old
03174 
03175     if {!$ok} {icl_rewind $pos ; return}
03176 
03177     set old [ier_get]
03178     ict_advance "Expected c (got EOF)"
03179     if {$ok} {ict_match_token c "Expected c"}
03180     ier_merge $old
03181 
03182     if {!$ok} {icl_rewind $pos ; return}
03183 
03184     set old [ier_get]
03185     ict_advance "Expected h (got EOF)"
03186     if {$ok} {ict_match_token h "Expected h"}
03187     ier_merge $old
03188 
03189     if {!$ok} {icl_rewind $pos ; return}
03190 
03191     set old [ier_get]
03192     matchSymbol_SPACE    ; # (n SPACE)
03193     ier_merge $old
03194 
03195     if {!$ok} {icl_rewind $pos ; return}
03196 
03197     return
03198 }
03199 
03200 ret  ::page::parse::peg::matchSymbol_NOT () {
03201     # NOT = (x (t !)
03202     #          (n SPACE))
03203 
03204     variable ok
03205     if {[inc_restore NOT]} {
03206         if {$ok} ias_push
03207         return
03208     }
03209 
03210     set pos [icl_get]
03211 
03212     eseq67                ; # (x (t !)
03213                             #    (n SPACE))
03214 
03215     isv_nonterminal_leaf   NOT $pos
03216     inc_save               NOT $pos
03217     if {$ok} ias_push
03218     ier_nonterminal        "Expected NOT" $pos
03219     return
03220 }
03221 
03222 ret  ::page::parse::peg::eseq67 () {
03223 
03224     # (x (t !)
03225     #    (n SPACE))
03226 
03227     variable ok
03228 
03229     set pos [icl_get]
03230 
03231     set old [ier_get]
03232     ict_advance "Expected ! (got EOF)"
03233     if {$ok} {ict_match_token ! "Expected !"}
03234     ier_merge $old
03235 
03236     if {!$ok} {icl_rewind $pos ; return}
03237 
03238     set old [ier_get]
03239     matchSymbol_SPACE    ; # (n SPACE)
03240     ier_merge $old
03241 
03242     if {!$ok} {icl_rewind $pos ; return}
03243 
03244     return
03245 }
03246 
03247 ret  ::page::parse::peg::matchSymbol_OPEN () {
03248     # OPEN = (x (t \()
03249     #           (n SPACE))
03250 
03251     if {[inc_restore OPEN]} return
03252 
03253     set pos [icl_get]
03254 
03255     eseq71                ; # (x (t \()
03256                             #    (n SPACE))
03257 
03258     isv_clear
03259     inc_save               OPEN $pos
03260     ier_nonterminal        "Expected OPEN" $pos
03261     return
03262 }
03263 
03264 ret  ::page::parse::peg::eseq71 () {
03265 
03266     # (x (t \()
03267     #    (n SPACE))
03268 
03269     variable ok
03270 
03271     set pos [icl_get]
03272 
03273     set old [ier_get]
03274     ict_advance "Expected \( (got EOF)"
03275     if {$ok} {ict_match_token \50 "Expected \("}
03276     ier_merge $old
03277 
03278     if {!$ok} {icl_rewind $pos ; return}
03279 
03280     set old [ier_get]
03281     matchSymbol_SPACE    ; # (n SPACE)
03282     ier_merge $old
03283 
03284     if {!$ok} {icl_rewind $pos ; return}
03285 
03286     return
03287 }
03288 
03289 ret  ::page::parse::peg::matchSymbol_OPENB () {
03290     # OPENB = (t [)
03291 
03292     variable ok
03293     if {[inc_restore OPENB]} return
03294 
03295     set pos [icl_get]
03296 
03297     ict_advance "Expected \[ (got EOF)"
03298     if {$ok} {ict_match_token \133 "Expected \["}
03299 
03300     isv_clear
03301     inc_save               OPENB $pos
03302     ier_nonterminal        "Expected OPENB" $pos
03303     return
03304 }
03305 
03306 ret  ::page::parse::peg::matchSymbol_PEG () {
03307     # PEG = (x (t P)
03308     #          (t E)
03309     #          (t G)
03310     #          (n SPACE))
03311 
03312     if {[inc_restore PEG]} return
03313 
03314     set pos [icl_get]
03315 
03316     eseq57                ; # (x (t P)
03317                             #    (t E)
03318                             #    (t G)
03319                             #    (n SPACE))
03320 
03321     isv_clear
03322     inc_save               PEG $pos
03323     ier_nonterminal        "Expected PEG" $pos
03324     return
03325 }
03326 
03327 ret  ::page::parse::peg::eseq57 () {
03328 
03329     # (x (t P)
03330     #    (t E)
03331     #    (t G)
03332     #    (n SPACE))
03333 
03334     variable ok
03335 
03336     set pos [icl_get]
03337 
03338     set old [ier_get]
03339     ict_advance "Expected P (got EOF)"
03340     if {$ok} {ict_match_token P "Expected P"}
03341     ier_merge $old
03342 
03343     if {!$ok} {icl_rewind $pos ; return}
03344 
03345     set old [ier_get]
03346     ict_advance "Expected E (got EOF)"
03347     if {$ok} {ict_match_token E "Expected E"}
03348     ier_merge $old
03349 
03350     if {!$ok} {icl_rewind $pos ; return}
03351 
03352     set old [ier_get]
03353     ict_advance "Expected G (got EOF)"
03354     if {$ok} {ict_match_token G "Expected G"}
03355     ier_merge $old
03356 
03357     if {!$ok} {icl_rewind $pos ; return}
03358 
03359     set old [ier_get]
03360     matchSymbol_SPACE    ; # (n SPACE)
03361     ier_merge $old
03362 
03363     if {!$ok} {icl_rewind $pos ; return}
03364 
03365     return
03366 }
03367 
03368 ret  ::page::parse::peg::matchSymbol_PLUS () {
03369     # PLUS = (x (t +)
03370     #           (n SPACE))
03371 
03372     variable ok
03373     if {[inc_restore PLUS]} {
03374         if {$ok} ias_push
03375         return
03376     }
03377 
03378     set pos [icl_get]
03379 
03380     eseq70                ; # (x (t +)
03381                             #    (n SPACE))
03382 
03383     isv_nonterminal_leaf   PLUS $pos
03384     inc_save               PLUS $pos
03385     if {$ok} ias_push
03386     ier_nonterminal        "Expected PLUS" $pos
03387     return
03388 }
03389 
03390 ret  ::page::parse::peg::eseq70 () {
03391 
03392     # (x (t +)
03393     #    (n SPACE))
03394 
03395     variable ok
03396 
03397     set pos [icl_get]
03398 
03399     set old [ier_get]
03400     ict_advance "Expected + (got EOF)"
03401     if {$ok} {ict_match_token + "Expected +"}
03402     ier_merge $old
03403 
03404     if {!$ok} {icl_rewind $pos ; return}
03405 
03406     set old [ier_get]
03407     matchSymbol_SPACE    ; # (n SPACE)
03408     ier_merge $old
03409 
03410     if {!$ok} {icl_rewind $pos ; return}
03411 
03412     return
03413 }
03414 
03415 ret  ::page::parse::peg::matchSymbol_Prefix () {
03416     # Prefix = (x (? (/ (n AND)
03417     #                   (n NOT)))
03418     #             (n Suffix))
03419 
03420     variable ok
03421     if {[inc_restore Prefix]} {
03422         if {$ok} ias_push
03423         return
03424     }
03425 
03426     set pos [icl_get]
03427     set mrk [ias_mark]
03428 
03429     eseq14                ; # (x (? (/ (n AND)
03430                             #          (n NOT)))
03431                             #    (n Suffix))
03432 
03433     isv_nonterminal_reduce Prefix $pos $mrk
03434     inc_save               Prefix $pos
03435     ias_pop2mark             $mrk
03436     if {$ok} ias_push
03437     ier_nonterminal        "Expected Prefix" $pos
03438     return
03439 }
03440 
03441 ret  ::page::parse::peg::eseq14 () {
03442 
03443     # (x (? (/ (n AND)
03444     #          (n NOT)))
03445     #    (n Suffix))
03446 
03447     variable ok
03448 
03449     set pos [icl_get]
03450 
03451     set mrk [ias_mark]
03452 
03453     set old [ier_get]
03454     eopt13                ; # (? (/ (n AND)
03455                             #       (n NOT)))
03456     ier_merge $old
03457 
03458     if {!$ok} {
03459         ias_pop2mark $mrk
03460         icl_rewind   $pos
03461         return
03462     }
03463 
03464     set old [ier_get]
03465     matchSymbol_Suffix    ; # (n Suffix)
03466     ier_merge $old
03467 
03468     if {!$ok} {
03469         ias_pop2mark $mrk
03470         icl_rewind   $pos
03471         return
03472     }
03473 
03474     return
03475 }
03476 
03477 ret  ::page::parse::peg::eopt13 () {
03478 
03479     # (? (/ (n AND)
03480     #       (n NOT)))
03481 
03482     variable ok
03483 
03484     set pos [icl_get]
03485 
03486     set old [ier_get]
03487     ebra12                ; # (/ (n AND)
03488                             #    (n NOT))
03489     ier_merge $old
03490 
03491     if {$ok} return
03492     icl_rewind $pos
03493     iok_ok
03494     return
03495 }
03496 
03497 ret  ::page::parse::peg::ebra12 () {
03498 
03499     # (/ (n AND)
03500     #    (n NOT))
03501 
03502     variable ok
03503 
03504     set pos [icl_get]
03505 
03506     set mrk [ias_mark]
03507     set old [ier_get]
03508     matchSymbol_AND    ; # (n AND)
03509     ier_merge $old
03510 
03511     if {$ok} return
03512     ias_pop2mark $mrk
03513     icl_rewind   $pos
03514 
03515     set mrk [ias_mark]
03516     set old [ier_get]
03517     matchSymbol_NOT    ; # (n NOT)
03518     ier_merge $old
03519 
03520     if {$ok} return
03521     ias_pop2mark $mrk
03522     icl_rewind   $pos
03523 
03524     return
03525 }
03526 
03527 ret  ::page::parse::peg::matchSymbol_Primary () {
03528     # Primary = (/ (n ALNUM)
03529     #              (n ALPHA)
03530     #              (n Identifier)
03531     #              (x (n OPEN)
03532     #                 (n Expression)
03533     #                 (n CLOSE))
03534     #              (n Literal)
03535     #              (n Class)
03536     #              (n DOT))
03537 
03538     variable ok
03539     if {[inc_restore Primary]} {
03540         if {$ok} ias_push
03541         return
03542     }
03543 
03544     set pos [icl_get]
03545     set mrk [ias_mark]
03546 
03547     ebra19                ; # (/ (n ALNUM)
03548                             #    (n ALPHA)
03549                             #    (n Identifier)
03550                             #    (x (n OPEN)
03551                             #       (n Expression)
03552                             #       (n CLOSE))
03553                             #    (n Literal)
03554                             #    (n Class)
03555                             #    (n DOT))
03556 
03557     isv_nonterminal_reduce Primary $pos $mrk
03558     inc_save               Primary $pos
03559     ias_pop2mark             $mrk
03560     if {$ok} ias_push
03561     ier_nonterminal        "Expected Primary" $pos
03562     return
03563 }
03564 
03565 ret  ::page::parse::peg::ebra19 () {
03566 
03567     # (/ (n ALNUM)
03568     #    (n ALPHA)
03569     #    (n Identifier)
03570     #    (x (n OPEN)
03571     #       (n Expression)
03572     #       (n CLOSE))
03573     #    (n Literal)
03574     #    (n Class)
03575     #    (n DOT))
03576 
03577     variable ok
03578 
03579     set pos [icl_get]
03580 
03581     set mrk [ias_mark]
03582     set old [ier_get]
03583     matchSymbol_ALNUM    ; # (n ALNUM)
03584     ier_merge $old
03585 
03586     if {$ok} return
03587     ias_pop2mark $mrk
03588     icl_rewind   $pos
03589 
03590     set mrk [ias_mark]
03591     set old [ier_get]
03592     matchSymbol_ALPHA    ; # (n ALPHA)
03593     ier_merge $old
03594 
03595     if {$ok} return
03596     ias_pop2mark $mrk
03597     icl_rewind   $pos
03598 
03599     set mrk [ias_mark]
03600     set old [ier_get]
03601     matchSymbol_Identifier    ; # (n Identifier)
03602     ier_merge $old
03603 
03604     if {$ok} return
03605     ias_pop2mark $mrk
03606     icl_rewind   $pos
03607 
03608     set mrk [ias_mark]
03609     set old [ier_get]
03610     eseq18                ; # (x (n OPEN)
03611                             #    (n Expression)
03612                             #    (n CLOSE))
03613     ier_merge $old
03614 
03615     if {$ok} return
03616     ias_pop2mark $mrk
03617     icl_rewind   $pos
03618 
03619     set mrk [ias_mark]
03620     set old [ier_get]
03621     matchSymbol_Literal    ; # (n Literal)
03622     ier_merge $old
03623 
03624     if {$ok} return
03625     ias_pop2mark $mrk
03626     icl_rewind   $pos
03627 
03628     set mrk [ias_mark]
03629     set old [ier_get]
03630     matchSymbol_Class    ; # (n Class)
03631     ier_merge $old
03632 
03633     if {$ok} return
03634     ias_pop2mark $mrk
03635     icl_rewind   $pos
03636 
03637     set mrk [ias_mark]
03638     set old [ier_get]
03639     matchSymbol_DOT    ; # (n DOT)
03640     ier_merge $old
03641 
03642     if {$ok} return
03643     ias_pop2mark $mrk
03644     icl_rewind   $pos
03645 
03646     return
03647 }
03648 
03649 ret  ::page::parse::peg::eseq18 () {
03650 
03651     # (x (n OPEN)
03652     #    (n Expression)
03653     #    (n CLOSE))
03654 
03655     variable ok
03656 
03657     set pos [icl_get]
03658 
03659     set old [ier_get]
03660     matchSymbol_OPEN    ; # (n OPEN)
03661     ier_merge $old
03662 
03663     if {!$ok} {icl_rewind $pos ; return}
03664 
03665     set mrk [ias_mark]
03666 
03667     set old [ier_get]
03668     matchSymbol_Expression    ; # (n Expression)
03669     ier_merge $old
03670 
03671     if {!$ok} {
03672         ias_pop2mark $mrk
03673         icl_rewind   $pos
03674         return
03675     }
03676 
03677     set old [ier_get]
03678     matchSymbol_CLOSE    ; # (n CLOSE)
03679     ier_merge $old
03680 
03681     if {!$ok} {
03682         ias_pop2mark $mrk
03683         icl_rewind   $pos
03684         return
03685     }
03686 
03687     return
03688 }
03689 
03690 ret  ::page::parse::peg::matchSymbol_QUESTION () {
03691     # QUESTION = (x (t ?)
03692     #               (n SPACE))
03693 
03694     variable ok
03695     if {[inc_restore QUESTION]} {
03696         if {$ok} ias_push
03697         return
03698     }
03699 
03700     set pos [icl_get]
03701 
03702     eseq68                ; # (x (t ?)
03703                             #    (n SPACE))
03704 
03705     isv_nonterminal_leaf   QUESTION $pos
03706     inc_save               QUESTION $pos
03707     if {$ok} ias_push
03708     ier_nonterminal        "Expected QUESTION" $pos
03709     return
03710 }
03711 
03712 ret  ::page::parse::peg::eseq68 () {
03713 
03714     # (x (t ?)
03715     #    (n SPACE))
03716 
03717     variable ok
03718 
03719     set pos [icl_get]
03720 
03721     set old [ier_get]
03722     ict_advance "Expected ? (got EOF)"
03723     if {$ok} {ict_match_token ? "Expected ?"}
03724     ier_merge $old
03725 
03726     if {!$ok} {icl_rewind $pos ; return}
03727 
03728     set old [ier_get]
03729     matchSymbol_SPACE    ; # (n SPACE)
03730     ier_merge $old
03731 
03732     if {!$ok} {icl_rewind $pos ; return}
03733 
03734     return
03735 }
03736 
03737 ret  ::page::parse::peg::matchSymbol_Range () {
03738     # Range = (/ (x (n Char)
03739     #               (n TO)
03740     #               (n Char))
03741     #            (n Char))
03742 
03743     variable ok
03744     if {[inc_restore Range]} {
03745         if {$ok} ias_push
03746         return
03747     }
03748 
03749     set pos [icl_get]
03750     set mrk [ias_mark]
03751 
03752     ebra34                ; # (/ (x (n Char)
03753                             #       (n TO)
03754                             #       (n Char))
03755                             #    (n Char))
03756 
03757     isv_nonterminal_reduce Range $pos $mrk
03758     inc_save               Range $pos
03759     ias_pop2mark             $mrk
03760     if {$ok} ias_push
03761     ier_nonterminal        "Expected Range" $pos
03762     return
03763 }
03764 
03765 ret  ::page::parse::peg::ebra34 () {
03766 
03767     # (/ (x (n Char)
03768     #       (n TO)
03769     #       (n Char))
03770     #    (n Char))
03771 
03772     variable ok
03773 
03774     set pos [icl_get]
03775 
03776     set mrk [ias_mark]
03777     set old [ier_get]
03778     eseq33                ; # (x (n Char)
03779                             #    (n TO)
03780                             #    (n Char))
03781     ier_merge $old
03782 
03783     if {$ok} return
03784     ias_pop2mark $mrk
03785     icl_rewind   $pos
03786 
03787     set mrk [ias_mark]
03788     set old [ier_get]
03789     matchSymbol_Char    ; # (n Char)
03790     ier_merge $old
03791 
03792     if {$ok} return
03793     ias_pop2mark $mrk
03794     icl_rewind   $pos
03795 
03796     return
03797 }
03798 
03799 ret  ::page::parse::peg::eseq33 () {
03800 
03801     # (x (n Char)
03802     #    (n TO)
03803     #    (n Char))
03804 
03805     variable ok
03806 
03807     set pos [icl_get]
03808 
03809     set mrk [ias_mark]
03810 
03811     set old [ier_get]
03812     matchSymbol_Char    ; # (n Char)
03813     ier_merge $old
03814 
03815     if {!$ok} {
03816         ias_pop2mark $mrk
03817         icl_rewind   $pos
03818         return
03819     }
03820 
03821     set old [ier_get]
03822     matchSymbol_TO    ; # (n TO)
03823     ier_merge $old
03824 
03825     if {!$ok} {
03826         ias_pop2mark $mrk
03827         icl_rewind   $pos
03828         return
03829     }
03830 
03831     set old [ier_get]
03832     matchSymbol_Char    ; # (n Char)
03833     ier_merge $old
03834 
03835     if {!$ok} {
03836         ias_pop2mark $mrk
03837         icl_rewind   $pos
03838         return
03839     }
03840 
03841     return
03842 }
03843 
03844 ret  ::page::parse::peg::matchSymbol_SEMICOLON () {
03845     # SEMICOLON = (x (t ;)
03846     #                (n SPACE))
03847 
03848     if {[inc_restore SEMICOLON]} return
03849 
03850     set pos [icl_get]
03851 
03852     eseq63                ; # (x (t ;)
03853                             #    (n SPACE))
03854 
03855     isv_clear
03856     inc_save               SEMICOLON $pos
03857     ier_nonterminal        "Expected SEMICOLON" $pos
03858     return
03859 }
03860 
03861 ret  ::page::parse::peg::eseq63 () {
03862 
03863     # (x (t ;)
03864     #    (n SPACE))
03865 
03866     variable ok
03867 
03868     set pos [icl_get]
03869 
03870     set old [ier_get]
03871     ict_advance "Expected \; (got EOF)"
03872     if {$ok} {ict_match_token \73 "Expected \;"}
03873     ier_merge $old
03874 
03875     if {!$ok} {icl_rewind $pos ; return}
03876 
03877     set old [ier_get]
03878     matchSymbol_SPACE    ; # (n SPACE)
03879     ier_merge $old
03880 
03881     if {!$ok} {icl_rewind $pos ; return}
03882 
03883     return
03884 }
03885 
03886 ret  ::page::parse::peg::matchSymbol_Sequence () {
03887     # Sequence = (+ (n Prefix))
03888 
03889     variable ok
03890     if {[inc_restore Sequence]} {
03891         if {$ok} ias_push
03892         return
03893     }
03894 
03895     set pos [icl_get]
03896     set mrk [ias_mark]
03897 
03898     epkleene11                ; # (+ (n Prefix))
03899 
03900     isv_nonterminal_reduce Sequence $pos $mrk
03901     inc_save               Sequence $pos
03902     ias_pop2mark             $mrk
03903     if {$ok} ias_push
03904     ier_nonterminal        "Expected Sequence" $pos
03905     return
03906 }
03907 
03908 ret  ::page::parse::peg::epkleene11 () {
03909 
03910     # (+ (n Prefix))
03911 
03912     variable ok
03913 
03914     set pos [icl_get]
03915 
03916     set old [ier_get]
03917     matchSymbol_Prefix    ; # (n Prefix)
03918     ier_merge $old
03919 
03920     if {!$ok} {
03921         icl_rewind $pos
03922         return
03923     }
03924 
03925     while {1} {
03926         set pos [icl_get]
03927 
03928         set old [ier_get]
03929         matchSymbol_Prefix    ; # (n Prefix)
03930         ier_merge $old
03931 
03932         if {$ok} continue
03933         break
03934     }
03935 
03936     icl_rewind $pos
03937     iok_ok
03938     return
03939 }
03940 
03941 ret  ::page::parse::peg::matchSymbol_SLASH () {
03942     # SLASH = (x (t /)
03943     #            (n SPACE))
03944 
03945     if {[inc_restore SLASH]} return
03946 
03947     set pos [icl_get]
03948 
03949     eseq65                ; # (x (t /)
03950                             #    (n SPACE))
03951 
03952     isv_clear
03953     inc_save               SLASH $pos
03954     ier_nonterminal        "Expected SLASH" $pos
03955     return
03956 }
03957 
03958 ret  ::page::parse::peg::eseq65 () {
03959 
03960     # (x (t /)
03961     #    (n SPACE))
03962 
03963     variable ok
03964 
03965     set pos [icl_get]
03966 
03967     set old [ier_get]
03968     ict_advance "Expected / (got EOF)"
03969     if {$ok} {ict_match_token / "Expected /"}
03970     ier_merge $old
03971 
03972     if {!$ok} {icl_rewind $pos ; return}
03973 
03974     set old [ier_get]
03975     matchSymbol_SPACE    ; # (n SPACE)
03976     ier_merge $old
03977 
03978     if {!$ok} {icl_rewind $pos ; return}
03979 
03980     return
03981 }
03982 
03983 ret  ::page::parse::peg::matchSymbol_SPACE () {
03984     # SPACE = (* (/ (t <blank>)
03985     #               (t \t)
03986     #               (n EOL)
03987     #               (n COMMENT)))
03988 
03989     if {[inc_restore SPACE]} return
03990 
03991     set pos [icl_get]
03992 
03993     ekleene77                ; # (* (/ (t <blank>)
03994                                #       (t \t)
03995                                #       (n EOL)
03996                                #       (n COMMENT)))
03997 
03998     isv_clear
03999     inc_save               SPACE $pos
04000     ier_nonterminal        "Expected SPACE" $pos
04001     return
04002 }
04003 
04004 ret  ::page::parse::peg::ekleene77 () {
04005 
04006     # (* (/ (t <blank>)
04007     #       (t \t)
04008     #       (n EOL)
04009     #       (n COMMENT)))
04010 
04011     variable ok
04012 
04013     while {1} {
04014         set pos [icl_get]
04015 
04016         set old [ier_get]
04017         ebra76                ; # (/ (t <blank>)
04018                                 #    (t \t)
04019                                 #    (n EOL)
04020                                 #    (n COMMENT))
04021         ier_merge $old
04022 
04023         if {$ok} continue
04024         break
04025     }
04026 
04027     icl_rewind $pos
04028     iok_ok
04029     return
04030 }
04031 
04032 ret  ::page::parse::peg::ebra76 () {
04033 
04034     # (/ (t <blank>)
04035     #    (t \t)
04036     #    (n EOL)
04037     #    (n COMMENT))
04038 
04039     variable ok
04040 
04041     set pos [icl_get]
04042 
04043     set old [ier_get]
04044     ict_advance "Expected <blank> (got EOF)"
04045     if {$ok} {ict_match_token \40 "Expected <blank>"}
04046     ier_merge $old
04047 
04048     if {$ok} return
04049     icl_rewind   $pos
04050 
04051     set old [ier_get]
04052     ict_advance "Expected \\t (got EOF)"
04053     if {$ok} {ict_match_token \t "Expected \\t"}
04054     ier_merge $old
04055 
04056     if {$ok} return
04057     icl_rewind   $pos
04058 
04059     set old [ier_get]
04060     matchSymbol_EOL    ; # (n EOL)
04061     ier_merge $old
04062 
04063     if {$ok} return
04064     icl_rewind   $pos
04065 
04066     set old [ier_get]
04067     matchSymbol_COMMENT    ; # (n COMMENT)
04068     ier_merge $old
04069 
04070     if {$ok} return
04071     icl_rewind   $pos
04072 
04073     return
04074 }
04075 
04076 ret  ::page::parse::peg::matchSymbol_STAR () {
04077     # STAR = (x (t *)
04078     #           (n SPACE))
04079 
04080     variable ok
04081     if {[inc_restore STAR]} {
04082         if {$ok} ias_push
04083         return
04084     }
04085 
04086     set pos [icl_get]
04087 
04088     eseq69                ; # (x (t *)
04089                             #    (n SPACE))
04090 
04091     isv_nonterminal_leaf   STAR $pos
04092     inc_save               STAR $pos
04093     if {$ok} ias_push
04094     ier_nonterminal        "Expected STAR" $pos
04095     return
04096 }
04097 
04098 ret  ::page::parse::peg::eseq69 () {
04099 
04100     # (x (t *)
04101     #    (n SPACE))
04102 
04103     variable ok
04104 
04105     set pos [icl_get]
04106 
04107     set old [ier_get]
04108     ict_advance "Expected * (got EOF)"
04109     if {$ok} {ict_match_token * "Expected *"}
04110     ier_merge $old
04111 
04112     if {!$ok} {icl_rewind $pos ; return}
04113 
04114     set old [ier_get]
04115     matchSymbol_SPACE    ; # (n SPACE)
04116     ier_merge $old
04117 
04118     if {!$ok} {icl_rewind $pos ; return}
04119 
04120     return
04121 }
04122 
04123 ret  ::page::parse::peg::matchSymbol_StartExpr () {
04124     # StartExpr = (x (n OPEN)
04125     #                (n Expression)
04126     #                (n CLOSE))
04127 
04128     variable ok
04129     if {[inc_restore StartExpr]} {
04130         if {$ok} ias_push
04131         return
04132     }
04133 
04134     set pos [icl_get]
04135     set mrk [ias_mark]
04136 
04137     eseq35                ; # (x (n OPEN)
04138                             #    (n Expression)
04139                             #    (n CLOSE))
04140 
04141     isv_nonterminal_reduce StartExpr $pos $mrk
04142     inc_save               StartExpr $pos
04143     ias_pop2mark             $mrk
04144     if {$ok} ias_push
04145     ier_nonterminal        "Expected StartExpr" $pos
04146     return
04147 }
04148 
04149 ret  ::page::parse::peg::eseq35 () {
04150 
04151     # (x (n OPEN)
04152     #    (n Expression)
04153     #    (n CLOSE))
04154 
04155     variable ok
04156 
04157     set pos [icl_get]
04158 
04159     set old [ier_get]
04160     matchSymbol_OPEN    ; # (n OPEN)
04161     ier_merge $old
04162 
04163     if {!$ok} {icl_rewind $pos ; return}
04164 
04165     set mrk [ias_mark]
04166 
04167     set old [ier_get]
04168     matchSymbol_Expression    ; # (n Expression)
04169     ier_merge $old
04170 
04171     if {!$ok} {
04172         ias_pop2mark $mrk
04173         icl_rewind   $pos
04174         return
04175     }
04176 
04177     set old [ier_get]
04178     matchSymbol_CLOSE    ; # (n CLOSE)
04179     ier_merge $old
04180 
04181     if {!$ok} {
04182         ias_pop2mark $mrk
04183         icl_rewind   $pos
04184         return
04185     }
04186 
04187     return
04188 }
04189 
04190 ret  ::page::parse::peg::matchSymbol_Suffix () {
04191     # Suffix = (x (n Primary)
04192     #             (? (/ (n QUESTION)
04193     #                   (n STAR)
04194     #                   (n PLUS))))
04195 
04196     variable ok
04197     if {[inc_restore Suffix]} {
04198         if {$ok} ias_push
04199         return
04200     }
04201 
04202     set pos [icl_get]
04203     set mrk [ias_mark]
04204 
04205     eseq17                ; # (x (n Primary)
04206                             #    (? (/ (n QUESTION)
04207                             #          (n STAR)
04208                             #          (n PLUS))))
04209 
04210     isv_nonterminal_reduce Suffix $pos $mrk
04211     inc_save               Suffix $pos
04212     ias_pop2mark             $mrk
04213     if {$ok} ias_push
04214     ier_nonterminal        "Expected Suffix" $pos
04215     return
04216 }
04217 
04218 ret  ::page::parse::peg::eseq17 () {
04219 
04220     # (x (n Primary)
04221     #    (? (/ (n QUESTION)
04222     #          (n STAR)
04223     #          (n PLUS))))
04224 
04225     variable ok
04226 
04227     set pos [icl_get]
04228 
04229     set mrk [ias_mark]
04230 
04231     set old [ier_get]
04232     matchSymbol_Primary    ; # (n Primary)
04233     ier_merge $old
04234 
04235     if {!$ok} {
04236         ias_pop2mark $mrk
04237         icl_rewind   $pos
04238         return
04239     }
04240 
04241     set old [ier_get]
04242     eopt16                ; # (? (/ (n QUESTION)
04243                             #       (n STAR)
04244                             #       (n PLUS)))
04245     ier_merge $old
04246 
04247     if {!$ok} {
04248         ias_pop2mark $mrk
04249         icl_rewind   $pos
04250         return
04251     }
04252 
04253     return
04254 }
04255 
04256 ret  ::page::parse::peg::eopt16 () {
04257 
04258     # (? (/ (n QUESTION)
04259     #       (n STAR)
04260     #       (n PLUS)))
04261 
04262     variable ok
04263 
04264     set pos [icl_get]
04265 
04266     set old [ier_get]
04267     ebra15                ; # (/ (n QUESTION)
04268                             #    (n STAR)
04269                             #    (n PLUS))
04270     ier_merge $old
04271 
04272     if {$ok} return
04273     icl_rewind $pos
04274     iok_ok
04275     return
04276 }
04277 
04278 ret  ::page::parse::peg::ebra15 () {
04279 
04280     # (/ (n QUESTION)
04281     #    (n STAR)
04282     #    (n PLUS))
04283 
04284     variable ok
04285 
04286     set pos [icl_get]
04287 
04288     set mrk [ias_mark]
04289     set old [ier_get]
04290     matchSymbol_QUESTION    ; # (n QUESTION)
04291     ier_merge $old
04292 
04293     if {$ok} return
04294     ias_pop2mark $mrk
04295     icl_rewind   $pos
04296 
04297     set mrk [ias_mark]
04298     set old [ier_get]
04299     matchSymbol_STAR    ; # (n STAR)
04300     ier_merge $old
04301 
04302     if {$ok} return
04303     ias_pop2mark $mrk
04304     icl_rewind   $pos
04305 
04306     set mrk [ias_mark]
04307     set old [ier_get]
04308     matchSymbol_PLUS    ; # (n PLUS)
04309     ier_merge $old
04310 
04311     if {$ok} return
04312     ias_pop2mark $mrk
04313     icl_rewind   $pos
04314 
04315     return
04316 }
04317 
04318 ret  ::page::parse::peg::matchSymbol_TO () {
04319     # TO = (t -)
04320 
04321     variable ok
04322     if {[inc_restore TO]} return
04323 
04324     set pos [icl_get]
04325 
04326     ict_advance "Expected - (got EOF)"
04327     if {$ok} {ict_match_token - "Expected -"}
04328 
04329     isv_clear
04330     inc_save               TO $pos
04331     ier_nonterminal        "Expected TO" $pos
04332     return
04333 }
04334 
04335 ret  ::page::parse::peg::matchSymbol_VOID () {
04336     # VOID = (x (t v)
04337     #           (t o)
04338     #           (t i)
04339     #           (t d)
04340     #           (n SPACE))
04341 
04342     variable ok
04343     if {[inc_restore VOID]} {
04344         if {$ok} ias_push
04345         return
04346     }
04347 
04348     set pos [icl_get]
04349 
04350     eseq59                ; # (x (t v)
04351                             #    (t o)
04352                             #    (t i)
04353                             #    (t d)
04354                             #    (n SPACE))
04355 
04356     isv_nonterminal_leaf   VOID $pos
04357     inc_save               VOID $pos
04358     if {$ok} ias_push
04359     ier_nonterminal        "Expected VOID" $pos
04360     return
04361 }
04362 
04363 ret  ::page::parse::peg::eseq59 () {
04364 
04365     # (x (t v)
04366     #    (t o)
04367     #    (t i)
04368     #    (t d)
04369     #    (n SPACE))
04370 
04371     variable ok
04372 
04373     set pos [icl_get]
04374 
04375     set old [ier_get]
04376     ict_advance "Expected v (got EOF)"
04377     if {$ok} {ict_match_token v "Expected v"}
04378     ier_merge $old
04379 
04380     if {!$ok} {icl_rewind $pos ; return}
04381 
04382     set old [ier_get]
04383     ict_advance "Expected o (got EOF)"
04384     if {$ok} {ict_match_token o "Expected o"}
04385     ier_merge $old
04386 
04387     if {!$ok} {icl_rewind $pos ; return}
04388 
04389     set old [ier_get]
04390     ict_advance "Expected i (got EOF)"
04391     if {$ok} {ict_match_token i "Expected i"}
04392     ier_merge $old
04393 
04394     if {!$ok} {icl_rewind $pos ; return}
04395 
04396     set old [ier_get]
04397     ict_advance "Expected d (got EOF)"
04398     if {$ok} {ict_match_token d "Expected d"}
04399     ier_merge $old
04400 
04401     if {!$ok} {icl_rewind $pos ; return}
04402 
04403     set old [ier_get]
04404     matchSymbol_SPACE    ; # (n SPACE)
04405     ier_merge $old
04406 
04407     if {!$ok} {icl_rewind $pos ; return}
04408 
04409     return
04410 }
04411 
04412 
04413 
04414 
04415 package provide page::parse::peg 0.1
04416