parse_peg.tcl

Go to the documentation of this file.
00001 /*  -*- tcl -*-*/
00002 /*  Parsing Expression Grammar 'pg::peg::grammar'.*/
00003 /*  Recursive Descent Packrat parser generated*/
00004 /*  by the PAGE writer plugin 'me'.*/
00005 /*  (C) 2005 Andreas Kupries <andreas_kupries@users.sourceforge.net>*/
00006 
00007 /*  ### ### ### ######### ######### #########*/
00008 /*  Package description*/
00009 
00010 /*  The commands provided here match an input provided through a buffer*/
00011 /*  command to the PE grammar 'pg::peg::grammar'. The parser is based on the package*/
00012 /*  'grammar::me::tcl' (recursive-descent, packrat, pulling chars,*/
00013 /*  pushing the generated AST).*/
00014 
00015 /*  ### ### ### ######### ######### #########*/
00016 /*  Requisites*/
00017 
00018 package require grammar::me::tcl
00019 
00020 /*  ### ### ### ######### ######### #########*/
00021 /*  Implementation*/
00022 
00023 namespace ::page::parse::peg {
00024     /*  Import the virtual machine for matching.*/
00025 
00026     namespace import ::grammar::me::tcl::*
00027     upvar /* 0 ::grammar::me::tcl::ok ok*/
00028 }
00029 
00030 /*  ### ### ### ######### ######### #########*/
00031 /*  API Implementation.*/
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 /*  Internal helper methods*/
00056 
00057 /*  Grammar 'pg::peg::grammar'*/
00058 /* */
00059 /*  ALNUM = (x (t <)*/
00060 /*             (t a)*/
00061 /*             (t l)*/
00062 /*             (t n)*/
00063 /*             (t u)*/
00064 /*             (t m)*/
00065 /*             (t >)*/
00066 /*             (n SPACE))*/
00067 /* */
00068 /*  ALPHA = (x (t <)*/
00069 /*             (t a)*/
00070 /*             (t l)*/
00071 /*             (t p)*/
00072 /*             (t h)*/
00073 /*             (t a)*/
00074 /*             (t >)*/
00075 /*             (n SPACE))*/
00076 /* */
00077 /*  AND = (x (t &)*/
00078 /*           (n SPACE))*/
00079 /* */
00080 /*  APOSTROPH = (t ')*/
00081 /* */
00082 /*  Attribute = (x (/ (n VOID)*/
00083 /*                    (n LEAF)*/
00084 /*                    (n MATCH))*/
00085 /*                 (n COLON))*/
00086 /* */
00087 /*  Char = (/ (n CharSpecial)*/
00088 /*            (n CharOctalFull)*/
00089 /*            (n CharOctalPart)*/
00090 /*            (n CharUnicode)*/
00091 /*            (n CharUnescaped))*/
00092 /* */
00093 /*  CharOctalFull = (x (t \)*/
00094 /*                     (.. 0 2)*/
00095 /*                     (.. 0 7)*/
00096 /*                     (.. 0 7))*/
00097 /* */
00098 /*  CharOctalPart = (x (t \)*/
00099 /*                     (.. 0 7)*/
00100 /*                     (? (.. 0 7)))*/
00101 /* */
00102 /*  CharSpecial = (x (t \)*/
00103 /*                   (/ (t n)*/
00104 /*                      (t r)*/
00105 /*                      (t t)*/
00106 /*                      (t ')*/
00107 /*                      (t \")*/
00108 /*                      (t [)*/
00109 /*                      (t ])*/
00110 /*                      (t \)))*/
00111 /* */
00112 /*  CharUnescaped = (x (! (t \))*/
00113 /*                     (dot))*/
00114 /* */
00115 /*  CharUnicode = (x (t \)*/
00116 /*                   (t u)*/
00117 /*                   (n HexDigit)*/
00118 /*                   (? (x (n HexDigit)*/
00119 /*                         (? (x (n HexDigit)*/
00120 /*                               (? (n HexDigit)))))))*/
00121 /* */
00122 /*  Class = (x (n OPENB)*/
00123 /*             (* (x (! (n CLOSEB))*/
00124 /*                   (n Range)))*/
00125 /*             (n CLOSEB)*/
00126 /*             (n SPACE))*/
00127 /* */
00128 /*  CLOSE = (x (t \))*/
00129 /*             (n SPACE))*/
00130 /* */
00131 /*  CLOSEB = (t ])*/
00132 /* */
00133 /*  COLON = (x (t :)*/
00134 /*             (n SPACE))*/
00135 /* */
00136 /*  COMMENT = (x (t #)*/
00137 /*               (* (x (! (n EOL))*/
00138 /*                     (dot)))*/
00139 /*               (n EOL))*/
00140 /* */
00141 /*  DAPOSTROPH = (t \")*/
00142 /* */
00143 /*  Definition = (x (? (n Attribute))*/
00144 /*                  (n Identifier)*/
00145 /*                  (n IS)*/
00146 /*                  (n Expression)*/
00147 /*                  (n SEMICOLON))*/
00148 /* */
00149 /*  DOT = (x (t .)*/
00150 /*           (n SPACE))*/
00151 /* */
00152 /*  END = (x (t E)*/
00153 /*           (t N)*/
00154 /*           (t D)*/
00155 /*           (n SPACE))*/
00156 /* */
00157 /*  EOF = (! (dot))*/
00158 /* */
00159 /*  EOL = (/ (x (t \n)*/
00160 /*              (t \r))*/
00161 /*           (t \n)*/
00162 /*           (t \r))*/
00163 /* */
00164 /*  Expression = (x (n Sequence)*/
00165 /*                  (* (x (n SLASH)*/
00166 /*                        (n Sequence))))*/
00167 /* */
00168 /*  Final = (x (n END)*/
00169 /*             (n SEMICOLON)*/
00170 /*             (n SPACE))*/
00171 /* */
00172 /*  Grammar = (x (n SPACE)*/
00173 /*               (n Header)*/
00174 /*               (+ (n Definition))*/
00175 /*               (n Final)*/
00176 /*               (n EOF))*/
00177 /* */
00178 /*  Header = (x (n PEG)*/
00179 /*              (n Identifier)*/
00180 /*              (n StartExpr))*/
00181 /* */
00182 /*  HexDigit = (/ (.. 0 9)*/
00183 /*                (.. a f)*/
00184 /*                (.. A F))*/
00185 /* */
00186 /*  Ident = (x (/ (t _)*/
00187 /*                (t :)*/
00188 /*                (alpha))*/
00189 /*             (* (/ (t _)*/
00190 /*                   (t :)*/
00191 /*                   (alnum))))*/
00192 /* */
00193 /*  Identifier = (x (n Ident)*/
00194 /*                  (n SPACE))*/
00195 /* */
00196 /*  IS = (x (t <)*/
00197 /*          (t -)*/
00198 /*          (n SPACE))*/
00199 /* */
00200 /*  LEAF = (x (t l)*/
00201 /*            (t e)*/
00202 /*            (t a)*/
00203 /*            (t f)*/
00204 /*            (n SPACE))*/
00205 /* */
00206 /*  Literal = (/ (x (n APOSTROPH)*/
00207 /*                  (* (x (! (n APOSTROPH))*/
00208 /*                        (n Char)))*/
00209 /*                  (n APOSTROPH)*/
00210 /*                  (n SPACE))*/
00211 /*               (x (n DAPOSTROPH)*/
00212 /*                  (* (x (! (n DAPOSTROPH))*/
00213 /*                        (n Char)))*/
00214 /*                  (n DAPOSTROPH)*/
00215 /*                  (n SPACE)))*/
00216 /* */
00217 /*  MATCH = (x (t m)*/
00218 /*             (t a)*/
00219 /*             (t t)*/
00220 /*             (t c)*/
00221 /*             (t h)*/
00222 /*             (n SPACE))*/
00223 /* */
00224 /*  NOT = (x (t !)*/
00225 /*           (n SPACE))*/
00226 /* */
00227 /*  OPEN = (x (t \()*/
00228 /*            (n SPACE))*/
00229 /* */
00230 /*  OPENB = (t [)*/
00231 /* */
00232 /*  PEG = (x (t P)*/
00233 /*           (t E)*/
00234 /*           (t G)*/
00235 /*           (n SPACE))*/
00236 /* */
00237 /*  PLUS = (x (t +)*/
00238 /*            (n SPACE))*/
00239 /* */
00240 /*  Prefix = (x (? (/ (n AND)*/
00241 /*                    (n NOT)))*/
00242 /*              (n Suffix))*/
00243 /* */
00244 /*  Primary = (/ (n ALNUM)*/
00245 /*               (n ALPHA)*/
00246 /*               (n Identifier)*/
00247 /*               (x (n OPEN)*/
00248 /*                  (n Expression)*/
00249 /*                  (n CLOSE))*/
00250 /*               (n Literal)*/
00251 /*               (n Class)*/
00252 /*               (n DOT))*/
00253 /* */
00254 /*  QUESTION = (x (t ?)*/
00255 /*                (n SPACE))*/
00256 /* */
00257 /*  Range = (/ (x (n Char)*/
00258 /*                (n TO)*/
00259 /*                (n Char))*/
00260 /*             (n Char))*/
00261 /* */
00262 /*  SEMICOLON = (x (t ;)*/
00263 /*                 (n SPACE))*/
00264 /* */
00265 /*  Sequence = (+ (n Prefix))*/
00266 /* */
00267 /*  SLASH = (x (t /)*/
00268 /*             (n SPACE))*/
00269 /* */
00270 /*  SPACE = (* (/ (t <blank>)*/
00271 /*                (t \t)*/
00272 /*                (n EOL)*/
00273 /*                (n COMMENT)))*/
00274 /* */
00275 /*  STAR = (x (t *)*/
00276 /*            (n SPACE))*/
00277 /* */
00278 /*  StartExpr = (x (n OPEN)*/
00279 /*                 (n Expression)*/
00280 /*                 (n CLOSE))*/
00281 /* */
00282 /*  Suffix = (x (n Primary)*/
00283 /*              (? (/ (n QUESTION)*/
00284 /*                    (n STAR)*/
00285 /*                    (n PLUS))))*/
00286 /* */
00287 /*  TO = (t -)*/
00288 /* */
00289 /*  VOID = (x (t v)*/
00290 /*            (t o)*/
00291 /*            (t i)*/
00292 /*            (t d)*/
00293 /*            (n SPACE))*/
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 /*  Package Management*/
04414 
04415 package provide page::parse::peg 0.1
04416 

Generated on 21 Sep 2010 for Gui by  doxygen 1.6.1