# -*- text -*-
# Parsing Expression Grammar 'TEMPLATE'.
# Generated for unknown, from file 'TEST'

#
# Grammar Start Expression
#

<<MAIN>>:
         call              sym_Grammar
         halt

#
# leaf Symbol 'ALNUM'
#

sym_ALNUM:
# x
#     '<'
#     'a'
#     'l'
#     'n'
#     'u'
#     'm'
#     '>'
#     (WHITESPACE)

         symbol_restore    ALNUM
  found! jump              found_20
         loc_push

         call              sequence_17

   fail! value_clear
     ok! value_leaf        ALNUM
         symbol_save       ALNUM
         error_nonterminal ALNUM
         loc_pop_discard

found_20:
     ok! ast_value_push
         return

sequence_17:
# x
#     '<'
#     'a'
#     'l'
#     'n'
#     'u'
#     'm'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_18
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_18
         error_push

         call              char_6

         error_pop_merge
   fail! jump              failed_18
         error_push

         call              char_8

         error_pop_merge
   fail! jump              failed_18
         error_push

         call              char_10

         error_pop_merge
   fail! jump              failed_18
         error_push

         call              char_12

         error_pop_merge
   fail! jump              failed_18
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_18
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_18

         loc_pop_discard
         return

failed_18:
         loc_pop_rewind
         return

char_2:
# '<'

         input_next        "t <"
     ok! test_char         "<"
         return

char_4:
# 'a'

         input_next        "t a"
     ok! test_char         "a"
         return

char_6:
# 'l'

         input_next        "t l"
     ok! test_char         "l"
         return

char_8:
# 'n'

         input_next        "t n"
     ok! test_char         "n"
         return

char_10:
# 'u'

         input_next        "t u"
     ok! test_char         "u"
         return

char_12:
# 'm'

         input_next        "t m"
     ok! test_char         "m"
         return

char_14:
# '>'

         input_next        "t >"
     ok! test_char         ">"
         return
#
# leaf Symbol 'ALPHA'
#

sym_ALPHA:
# x
#     '<'
#     'a'
#     'l'
#     'p'
#     'h'
#     'a'
#     '>'
#     (WHITESPACE)

         symbol_restore    ALPHA
  found! jump              found_35
         loc_push

         call              sequence_32

   fail! value_clear
     ok! value_leaf        ALPHA
         symbol_save       ALPHA
         error_nonterminal ALPHA
         loc_pop_discard

found_35:
     ok! ast_value_push
         return

sequence_32:
# x
#     '<'
#     'a'
#     'l'
#     'p'
#     'h'
#     'a'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_33
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_33
         error_push

         call              char_6

         error_pop_merge
   fail! jump              failed_33
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_33
         error_push

         call              char_27

         error_pop_merge
   fail! jump              failed_33
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_33
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_33
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_33

         loc_pop_discard
         return

failed_33:
         loc_pop_rewind
         return

char_25:
# 'p'

         input_next        "t p"
     ok! test_char         "p"
         return

char_27:
# 'h'

         input_next        "t h"
     ok! test_char         "h"
         return
#
# leaf Symbol 'AND'
#

sym_AND:
# x
#     '&'
#     (WHITESPACE)

         symbol_restore    AND
  found! jump              found_43
         loc_push

         call              sequence_40

   fail! value_clear
     ok! value_leaf        AND
         symbol_save       AND
         error_nonterminal AND
         loc_pop_discard

found_43:
     ok! ast_value_push
         return

sequence_40:
# x
#     '&'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_37

         error_pop_merge
   fail! jump              failed_41
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_41

         loc_pop_discard
         return

failed_41:
         loc_pop_rewind
         return

char_37:
# '&'

         input_next        "t &"
     ok! test_char         "&"
         return
#
# void Symbol 'APOSTROPH'
#

sym_APOSTROPH:
# '''

         symbol_restore    APOSTROPH
  found! return
         loc_push

         call              char_45

         value_clear
         symbol_save       APOSTROPH
         error_nonterminal APOSTROPH
         loc_pop_discard
         return

char_45:
# '''

         input_next        "t '"
     ok! test_char         "'"
         return
#
# leaf Symbol 'ASCII'
#

sym_ASCII:
# x
#     '<'
#     'a'
#     's'
#     'c'
#     'i'
#     'i'
#     '>'
#     (WHITESPACE)

         symbol_restore    ASCII
  found! jump              found_62
         loc_push

         call              sequence_59

   fail! value_clear
     ok! value_leaf        ASCII
         symbol_save       ASCII
         error_nonterminal ASCII
         loc_pop_discard

found_62:
     ok! ast_value_push
         return

sequence_59:
# x
#     '<'
#     'a'
#     's'
#     'c'
#     'i'
#     'i'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_60
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_60
         error_push

         call              char_50

         error_pop_merge
   fail! jump              failed_60
         error_push

         call              char_52

         error_pop_merge
   fail! jump              failed_60
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_60
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_60
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_60
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_60

         loc_pop_discard
         return

failed_60:
         loc_pop_rewind
         return

char_50:
# 's'

         input_next        "t s"
     ok! test_char         "s"
         return

char_52:
# 'c'

         input_next        "t c"
     ok! test_char         "c"
         return

char_54:
# 'i'

         input_next        "t i"
     ok! test_char         "i"
         return
#
# value Symbol 'Attribute'
#

sym_Attribute:
# x
#     /
#         (VOID)
#         (LEAF)
#     (COLON)

         symbol_restore    Attribute
  found! jump              found_73
         loc_push
         ast_push

         call              sequence_70

   fail! value_clear
     ok! value_reduce      Attribute
         symbol_save       Attribute
         error_nonterminal Attribute
         ast_pop_rewind
         loc_pop_discard

found_73:
     ok! ast_value_push
         return

sequence_70:
# x
#     /
#         (VOID)
#         (LEAF)
#     (COLON)

         ast_push
         loc_push
         error_clear

         error_push

         call              choice_67

         error_pop_merge
   fail! jump              failed_71
         error_push

         call              sym_COLON

         error_pop_merge
   fail! jump              failed_71

         ast_pop_discard
         loc_pop_discard
         return

failed_71:
         ast_pop_rewind
         loc_pop_rewind
         return

choice_67:
# /
#     (VOID)
#     (LEAF)

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_VOID

         error_pop_merge
     ok! jump              ok_66

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_LEAF

         error_pop_merge
     ok! jump              ok_66

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_66:
         ast_pop_discard
         loc_pop_discard
         return
#
# value Symbol 'Char'
#

sym_Char:
# /
#     (CharSpecial)
#     (CharOctalFull)
#     (CharOctalPart)
#     (CharUnicode)
#     (CharUnescaped)

         symbol_restore    Char
  found! jump              found_83
         loc_push
         ast_push

         call              choice_81

   fail! value_clear
     ok! value_reduce      Char
         symbol_save       Char
         error_nonterminal Char
         ast_pop_rewind
         loc_pop_discard

found_83:
     ok! ast_value_push
         return

choice_81:
# /
#     (CharSpecial)
#     (CharOctalFull)
#     (CharOctalPart)
#     (CharUnicode)
#     (CharUnescaped)

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_CharSpecial

         error_pop_merge
     ok! jump              ok_80

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CharOctalFull

         error_pop_merge
     ok! jump              ok_80

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CharOctalPart

         error_pop_merge
     ok! jump              ok_80

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CharUnicode

         error_pop_merge
     ok! jump              ok_80

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CharUnescaped

         error_pop_merge
     ok! jump              ok_80

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_80:
         ast_pop_discard
         loc_pop_discard
         return
#
# leaf Symbol 'CharOctalFull'
#

sym_CharOctalFull:
# x
#     '\'
#     range (0 .. 2)
#     range (0 .. 7)
#     range (0 .. 7)

         symbol_restore    CharOctalFull
  found! jump              found_95
         loc_push

         call              sequence_92

   fail! value_clear
     ok! value_leaf        CharOctalFull
         symbol_save       CharOctalFull
         error_nonterminal CharOctalFull
         loc_pop_discard

found_95:
     ok! ast_value_push
         return

sequence_92:
# x
#     '\'
#     range (0 .. 2)
#     range (0 .. 7)
#     range (0 .. 7)

         loc_push
         error_clear

         error_push

         call              char_85

         error_pop_merge
   fail! jump              failed_93
         error_push

         call              range_87

         error_pop_merge
   fail! jump              failed_93
         error_push

         call              range_89

         error_pop_merge
   fail! jump              failed_93
         error_push

         call              range_89

         error_pop_merge
   fail! jump              failed_93

         loc_pop_discard
         return

