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