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