failed_93:
         loc_pop_rewind
         return

char_85:
# '\'

         input_next        "t \"
     ok! test_char         "\"
         return

range_87:
# range (0 .. 2)

         input_next        ".. 0 2"
     ok! test_range        "0"   "2"
         return

range_89:
# range (0 .. 7)

         input_next        ".. 0 7"
     ok! test_range        "0"   "7"
         return
#
# leaf Symbol 'CharOctalPart'
#

sym_CharOctalPart:
# x
#     '\'
#     range (0 .. 7)
#     ?
#         range (0 .. 7)

         symbol_restore    CharOctalPart
  found! jump              found_105
         loc_push

         call              sequence_102

   fail! value_clear
     ok! value_leaf        CharOctalPart
         symbol_save       CharOctalPart
         error_nonterminal CharOctalPart
         loc_pop_discard

found_105:
     ok! ast_value_push
         return

sequence_102:
# x
#     '\'
#     range (0 .. 7)
#     ?
#         range (0 .. 7)

         loc_push
         error_clear

         error_push

         call              char_85

         error_pop_merge
   fail! jump              failed_103
         error_push

         call              range_89

         error_pop_merge
   fail! jump              failed_103
         error_push

         call              optional_100

         error_pop_merge
   fail! jump              failed_103

         loc_pop_discard
         return

failed_103:
         loc_pop_rewind
         return

optional_100:
# ?
#     range (0 .. 7)

         loc_push
         error_push

         call              range_89

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return
#
# leaf Symbol 'CharSpecial'
#

sym_CharSpecial:
# x
#     '\'
#     /
#         'n'
#         'r'
#         't'
#         '''
#         '\"'
#         '['
#         ']'
#         '\'

         symbol_restore    CharSpecial
  found! jump              found_127
         loc_push

         call              sequence_124

   fail! value_clear
     ok! value_leaf        CharSpecial
         symbol_save       CharSpecial
         error_nonterminal CharSpecial
         loc_pop_discard

found_127:
     ok! ast_value_push
         return

sequence_124:
# x
#     '\'
#     /
#         'n'
#         'r'
#         't'
#         '''
#         '\"'
#         '['
#         ']'
#         '\'

         loc_push
         error_clear

         error_push

         call              char_85

         error_pop_merge
   fail! jump              failed_125
         error_push

         call              choice_122

         error_pop_merge
   fail! jump              failed_125

         loc_pop_discard
         return

failed_125:
         loc_pop_rewind
         return

choice_122:
# /
#     'n'
#     'r'
#     't'
#     '''
#     '\"'
#     '['
#     ']'
#     '\'

         error_clear

         loc_push
         error_push

         call              char_8

         error_pop_merge
     ok! jump              oknoast_121

         loc_pop_rewind
         loc_push
         error_push

         call              char_109

         error_pop_merge
     ok! jump              oknoast_121

         loc_pop_rewind
         loc_push
         error_push

         call              char_111

         error_pop_merge
     ok! jump              oknoast_121

         loc_pop_rewind
         loc_push
         error_push

         call              char_45

         error_pop_merge
     ok! jump              oknoast_121

         loc_pop_rewind
         loc_push
         error_push

         call              char_114

         error_pop_merge
     ok! jump              oknoast_121

         loc_pop_rewind
         loc_push
         error_push

         call              char_116

         error_pop_merge
     ok! jump              oknoast_121

         loc_pop_rewind
         loc_push
         error_push

         call              char_118

         error_pop_merge
     ok! jump              oknoast_121

         loc_pop_rewind
         loc_push
         error_push

         call              char_85

         error_pop_merge
     ok! jump              oknoast_121

         loc_pop_rewind
         status_fail
         return

oknoast_121:
         loc_pop_discard
         return

char_109:
# 'r'

         input_next        "t r"
     ok! test_char         "r"
         return

char_111:
# 't'

         input_next        "t t"
     ok! test_char         "t"
         return

