• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /macosx-10.9.5/tcl-102/tcl_ext/tcllib/tcllib/modules/pt/tests/data/ok/peg_tclparam-snit/
1## -*- tcl -*-
2##
3## Snit-based Tcl/PARAM implementation of the parsing
4## expression grammar
5##
6##	TEMPLATE
7##
8## Generated from file	TEST
9##            for user  unknown
10##
11# # ## ### ##### ######## ############# #####################
12## Requirements
13
14package require Tcl 8.5
15package require snit
16package require pt::rde ; # Implementation of the PARAM
17			  # virtual machine underlying the
18			  # Tcl/PARAM code used below.
19
20# # ## ### ##### ######## ############# #####################
21##
22
23snit::type ::PARSER {
24    # # ## ### ##### ######## #############
25    ## Public API
26
27    constructor {} {
28	# Create the runtime supporting the parsing process.
29	set myparser [pt::rde ${selfns}::ENGINE]
30	return
31    }
32
33    method parse {channel} {
34	$myparser reset $channel
35	MAIN ; # Entrypoint for the generated code.
36	return [$myparser complete]
37    }
38
39    method parset {text} {
40	$myparser reset
41	$myparser data $text
42	MAIN ; # Entrypoint for the generated code.
43	return [$myparser complete]
44    }
45
46    # # ## ### ###### ######## #############
47    ## Configuration
48
49    pragma -hastypeinfo    0
50    pragma -hastypemethods 0
51    pragma -hasinfo        0
52    pragma -simpledispatch 1
53
54    # # ## ### ###### ######## #############
55    ## Data structures.
56
57    variable myparser {} ; # Our instantiation of the PARAM.
58
59    # # ## ### ###### ######## #############
60    ## BEGIN of GENERATED CODE. DO NOT EDIT.
61
62    #
63    # Grammar Start Expression
64    #
65    
66    proc MAIN {} { upvar 1 myparser myparser
67        sym_Grammar
68        return
69    }
70    
71    #
72    # leaf Symbol 'ALNUM'
73    #
74    
75    proc sym_ALNUM {} { upvar 1 myparser myparser
76        # x
77        #     "<alnum>"
78        #     (WHITESPACE)
79    
80        $myparser si:void_symbol_start ALNUM
81        sequence_4
82        $myparser si:void_leaf_symbol_end ALNUM
83        return
84    }
85    
86    proc sequence_4 {} { upvar 1 myparser myparser
87        # x
88        #     "<alnum>"
89        #     (WHITESPACE)
90    
91        $myparser si:void_state_push
92        $myparser si:next_str <alnum>
93        $myparser si:voidvoid_part
94        sym_WHITESPACE
95        $myparser si:void_state_merge
96        return
97    }
98    
99    #
100    # leaf Symbol 'ALPHA'
101    #
102    
103    proc sym_ALPHA {} { upvar 1 myparser myparser
104        # x
105        #     "<alpha>"
106        #     (WHITESPACE)
107    
108        $myparser si:void_symbol_start ALPHA
109        sequence_9
110        $myparser si:void_leaf_symbol_end ALPHA
111        return
112    }
113    
114    proc sequence_9 {} { upvar 1 myparser myparser
115        # x
116        #     "<alpha>"
117        #     (WHITESPACE)
118    
119        $myparser si:void_state_push
120        $myparser si:next_str <alpha>
121        $myparser si:voidvoid_part
122        sym_WHITESPACE
123        $myparser si:void_state_merge
124        return
125    }
126    
127    #
128    # leaf Symbol 'AND'
129    #
130    
131    proc sym_AND {} { upvar 1 myparser myparser
132        # x
133        #     '&'
134        #     (WHITESPACE)
135    
136        $myparser si:void_symbol_start AND
137        sequence_14
138        $myparser si:void_leaf_symbol_end AND
139        return
140    }
141    
142    proc sequence_14 {} { upvar 1 myparser myparser
143        # x
144        #     '&'
145        #     (WHITESPACE)
146    
147        $myparser si:void_state_push
148        $myparser si:next_char &
149        $myparser si:voidvoid_part
150        sym_WHITESPACE
151        $myparser si:void_state_merge
152        return
153    }
154    
155    #
156    # void Symbol 'APOSTROPH'
157    #
158    
159    proc sym_APOSTROPH {} { upvar 1 myparser myparser
160        # '''
161    
162        $myparser si:void_void_symbol_start APOSTROPH
163        $myparser si:next_char '
164        $myparser si:void_clear_symbol_end APOSTROPH
165        return
166    }
167    
168    #
169    # leaf Symbol 'ASCII'
170    #
171    
172    proc sym_ASCII {} { upvar 1 myparser myparser
173        # x
174        #     "<ascii>"
175        #     (WHITESPACE)
176    
177        $myparser si:void_symbol_start ASCII
178        sequence_21
179        $myparser si:void_leaf_symbol_end ASCII
180        return
181    }
182    
183    proc sequence_21 {} { upvar 1 myparser myparser
184        # x
185        #     "<ascii>"
186        #     (WHITESPACE)
187    
188        $myparser si:void_state_push
189        $myparser si:next_str <ascii>
190        $myparser si:voidvoid_part
191        sym_WHITESPACE
192        $myparser si:void_state_merge
193        return
194    }
195    
196    #
197    # value Symbol 'Attribute'
198    #
199    
200    proc sym_Attribute {} { upvar 1 myparser myparser
201        # x
202        #     /
203        #         (VOID)
204        #         (LEAF)
205        #     (COLON)
206    
207        $myparser si:value_symbol_start Attribute
208        sequence_29
209        $myparser si:reduce_symbol_end Attribute
210        return
211    }
212    
213    proc sequence_29 {} { upvar 1 myparser myparser
214        # x
215        #     /
216        #         (VOID)
217        #         (LEAF)
218        #     (COLON)
219    
220        $myparser si:value_state_push
221        choice_26
222        $myparser si:valuevalue_part
223        sym_COLON
224        $myparser si:value_state_merge
225        return
226    }
227    
228    proc choice_26 {} { upvar 1 myparser myparser
229        # /
230        #     (VOID)
231        #     (LEAF)
232    
233        $myparser si:value_state_push
234        sym_VOID
235        $myparser si:valuevalue_branch
236        sym_LEAF
237        $myparser si:value_state_merge
238        return
239    }
240    
241    #
242    # value Symbol 'Char'
243    #
244    
245    proc sym_Char {} { upvar 1 myparser myparser
246        # /
247        #     (CharSpecial)
248        #     (CharOctalFull)
249        #     (CharOctalPart)
250        #     (CharUnicode)
251        #     (CharUnescaped)
252    
253        $myparser si:value_symbol_start Char
254        choice_37
255        $myparser si:reduce_symbol_end Char
256        return
257    }
258    
259    proc choice_37 {} { upvar 1 myparser myparser
260        # /
261        #     (CharSpecial)
262        #     (CharOctalFull)
263        #     (CharOctalPart)
264        #     (CharUnicode)
265        #     (CharUnescaped)
266    
267        $myparser si:value_state_push
268        sym_CharSpecial
269        $myparser si:valuevalue_branch
270        sym_CharOctalFull
271        $myparser si:valuevalue_branch
272        sym_CharOctalPart
273        $myparser si:valuevalue_branch
274        sym_CharUnicode
275        $myparser si:valuevalue_branch
276        sym_CharUnescaped
277        $myparser si:value_state_merge
278        return
279    }
280    
281    #
282    # leaf Symbol 'CharOctalFull'
283    #
284    
285    proc sym_CharOctalFull {} { upvar 1 myparser myparser
286        # x
287        #     '\'
288        #     range (0 .. 2)
289        #     range (0 .. 7)
290        #     range (0 .. 7)
291    
292        $myparser si:void_symbol_start CharOctalFull
293        sequence_44
294        $myparser si:void_leaf_symbol_end CharOctalFull
295        return
296    }
297    
298    proc sequence_44 {} { upvar 1 myparser myparser
299        # x
300        #     '\'
301        #     range (0 .. 2)
302        #     range (0 .. 7)
303        #     range (0 .. 7)
304    
305        $myparser si:void_state_push
306        $myparser si:next_char \134
307        $myparser si:voidvoid_part
308        $myparser si:next_range 0 2
309        $myparser si:voidvoid_part
310        $myparser si:next_range 0 7
311        $myparser si:voidvoid_part
312        $myparser si:next_range 0 7
313        $myparser si:void_state_merge
314        return
315    }
316    
317    #
318    # leaf Symbol 'CharOctalPart'
319    #
320    
321    proc sym_CharOctalPart {} { upvar 1 myparser myparser
322        # x
323        #     '\'
324        #     range (0 .. 7)
325        #     ?
326        #         range (0 .. 7)
327    
328        $myparser si:void_symbol_start CharOctalPart
329        sequence_52
330        $myparser si:void_leaf_symbol_end CharOctalPart
331        return
332    }
333    
334    proc sequence_52 {} { upvar 1 myparser myparser
335        # x
336        #     '\'
337        #     range (0 .. 7)
338        #     ?
339        #         range (0 .. 7)
340    
341        $myparser si:void_state_push
342        $myparser si:next_char \134
343        $myparser si:voidvoid_part
344        $myparser si:next_range 0 7
345        $myparser si:voidvoid_part
346        optional_50
347        $myparser si:void_state_merge
348        return
349    }
350    
351    proc optional_50 {} { upvar 1 myparser myparser
352        # ?
353        #     range (0 .. 7)
354    
355        $myparser si:void2_state_push
356        $myparser si:next_range 0 7
357        $myparser si:void_state_merge_ok
358        return
359    }
360    
361    #
362    # leaf Symbol 'CharSpecial'
363    #
364    
365    proc sym_CharSpecial {} { upvar 1 myparser myparser
366        # x
367        #     '\'
368        #     [nrt'\"[]\]
369    
370        $myparser si:void_symbol_start CharSpecial
371        sequence_57
372        $myparser si:void_leaf_symbol_end CharSpecial
373        return
374    }
375    
376    proc sequence_57 {} { upvar 1 myparser myparser
377        # x
378        #     '\'
379        #     [nrt'\"[]\]
380    
381        $myparser si:void_state_push
382        $myparser si:next_char \134
383        $myparser si:voidvoid_part
384        $myparser si:next_class nrt'\42\133\135\134
385        $myparser si:void_state_merge
386        return
387    }
388    
389    #
390    # leaf Symbol 'CharUnescaped'
391    #
392    
393    proc sym_CharUnescaped {} { upvar 1 myparser myparser
394        # x
395        #     !
396        #         '\'
397        #     <dot>
398    
399        $myparser si:void_symbol_start CharUnescaped
400        sequence_64
401        $myparser si:void_leaf_symbol_end CharUnescaped
402        return
403    }
404    
405    proc sequence_64 {} { upvar 1 myparser myparser
406        # x
407        #     !
408        #         '\'
409        #     <dot>
410    
411        $myparser si:void_state_push
412        notahead_61
413        $myparser si:voidvoid_part
414        $myparser i_input_next dot
415        $myparser si:void_state_merge
416        return
417    }
418    
419    proc notahead_61 {} { upvar 1 myparser myparser
420        # !
421        #     '\'
422    
423        $myparser i_loc_push
424        $myparser si:next_char \134
425        $myparser si:void_notahead_exit
426        return
427    }
428    
429    #
430    # leaf Symbol 'CharUnicode'
431    #
432    
433    proc sym_CharUnicode {} { upvar 1 myparser myparser
434        # x
435        #     "\u"
436        #     <xdigit>
437        #     ?
438        #         x
439        #             <xdigit>
440        #             ?
441        #                 x
442        #                     <xdigit>
443        #                     ?
444        #                         <xdigit>
445    
446        $myparser si:void_symbol_start CharUnicode
447        sequence_82
448        $myparser si:void_leaf_symbol_end CharUnicode
449        return
450    }
451    
452    proc sequence_82 {} { upvar 1 myparser myparser
453        # x
454        #     "\u"
455        #     <xdigit>
456        #     ?
457        #         x
458        #             <xdigit>
459        #             ?
460        #                 x
461        #                     <xdigit>
462        #                     ?
463        #                         <xdigit>
464    
465        $myparser si:void_state_push
466        $myparser si:next_str \134u
467        $myparser si:voidvoid_part
468        $myparser si:next_xdigit
469        $myparser si:voidvoid_part
470        optional_80
471        $myparser si:void_state_merge
472        return
473    }
474    
475    proc optional_80 {} { upvar 1 myparser myparser
476        # ?
477        #     x
478        #         <xdigit>
479        #         ?
480        #             x
481        #                 <xdigit>
482        #                 ?
483        #                     <xdigit>
484    
485        $myparser si:void2_state_push
486        sequence_78
487        $myparser si:void_state_merge_ok
488        return
489    }
490    
491    proc sequence_78 {} { upvar 1 myparser myparser
492        # x
493        #     <xdigit>
494        #     ?
495        #         x
496        #             <xdigit>
497        #             ?
498        #                 <xdigit>
499    
500        $myparser si:void_state_push
501        $myparser si:next_xdigit
502        $myparser si:voidvoid_part
503        optional_76
504        $myparser si:void_state_merge
505        return
506    }
507    
508    proc optional_76 {} { upvar 1 myparser myparser
509        # ?
510        #     x
511        #         <xdigit>
512        #         ?
513        #             <xdigit>
514    
515        $myparser si:void2_state_push
516        sequence_74
517        $myparser si:void_state_merge_ok
518        return
519    }
520    
521    proc sequence_74 {} { upvar 1 myparser myparser
522        # x
523        #     <xdigit>
524        #     ?
525        #         <xdigit>
526    
527        $myparser si:void_state_push
528        $myparser si:next_xdigit
529        $myparser si:voidvoid_part
530        optional_72
531        $myparser si:void_state_merge
532        return
533    }
534    
535    proc optional_72 {} { upvar 1 myparser myparser
536        # ?
537        #     <xdigit>
538    
539        $myparser si:void2_state_push
540        $myparser si:next_xdigit
541        $myparser si:void_state_merge_ok
542        return
543    }
544    
545    #
546    # value Symbol 'Class'
547    #
548    
549    proc sym_Class {} { upvar 1 myparser myparser
550        # x
551        #     (OPENB)
552        #     *
553        #         x
554        #             !
555        #                 (CLOSEB)
556        #             (Range)
557        #     (CLOSEB)
558        #     (WHITESPACE)
559    
560        $myparser si:value_symbol_start Class
561        sequence_96
562        $myparser si:reduce_symbol_end Class
563        return
564    }
565    
566    proc sequence_96 {} { upvar 1 myparser myparser
567        # x
568        #     (OPENB)
569        #     *
570        #         x
571        #             !
572        #                 (CLOSEB)
573        #             (Range)
574        #     (CLOSEB)
575        #     (WHITESPACE)
576    
577        $myparser si:void_state_push
578        sym_OPENB
579        $myparser si:voidvalue_part
580        kleene_92
581        $myparser si:valuevalue_part
582        sym_CLOSEB
583        $myparser si:valuevalue_part
584        sym_WHITESPACE
585        $myparser si:value_state_merge
586        return
587    }
588    
589    proc kleene_92 {} { upvar 1 myparser myparser
590        # *
591        #     x
592        #         !
593        #             (CLOSEB)
594        #         (Range)
595    
596        while {1} {
597            $myparser si:void2_state_push
598        sequence_90
599            $myparser si:kleene_close
600        }
601        return
602    }
603    
604    proc sequence_90 {} { upvar 1 myparser myparser
605        # x
606        #     !
607        #         (CLOSEB)
608        #     (Range)
609    
610        $myparser si:void_state_push
611        notahead_87
612        $myparser si:voidvalue_part
613        sym_Range
614        $myparser si:value_state_merge
615        return
616    }
617    
618    proc notahead_87 {} { upvar 1 myparser myparser
619        # !
620        #     (CLOSEB)
621    
622        $myparser i_loc_push
623        sym_CLOSEB
624        $myparser si:void_notahead_exit
625        return
626    }
627    
628    #
629    # void Symbol 'CLOSE'
630    #
631    
632    proc sym_CLOSE {} { upvar 1 myparser myparser
633        # x
634        #     '\)'
635        #     (WHITESPACE)
636    
637        $myparser si:void_void_symbol_start CLOSE
638        sequence_101
639        $myparser si:void_clear_symbol_end CLOSE
640        return
641    }
642    
643    proc sequence_101 {} { upvar 1 myparser myparser
644        # x
645        #     '\)'
646        #     (WHITESPACE)
647    
648        $myparser si:void_state_push
649        $myparser si:next_char \51
650        $myparser si:voidvoid_part
651        sym_WHITESPACE
652        $myparser si:void_state_merge
653        return
654    }
655    
656    #
657    # void Symbol 'CLOSEB'
658    #
659    
660    proc sym_CLOSEB {} { upvar 1 myparser myparser
661        # ']'
662    
663        $myparser si:void_void_symbol_start CLOSEB
664        $myparser si:next_char \135
665        $myparser si:void_clear_symbol_end CLOSEB
666        return
667    }
668    
669    #
670    # void Symbol 'COLON'
671    #
672    
673    proc sym_COLON {} { upvar 1 myparser myparser
674        # x
675        #     ':'
676        #     (WHITESPACE)
677    
678        $myparser si:void_void_symbol_start COLON
679        sequence_108
680        $myparser si:void_clear_symbol_end COLON
681        return
682    }
683    
684    proc sequence_108 {} { upvar 1 myparser myparser
685        # x
686        #     ':'
687        #     (WHITESPACE)
688    
689        $myparser si:void_state_push
690        $myparser si:next_char :
691        $myparser si:voidvoid_part
692        sym_WHITESPACE
693        $myparser si:void_state_merge
694        return
695    }
696    
697    #
698    # void Symbol 'COMMENT'
699    #
700    
701    proc sym_COMMENT {} { upvar 1 myparser myparser
702        # x
703        #     '#'
704        #     *
705        #         x
706        #             !
707        #                 (EOL)
708        #             <dot>
709        #     (EOL)
710    
711        $myparser si:void_void_symbol_start COMMENT
712        sequence_121
713        $myparser si:void_clear_symbol_end COMMENT
714        return
715    }
716    
717    proc sequence_121 {} { upvar 1 myparser myparser
718        # x
719        #     '#'
720        #     *
721        #         x
722        #             !
723        #                 (EOL)
724        #             <dot>
725        #     (EOL)
726    
727        $myparser si:void_state_push
728        $myparser si:next_char #
729        $myparser si:voidvoid_part
730        kleene_118
731        $myparser si:voidvoid_part
732        sym_EOL
733        $myparser si:void_state_merge
734        return
735    }
736    
737    proc kleene_118 {} { upvar 1 myparser myparser
738        # *
739        #     x
740        #         !
741        #             (EOL)
742        #         <dot>
743    
744        while {1} {
745            $myparser si:void2_state_push
746        sequence_116
747            $myparser si:kleene_close
748        }
749        return
750    }
751    
752    proc sequence_116 {} { upvar 1 myparser myparser
753        # x
754        #     !
755        #         (EOL)
756        #     <dot>
757    
758        $myparser si:void_state_push
759        notahead_113
760        $myparser si:voidvoid_part
761        $myparser i_input_next dot
762        $myparser si:void_state_merge
763        return
764    }
765    
766    proc notahead_113 {} { upvar 1 myparser myparser
767        # !
768        #     (EOL)
769    
770        $myparser i_loc_push
771        sym_EOL
772        $myparser si:void_notahead_exit
773        return
774    }
775    
776    #
777    # leaf Symbol 'CONTROL'
778    #
779    
780    proc sym_CONTROL {} { upvar 1 myparser myparser
781        # x
782        #     "<control>"
783        #     (WHITESPACE)
784    
785        $myparser si:void_symbol_start CONTROL
786        sequence_126
787        $myparser si:void_leaf_symbol_end CONTROL
788        return
789    }
790    
791    proc sequence_126 {} { upvar 1 myparser myparser
792        # x
793        #     "<control>"
794        #     (WHITESPACE)
795    
796        $myparser si:void_state_push
797        $myparser si:next_str <control>
798        $myparser si:voidvoid_part
799        sym_WHITESPACE
800        $myparser si:void_state_merge
801        return
802    }
803    
804    #
805    # void Symbol 'DAPOSTROPH'
806    #
807    
808    proc sym_DAPOSTROPH {} { upvar 1 myparser myparser
809        # '\"'
810    
811        $myparser si:void_void_symbol_start DAPOSTROPH
812        $myparser si:next_char \42
813        $myparser si:void_clear_symbol_end DAPOSTROPH
814        return
815    }
816    
817    #
818    # leaf Symbol 'DDIGIT'
819    #
820    
821    proc sym_DDIGIT {} { upvar 1 myparser myparser
822        # x
823        #     "<ddigit>"
824        #     (WHITESPACE)
825    
826        $myparser si:void_symbol_start DDIGIT
827        sequence_133
828        $myparser si:void_leaf_symbol_end DDIGIT
829        return
830    }
831    
832    proc sequence_133 {} { upvar 1 myparser myparser
833        # x
834        #     "<ddigit>"
835        #     (WHITESPACE)
836    
837        $myparser si:void_state_push
838        $myparser si:next_str <ddigit>
839        $myparser si:voidvoid_part
840        sym_WHITESPACE
841        $myparser si:void_state_merge
842        return
843    }
844    
845    #
846    # value Symbol 'Definition'
847    #
848    
849    proc sym_Definition {} { upvar 1 myparser myparser
850        # x
851        #     ?
852        #         (Attribute)
853        #     (Identifier)
854        #     (IS)
855        #     (Expression)
856        #     (SEMICOLON)
857    
858        $myparser si:value_symbol_start Definition
859        sequence_143
860        $myparser si:reduce_symbol_end Definition
861        return
862    }
863    
864    proc sequence_143 {} { upvar 1 myparser myparser
865        # x
866        #     ?
867        #         (Attribute)
868        #     (Identifier)
869        #     (IS)
870        #     (Expression)
871        #     (SEMICOLON)
872    
873        $myparser si:value_state_push
874        optional_137
875        $myparser si:valuevalue_part
876        sym_Identifier
877        $myparser si:valuevalue_part
878        sym_IS
879        $myparser si:valuevalue_part
880        sym_Expression
881        $myparser si:valuevalue_part
882        sym_SEMICOLON
883        $myparser si:value_state_merge
884        return
885    }
886    
887    proc optional_137 {} { upvar 1 myparser myparser
888        # ?
889        #     (Attribute)
890    
891        $myparser si:void2_state_push
892        sym_Attribute
893        $myparser si:void_state_merge_ok
894        return
895    }
896    
897    #
898    # leaf Symbol 'DIGIT'
899    #
900    
901    proc sym_DIGIT {} { upvar 1 myparser myparser
902        # x
903        #     "<digit>"
904        #     (WHITESPACE)
905    
906        $myparser si:void_symbol_start DIGIT
907        sequence_148
908        $myparser si:void_leaf_symbol_end DIGIT
909        return
910    }
911    
912    proc sequence_148 {} { upvar 1 myparser myparser
913        # x
914        #     "<digit>"
915        #     (WHITESPACE)
916    
917        $myparser si:void_state_push
918        $myparser si:next_str <digit>
919        $myparser si:voidvoid_part
920        sym_WHITESPACE
921        $myparser si:void_state_merge
922        return
923    }
924    
925    #
926    # leaf Symbol 'DOT'
927    #
928    
929    proc sym_DOT {} { upvar 1 myparser myparser
930        # x
931        #     '.'
932        #     (WHITESPACE)
933    
934        $myparser si:void_symbol_start DOT
935        sequence_153
936        $myparser si:void_leaf_symbol_end DOT
937        return
938    }
939    
940    proc sequence_153 {} { upvar 1 myparser myparser
941        # x
942        #     '.'
943        #     (WHITESPACE)
944    
945        $myparser si:void_state_push
946        $myparser si:next_char .
947        $myparser si:voidvoid_part
948        sym_WHITESPACE
949        $myparser si:void_state_merge
950        return
951    }
952    
953    #
954    # void Symbol 'END'
955    #
956    
957    proc sym_END {} { upvar 1 myparser myparser
958        # x
959        #     "END"
960        #     (WHITESPACE)
961    
962        $myparser si:void_void_symbol_start END
963        sequence_158
964        $myparser si:void_clear_symbol_end END
965        return
966    }
967    
968    proc sequence_158 {} { upvar 1 myparser myparser
969        # x
970        #     "END"
971        #     (WHITESPACE)
972    
973        $myparser si:void_state_push
974        $myparser si:next_str END
975        $myparser si:voidvoid_part
976        sym_WHITESPACE
977        $myparser si:void_state_merge
978        return
979    }
980    
981    #
982    # void Symbol 'EOF'
983    #
984    
985    proc sym_EOF {} { upvar 1 myparser myparser
986        # !
987        #     <dot>
988    
989        $myparser si:void_void_symbol_start EOF
990        notahead_162
991        $myparser si:void_clear_symbol_end EOF
992        return
993    }
994    
995    proc notahead_162 {} { upvar 1 myparser myparser
996        # !
997        #     <dot>
998    
999        $myparser i_loc_push
1000        $myparser i_input_next dot
1001        $myparser si:void_notahead_exit
1002        return
1003    }
1004    
1005    #
1006    # void Symbol 'EOL'
1007    #
1008    
1009    proc sym_EOL {} { upvar 1 myparser myparser
1010        # [\n\r]
1011    
1012        $myparser si:void_void_symbol_start EOL
1013        $myparser si:next_class \n\r
1014        $myparser si:void_clear_symbol_end EOL
1015        return
1016    }
1017    
1018    #
1019    # value Symbol 'Expression'
1020    #
1021    
1022    proc sym_Expression {} { upvar 1 myparser myparser
1023        # x
1024        #     (Sequence)
1025        #     *
1026        #         x
1027        #             (SLASH)
1028        #             (Sequence)
1029    
1030        $myparser si:value_symbol_start Expression
1031        sequence_174
1032        $myparser si:reduce_symbol_end Expression
1033        return
1034    }
1035    
1036    proc sequence_174 {} { upvar 1 myparser myparser
1037        # x
1038        #     (Sequence)
1039        #     *
1040        #         x
1041        #             (SLASH)
1042        #             (Sequence)
1043    
1044        $myparser si:value_state_push
1045        sym_Sequence
1046        $myparser si:valuevalue_part
1047        kleene_172
1048        $myparser si:value_state_merge
1049        return
1050    }
1051    
1052    proc kleene_172 {} { upvar 1 myparser myparser
1053        # *
1054        #     x
1055        #         (SLASH)
1056        #         (Sequence)
1057    
1058        while {1} {
1059            $myparser si:void2_state_push
1060        sequence_170
1061            $myparser si:kleene_close
1062        }
1063        return
1064    }
1065    
1066    proc sequence_170 {} { upvar 1 myparser myparser
1067        # x
1068        #     (SLASH)
1069        #     (Sequence)
1070    
1071        $myparser si:void_state_push
1072        sym_SLASH
1073        $myparser si:voidvalue_part
1074        sym_Sequence
1075        $myparser si:value_state_merge
1076        return
1077    }
1078    
1079    #
1080    # void Symbol 'Final'
1081    #
1082    
1083    proc sym_Final {} { upvar 1 myparser myparser
1084        # x
1085        #     (END)
1086        #     (SEMICOLON)
1087        #     (WHITESPACE)
1088    
1089        $myparser si:void_void_symbol_start Final
1090        sequence_180
1091        $myparser si:void_clear_symbol_end Final
1092        return
1093    }
1094    
1095    proc sequence_180 {} { upvar 1 myparser myparser
1096        # x
1097        #     (END)
1098        #     (SEMICOLON)
1099        #     (WHITESPACE)
1100    
1101        $myparser si:void_state_push
1102        sym_END
1103        $myparser si:voidvoid_part
1104        sym_SEMICOLON
1105        $myparser si:voidvoid_part
1106        sym_WHITESPACE
1107        $myparser si:void_state_merge
1108        return
1109    }
1110    
1111    #
1112    # value Symbol 'Grammar'
1113    #
1114    
1115    proc sym_Grammar {} { upvar 1 myparser myparser
1116        # x
1117        #     (WHITESPACE)
1118        #     (Header)
1119        #     *
1120        #         (Definition)
1121        #     (Final)
1122        #     (EOF)
1123    
1124        $myparser si:value_symbol_start Grammar
1125        sequence_190
1126        $myparser si:reduce_symbol_end Grammar
1127        return
1128    }
1129    
1130    proc sequence_190 {} { upvar 1 myparser myparser
1131        # x
1132        #     (WHITESPACE)
1133        #     (Header)
1134        #     *
1135        #         (Definition)
1136        #     (Final)
1137        #     (EOF)
1138    
1139        $myparser si:void_state_push
1140        sym_WHITESPACE
1141        $myparser si:voidvalue_part
1142        sym_Header
1143        $myparser si:valuevalue_part
1144        kleene_186
1145        $myparser si:valuevalue_part
1146        sym_Final
1147        $myparser si:valuevalue_part
1148        sym_EOF
1149        $myparser si:value_state_merge
1150        return
1151    }
1152    
1153    proc kleene_186 {} { upvar 1 myparser myparser
1154        # *
1155        #     (Definition)
1156    
1157        while {1} {
1158            $myparser si:void2_state_push
1159        sym_Definition
1160            $myparser si:kleene_close
1161        }
1162        return
1163    }
1164    
1165    #
1166    # leaf Symbol 'GRAPH'
1167    #
1168    
1169    proc sym_GRAPH {} { upvar 1 myparser myparser
1170        # x
1171        #     "<graph>"
1172        #     (WHITESPACE)
1173    
1174        $myparser si:void_symbol_start GRAPH
1175        sequence_195
1176        $myparser si:void_leaf_symbol_end GRAPH
1177        return
1178    }
1179    
1180    proc sequence_195 {} { upvar 1 myparser myparser
1181        # x
1182        #     "<graph>"
1183        #     (WHITESPACE)
1184    
1185        $myparser si:void_state_push
1186        $myparser si:next_str <graph>
1187        $myparser si:voidvoid_part
1188        sym_WHITESPACE
1189        $myparser si:void_state_merge
1190        return
1191    }
1192    
1193    #
1194    # value Symbol 'Header'
1195    #
1196    
1197    proc sym_Header {} { upvar 1 myparser myparser
1198        # x
1199        #     (PEG)
1200        #     (Identifier)
1201        #     (StartExpr)
1202    
1203        $myparser si:value_symbol_start Header
1204        sequence_201
1205        $myparser si:reduce_symbol_end Header
1206        return
1207    }
1208    
1209    proc sequence_201 {} { upvar 1 myparser myparser
1210        # x
1211        #     (PEG)
1212        #     (Identifier)
1213        #     (StartExpr)
1214    
1215        $myparser si:void_state_push
1216        sym_PEG
1217        $myparser si:voidvalue_part
1218        sym_Identifier
1219        $myparser si:valuevalue_part
1220        sym_StartExpr
1221        $myparser si:value_state_merge
1222        return
1223    }
1224    
1225    #
1226    # leaf Symbol 'Ident'
1227    #
1228    
1229    proc sym_Ident {} { upvar 1 myparser myparser
1230        # x
1231        #     /
1232        #         [_:]
1233        #         <alpha>
1234        #     *
1235        #         /
1236        #             [_:]
1237        #             <alnum>
1238    
1239        $myparser si:void_symbol_start Ident
1240        sequence_214
1241        $myparser si:void_leaf_symbol_end Ident
1242        return
1243    }
1244    
1245    proc sequence_214 {} { upvar 1 myparser myparser
1246        # x
1247        #     /
1248        #         [_:]
1249        #         <alpha>
1250        #     *
1251        #         /
1252        #             [_:]
1253        #             <alnum>
1254    
1255        $myparser si:void_state_push
1256        choice_206
1257        $myparser si:voidvoid_part
1258        kleene_212
1259        $myparser si:void_state_merge
1260        return
1261    }
1262    
1263    proc choice_206 {} { upvar 1 myparser myparser
1264        # /
1265        #     [_:]
1266        #     <alpha>
1267    
1268        $myparser si:void_state_push
1269        $myparser si:next_class _:
1270        $myparser si:voidvoid_branch
1271        $myparser si:next_alpha
1272        $myparser si:void_state_merge
1273        return
1274    }
1275    
1276    proc kleene_212 {} { upvar 1 myparser myparser
1277        # *
1278        #     /
1279        #         [_:]
1280        #         <alnum>
1281    
1282        while {1} {
1283            $myparser si:void2_state_push
1284        choice_210
1285            $myparser si:kleene_close
1286        }
1287        return
1288    }
1289    
1290    proc choice_210 {} { upvar 1 myparser myparser
1291        # /
1292        #     [_:]
1293        #     <alnum>
1294    
1295        $myparser si:void_state_push
1296        $myparser si:next_class _:
1297        $myparser si:voidvoid_branch
1298        $myparser si:next_alnum
1299        $myparser si:void_state_merge
1300        return
1301    }
1302    
1303    #
1304    # value Symbol 'Identifier'
1305    #
1306    
1307    proc sym_Identifier {} { upvar 1 myparser myparser
1308        # x
1309        #     (Ident)
1310        #     (WHITESPACE)
1311    
1312        $myparser si:value_symbol_start Identifier
1313        sequence_219
1314        $myparser si:reduce_symbol_end Identifier
1315        return
1316    }
1317    
1318    proc sequence_219 {} { upvar 1 myparser myparser
1319        # x
1320        #     (Ident)
1321        #     (WHITESPACE)
1322    
1323        $myparser si:value_state_push
1324        sym_Ident
1325        $myparser si:valuevalue_part
1326        sym_WHITESPACE
1327        $myparser si:value_state_merge
1328        return
1329    }
1330    
1331    #
1332    # void Symbol 'IS'
1333    #
1334    
1335    proc sym_IS {} { upvar 1 myparser myparser
1336        # x
1337        #     "<-"
1338        #     (WHITESPACE)
1339    
1340        $myparser si:void_void_symbol_start IS
1341        sequence_224
1342        $myparser si:void_clear_symbol_end IS
1343        return
1344    }
1345    
1346    proc sequence_224 {} { upvar 1 myparser myparser
1347        # x
1348        #     "<-"
1349        #     (WHITESPACE)
1350    
1351        $myparser si:void_state_push
1352        $myparser si:next_str <-
1353        $myparser si:voidvoid_part
1354        sym_WHITESPACE
1355        $myparser si:void_state_merge
1356        return
1357    }
1358    
1359    #
1360    # leaf Symbol 'LEAF'
1361    #
1362    
1363    proc sym_LEAF {} { upvar 1 myparser myparser
1364        # x
1365        #     "leaf"
1366        #     (WHITESPACE)
1367    
1368        $myparser si:void_symbol_start LEAF
1369        sequence_229
1370        $myparser si:void_leaf_symbol_end LEAF
1371        return
1372    }
1373    
1374    proc sequence_229 {} { upvar 1 myparser myparser
1375        # x
1376        #     "leaf"
1377        #     (WHITESPACE)
1378    
1379        $myparser si:void_state_push
1380        $myparser si:next_str leaf
1381        $myparser si:voidvoid_part
1382        sym_WHITESPACE
1383        $myparser si:void_state_merge
1384        return
1385    }
1386    
1387    #
1388    # value Symbol 'Literal'
1389    #
1390    
1391    proc sym_Literal {} { upvar 1 myparser myparser
1392        # /
1393        #     x
1394        #         (APOSTROPH)
1395        #         *
1396        #             x
1397        #                 !
1398        #                     (APOSTROPH)
1399        #                 (Char)
1400        #         (APOSTROPH)
1401        #         (WHITESPACE)
1402        #     x
1403        #         (DAPOSTROPH)
1404        #         *
1405        #             x
1406        #                 !
1407        #                     (DAPOSTROPH)
1408        #                 (Char)
1409        #         (DAPOSTROPH)
1410        #         (WHITESPACE)
1411    
1412        $myparser si:value_symbol_start Literal
1413        choice_258
1414        $myparser si:reduce_symbol_end Literal
1415        return
1416    }
1417    
1418    proc choice_258 {} { upvar 1 myparser myparser
1419        # /
1420        #     x
1421        #         (APOSTROPH)
1422        #         *
1423        #             x
1424        #                 !
1425        #                     (APOSTROPH)
1426        #                 (Char)
1427        #         (APOSTROPH)
1428        #         (WHITESPACE)
1429        #     x
1430        #         (DAPOSTROPH)
1431        #         *
1432        #             x
1433        #                 !
1434        #                     (DAPOSTROPH)
1435        #                 (Char)
1436        #         (DAPOSTROPH)
1437        #         (WHITESPACE)
1438    
1439        $myparser si:value_state_push
1440        sequence_243
1441        $myparser si:valuevalue_branch
1442        sequence_256
1443        $myparser si:value_state_merge
1444        return
1445    }
1446    
1447    proc sequence_243 {} { upvar 1 myparser myparser
1448        # x
1449        #     (APOSTROPH)
1450        #     *
1451        #         x
1452        #             !
1453        #                 (APOSTROPH)
1454        #             (Char)
1455        #     (APOSTROPH)
1456        #     (WHITESPACE)
1457    
1458        $myparser si:void_state_push
1459        sym_APOSTROPH
1460        $myparser si:voidvalue_part
1461        kleene_239
1462        $myparser si:valuevalue_part
1463        sym_APOSTROPH
1464        $myparser si:valuevalue_part
1465        sym_WHITESPACE
1466        $myparser si:value_state_merge
1467        return
1468    }
1469    
1470    proc kleene_239 {} { upvar 1 myparser myparser
1471        # *
1472        #     x
1473        #         !
1474        #             (APOSTROPH)
1475        #         (Char)
1476    
1477        while {1} {
1478            $myparser si:void2_state_push
1479        sequence_237
1480            $myparser si:kleene_close
1481        }
1482        return
1483    }
1484    
1485    proc sequence_237 {} { upvar 1 myparser myparser
1486        # x
1487        #     !
1488        #         (APOSTROPH)
1489        #     (Char)
1490    
1491        $myparser si:void_state_push
1492        notahead_234
1493        $myparser si:voidvalue_part
1494        sym_Char
1495        $myparser si:value_state_merge
1496        return
1497    }
1498    
1499    proc notahead_234 {} { upvar 1 myparser myparser
1500        # !
1501        #     (APOSTROPH)
1502    
1503        $myparser i_loc_push
1504        sym_APOSTROPH
1505        $myparser si:void_notahead_exit
1506        return
1507    }
1508    
1509    proc sequence_256 {} { upvar 1 myparser myparser
1510        # x
1511        #     (DAPOSTROPH)
1512        #     *
1513        #         x
1514        #             !
1515        #                 (DAPOSTROPH)
1516        #             (Char)
1517        #     (DAPOSTROPH)
1518        #     (WHITESPACE)
1519    
1520        $myparser si:void_state_push
1521        sym_DAPOSTROPH
1522        $myparser si:voidvalue_part
1523        kleene_252
1524        $myparser si:valuevalue_part
1525        sym_DAPOSTROPH
1526        $myparser si:valuevalue_part
1527        sym_WHITESPACE
1528        $myparser si:value_state_merge
1529        return
1530    }
1531    
1532    proc kleene_252 {} { upvar 1 myparser myparser
1533        # *
1534        #     x
1535        #         !
1536        #             (DAPOSTROPH)
1537        #         (Char)
1538    
1539        while {1} {
1540            $myparser si:void2_state_push
1541        sequence_250
1542            $myparser si:kleene_close
1543        }
1544        return
1545    }
1546    
1547    proc sequence_250 {} { upvar 1 myparser myparser
1548        # x
1549        #     !
1550        #         (DAPOSTROPH)
1551        #     (Char)
1552    
1553        $myparser si:void_state_push
1554        notahead_247
1555        $myparser si:voidvalue_part
1556        sym_Char
1557        $myparser si:value_state_merge
1558        return
1559    }
1560    
1561    proc notahead_247 {} { upvar 1 myparser myparser
1562        # !
1563        #     (DAPOSTROPH)
1564    
1565        $myparser i_loc_push
1566        sym_DAPOSTROPH
1567        $myparser si:void_notahead_exit
1568        return
1569    }
1570    
1571    #
1572    # leaf Symbol 'LOWER'
1573    #
1574    
1575    proc sym_LOWER {} { upvar 1 myparser myparser
1576        # x
1577        #     "<lower>"
1578        #     (WHITESPACE)
1579    
1580        $myparser si:void_symbol_start LOWER
1581        sequence_263
1582        $myparser si:void_leaf_symbol_end LOWER
1583        return
1584    }
1585    
1586    proc sequence_263 {} { upvar 1 myparser myparser
1587        # x
1588        #     "<lower>"
1589        #     (WHITESPACE)
1590    
1591        $myparser si:void_state_push
1592        $myparser si:next_str <lower>
1593        $myparser si:voidvoid_part
1594        sym_WHITESPACE
1595        $myparser si:void_state_merge
1596        return
1597    }
1598    
1599    #
1600    # leaf Symbol 'NOT'
1601    #
1602    
1603    proc sym_NOT {} { upvar 1 myparser myparser
1604        # x
1605        #     '!'
1606        #     (WHITESPACE)
1607    
1608        $myparser si:void_symbol_start NOT
1609        sequence_268
1610        $myparser si:void_leaf_symbol_end NOT
1611        return
1612    }
1613    
1614    proc sequence_268 {} { upvar 1 myparser myparser
1615        # x
1616        #     '!'
1617        #     (WHITESPACE)
1618    
1619        $myparser si:void_state_push
1620        $myparser si:next_char !
1621        $myparser si:voidvoid_part
1622        sym_WHITESPACE
1623        $myparser si:void_state_merge
1624        return
1625    }
1626    
1627    #
1628    # void Symbol 'OPEN'
1629    #
1630    
1631    proc sym_OPEN {} { upvar 1 myparser myparser
1632        # x
1633        #     '\('
1634        #     (WHITESPACE)
1635    
1636        $myparser si:void_void_symbol_start OPEN
1637        sequence_273
1638        $myparser si:void_clear_symbol_end OPEN
1639        return
1640    }
1641    
1642    proc sequence_273 {} { upvar 1 myparser myparser
1643        # x
1644        #     '\('
1645        #     (WHITESPACE)
1646    
1647        $myparser si:void_state_push
1648        $myparser si:next_char \50
1649        $myparser si:voidvoid_part
1650        sym_WHITESPACE
1651        $myparser si:void_state_merge
1652        return
1653    }
1654    
1655    #
1656    # void Symbol 'OPENB'
1657    #
1658    
1659    proc sym_OPENB {} { upvar 1 myparser myparser
1660        # '['
1661    
1662        $myparser si:void_void_symbol_start OPENB
1663        $myparser si:next_char \133
1664        $myparser si:void_clear_symbol_end OPENB
1665        return
1666    }
1667    
1668    #
1669    # void Symbol 'PEG'
1670    #
1671    
1672    proc sym_PEG {} { upvar 1 myparser myparser
1673        # x
1674        #     "PEG"
1675        #     (WHITESPACE)
1676    
1677        $myparser si:void_void_symbol_start PEG
1678        sequence_280
1679        $myparser si:void_clear_symbol_end PEG
1680        return
1681    }
1682    
1683    proc sequence_280 {} { upvar 1 myparser myparser
1684        # x
1685        #     "PEG"
1686        #     (WHITESPACE)
1687    
1688        $myparser si:void_state_push
1689        $myparser si:next_str PEG
1690        $myparser si:voidvoid_part
1691        sym_WHITESPACE
1692        $myparser si:void_state_merge
1693        return
1694    }
1695    
1696    #
1697    # leaf Symbol 'PLUS'
1698    #
1699    
1700    proc sym_PLUS {} { upvar 1 myparser myparser
1701        # x
1702        #     '+'
1703        #     (WHITESPACE)
1704    
1705        $myparser si:void_symbol_start PLUS
1706        sequence_285
1707        $myparser si:void_leaf_symbol_end PLUS
1708        return
1709    }
1710    
1711    proc sequence_285 {} { upvar 1 myparser myparser
1712        # x
1713        #     '+'
1714        #     (WHITESPACE)
1715    
1716        $myparser si:void_state_push
1717        $myparser si:next_char +
1718        $myparser si:voidvoid_part
1719        sym_WHITESPACE
1720        $myparser si:void_state_merge
1721        return
1722    }
1723    
1724    #
1725    # value Symbol 'Prefix'
1726    #
1727    
1728    proc sym_Prefix {} { upvar 1 myparser myparser
1729        # x
1730        #     ?
1731        #         /
1732        #             (AND)
1733        #             (NOT)
1734        #     (Suffix)
1735    
1736        $myparser si:value_symbol_start Prefix
1737        sequence_295
1738        $myparser si:reduce_symbol_end Prefix
1739        return
1740    }
1741    
1742    proc sequence_295 {} { upvar 1 myparser myparser
1743        # x
1744        #     ?
1745        #         /
1746        #             (AND)
1747        #             (NOT)
1748        #     (Suffix)
1749    
1750        $myparser si:value_state_push
1751        optional_292
1752        $myparser si:valuevalue_part
1753        sym_Suffix
1754        $myparser si:value_state_merge
1755        return
1756    }
1757    
1758    proc optional_292 {} { upvar 1 myparser myparser
1759        # ?
1760        #     /
1761        #         (AND)
1762        #         (NOT)
1763    
1764        $myparser si:void2_state_push
1765        choice_290
1766        $myparser si:void_state_merge_ok
1767        return
1768    }
1769    
1770    proc choice_290 {} { upvar 1 myparser myparser
1771        # /
1772        #     (AND)
1773        #     (NOT)
1774    
1775        $myparser si:value_state_push
1776        sym_AND
1777        $myparser si:valuevalue_branch
1778        sym_NOT
1779        $myparser si:value_state_merge
1780        return
1781    }
1782    
1783    #
1784    # value Symbol 'Primary'
1785    #
1786    
1787    proc sym_Primary {} { upvar 1 myparser myparser
1788        # /
1789        #     (ALNUM)
1790        #     (ALPHA)
1791        #     (ASCII)
1792        #     (CONTROL)
1793        #     (DDIGIT)
1794        #     (DIGIT)
1795        #     (GRAPH)
1796        #     (LOWER)
1797        #     (PRINTABLE)
1798        #     (PUNCT)
1799        #     (SPACE)
1800        #     (UPPER)
1801        #     (WORDCHAR)
1802        #     (XDIGIT)
1803        #     (Identifier)
1804        #     x
1805        #         (OPEN)
1806        #         (Expression)
1807        #         (CLOSE)
1808        #     (Literal)
1809        #     (Class)
1810        #     (DOT)
1811    
1812        $myparser si:value_symbol_start Primary
1813        choice_321
1814        $myparser si:reduce_symbol_end Primary
1815        return
1816    }
1817    
1818    proc choice_321 {} { upvar 1 myparser myparser
1819        # /
1820        #     (ALNUM)
1821        #     (ALPHA)
1822        #     (ASCII)
1823        #     (CONTROL)
1824        #     (DDIGIT)
1825        #     (DIGIT)
1826        #     (GRAPH)
1827        #     (LOWER)
1828        #     (PRINTABLE)
1829        #     (PUNCT)
1830        #     (SPACE)
1831        #     (UPPER)
1832        #     (WORDCHAR)
1833        #     (XDIGIT)
1834        #     (Identifier)
1835        #     x
1836        #         (OPEN)
1837        #         (Expression)
1838        #         (CLOSE)
1839        #     (Literal)
1840        #     (Class)
1841        #     (DOT)
1842    
1843        $myparser si:value_state_push
1844        sym_ALNUM
1845        $myparser si:valuevalue_branch
1846        sym_ALPHA
1847        $myparser si:valuevalue_branch
1848        sym_ASCII
1849        $myparser si:valuevalue_branch
1850        sym_CONTROL
1851        $myparser si:valuevalue_branch
1852        sym_DDIGIT
1853        $myparser si:valuevalue_branch
1854        sym_DIGIT
1855        $myparser si:valuevalue_branch
1856        sym_GRAPH
1857        $myparser si:valuevalue_branch
1858        sym_LOWER
1859        $myparser si:valuevalue_branch
1860        sym_PRINTABLE
1861        $myparser si:valuevalue_branch
1862        sym_PUNCT
1863        $myparser si:valuevalue_branch
1864        sym_SPACE
1865        $myparser si:valuevalue_branch
1866        sym_UPPER
1867        $myparser si:valuevalue_branch
1868        sym_WORDCHAR
1869        $myparser si:valuevalue_branch
1870        sym_XDIGIT
1871        $myparser si:valuevalue_branch
1872        sym_Identifier
1873        $myparser si:valuevalue_branch
1874        sequence_316
1875        $myparser si:valuevalue_branch
1876        sym_Literal
1877        $myparser si:valuevalue_branch
1878        sym_Class
1879        $myparser si:valuevalue_branch
1880        sym_DOT
1881        $myparser si:value_state_merge
1882        return
1883    }
1884    
1885    proc sequence_316 {} { upvar 1 myparser myparser
1886        # x
1887        #     (OPEN)
1888        #     (Expression)
1889        #     (CLOSE)
1890    
1891        $myparser si:void_state_push
1892        sym_OPEN
1893        $myparser si:voidvalue_part
1894        sym_Expression
1895        $myparser si:valuevalue_part
1896        sym_CLOSE
1897        $myparser si:value_state_merge
1898        return
1899    }
1900    
1901    #
1902    # leaf Symbol 'PRINTABLE'
1903    #
1904    
1905    proc sym_PRINTABLE {} { upvar 1 myparser myparser
1906        # x
1907        #     "<print>"
1908        #     (WHITESPACE)
1909    
1910        $myparser si:void_symbol_start PRINTABLE
1911        sequence_326
1912        $myparser si:void_leaf_symbol_end PRINTABLE
1913        return
1914    }
1915    
1916    proc sequence_326 {} { upvar 1 myparser myparser
1917        # x
1918        #     "<print>"
1919        #     (WHITESPACE)
1920    
1921        $myparser si:void_state_push
1922        $myparser si:next_str <print>
1923        $myparser si:voidvoid_part
1924        sym_WHITESPACE
1925        $myparser si:void_state_merge
1926        return
1927    }
1928    
1929    #
1930    # leaf Symbol 'PUNCT'
1931    #
1932    
1933    proc sym_PUNCT {} { upvar 1 myparser myparser
1934        # x
1935        #     "<punct>"
1936        #     (WHITESPACE)
1937    
1938        $myparser si:void_symbol_start PUNCT
1939        sequence_331
1940        $myparser si:void_leaf_symbol_end PUNCT
1941        return
1942    }
1943    
1944    proc sequence_331 {} { upvar 1 myparser myparser
1945        # x
1946        #     "<punct>"
1947        #     (WHITESPACE)
1948    
1949        $myparser si:void_state_push
1950        $myparser si:next_str <punct>
1951        $myparser si:voidvoid_part
1952        sym_WHITESPACE
1953        $myparser si:void_state_merge
1954        return
1955    }
1956    
1957    #
1958    # leaf Symbol 'QUESTION'
1959    #
1960    
1961    proc sym_QUESTION {} { upvar 1 myparser myparser
1962        # x
1963        #     '?'
1964        #     (WHITESPACE)
1965    
1966        $myparser si:void_symbol_start QUESTION
1967        sequence_336
1968        $myparser si:void_leaf_symbol_end QUESTION
1969        return
1970    }
1971    
1972    proc sequence_336 {} { upvar 1 myparser myparser
1973        # x
1974        #     '?'
1975        #     (WHITESPACE)
1976    
1977        $myparser si:void_state_push
1978        $myparser si:next_char ?
1979        $myparser si:voidvoid_part
1980        sym_WHITESPACE
1981        $myparser si:void_state_merge
1982        return
1983    }
1984    
1985    #
1986    # value Symbol 'Range'
1987    #
1988    
1989    proc sym_Range {} { upvar 1 myparser myparser
1990        # /
1991        #     x
1992        #         (Char)
1993        #         (TO)
1994        #         (Char)
1995        #     (Char)
1996    
1997        $myparser si:value_symbol_start Range
1998        choice_345
1999        $myparser si:reduce_symbol_end Range
2000        return
2001    }
2002    
2003    proc choice_345 {} { upvar 1 myparser myparser
2004        # /
2005        #     x
2006        #         (Char)
2007        #         (TO)
2008        #         (Char)
2009        #     (Char)
2010    
2011        $myparser si:value_state_push
2012        sequence_342
2013        $myparser si:valuevalue_branch
2014        sym_Char
2015        $myparser si:value_state_merge
2016        return
2017    }
2018    
2019    proc sequence_342 {} { upvar 1 myparser myparser
2020        # x
2021        #     (Char)
2022        #     (TO)
2023        #     (Char)
2024    
2025        $myparser si:value_state_push
2026        sym_Char
2027        $myparser si:valuevalue_part
2028        sym_TO
2029        $myparser si:valuevalue_part
2030        sym_Char
2031        $myparser si:value_state_merge
2032        return
2033    }
2034    
2035    #
2036    # void Symbol 'SEMICOLON'
2037    #
2038    
2039    proc sym_SEMICOLON {} { upvar 1 myparser myparser
2040        # x
2041        #     ';'
2042        #     (WHITESPACE)
2043    
2044        $myparser si:void_void_symbol_start SEMICOLON
2045        sequence_350
2046        $myparser si:void_clear_symbol_end SEMICOLON
2047        return
2048    }
2049    
2050    proc sequence_350 {} { upvar 1 myparser myparser
2051        # x
2052        #     ';'
2053        #     (WHITESPACE)
2054    
2055        $myparser si:void_state_push
2056        $myparser si:next_char \73
2057        $myparser si:voidvoid_part
2058        sym_WHITESPACE
2059        $myparser si:void_state_merge
2060        return
2061    }
2062    
2063    #
2064    # value Symbol 'Sequence'
2065    #
2066    
2067    proc sym_Sequence {} { upvar 1 myparser myparser
2068        # +
2069        #     (Prefix)
2070    
2071        $myparser si:value_symbol_start Sequence
2072        poskleene_354
2073        $myparser si:reduce_symbol_end Sequence
2074        return
2075    }
2076    
2077    proc poskleene_354 {} { upvar 1 myparser myparser
2078        # +
2079        #     (Prefix)
2080    
2081        $myparser i_loc_push
2082        sym_Prefix
2083        $myparser si:kleene_abort
2084        while {1} {
2085            $myparser si:void2_state_push
2086        sym_Prefix
2087            $myparser si:kleene_close
2088        }
2089        return
2090    }
2091    
2092    #
2093    # void Symbol 'SLASH'
2094    #
2095    
2096    proc sym_SLASH {} { upvar 1 myparser myparser
2097        # x
2098        #     '/'
2099        #     (WHITESPACE)
2100    
2101        $myparser si:void_void_symbol_start SLASH
2102        sequence_359
2103        $myparser si:void_clear_symbol_end SLASH
2104        return
2105    }
2106    
2107    proc sequence_359 {} { upvar 1 myparser myparser
2108        # x
2109        #     '/'
2110        #     (WHITESPACE)
2111    
2112        $myparser si:void_state_push
2113        $myparser si:next_char /
2114        $myparser si:voidvoid_part
2115        sym_WHITESPACE
2116        $myparser si:void_state_merge
2117        return
2118    }
2119    
2120    #
2121    # leaf Symbol 'SPACE'
2122    #
2123    
2124    proc sym_SPACE {} { upvar 1 myparser myparser
2125        # x
2126        #     "<space>"
2127        #     (WHITESPACE)
2128    
2129        $myparser si:void_symbol_start SPACE
2130        sequence_364
2131        $myparser si:void_leaf_symbol_end SPACE
2132        return
2133    }
2134    
2135    proc sequence_364 {} { upvar 1 myparser myparser
2136        # x
2137        #     "<space>"
2138        #     (WHITESPACE)
2139    
2140        $myparser si:void_state_push
2141        $myparser si:next_str <space>
2142        $myparser si:voidvoid_part
2143        sym_WHITESPACE
2144        $myparser si:void_state_merge
2145        return
2146    }
2147    
2148    #
2149    # leaf Symbol 'STAR'
2150    #
2151    
2152    proc sym_STAR {} { upvar 1 myparser myparser
2153        # x
2154        #     '*'
2155        #     (WHITESPACE)
2156    
2157        $myparser si:void_symbol_start STAR
2158        sequence_369
2159        $myparser si:void_leaf_symbol_end STAR
2160        return
2161    }
2162    
2163    proc sequence_369 {} { upvar 1 myparser myparser
2164        # x
2165        #     '*'
2166        #     (WHITESPACE)
2167    
2168        $myparser si:void_state_push
2169        $myparser si:next_char *
2170        $myparser si:voidvoid_part
2171        sym_WHITESPACE
2172        $myparser si:void_state_merge
2173        return
2174    }
2175    
2176    #
2177    # value Symbol 'StartExpr'
2178    #
2179    
2180    proc sym_StartExpr {} { upvar 1 myparser myparser
2181        # x
2182        #     (OPEN)
2183        #     (Expression)
2184        #     (CLOSE)
2185    
2186        $myparser si:value_symbol_start StartExpr
2187        sequence_316
2188        $myparser si:reduce_symbol_end StartExpr
2189        return
2190    }
2191    
2192    #
2193    # value Symbol 'Suffix'
2194    #
2195    
2196    proc sym_Suffix {} { upvar 1 myparser myparser
2197        # x
2198        #     (Primary)
2199        #     ?
2200        #         /
2201        #             (QUESTION)
2202        #             (STAR)
2203        #             (PLUS)
2204    
2205        $myparser si:value_symbol_start Suffix
2206        sequence_385
2207        $myparser si:reduce_symbol_end Suffix
2208        return
2209    }
2210    
2211    proc sequence_385 {} { upvar 1 myparser myparser
2212        # x
2213        #     (Primary)
2214        #     ?
2215        #         /
2216        #             (QUESTION)
2217        #             (STAR)
2218        #             (PLUS)
2219    
2220        $myparser si:value_state_push
2221        sym_Primary
2222        $myparser si:valuevalue_part
2223        optional_383
2224        $myparser si:value_state_merge
2225        return
2226    }
2227    
2228    proc optional_383 {} { upvar 1 myparser myparser
2229        # ?
2230        #     /
2231        #         (QUESTION)
2232        #         (STAR)
2233        #         (PLUS)
2234    
2235        $myparser si:void2_state_push
2236        choice_381
2237        $myparser si:void_state_merge_ok
2238        return
2239    }
2240    
2241    proc choice_381 {} { upvar 1 myparser myparser
2242        # /
2243        #     (QUESTION)
2244        #     (STAR)
2245        #     (PLUS)
2246    
2247        $myparser si:value_state_push
2248        sym_QUESTION
2249        $myparser si:valuevalue_branch
2250        sym_STAR
2251        $myparser si:valuevalue_branch
2252        sym_PLUS
2253        $myparser si:value_state_merge
2254        return
2255    }
2256    
2257    #
2258    # void Symbol 'TO'
2259    #
2260    
2261    proc sym_TO {} { upvar 1 myparser myparser
2262        # '-'
2263    
2264        $myparser si:void_void_symbol_start TO
2265        $myparser si:next_char -
2266        $myparser si:void_clear_symbol_end TO
2267        return
2268    }
2269    
2270    #
2271    # leaf Symbol 'UPPER'
2272    #
2273    
2274    proc sym_UPPER {} { upvar 1 myparser myparser
2275        # x
2276        #     "<upper>"
2277        #     (WHITESPACE)
2278    
2279        $myparser si:void_symbol_start UPPER
2280        sequence_392
2281        $myparser si:void_leaf_symbol_end UPPER
2282        return
2283    }
2284    
2285    proc sequence_392 {} { upvar 1 myparser myparser
2286        # x
2287        #     "<upper>"
2288        #     (WHITESPACE)
2289    
2290        $myparser si:void_state_push
2291        $myparser si:next_str <upper>
2292        $myparser si:voidvoid_part
2293        sym_WHITESPACE
2294        $myparser si:void_state_merge
2295        return
2296    }
2297    
2298    #
2299    # leaf Symbol 'VOID'
2300    #
2301    
2302    proc sym_VOID {} { upvar 1 myparser myparser
2303        # x
2304        #     "void"
2305        #     (WHITESPACE)
2306    
2307        $myparser si:void_symbol_start VOID
2308        sequence_397
2309        $myparser si:void_leaf_symbol_end VOID
2310        return
2311    }
2312    
2313    proc sequence_397 {} { upvar 1 myparser myparser
2314        # x
2315        #     "void"
2316        #     (WHITESPACE)
2317    
2318        $myparser si:void_state_push
2319        $myparser si:next_str void
2320        $myparser si:voidvoid_part
2321        sym_WHITESPACE
2322        $myparser si:void_state_merge
2323        return
2324    }
2325    
2326    #
2327    # void Symbol 'WHITESPACE'
2328    #
2329    
2330    proc sym_WHITESPACE {} { upvar 1 myparser myparser
2331        # *
2332        #     /
2333        #         <space>
2334        #         (COMMENT)
2335    
2336        $myparser si:void_void_symbol_start WHITESPACE
2337        kleene_404
2338        $myparser si:void_clear_symbol_end WHITESPACE
2339        return
2340    }
2341    
2342    proc kleene_404 {} { upvar 1 myparser myparser
2343        # *
2344        #     /
2345        #         <space>
2346        #         (COMMENT)
2347    
2348        while {1} {
2349            $myparser si:void2_state_push
2350        choice_402
2351            $myparser si:kleene_close
2352        }
2353        return
2354    }
2355    
2356    proc choice_402 {} { upvar 1 myparser myparser
2357        # /
2358        #     <space>
2359        #     (COMMENT)
2360    
2361        $myparser si:void_state_push
2362        $myparser si:next_space
2363        $myparser si:voidvoid_branch
2364        sym_COMMENT
2365        $myparser si:void_state_merge
2366        return
2367    }
2368    
2369    #
2370    # leaf Symbol 'WORDCHAR'
2371    #
2372    
2373    proc sym_WORDCHAR {} { upvar 1 myparser myparser
2374        # x
2375        #     "<wordchar>"
2376        #     (WHITESPACE)
2377    
2378        $myparser si:void_symbol_start WORDCHAR
2379        sequence_409
2380        $myparser si:void_leaf_symbol_end WORDCHAR
2381        return
2382    }
2383    
2384    proc sequence_409 {} { upvar 1 myparser myparser
2385        # x
2386        #     "<wordchar>"
2387        #     (WHITESPACE)
2388    
2389        $myparser si:void_state_push
2390        $myparser si:next_str <wordchar>
2391        $myparser si:voidvoid_part
2392        sym_WHITESPACE
2393        $myparser si:void_state_merge
2394        return
2395    }
2396    
2397    #
2398    # leaf Symbol 'XDIGIT'
2399    #
2400    
2401    proc sym_XDIGIT {} { upvar 1 myparser myparser
2402        # x
2403        #     "<xdigit>"
2404        #     (WHITESPACE)
2405    
2406        $myparser si:void_symbol_start XDIGIT
2407        sequence_414
2408        $myparser si:void_leaf_symbol_end XDIGIT
2409        return
2410    }
2411    
2412    proc sequence_414 {} { upvar 1 myparser myparser
2413        # x
2414        #     "<xdigit>"
2415        #     (WHITESPACE)
2416    
2417        $myparser si:void_state_push
2418        $myparser si:next_str <xdigit>
2419        $myparser si:voidvoid_part
2420        sym_WHITESPACE
2421        $myparser si:void_state_merge
2422        return
2423    }
2424    
2425    ## END of GENERATED CODE. DO NOT EDIT.
2426    # # ## ### ###### ######## #############
2427}
2428
2429# # ## ### ##### ######## ############# #####################
2430## Ready
2431
2432package provide SNIT_PACKAGE 1
2433return
2434