char_114:
# '\"'

         input_next        "t ""
     ok! test_char         """
         return

char_116:
# '['

         input_next        "t ["
     ok! test_char         "["
         return

char_118:
# ']'

         input_next        "t ]"
     ok! test_char         "]"
         return
#
# leaf Symbol 'CharUnescaped'
#

sym_CharUnescaped:
# x
#     !
#         '\'
#     <dot>

         symbol_restore    CharUnescaped
  found! jump              found_136
         loc_push

         call              sequence_133

   fail! value_clear
     ok! value_leaf        CharUnescaped
         symbol_save       CharUnescaped
         error_nonterminal CharUnescaped
         loc_pop_discard

found_136:
     ok! ast_value_push
         return

sequence_133:
# x
#     !
#         '\'
#     <dot>

         loc_push
         error_clear

         error_push

         call              notahead_130

         error_pop_merge
   fail! jump              failed_134
         error_push

         input_next        "dot"

         error_pop_merge
   fail! jump              failed_134

         loc_pop_discard
         return

failed_134:
         loc_pop_rewind
         return

notahead_130:
# !
#     '\'

         loc_push

         call              char_85

         loc_pop_rewind
         status_negate
         return
#
# leaf Symbol 'CharUnicode'
#

sym_CharUnicode:
# x
#     '\'
#     'u'
#     <xdigit>
#     ?
#         x
#             <xdigit>
#             ?
#                 x
#                     <xdigit>
#                     ?
#                         <xdigit>

         symbol_restore    CharUnicode
  found! jump              found_160
         loc_push

         call              sequence_157

   fail! value_clear
     ok! value_leaf        CharUnicode
         symbol_save       CharUnicode
         error_nonterminal CharUnicode
         loc_pop_discard

found_160:
     ok! ast_value_push
         return

sequence_157:
# x
#     '\'
#     'u'
#     <xdigit>
#     ?
#         x
#             <xdigit>
#             ?
#                 x
#                     <xdigit>
#                     ?
#                         <xdigit>

         loc_push
         error_clear

         error_push

         call              char_85

         error_pop_merge
   fail! jump              failed_158
         error_push

         call              char_10

         error_pop_merge
   fail! jump              failed_158
         error_push

         call              xdigit_140

         error_pop_merge
   fail! jump              failed_158
         error_push

         call              optional_155

         error_pop_merge
   fail! jump              failed_158

         loc_pop_discard
         return

failed_158:
         loc_pop_rewind
         return

xdigit_140:
# <xdigit>

         input_next        "xdigit"
     ok! test_xdigit
         return

optional_155:
# ?
#     x
#         <xdigit>
#         ?
#             x
#                 <xdigit>
#                 ?
#                     <xdigit>

         loc_push
         error_push

         call              sequence_152

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

sequence_152:
# x
#     <xdigit>
#     ?
#         x
#             <xdigit>
#             ?
#                 <xdigit>

         loc_push
         error_clear

         error_push

         call              xdigit_140

         error_pop_merge
   fail! jump              failed_153
         error_push

         call              optional_150

         error_pop_merge
   fail! jump              failed_153

         loc_pop_discard
         return

failed_153:
         loc_pop_rewind
         return

optional_150:
# ?
#     x
#         <xdigit>
#         ?
#             <xdigit>

         loc_push
         error_push

         call              sequence_147

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

sequence_147:
# x
#     <xdigit>
#     ?
#         <xdigit>

         loc_push
         error_clear

         error_push

         call              xdigit_140

         error_pop_merge
   fail! jump              failed_148
         error_push

         call              optional_145

         error_pop_merge
   fail! jump              failed_148

         loc_pop_discard
         return

failed_148:
         loc_pop_rewind
         return

optional_145:
# ?
#     <xdigit>

         loc_push
         error_push

         call              xdigit_140

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return
#
# value Symbol 'Class'
#

sym_Class:
# x
#     (OPENB)
#     *
#         x
#             !
#                 (CLOSEB)
#             (Range)
#     (CLOSEB)
#     (WHITESPACE)

         symbol_restore    Class
  found! jump              found_180
         loc_push
         ast_push

         call              sequence_176

   fail! value_clear
     ok! value_reduce      Class
         symbol_save       Class
         error_nonterminal Class
         ast_pop_rewind
         loc_pop_discard

found_180:
     ok! ast_value_push
         return

sequence_176:
# x
#     (OPENB)
#     *
#         x
#             !
#                 (CLOSEB)
#             (Range)
#     (CLOSEB)
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              sym_OPENB

         error_pop_merge
   fail! jump              failednoast_178
         ast_push
         error_push

         call              kleene_171

         error_pop_merge
   fail! jump              failed_177
         error_push

         call              sym_CLOSEB

         error_pop_merge
   fail! jump              failed_177
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_177

         ast_pop_discard
         loc_pop_discard
         return

failed_177:
         ast_pop_rewind

failednoast_178:
         loc_pop_rewind
         return

kleene_171:
# *
#     x
#         !
#             (CLOSEB)
#         (Range)

         loc_push
         error_push

         call              sequence_167

         error_pop_merge
   fail! jump              failed_172
         loc_pop_discard
         jump              kleene_171

failed_172:
         loc_pop_rewind
         status_ok
         return

sequence_167:
# x
#     !
#         (CLOSEB)
#     (Range)

         loc_push
         error_clear

         error_push

         call              notahead_164

         error_pop_merge
   fail! jump              failednoast_169
         ast_push
         error_push

         call              sym_Range

         error_pop_merge
   fail! jump              failed_168

         ast_pop_discard
         loc_pop_discard
         return

failed_168:
         ast_pop_rewind

failednoast_169:
         loc_pop_rewind
         return

notahead_164:
# !
#     (CLOSEB)

         loc_push

         call              sym_CLOSEB

         loc_pop_rewind
         status_negate
         return
#
# void Symbol 'CLOSE'
#

sym_CLOSE:
# x
#     '\)'
#     (WHITESPACE)

         symbol_restore    CLOSE
  found! return
         loc_push

         call              sequence_185

         value_clear
         symbol_save       CLOSE
         error_nonterminal CLOSE
         loc_pop_discard
         return

sequence_185:
# x
#     '\)'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_182

         error_pop_merge
   fail! jump              failed_186
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_186

         loc_pop_discard
         return

failed_186:
         loc_pop_rewind
         return

char_182:
# '\)'

         input_next        "t )"
     ok! test_char         ")"
         return
#
# void Symbol 'CLOSEB'
#

sym_CLOSEB:
# ']'

         symbol_restore    CLOSEB
  found! return
         loc_push

         call              char_118

         value_clear
         symbol_save       CLOSEB
         error_nonterminal CLOSEB
         loc_pop_discard
         return
#
# void Symbol 'COLON'
#

sym_COLON:
# x
#     ':'
#     (WHITESPACE)

         symbol_restore    COLON
  found! return
         loc_push

         call              sequence_194

         value_clear
         symbol_save       COLON
         error_nonterminal COLON
         loc_pop_discard
         return

sequence_194:
# x
#     ':'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_191

         error_pop_merge
   fail! jump              failed_195
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_195

         loc_pop_discard
         return

failed_195:
         loc_pop_rewind
         return

char_191:
# ':'

         input_next        "t :"
     ok! test_char         ":"
         return
#
# void Symbol 'COMMENT'
#

sym_COMMENT:
# x
#     '#'
#     *
#         x
#             !
#                 (EOL)
#             <dot>
#     (EOL)

         symbol_restore    COMMENT
  found! return
         loc_push

         call              sequence_211

         value_clear
         symbol_save       COMMENT
         error_nonterminal COMMENT
         loc_pop_discard
         return

sequence_211:
# x
#     '#'
#     *
#         x
#             !
#                 (EOL)
#             <dot>
#     (EOL)

         loc_push
         error_clear

         error_push

         call              char_198

         error_pop_merge
   fail! jump              failed_212
         error_push

         call              kleene_207

         error_pop_merge
   fail! jump              failed_212
         error_push

         call              sym_EOL

         error_pop_merge
   fail! jump              failed_212

         loc_pop_discard
         return

failed_212:
         loc_pop_rewind
         return

char_198:
# '#'

         input_next        "t #"
     ok! test_char         "#"
         return

kleene_207:
# *
#     x
#         !
#             (EOL)
#         <dot>

         loc_push
         error_push

         call              sequence_204

         error_pop_merge
   fail! jump              failed_208
         loc_pop_discard
         jump              kleene_207

failed_208:
         loc_pop_rewind
         status_ok
         return

sequence_204:
# x
#     !
#         (EOL)
#     <dot>

         loc_push
         error_clear

         error_push

         call              notahead_201

         error_pop_merge
   fail! jump              failed_205
         error_push

         input_next        "dot"

         error_pop_merge
   fail! jump              failed_205

         loc_pop_discard
         return

failed_205:
         loc_pop_rewind
         return

notahead_201:
# !
#     (EOL)

         loc_push

         call              sym_EOL

         loc_pop_rewind
         status_negate
         return
#
# leaf Symbol 'CONTROL'
#

sym_CONTROL:
# x
#     '<'
#     'c'
#     'o'
#     'n'
#     't'
#     'r'
#     'o'
#     'l'
#     '>'
#     (WHITESPACE)

         symbol_restore    CONTROL
  found! jump              found_229
         loc_push

         call              sequence_226

   fail! value_clear
     ok! value_leaf        CONTROL
         symbol_save       CONTROL
         error_nonterminal CONTROL
         loc_pop_discard

found_229:
     ok! ast_value_push
         return

sequence_226:
# x
#     '<'
#     'c'
#     'o'
#     'n'
#     't'
#     'r'
#     'o'
#     'l'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_227
         error_push

         call              char_52

         error_pop_merge
   fail! jump              failed_227
         error_push

         call              char_217

         error_pop_merge
   fail! jump              failed_227
         error_push

         call              char_8

         error_pop_merge
   fail! jump              failed_227
         error_push

         call              char_111

         error_pop_merge
   fail! jump              failed_227
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_227
         error_push

         call              char_217

         error_pop_merge
   fail! jump              failed_227
         error_push

         call              char_6

         error_pop_merge
   fail! jump              failed_227
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_227
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_227

         loc_pop_discard
         return

failed_227:
         loc_pop_rewind
         return

char_217:
# 'o'

         input_next        "t o"
     ok! test_char         "o"
         return
#
# void Symbol 'DAPOSTROPH'
#

sym_DAPOSTROPH:
# '\"'

         symbol_restore    DAPOSTROPH
  found! return
         loc_push

         call              char_114

         value_clear
         symbol_save       DAPOSTROPH
         error_nonterminal DAPOSTROPH
         loc_pop_discard
         return
#
# leaf Symbol 'DDIGIT'
#

sym_DDIGIT:
# x
#     '<'
#     'd'
#     'd'
#     'i'
#     'g'
#     'i'
#     't'
#     '>'
#     (WHITESPACE)

         symbol_restore    DDIGIT
  found! jump              found_247
         loc_push

         call              sequence_244

   fail! value_clear
     ok! value_leaf        DDIGIT
         symbol_save       DDIGIT
         error_nonterminal DDIGIT
         loc_pop_discard

found_247:
     ok! ast_value_push
         return

sequence_244:
# x
#     '<'
#     'd'
#     'd'
#     'i'
#     'g'
#     'i'
#     't'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_245
         error_push

         call              char_234

         error_pop_merge
   fail! jump              failed_245
         error_push

         call              char_234

         error_pop_merge
   fail! jump              failed_245
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_245
         error_push

         call              char_238

         error_pop_merge
   fail! jump              failed_245
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_245
         error_push

         call              char_111

         error_pop_merge
   fail! jump              failed_245
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_245
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_245

         loc_pop_discard
         return

failed_245:
         loc_pop_rewind
         return

char_234:
# 'd'

         input_next        "t d"
     ok! test_char         "d"
         return

char_238:
# 'g'

         input_next        "t g"
     ok! test_char         "g"
         return
#
# value Symbol 'Definition'
#

sym_Definition:
# x
#     ?
#         (Attribute)
#     (Identifier)
#     (IS)
#     (Expression)
#     (SEMICOLON)

         symbol_restore    Definition
  found! jump              found_259
         loc_push
         ast_push

         call              sequence_256

   fail! value_clear
     ok! value_reduce      Definition
         symbol_save       Definition
         error_nonterminal Definition
         ast_pop_rewind
         loc_pop_discard

found_259:
     ok! ast_value_push
         return

sequence_256:
# x
#     ?
#         (Attribute)
#     (Identifier)
#     (IS)
#     (Expression)
#     (SEMICOLON)

         ast_push
         loc_push
         error_clear

         error_push

         call              optional_250

         error_pop_merge
   fail! jump              failed_257
         error_push

         call              sym_Identifier

         error_pop_merge
   fail! jump              failed_257
         error_push

         call              sym_IS

         error_pop_merge
   fail! jump              failed_257
         error_push

         call              sym_Expression

         error_pop_merge
   fail! jump              failed_257
         error_push

         call              sym_SEMICOLON

         error_pop_merge
   fail! jump              failed_257

         ast_pop_discard
         loc_pop_discard
         return

failed_257:
         ast_pop_rewind
         loc_pop_rewind
         return

optional_250:
# ?
#     (Attribute)

         loc_push
         error_push

         call              sym_Attribute

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return
#
# leaf Symbol 'DIGIT'
#

sym_DIGIT:
# x
#     '<'
#     'd'
#     'i'
#     'g'
#     'i'
#     't'
#     '>'
#     (WHITESPACE)

         symbol_restore    DIGIT
  found! jump              found_272
         loc_push

         call              sequence_269

   fail! value_clear
     ok! value_leaf        DIGIT
         symbol_save       DIGIT
         error_nonterminal DIGIT
         loc_pop_discard

found_272:
     ok! ast_value_push
         return

sequence_269:
# x
#     '<'
#     'd'
#     'i'
#     'g'
#     'i'
#     't'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_270
         error_push

         call              char_234

         error_pop_merge
   fail! jump              failed_270
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_270
         error_push

         call              char_238

         error_pop_merge
   fail! jump              failed_270
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_270
         error_push

         call              char_111

         error_pop_merge
   fail! jump              failed_270
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_270
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_270

         loc_pop_discard
         return

failed_270:
         loc_pop_rewind
         return
#
# leaf Symbol 'DOT'
#

sym_DOT:
# x
#     '.'
#     (WHITESPACE)

         symbol_restore    DOT
  found! jump              found_280
         loc_push

         call              sequence_277

   fail! value_clear
     ok! value_leaf        DOT
         symbol_save       DOT
         error_nonterminal DOT
         loc_pop_discard

found_280:
     ok! ast_value_push
         return

sequence_277:
# x
#     '.'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_274

         error_pop_merge
   fail! jump              failed_278
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_278

         loc_pop_discard
         return

failed_278:
         loc_pop_rewind
         return

char_274:
# '.'

         input_next        "t ."
     ok! test_char         "."
         return
#
# void Symbol 'EOF'
#

sym_EOF:
# !
#     <dot>

         symbol_restore    EOF
  found! return
         loc_push

         call              notahead_283

         value_clear
         symbol_save       EOF
         error_nonterminal EOF
         loc_pop_discard
         return

notahead_283:
# !
#     <dot>

         loc_push

         input_next        "dot"

         loc_pop_rewind
         status_negate
         return
#
# void Symbol 'EOL'
#

sym_EOL:
# /
#     '\n'
#     '\r'

         symbol_restore    EOL
  found! return
         loc_push

         call              choice_291

         value_clear
         symbol_save       EOL
         error_nonterminal EOL
         loc_pop_discard
         return

choice_291:
# /
#     '\n'
#     '\r'

         error_clear

         loc_push
         error_push

         call              char_286

         error_pop_merge
     ok! jump              oknoast_290

         loc_pop_rewind
         loc_push
         error_push

         call              char_288

         error_pop_merge
     ok! jump              oknoast_290

         loc_pop_rewind
         status_fail
         return

oknoast_290:
         loc_pop_discard
         return

char_286:
# '\n'

         input_next        "t <LF>"
     ok! test_char         "<LF>"
         return

char_288:
# '\r'

         input_next        "t <CR>"
     ok! test_char         "<CR>"
         return
#
# value Symbol 'Expression'
#

sym_Expression:
# x
#     (Sequence)
#     *
#         x
#             (SLASH)
#             (Sequence)

         symbol_restore    Expression
  found! jump              found_307
         loc_push
         ast_push

         call              sequence_304

   fail! value_clear
     ok! value_reduce      Expression
         symbol_save       Expression
         error_nonterminal Expression
         ast_pop_rewind
         loc_pop_discard

found_307:
     ok! ast_value_push
         return

sequence_304:
# x
#     (Sequence)
#     *
#         x
#             (SLASH)
#             (Sequence)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Sequence

         error_pop_merge
   fail! jump              failed_305
         error_push

         call              kleene_301

         error_pop_merge
   fail! jump              failed_305

         ast_pop_discard
         loc_pop_discard
         return

failed_305:
         ast_pop_rewind
         loc_pop_rewind
         return

kleene_301:
# *
#     x
#         (SLASH)
#         (Sequence)

         loc_push
         error_push

         call              sequence_297

         error_pop_merge
   fail! jump              failed_302
         loc_pop_discard
         jump              kleene_301

failed_302:
         loc_pop_rewind
         status_ok
         return

sequence_297:
# x
#     (SLASH)
#     (Sequence)

         loc_push
         error_clear

         error_push

         call              sym_SLASH

         error_pop_merge
   fail! jump              failednoast_299
         ast_push
         error_push

         call              sym_Sequence

         error_pop_merge
   fail! jump              failed_298

         ast_pop_discard
         loc_pop_discard
         return

failed_298:
         ast_pop_rewind

failednoast_299:
         loc_pop_rewind
         return
#
# void Symbol 'Final'
#

sym_Final:
# x
#     'E'
#     'N'
#     'D'
#     (WHITESPACE)
#     (SEMICOLON)
#     (WHITESPACE)

         symbol_restore    Final
  found! return
         loc_push

         call              sequence_318

         value_clear
         symbol_save       Final
         error_nonterminal Final
         loc_pop_discard
         return

sequence_318:
# x
#     'E'
#     'N'
#     'D'
#     (WHITESPACE)
#     (SEMICOLON)
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_309

         error_pop_merge
   fail! jump              failed_319
         error_push

         call              char_311

         error_pop_merge
   fail! jump              failed_319
         error_push

         call              char_313

         error_pop_merge
   fail! jump              failed_319
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_319
         error_push

         call              sym_SEMICOLON

         error_pop_merge
   fail! jump              failed_319
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_319

         loc_pop_discard
         return

failed_319:
         loc_pop_rewind
         return

char_309:
# 'E'

         input_next        "t E"
     ok! test_char         "E"
         return

char_311:
# 'N'

         input_next        "t N"
     ok! test_char         "N"
         return

char_313:
# 'D'

         input_next        "t D"
     ok! test_char         "D"
         return
#
# value Symbol 'Grammar'
#

sym_Grammar:
# x
#     (WHITESPACE)
#     (Header)
#     *
#         (Definition)
#     (Final)
#     (EOF)

         symbol_restore    Grammar
  found! jump              found_334
         loc_push
         ast_push

         call              sequence_330

   fail! value_clear
     ok! value_reduce      Grammar
         symbol_save       Grammar
         error_nonterminal Grammar
         ast_pop_rewind
         loc_pop_discard

found_334:
     ok! ast_value_push
         return

sequence_330:
# x
#     (WHITESPACE)
#     (Header)
#     *
#         (Definition)
#     (Final)
#     (EOF)

         loc_push
         error_clear

         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failednoast_332
         ast_push
         error_push

         call              sym_Header

         error_pop_merge
   fail! jump              failed_331
         error_push

         call              kleene_325

         error_pop_merge
   fail! jump              failed_331
         error_push

         call              sym_Final

         error_pop_merge
   fail! jump              failed_331
         error_push

         call              sym_EOF

         error_pop_merge
   fail! jump              failed_331

         ast_pop_discard
         loc_pop_discard
         return

failed_331:
         ast_pop_rewind

failednoast_332:
         loc_pop_rewind
         return

kleene_325:
# *
#     (Definition)

         loc_push
         error_push

         call              sym_Definition

         error_pop_merge
   fail! jump              failed_326
         loc_pop_discard
         jump              kleene_325

failed_326:
         loc_pop_rewind
         status_ok
         return
#
# leaf Symbol 'GRAPH'
#

sym_GRAPH:
# x
#     '<'
#     'g'
#     'r'
#     'a'
#     'p'
#     'h'
#     '>'
#     (WHITESPACE)

         symbol_restore    GRAPH
  found! jump              found_347
         loc_push

         call              sequence_344

   fail! value_clear
     ok! value_leaf        GRAPH
         symbol_save       GRAPH
         error_nonterminal GRAPH
         loc_pop_discard

found_347:
     ok! ast_value_push
         return

sequence_344:
# x
#     '<'
#     'g'
#     'r'
#     'a'
#     'p'
#     'h'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_345
         error_push

         call              char_238

         error_pop_merge
   fail! jump              failed_345
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_345
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_345
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_345
         error_push

         call              char_27

         error_pop_merge
   fail! jump              failed_345
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_345
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_345

         loc_pop_discard
         return

failed_345:
         loc_pop_rewind
         return
#
# value Symbol 'Header'
#

sym_Header:
# x
#     (PEG)
#     (Identifier)
#     (StartExpr)

         symbol_restore    Header
  found! jump              found_356
         loc_push
         ast_push

         call              sequence_352

   fail! value_clear
     ok! value_reduce      Header
         symbol_save       Header
         error_nonterminal Header
         ast_pop_rewind
         loc_pop_discard

found_356:
     ok! ast_value_push
         return

sequence_352:
# x
#     (PEG)
#     (Identifier)
#     (StartExpr)

         loc_push
         error_clear

         error_push

         call              sym_PEG

         error_pop_merge
   fail! jump              failednoast_354
         ast_push
         error_push

         call              sym_Identifier

         error_pop_merge
   fail! jump              failed_353
         error_push

         call              sym_StartExpr

         error_pop_merge
   fail! jump              failed_353

         ast_pop_discard
         loc_pop_discard
         return

failed_353:
         ast_pop_rewind

failednoast_354:
         loc_pop_rewind
         return
#
# leaf Symbol 'Ident'
#

sym_Ident:
# x
#     /
#         '_'
#         ':'
#         <alpha>
#     *
#         /
#             '_'
#             ':'
#             <alnum>

         symbol_restore    Ident
  found! jump              found_379
         loc_push

         call              sequence_376

   fail! value_clear
     ok! value_leaf        Ident
         symbol_save       Ident
         error_nonterminal Ident
         loc_pop_discard

found_379:
     ok! ast_value_push
         return

sequence_376:
# x
#     /
#         '_'
#         ':'
#         <alpha>
#     *
#         /
#             '_'
#             ':'
#             <alnum>

         loc_push
         error_clear

         error_push

         call              choice_364

         error_pop_merge
   fail! jump              failed_377
         error_push

         call              kleene_373

         error_pop_merge
   fail! jump              failed_377

         loc_pop_discard
         return

failed_377:
         loc_pop_rewind
         return

choice_364:
# /
#     '_'
#     ':'
#     <alpha>

         error_clear

         loc_push
         error_push

         call              char_358

         error_pop_merge
     ok! jump              oknoast_363

         loc_pop_rewind
         loc_push
         error_push

         call              char_191

         error_pop_merge
     ok! jump              oknoast_363

         loc_pop_rewind
         loc_push
         error_push

         call              alpha_361

         error_pop_merge
     ok! jump              oknoast_363

         loc_pop_rewind
         status_fail
         return

oknoast_363:
         loc_pop_discard
         return

char_358:
# '_'

         input_next        "t _"
     ok! test_char         "_"
         return

alpha_361:
# <alpha>

         input_next        "alpha"
     ok! test_alpha
         return

kleene_373:
# *
#     /
#         '_'
#         ':'
#         <alnum>

         loc_push
         error_push

         call              choice_371

         error_pop_merge
   fail! jump              failed_374
         loc_pop_discard
         jump              kleene_373

failed_374:
         loc_pop_rewind
         status_ok
         return

choice_371:
# /
#     '_'
#     ':'
#     <alnum>

         error_clear

         loc_push
         error_push

         call              char_358

         error_pop_merge
     ok! jump              oknoast_370

         loc_pop_rewind
         loc_push
         error_push

         call              char_191

         error_pop_merge
     ok! jump              oknoast_370

         loc_pop_rewind
         loc_push
         error_push

         call              alnum_368

         error_pop_merge
     ok! jump              oknoast_370

         loc_pop_rewind
         status_fail
         return

oknoast_370:
         loc_pop_discard
         return

alnum_368:
# <alnum>

         input_next        "alnum"
     ok! test_alnum
         return
#
# value Symbol 'Identifier'
#

sym_Identifier:
# x
#     (Ident)
#     (WHITESPACE)

         symbol_restore    Identifier
  found! jump              found_386
         loc_push
         ast_push

         call              sequence_383

   fail! value_clear
     ok! value_reduce      Identifier
         symbol_save       Identifier
         error_nonterminal Identifier
         ast_pop_rewind
         loc_pop_discard

found_386:
     ok! ast_value_push
         return

sequence_383:
# x
#     (Ident)
#     (WHITESPACE)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Ident

         error_pop_merge
   fail! jump              failed_384
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_384

         ast_pop_discard
         loc_pop_discard
         return

failed_384:
         ast_pop_rewind
         loc_pop_rewind
         return
#
# void Symbol 'IS'
#

sym_IS:
# x
#     '<'
#     '-'
#     (WHITESPACE)

         symbol_restore    IS
  found! return
         loc_push

         call              sequence_392

         value_clear
         symbol_save       IS
         error_nonterminal IS
         loc_pop_discard
         return

sequence_392:
# x
#     '<'
#     '-'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_393
         error_push

         call              char_389

         error_pop_merge
   fail! jump              failed_393
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_393

         loc_pop_discard
         return

failed_393:
         loc_pop_rewind
         return

char_389:
# '-'

         input_next        "t -"
     ok! test_char         "-"
         return
#
# leaf Symbol 'LEAF'
#

sym_LEAF:
# x
#     'l'
#     'e'
#     'a'
#     'f'
#     (WHITESPACE)

         symbol_restore    LEAF
  found! jump              found_406
         loc_push

         call              sequence_403

   fail! value_clear
     ok! value_leaf        LEAF
         symbol_save       LEAF
         error_nonterminal LEAF
         loc_pop_discard

found_406:
     ok! ast_value_push
         return

sequence_403:
# x
#     'l'
#     'e'
#     'a'
#     'f'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_6

         error_pop_merge
   fail! jump              failed_404
         error_push

         call              char_397

         error_pop_merge
   fail! jump              failed_404
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_404
         error_push

         call              char_400

         error_pop_merge
   fail! jump              failed_404
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_404

         loc_pop_discard
         return

failed_404:
         loc_pop_rewind
         return

char_397:
# 'e'

         input_next        "t e"
     ok! test_char         "e"
         return

char_400:
# 'f'

         input_next        "t f"
     ok! test_char         "f"
         return
#
# value Symbol 'Literal'
#

sym_Literal:
# /
#     x
#         (APOSTROPH)
#         *
#             x
#                 !
#                     (APOSTROPH)
#                 (Char)
#         (APOSTROPH)
#         (WHITESPACE)
#     x
#         (DAPOSTROPH)
#         *
#             x
#                 !
#                     (DAPOSTROPH)
#                 (Char)
#         (DAPOSTROPH)
#         (WHITESPACE)

         symbol_restore    Literal
  found! jump              found_447
         loc_push
         ast_push

         call              choice_445

   fail! value_clear
     ok! value_reduce      Literal
         symbol_save       Literal
         error_nonterminal Literal
         ast_pop_rewind
         loc_pop_discard

found_447:
     ok! ast_value_push
         return

choice_445:
# /
#     x
#         (APOSTROPH)
#         *
#             x
#                 !
#                     (APOSTROPH)
#                 (Char)
#         (APOSTROPH)
#         (WHITESPACE)
#     x
#         (DAPOSTROPH)
#         *
#             x
#                 !
#                     (DAPOSTROPH)
#                 (Char)
#         (DAPOSTROPH)
#         (WHITESPACE)

         error_clear

         ast_push
         loc_push
         error_push

         call              sequence_422

         error_pop_merge
     ok! jump              ok_444

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sequence_440

         error_pop_merge
     ok! jump              ok_444

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_444:
         ast_pop_discard
         loc_pop_discard
         return

sequence_422:
# x
#     (APOSTROPH)
#     *
#         x
#             !
#                 (APOSTROPH)
#             (Char)
#     (APOSTROPH)
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              sym_APOSTROPH

         error_pop_merge
   fail! jump              failednoast_424
         ast_push
         error_push

         call              kleene_417

         error_pop_merge
   fail! jump              failed_423
         error_push

         call              sym_APOSTROPH

         error_pop_merge
   fail! jump              failed_423
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_423

         ast_pop_discard
         loc_pop_discard
         return

failed_423:
         ast_pop_rewind

failednoast_424:
         loc_pop_rewind
         return

kleene_417:
# *
#     x
#         !
#             (APOSTROPH)
#         (Char)

         loc_push
         error_push

         call              sequence_413

         error_pop_merge
   fail! jump              failed_418
         loc_pop_discard
         jump              kleene_417

failed_418:
         loc_pop_rewind
         status_ok
         return

sequence_413:
# x
#     !
#         (APOSTROPH)
#     (Char)

         loc_push
         error_clear

         error_push

         call              notahead_410

         error_pop_merge
   fail! jump              failednoast_415
         ast_push
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_414

         ast_pop_discard
         loc_pop_discard
         return

failed_414:
         ast_pop_rewind

failednoast_415:
         loc_pop_rewind
         return

notahead_410:
# !
#     (APOSTROPH)

         loc_push

         call              sym_APOSTROPH

         loc_pop_rewind
         status_negate
         return

sequence_440:
# x
#     (DAPOSTROPH)
#     *
#         x
#             !
#                 (DAPOSTROPH)
#             (Char)
#     (DAPOSTROPH)
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              sym_DAPOSTROPH

         error_pop_merge
   fail! jump              failednoast_442
         ast_push
         error_push

         call              kleene_435

         error_pop_merge
   fail! jump              failed_441
         error_push

         call              sym_DAPOSTROPH

         error_pop_merge
   fail! jump              failed_441
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_441

         ast_pop_discard
         loc_pop_discard
         return

failed_441:
         ast_pop_rewind

failednoast_442:
         loc_pop_rewind
         return

kleene_435:
# *
#     x
#         !
#             (DAPOSTROPH)
#         (Char)

         loc_push
         error_push

         call              sequence_431

         error_pop_merge
   fail! jump              failed_436
         loc_pop_discard
         jump              kleene_435

failed_436:
         loc_pop_rewind
         status_ok
         return

sequence_431:
# x
#     !
#         (DAPOSTROPH)
#     (Char)

         loc_push
         error_clear

         error_push

         call              notahead_428

         error_pop_merge
   fail! jump              failednoast_433
         ast_push
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_432

         ast_pop_discard
         loc_pop_discard
         return

failed_432:
         ast_pop_rewind

failednoast_433:
         loc_pop_rewind
         return

notahead_428:
# !
#     (DAPOSTROPH)

         loc_push

         call              sym_DAPOSTROPH

         loc_pop_rewind
         status_negate
         return
#
# leaf Symbol 'LOWER'
#

sym_LOWER:
# x
#     '<'
#     'l'
#     'o'
#     'w'
#     'e'
#     'r'
#     '>'
#     (WHITESPACE)

         symbol_restore    LOWER
  found! jump              found_461
         loc_push

         call              sequence_458

   fail! value_clear
     ok! value_leaf        LOWER
         symbol_save       LOWER
         error_nonterminal LOWER
         loc_pop_discard

found_461:
     ok! ast_value_push
         return

sequence_458:
# x
#     '<'
#     'l'
#     'o'
#     'w'
#     'e'
#     'r'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_459
         error_push

         call              char_6

         error_pop_merge
   fail! jump              failed_459
         error_push

         call              char_217

         error_pop_merge
   fail! jump              failed_459
         error_push

         call              char_452

         error_pop_merge
   fail! jump              failed_459
         error_push

         call              char_397

         error_pop_merge
   fail! jump              failed_459
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_459
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_459
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_459

         loc_pop_discard
         return

failed_459:
         loc_pop_rewind
         return

char_452:
# 'w'

         input_next        "t w"
     ok! test_char         "w"
         return
#
# leaf Symbol 'NOT'
#

sym_NOT:
# x
#     '!'
#     (WHITESPACE)

         symbol_restore    NOT
  found! jump              found_469
         loc_push

         call              sequence_466

   fail! value_clear
     ok! value_leaf        NOT
         symbol_save       NOT
         error_nonterminal NOT
         loc_pop_discard

found_469:
     ok! ast_value_push
         return

sequence_466:
# x
#     '!'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_463

         error_pop_merge
   fail! jump              failed_467
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_467

         loc_pop_discard
         return

failed_467:
         loc_pop_rewind
         return

char_463:
# '!'

         input_next        "t !"
     ok! test_char         "!"
         return
#
# void Symbol 'OPEN'
#

sym_OPEN:
# x
#     '\('
#     (WHITESPACE)

         symbol_restore    OPEN
  found! return
         loc_push

         call              sequence_474

         value_clear
         symbol_save       OPEN
         error_nonterminal OPEN
         loc_pop_discard
         return

sequence_474:
# x
#     '\('
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_471

         error_pop_merge
   fail! jump              failed_475
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_475

         loc_pop_discard
         return

failed_475:
         loc_pop_rewind
         return

char_471:
# '\('

         input_next        "t ("
     ok! test_char         "("
         return
#
# void Symbol 'OPENB'
#

sym_OPENB:
# '['

         symbol_restore    OPENB
  found! return
         loc_push

         call              char_116

         value_clear
         symbol_save       OPENB
         error_nonterminal OPENB
         loc_pop_discard
         return
#
# void Symbol 'PEG'
#

sym_PEG:
# x
#     'P'
#     'E'
#     'G'
#     !
#         /
#             '_'
#             ':'
#             <alnum>
#     (WHITESPACE)

         symbol_restore    PEG
  found! return
         loc_push

         call              sequence_493

         value_clear
         symbol_save       PEG
         error_nonterminal PEG
         loc_pop_discard
         return

sequence_493:
# x
#     'P'
#     'E'
#     'G'
#     !
#         /
#             '_'
#             ':'
#             <alnum>
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_480

         error_pop_merge
   fail! jump              failed_494
         error_push

         call              char_309

         error_pop_merge
   fail! jump              failed_494
         error_push

         call              char_483

         error_pop_merge
   fail! jump              failed_494
         error_push

         call              notahead_490

         error_pop_merge
   fail! jump              failed_494
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_494

         loc_pop_discard
         return

failed_494:
         loc_pop_rewind
         return

char_480:
# 'P'

         input_next        "t P"
     ok! test_char         "P"
         return

char_483:
# 'G'

         input_next        "t G"
     ok! test_char         "G"
         return

notahead_490:
# !
#     /
#         '_'
#         ':'
#         <alnum>

         loc_push

         call              choice_371

         loc_pop_rewind
         status_negate
         return
#
# leaf Symbol 'PLUS'
#

sym_PLUS:
# x
#     '+'
#     (WHITESPACE)

         symbol_restore    PLUS
  found! jump              found_503
         loc_push

         call              sequence_500

   fail! value_clear
     ok! value_leaf        PLUS
         symbol_save       PLUS
         error_nonterminal PLUS
         loc_pop_discard

found_503:
     ok! ast_value_push
         return

sequence_500:
# x
#     '+'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_497

         error_pop_merge
   fail! jump              failed_501
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_501

         loc_pop_discard
         return

failed_501:
         loc_pop_rewind
         return

char_497:
# '+'

         input_next        "t +"
     ok! test_char         "+"
         return
#
# value Symbol 'Prefix'
#

sym_Prefix:
# x
#     ?
#         /
#             (AND)
#             (NOT)
#     (Suffix)

         symbol_restore    Prefix
  found! jump              found_516
         loc_push
         ast_push

         call              sequence_513

   fail! value_clear
     ok! value_reduce      Prefix
         symbol_save       Prefix
         error_nonterminal Prefix
         ast_pop_rewind
         loc_pop_discard

found_516:
     ok! ast_value_push
         return

sequence_513:
# x
#     ?
#         /
#             (AND)
#             (NOT)
#     (Suffix)

         ast_push
         loc_push
         error_clear

         error_push

         call              optional_510

         error_pop_merge
   fail! jump              failed_514
         error_push

         call              sym_Suffix

         error_pop_merge
   fail! jump              failed_514

         ast_pop_discard
         loc_pop_discard
         return

failed_514:
         ast_pop_rewind
         loc_pop_rewind
         return

optional_510:
# ?
#     /
#         (AND)
#         (NOT)

         loc_push
         error_push

         call              choice_508

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

choice_508:
# /
#     (AND)
#     (NOT)

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_AND

         error_pop_merge
     ok! jump              ok_507

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_NOT

         error_pop_merge
     ok! jump              ok_507

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_507:
         ast_pop_discard
         loc_pop_discard
         return
#
# value Symbol 'Primary'
#

sym_Primary:
# /
#     (ALNUM)
#     (ALPHA)
#     (ASCII)
#     (CONTROL)
#     (DDIGIT)
#     (DIGIT)
#     (GRAPH)
#     (LOWER)
#     (PRINTABLE)
#     (PUNCT)
#     (SPACE)
#     (UPPER)
#     (WORDCHAR)
#     (XDIGIT)
#     (Identifier)
#     x
#         (OPEN)
#         (Expression)
#         (CLOSE)
#     (Literal)
#     (Class)
#     (DOT)

         symbol_restore    Primary
  found! jump              found_546
         loc_push
         ast_push

         call              choice_544

   fail! value_clear
     ok! value_reduce      Primary
         symbol_save       Primary
         error_nonterminal Primary
         ast_pop_rewind
         loc_pop_discard

found_546:
     ok! ast_value_push
         return

choice_544:
# /
#     (ALNUM)
#     (ALPHA)
#     (ASCII)
#     (CONTROL)
#     (DDIGIT)
#     (DIGIT)
#     (GRAPH)
#     (LOWER)
#     (PRINTABLE)
#     (PUNCT)
#     (SPACE)
#     (UPPER)
#     (WORDCHAR)
#     (XDIGIT)
#     (Identifier)
#     x
#         (OPEN)
#         (Expression)
#         (CLOSE)
#     (Literal)
#     (Class)
#     (DOT)

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_ALNUM

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_ALPHA

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_ASCII

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CONTROL

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DDIGIT

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DIGIT

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_GRAPH

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_LOWER

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PRINTABLE

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PUNCT

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_SPACE

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_UPPER

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_WORDCHAR

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_XDIGIT

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Identifier

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sequence_536

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Literal

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Class

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DOT

         error_pop_merge
     ok! jump              ok_543

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_543:
         ast_pop_discard
         loc_pop_discard
         return

sequence_536:
# x
#     (OPEN)
#     (Expression)
#     (CLOSE)

         loc_push
         error_clear

         error_push

         call              sym_OPEN

         error_pop_merge
   fail! jump              failednoast_538
         ast_push
         error_push

         call              sym_Expression

         error_pop_merge
   fail! jump              failed_537
         error_push

         call              sym_CLOSE

         error_pop_merge
   fail! jump              failed_537

         ast_pop_discard
         loc_pop_discard
         return

failed_537:
         ast_pop_rewind

failednoast_538:
         loc_pop_rewind
         return
#
# leaf Symbol 'PRINTABLE'
#

sym_PRINTABLE:
# x
#     '<'
#     'p'
#     'r'
#     'i'
#     'n'
#     't'
#     '>'
#     (WHITESPACE)

         symbol_restore    PRINTABLE
  found! jump              found_559
         loc_push

         call              sequence_556

   fail! value_clear
     ok! value_leaf        PRINTABLE
         symbol_save       PRINTABLE
         error_nonterminal PRINTABLE
         loc_pop_discard

found_559:
     ok! ast_value_push
         return

sequence_556:
# x
#     '<'
#     'p'
#     'r'
#     'i'
#     'n'
#     't'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_557
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_557
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_557
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_557
         error_push

         call              char_8

         error_pop_merge
   fail! jump              failed_557
         error_push

         call              char_111

         error_pop_merge
   fail! jump              failed_557
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_557
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_557

         loc_pop_discard
         return

failed_557:
         loc_pop_rewind
         return
#
# leaf Symbol 'PUNCT'
#

sym_PUNCT:
# x
#     '<'
#     'p'
#     'u'
#     'n'
#     'c'
#     't'
#     '>'
#     (WHITESPACE)

         symbol_restore    PUNCT
  found! jump              found_572
         loc_push

         call              sequence_569

   fail! value_clear
     ok! value_leaf        PUNCT
         symbol_save       PUNCT
         error_nonterminal PUNCT
         loc_pop_discard

found_572:
     ok! ast_value_push
         return

sequence_569:
# x
#     '<'
#     'p'
#     'u'
#     'n'
#     'c'
#     't'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_570
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_570
         error_push

         call              char_10

         error_pop_merge
   fail! jump              failed_570
         error_push

         call              char_8

         error_pop_merge
   fail! jump              failed_570
         error_push

         call              char_52

         error_pop_merge
   fail! jump              failed_570
         error_push

         call              char_111

         error_pop_merge
   fail! jump              failed_570
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_570
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_570

         loc_pop_discard
         return

failed_570:
         loc_pop_rewind
         return
#
# leaf Symbol 'QUESTION'
#

sym_QUESTION:
# x
#     '?'
#     (WHITESPACE)

         symbol_restore    QUESTION
  found! jump              found_580
         loc_push

         call              sequence_577

   fail! value_clear
     ok! value_leaf        QUESTION
         symbol_save       QUESTION
         error_nonterminal QUESTION
         loc_pop_discard

found_580:
     ok! ast_value_push
         return

sequence_577:
# x
#     '?'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_574

         error_pop_merge
   fail! jump              failed_578
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_578

         loc_pop_discard
         return

failed_578:
         loc_pop_rewind
         return

char_574:
# '?'

         input_next        "t ?"
     ok! test_char         "?"
         return
#
# value Symbol 'Range'
#

sym_Range:
# /
#     x
#         (Char)
#         (TO)
#         (Char)
#     (Char)

         symbol_restore    Range
  found! jump              found_592
         loc_push
         ast_push

         call              choice_590

   fail! value_clear
     ok! value_reduce      Range
         symbol_save       Range
         error_nonterminal Range
         ast_pop_rewind
         loc_pop_discard

found_592:
     ok! ast_value_push
         return

choice_590:
# /
#     x
#         (Char)
#         (TO)
#         (Char)
#     (Char)

         error_clear

         ast_push
         loc_push
         error_push

         call              sequence_585

         error_pop_merge
     ok! jump              ok_589

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Char

         error_pop_merge
     ok! jump              ok_589

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_589:
         ast_pop_discard
         loc_pop_discard
         return

sequence_585:
# x
#     (Char)
#     (TO)
#     (Char)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_586
         error_push

         call              sym_TO

         error_pop_merge
   fail! jump              failed_586
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_586

         ast_pop_discard
         loc_pop_discard
         return

failed_586:
         ast_pop_rewind
         loc_pop_rewind
         return
#
# void Symbol 'SEMICOLON'
#

sym_SEMICOLON:
# x
#     ';'
#     (WHITESPACE)

         symbol_restore    SEMICOLON
  found! return
         loc_push

         call              sequence_597

         value_clear
         symbol_save       SEMICOLON
         error_nonterminal SEMICOLON
         loc_pop_discard
         return

sequence_597:
# x
#     ';'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_594

         error_pop_merge
   fail! jump              failed_598
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_598

         loc_pop_discard
         return

failed_598:
         loc_pop_rewind
         return

char_594:
# ';'

         input_next        "t ;"
     ok! test_char         ";"
         return
#
# value Symbol 'Sequence'
#

sym_Sequence:
# +
#     (Prefix)

         symbol_restore    Sequence
  found! jump              found_606
         loc_push
         ast_push

         call              poskleene_602

   fail! value_clear
     ok! value_reduce      Sequence
         symbol_save       Sequence
         error_nonterminal Sequence
         ast_pop_rewind
         loc_pop_discard

found_606:
     ok! ast_value_push
         return

poskleene_602:
# +
#     (Prefix)

         loc_push

         call              sym_Prefix

   fail! jump              failed_603

loop_604:
         loc_pop_discard
         loc_push
         error_push

         call              sym_Prefix

         error_pop_merge
     ok! jump              loop_604
         status_ok

failed_603:
         loc_pop_rewind
         return
#
# void Symbol 'SLASH'
#

sym_SLASH:
# x
#     '/'
#     (WHITESPACE)

         symbol_restore    SLASH
  found! return
         loc_push

         call              sequence_611

         value_clear
         symbol_save       SLASH
         error_nonterminal SLASH
         loc_pop_discard
         return

sequence_611:
# x
#     '/'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_608

         error_pop_merge
   fail! jump              failed_612
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_612

         loc_pop_discard
         return

failed_612:
         loc_pop_rewind
         return

char_608:
# '/'

         input_next        "t /"
     ok! test_char         "/"
         return
#
# leaf Symbol 'SPACE'
#

sym_SPACE:
# x
#     '<'
#     's'
#     'p'
#     'a'
#     'c'
#     'e'
#     '>'
#     (WHITESPACE)

         symbol_restore    SPACE
  found! jump              found_626
         loc_push

         call              sequence_623

   fail! value_clear
     ok! value_leaf        SPACE
         symbol_save       SPACE
         error_nonterminal SPACE
         loc_pop_discard

found_626:
     ok! ast_value_push
         return

sequence_623:
# x
#     '<'
#     's'
#     'p'
#     'a'
#     'c'
#     'e'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_624
         error_push

         call              char_50

         error_pop_merge
   fail! jump              failed_624
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_624
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_624
         error_push

         call              char_52

         error_pop_merge
   fail! jump              failed_624
         error_push

         call              char_397

         error_pop_merge
   fail! jump              failed_624
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_624
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_624

         loc_pop_discard
         return

failed_624:
         loc_pop_rewind
         return
#
# leaf Symbol 'STAR'
#

sym_STAR:
# x
#     '*'
#     (WHITESPACE)

         symbol_restore    STAR
  found! jump              found_634
         loc_push

         call              sequence_631

   fail! value_clear
     ok! value_leaf        STAR
         symbol_save       STAR
         error_nonterminal STAR
         loc_pop_discard

found_634:
     ok! ast_value_push
         return

sequence_631:
# x
#     '*'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_628

         error_pop_merge
   fail! jump              failed_632
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_632

         loc_pop_discard
         return

failed_632:
         loc_pop_rewind
         return

char_628:
# '*'

         input_next        "t *"
     ok! test_char         "*"
         return
#
# value Symbol 'StartExpr'
#

sym_StartExpr:
# x
#     (OPEN)
#     (Expression)
#     (CLOSE)

         symbol_restore    StartExpr
  found! jump              found_640
         loc_push
         ast_push

         call              sequence_536

   fail! value_clear
     ok! value_reduce      StartExpr
         symbol_save       StartExpr
         error_nonterminal StartExpr
         ast_pop_rewind
         loc_pop_discard

found_640:
     ok! ast_value_push
         return
#
# value Symbol 'Suffix'
#

sym_Suffix:
# x
#     (Primary)
#     ?
#         /
#             (QUESTION)
#             (STAR)
#             (PLUS)

         symbol_restore    Suffix
  found! jump              found_654
         loc_push
         ast_push

         call              sequence_651

   fail! value_clear
     ok! value_reduce      Suffix
         symbol_save       Suffix
         error_nonterminal Suffix
         ast_pop_rewind
         loc_pop_discard

found_654:
     ok! ast_value_push
         return

sequence_651:
# x
#     (Primary)
#     ?
#         /
#             (QUESTION)
#             (STAR)
#             (PLUS)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Primary

         error_pop_merge
   fail! jump              failed_652
         error_push

         call              optional_649

         error_pop_merge
   fail! jump              failed_652

         ast_pop_discard
         loc_pop_discard
         return

failed_652:
         ast_pop_rewind
         loc_pop_rewind
         return

optional_649:
# ?
#     /
#         (QUESTION)
#         (STAR)
#         (PLUS)

         loc_push
         error_push

         call              choice_647

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

choice_647:
# /
#     (QUESTION)
#     (STAR)
#     (PLUS)

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_QUESTION

         error_pop_merge
     ok! jump              ok_646

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_STAR

         error_pop_merge
     ok! jump              ok_646

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PLUS

         error_pop_merge
     ok! jump              ok_646

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_646:
         ast_pop_discard
         loc_pop_discard
         return
#
# void Symbol 'TO'
#

sym_TO:
# '-'

         symbol_restore    TO
  found! return
         loc_push

         call              char_389

         value_clear
         symbol_save       TO
         error_nonterminal TO
         loc_pop_discard
         return
#
# leaf Symbol 'UPPER'
#

sym_UPPER:
# x
#     '<'
#     'u'
#     'p'
#     'p'
#     'e'
#     'r'
#     '>'
#     (WHITESPACE)

         symbol_restore    UPPER
  found! jump              found_669
         loc_push

         call              sequence_666

   fail! value_clear
     ok! value_leaf        UPPER
         symbol_save       UPPER
         error_nonterminal UPPER
         loc_pop_discard

found_669:
     ok! ast_value_push
         return

sequence_666:
# x
#     '<'
#     'u'
#     'p'
#     'p'
#     'e'
#     'r'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_667
         error_push

         call              char_10

         error_pop_merge
   fail! jump              failed_667
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_667
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_667
         error_push

         call              char_397

         error_pop_merge
   fail! jump              failed_667
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_667
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_667
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_667

         loc_pop_discard
         return

failed_667:
         loc_pop_rewind
         return
#
# leaf Symbol 'VOID'
#

sym_VOID:
# x
#     'v'
#     'o'
#     'i'
#     'd'
#     (WHITESPACE)

         symbol_restore    VOID
  found! jump              found_680
         loc_push

         call              sequence_677

   fail! value_clear
     ok! value_leaf        VOID
         symbol_save       VOID
         error_nonterminal VOID
         loc_pop_discard

found_680:
     ok! ast_value_push
         return

sequence_677:
# x
#     'v'
#     'o'
#     'i'
#     'd'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_671

         error_pop_merge
   fail! jump              failed_678
         error_push

         call              char_217

         error_pop_merge
   fail! jump              failed_678
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_678
         error_push

         call              char_234

         error_pop_merge
   fail! jump              failed_678
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_678

         loc_pop_discard
         return

failed_678:
         loc_pop_rewind
         return

char_671:
# 'v'

         input_next        "t v"
     ok! test_char         "v"
         return
#
# void Symbol 'WHITESPACE'
#

sym_WHITESPACE:
# *
#     /
#         <space>
#         (COMMENT)

         symbol_restore    WHITESPACE
  found! return
         loc_push

         call              kleene_688

         value_clear
         symbol_save       WHITESPACE
         error_nonterminal WHITESPACE
         loc_pop_discard
         return

kleene_688:
# *
#     /
#         <space>
#         (COMMENT)

         loc_push
         error_push

         call              choice_686

         error_pop_merge
   fail! jump              failed_689
         loc_pop_discard
         jump              kleene_688

failed_689:
         loc_pop_rewind
         status_ok
         return

choice_686:
# /
#     <space>
#     (COMMENT)

         error_clear

         loc_push
         error_push

         call              space_682

         error_pop_merge
     ok! jump              oknoast_685

         loc_pop_rewind
         loc_push
         error_push

         call              sym_COMMENT

         error_pop_merge
     ok! jump              oknoast_685

         loc_pop_rewind
         status_fail
         return

oknoast_685:
         loc_pop_discard
         return

space_682:
# <space>

         input_next        "space"
     ok! test_space
         return
#
# leaf Symbol 'WORDCHAR'
#

sym_WORDCHAR:
# x
#     '<'
#     'w'
#     'o'
#     'r'
#     'd'
#     'c'
#     'h'
#     'a'
#     'r'
#     '>'
#     (WHITESPACE)

         symbol_restore    WORDCHAR
  found! jump              found_706
         loc_push

         call              sequence_703

   fail! value_clear
     ok! value_leaf        WORDCHAR
         symbol_save       WORDCHAR
         error_nonterminal WORDCHAR
         loc_pop_discard

found_706:
     ok! ast_value_push
         return

sequence_703:
# x
#     '<'
#     'w'
#     'o'
#     'r'
#     'd'
#     'c'
#     'h'
#     'a'
#     'r'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              char_452

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              char_217

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              char_234

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              char_52

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              char_27

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_704
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_704

         loc_pop_discard
         return

failed_704:
         loc_pop_rewind
         return
#
# leaf Symbol 'XDIGIT'
#

sym_XDIGIT:
# x
#     '<'
#     'x'
#     'd'
#     'i'
#     'g'
#     'i'
#     't'
#     '>'
#     (WHITESPACE)

         symbol_restore    XDIGIT
  found! jump              found_721
         loc_push

         call              sequence_718

   fail! value_clear
     ok! value_leaf        XDIGIT
         symbol_save       XDIGIT
         error_nonterminal XDIGIT
         loc_pop_discard

found_721:
     ok! ast_value_push
         return

sequence_718:
# x
#     '<'
#     'x'
#     'd'
#     'i'
#     'g'
#     'i'
#     't'
#     '>'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_719
         error_push

         call              char_709

         error_pop_merge
   fail! jump              failed_719
         error_push

         call              char_234

         error_pop_merge
   fail! jump              failed_719
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_719
         error_push

         call              char_238

         error_pop_merge
   fail! jump              failed_719
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_719
         error_push

         call              char_111

         error_pop_merge
   fail! jump              failed_719
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_719
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_719

         loc_pop_discard
         return

failed_719:
         loc_pop_rewind
         return

char_709:
# 'x'

         input_next        "t x"
     ok! test_char         "x"
         return

#
#
