# -*- 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 'END'
#

sym_END:
# x
#     'E'
#     'N'
#     'D'
#     (WHITESPACE)

         symbol_restore    END
  found! return
         loc_push

         call              sequence_289

         value_clear
         symbol_save       END
         error_nonterminal END
         loc_pop_discard
         return

sequence_289:
# x
#     'E'
#     'N'
#     'D'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_282

         error_pop_merge
   fail! jump              failed_290
         error_push

         call              char_284

         error_pop_merge
   fail! jump              failed_290
         error_push

         call              char_286

         error_pop_merge
   fail! jump              failed_290
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_290

         loc_pop_discard
         return

failed_290:
         loc_pop_rewind
         return

char_282:
# 'E'

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

char_284:
# 'N'

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

char_286:
# 'D'

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

sym_EOF:
# !
#     <dot>

         symbol_restore    EOF
  found! return
         loc_push

         call              notahead_294

         value_clear
         symbol_save       EOF
         error_nonterminal EOF
         loc_pop_discard
         return

notahead_294:
# !
#     <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_302

         value_clear
         symbol_save       EOL
         error_nonterminal EOL
         loc_pop_discard
         return

choice_302:
# /
#     '\n'
#     '\r'

         error_clear

         loc_push
         error_push

         call              char_297

         error_pop_merge
     ok! jump              oknoast_301

         loc_pop_rewind
         loc_push
         error_push

         call              char_299

         error_pop_merge
     ok! jump              oknoast_301

         loc_pop_rewind
         status_fail
         return

oknoast_301:
         loc_pop_discard
         return

char_297:
# '\n'

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

char_299:
# '\r'

         input_next        "t \\r"
     ok! test_char         "\\r"
         return
#
# value Symbol 'Expression'
#

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

         symbol_restore    Expression
  found! jump              found_318
         loc_push
         ast_push

         call              sequence_315

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

found_318:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Sequence

         error_pop_merge
   fail! jump              failed_316
         error_push

         call              kleene_312

         error_pop_merge
   fail! jump              failed_316

         ast_pop_discard
         loc_pop_discard
         return

failed_316:
         ast_pop_rewind
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_308

         error_pop_merge
   fail! jump              failed_313
         loc_pop_discard
         jump              kleene_312

failed_313:
         loc_pop_rewind
         status_ok
         return

sequence_308:
# x
#     (SLASH)
#     (Sequence)

         loc_push
         error_clear

         error_push

         call              sym_SLASH

         error_pop_merge
   fail! jump              failednoast_310
         ast_push
         error_push

         call              sym_Sequence

         error_pop_merge
   fail! jump              failed_309

         ast_pop_discard
         loc_pop_discard
         return

failed_309:
         ast_pop_rewind

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

sym_Final:
# x
#     (END)
#     (SEMICOLON)
#     (WHITESPACE)

         symbol_restore    Final
  found! return
         loc_push

         call              sequence_323

         value_clear
         symbol_save       Final
         error_nonterminal Final
         loc_pop_discard
         return

sequence_323:
# x
#     (END)
#     (SEMICOLON)
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              sym_END

         error_pop_merge
   fail! jump              failed_324
         error_push

         call              sym_SEMICOLON

         error_pop_merge
   fail! jump              failed_324
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_324

         loc_pop_discard
         return

failed_324:
         loc_pop_rewind
         return
#
# value Symbol 'Grammar'
#

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

         symbol_restore    Grammar
  found! jump              found_339
         loc_push
         ast_push

         call              sequence_335

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

found_339:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failednoast_337
         ast_push
         error_push

         call              sym_Header

         error_pop_merge
   fail! jump              failed_336
         error_push

         call              kleene_330

         error_pop_merge
   fail! jump              failed_336
         error_push

         call              sym_Final

         error_pop_merge
   fail! jump              failed_336
         error_push

         call              sym_EOF

         error_pop_merge
   fail! jump              failed_336

         ast_pop_discard
         loc_pop_discard
         return

failed_336:
         ast_pop_rewind

failednoast_337:
         loc_pop_rewind
         return

kleene_330:
# *
#     (Definition)

         loc_push
         error_push

         call              sym_Definition

         error_pop_merge
   fail! jump              failed_331
         loc_pop_discard
         jump              kleene_330

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

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

         symbol_restore    GRAPH
  found! jump              found_352
         loc_push

         call              sequence_349

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

found_352:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_350
         error_push

         call              char_238

         error_pop_merge
   fail! jump              failed_350
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_350
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_350
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_350
         error_push

         call              char_27

         error_pop_merge
   fail! jump              failed_350
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_350
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_350

         loc_pop_discard
         return

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

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

         symbol_restore    Header
  found! jump              found_361
         loc_push
         ast_push

         call              sequence_357

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

found_361:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              sym_PEG

         error_pop_merge
   fail! jump              failednoast_359
         ast_push
         error_push

         call              sym_Identifier

         error_pop_merge
   fail! jump              failed_358
         error_push

         call              sym_StartExpr

         error_pop_merge
   fail! jump              failed_358

         ast_pop_discard
         loc_pop_discard
         return

failed_358:
         ast_pop_rewind

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

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

         symbol_restore    Ident
  found! jump              found_384
         loc_push

         call              sequence_381

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

found_384:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              choice_369

         error_pop_merge
   fail! jump              failed_382
         error_push

         call              kleene_378

         error_pop_merge
   fail! jump              failed_382

         loc_pop_discard
         return

failed_382:
         loc_pop_rewind
         return

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

         error_clear

         loc_push
         error_push

         call              char_363

         error_pop_merge
     ok! jump              oknoast_368

         loc_pop_rewind
         loc_push
         error_push

         call              char_191

         error_pop_merge
     ok! jump              oknoast_368

         loc_pop_rewind
         loc_push
         error_push

         call              alpha_366

         error_pop_merge
     ok! jump              oknoast_368

         loc_pop_rewind
         status_fail
         return

oknoast_368:
         loc_pop_discard
         return

char_363:
# '_'

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

alpha_366:
# <alpha>

         input_next        "alpha"
     ok! test_alpha
         return

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

         loc_push
         error_push

         call              choice_376

         error_pop_merge
   fail! jump              failed_379
         loc_pop_discard
         jump              kleene_378

failed_379:
         loc_pop_rewind
         status_ok
         return

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

         error_clear

         loc_push
         error_push

         call              char_363

         error_pop_merge
     ok! jump              oknoast_375

         loc_pop_rewind
         loc_push
         error_push

         call              char_191

         error_pop_merge
     ok! jump              oknoast_375

         loc_pop_rewind
         loc_push
         error_push

         call              alnum_373

         error_pop_merge
     ok! jump              oknoast_375

         loc_pop_rewind
         status_fail
         return

oknoast_375:
         loc_pop_discard
         return

alnum_373:
# <alnum>

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

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

         symbol_restore    Identifier
  found! jump              found_391
         loc_push
         ast_push

         call              sequence_388

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

found_391:
     ok! ast_value_push
         return

sequence_388:
# x
#     (Ident)
#     (WHITESPACE)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Ident

         error_pop_merge
   fail! jump              failed_389
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_389

         ast_pop_discard
         loc_pop_discard
         return

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

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

         symbol_restore    IS
  found! return
         loc_push

         call              sequence_397

         value_clear
         symbol_save       IS
         error_nonterminal IS
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_398
         error_push

         call              char_394

         error_pop_merge
   fail! jump              failed_398
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_398

         loc_pop_discard
         return

failed_398:
         loc_pop_rewind
         return

char_394:
# '-'

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

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

         symbol_restore    LEAF
  found! jump              found_411
         loc_push

         call              sequence_408

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

found_411:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_6

         error_pop_merge
   fail! jump              failed_409
         error_push

         call              char_402

         error_pop_merge
   fail! jump              failed_409
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_409
         error_push

         call              char_405

         error_pop_merge
   fail! jump              failed_409
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_409

         loc_pop_discard
         return

failed_409:
         loc_pop_rewind
         return

char_402:
# 'e'

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

char_405:
# '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_452
         loc_push
         ast_push

         call              choice_450

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

found_452:
     ok! ast_value_push
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sequence_427

         error_pop_merge
     ok! jump              ok_449

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sequence_445

         error_pop_merge
     ok! jump              ok_449

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_449:
         ast_pop_discard
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              sym_APOSTROPH

         error_pop_merge
   fail! jump              failednoast_429
         ast_push
         error_push

         call              kleene_422

         error_pop_merge
   fail! jump              failed_428
         error_push

         call              sym_APOSTROPH

         error_pop_merge
   fail! jump              failed_428
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_428

         ast_pop_discard
         loc_pop_discard
         return

failed_428:
         ast_pop_rewind

failednoast_429:
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_418

         error_pop_merge
   fail! jump              failed_423
         loc_pop_discard
         jump              kleene_422

failed_423:
         loc_pop_rewind
         status_ok
         return

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

         loc_push
         error_clear

         error_push

         call              notahead_415

         error_pop_merge
   fail! jump              failednoast_420
         ast_push
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_419

         ast_pop_discard
         loc_pop_discard
         return

failed_419:
         ast_pop_rewind

failednoast_420:
         loc_pop_rewind
         return

notahead_415:
# !
#     (APOSTROPH)

         loc_push

         call              sym_APOSTROPH

         loc_pop_rewind
         status_negate
         return

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

         loc_push
         error_clear

         error_push

         call              sym_DAPOSTROPH

         error_pop_merge
   fail! jump              failednoast_447
         ast_push
         error_push

         call              kleene_440

         error_pop_merge
   fail! jump              failed_446
         error_push

         call              sym_DAPOSTROPH

         error_pop_merge
   fail! jump              failed_446
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_446

         ast_pop_discard
         loc_pop_discard
         return

failed_446:
         ast_pop_rewind

failednoast_447:
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_436

         error_pop_merge
   fail! jump              failed_441
         loc_pop_discard
         jump              kleene_440

failed_441:
         loc_pop_rewind
         status_ok
         return

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

         loc_push
         error_clear

         error_push

         call              notahead_433

         error_pop_merge
   fail! jump              failednoast_438
         ast_push
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_437

         ast_pop_discard
         loc_pop_discard
         return

failed_437:
         ast_pop_rewind

failednoast_438:
         loc_pop_rewind
         return

notahead_433:
# !
#     (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_466
         loc_push

         call              sequence_463

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

found_466:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_464
         error_push

         call              char_6

         error_pop_merge
   fail! jump              failed_464
         error_push

         call              char_217

         error_pop_merge
   fail! jump              failed_464
         error_push

         call              char_457

         error_pop_merge
   fail! jump              failed_464
         error_push

         call              char_402

         error_pop_merge
   fail! jump              failed_464
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_464
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_464
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_464

         loc_pop_discard
         return

failed_464:
         loc_pop_rewind
         return

char_457:
# 'w'

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

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

         symbol_restore    NOT
  found! jump              found_474
         loc_push

         call              sequence_471

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

found_474:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_468

         error_pop_merge
   fail! jump              failed_472
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_472

         loc_pop_discard
         return

failed_472:
         loc_pop_rewind
         return

char_468:
# '!'

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

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

         symbol_restore    OPEN
  found! return
         loc_push

         call              sequence_479

         value_clear
         symbol_save       OPEN
         error_nonterminal OPEN
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_476

         error_pop_merge
   fail! jump              failed_480
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_480

         loc_pop_discard
         return

failed_480:
         loc_pop_rewind
         return

char_476:
# '\('

         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'
#     (WHITESPACE)

         symbol_restore    PEG
  found! return
         loc_push

         call              sequence_491

         value_clear
         symbol_save       PEG
         error_nonterminal PEG
         loc_pop_discard
         return

sequence_491:
# x
#     'P'
#     'E'
#     'G'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_485

         error_pop_merge
   fail! jump              failed_492
         error_push

         call              char_282

         error_pop_merge
   fail! jump              failed_492
         error_push

         call              char_488

         error_pop_merge
   fail! jump              failed_492
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_492

         loc_pop_discard
         return

failed_492:
         loc_pop_rewind
         return

char_485:
# 'P'

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

char_488:
# 'G'

         input_next        "t G"
     ok! test_char         "G"
         return
#
# leaf Symbol 'PLUS'
#

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

         symbol_restore    PLUS
  found! jump              found_501
         loc_push

         call              sequence_498

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

found_501:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_495

         error_pop_merge
   fail! jump              failed_499
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_499

         loc_pop_discard
         return

failed_499:
         loc_pop_rewind
         return

char_495:
# '+'

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

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

         symbol_restore    Prefix
  found! jump              found_514
         loc_push
         ast_push

         call              sequence_511

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

found_514:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              optional_508

         error_pop_merge
   fail! jump              failed_512
         error_push

         call              sym_Suffix

         error_pop_merge
   fail! jump              failed_512

         ast_pop_discard
         loc_pop_discard
         return

failed_512:
         ast_pop_rewind
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              choice_506

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

choice_506:
# /
#     (AND)
#     (NOT)

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_AND

         error_pop_merge
     ok! jump              ok_505

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_NOT

         error_pop_merge
     ok! jump              ok_505

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_505:
         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_544
         loc_push
         ast_push

         call              choice_542

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

found_544:
     ok! ast_value_push
         return

choice_542:
# /
#     (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_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_ALPHA

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_ASCII

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CONTROL

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DDIGIT

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DIGIT

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_GRAPH

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_LOWER

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PRINTABLE

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PUNCT

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_SPACE

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_UPPER

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_WORDCHAR

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_XDIGIT

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Identifier

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sequence_534

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Literal

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Class

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DOT

         error_pop_merge
     ok! jump              ok_541

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_541:
         ast_pop_discard
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              sym_OPEN

         error_pop_merge
   fail! jump              failednoast_536
         ast_push
         error_push

         call              sym_Expression

         error_pop_merge
   fail! jump              failed_535
         error_push

         call              sym_CLOSE

         error_pop_merge
   fail! jump              failed_535

         ast_pop_discard
         loc_pop_discard
         return

failed_535:
         ast_pop_rewind

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

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

         symbol_restore    PRINTABLE
  found! jump              found_557
         loc_push

         call              sequence_554

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

found_557:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_555
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_555
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_555
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_555
         error_push

         call              char_8

         error_pop_merge
   fail! jump              failed_555
         error_push

         call              char_111

         error_pop_merge
   fail! jump              failed_555
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_555
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_555

         loc_pop_discard
         return

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

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

         symbol_restore    PUNCT
  found! jump              found_570
         loc_push

         call              sequence_567

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

found_570:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_568
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_568
         error_push

         call              char_10

         error_pop_merge
   fail! jump              failed_568
         error_push

         call              char_8

         error_pop_merge
   fail! jump              failed_568
         error_push

         call              char_52

         error_pop_merge
   fail! jump              failed_568
         error_push

         call              char_111

         error_pop_merge
   fail! jump              failed_568
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_568
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_568

         loc_pop_discard
         return

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

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

         symbol_restore    QUESTION
  found! jump              found_578
         loc_push

         call              sequence_575

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

found_578:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_572

         error_pop_merge
   fail! jump              failed_576
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_576

         loc_pop_discard
         return

failed_576:
         loc_pop_rewind
         return

char_572:
# '?'

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

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

         symbol_restore    Range
  found! jump              found_590
         loc_push
         ast_push

         call              choice_588

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

found_590:
     ok! ast_value_push
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sequence_583

         error_pop_merge
     ok! jump              ok_587

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Char

         error_pop_merge
     ok! jump              ok_587

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_587:
         ast_pop_discard
         loc_pop_discard
         return

sequence_583:
# x
#     (Char)
#     (TO)
#     (Char)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_584
         error_push

         call              sym_TO

         error_pop_merge
   fail! jump              failed_584
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_584

         ast_pop_discard
         loc_pop_discard
         return

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

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

         symbol_restore    SEMICOLON
  found! return
         loc_push

         call              sequence_595

         value_clear
         symbol_save       SEMICOLON
         error_nonterminal SEMICOLON
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_592

         error_pop_merge
   fail! jump              failed_596
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_596

         loc_pop_discard
         return

failed_596:
         loc_pop_rewind
         return

char_592:
# ';'

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

sym_Sequence:
# +
#     (Prefix)

         symbol_restore    Sequence
  found! jump              found_604
         loc_push
         ast_push

         call              poskleene_600

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

found_604:
     ok! ast_value_push
         return

poskleene_600:
# +
#     (Prefix)

         loc_push

         call              sym_Prefix

   fail! jump              failed_601

loop_602:
         loc_pop_discard
         loc_push
         error_push

         call              sym_Prefix

         error_pop_merge
     ok! jump              loop_602
         status_ok

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

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

         symbol_restore    SLASH
  found! return
         loc_push

         call              sequence_609

         value_clear
         symbol_save       SLASH
         error_nonterminal SLASH
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_606

         error_pop_merge
   fail! jump              failed_610
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_610

         loc_pop_discard
         return

failed_610:
         loc_pop_rewind
         return

char_606:
# '/'

         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_624
         loc_push

         call              sequence_621

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

found_624:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_622
         error_push

         call              char_50

         error_pop_merge
   fail! jump              failed_622
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_622
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_622
         error_push

         call              char_52

         error_pop_merge
   fail! jump              failed_622
         error_push

         call              char_402

         error_pop_merge
   fail! jump              failed_622
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_622
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_622

         loc_pop_discard
         return

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

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

         symbol_restore    STAR
  found! jump              found_632
         loc_push

         call              sequence_629

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

found_632:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_626

         error_pop_merge
   fail! jump              failed_630
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_630

         loc_pop_discard
         return

failed_630:
         loc_pop_rewind
         return

char_626:
# '*'

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

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

         symbol_restore    StartExpr
  found! jump              found_638
         loc_push
         ast_push

         call              sequence_534

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

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

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

         symbol_restore    Suffix
  found! jump              found_652
         loc_push
         ast_push

         call              sequence_649

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

found_652:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Primary

         error_pop_merge
   fail! jump              failed_650
         error_push

         call              optional_647

         error_pop_merge
   fail! jump              failed_650

         ast_pop_discard
         loc_pop_discard
         return

failed_650:
         ast_pop_rewind
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              choice_645

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_QUESTION

         error_pop_merge
     ok! jump              ok_644

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_STAR

         error_pop_merge
     ok! jump              ok_644

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PLUS

         error_pop_merge
     ok! jump              ok_644

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

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

sym_TO:
# '-'

         symbol_restore    TO
  found! return
         loc_push

         call              char_394

         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_667
         loc_push

         call              sequence_664

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

found_667:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_665
         error_push

         call              char_10

         error_pop_merge
   fail! jump              failed_665
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_665
         error_push

         call              char_25

         error_pop_merge
   fail! jump              failed_665
         error_push

         call              char_402

         error_pop_merge
   fail! jump              failed_665
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_665
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_665
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_665

         loc_pop_discard
         return

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

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

         symbol_restore    VOID
  found! jump              found_678
         loc_push

         call              sequence_675

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

found_678:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_669

         error_pop_merge
   fail! jump              failed_676
         error_push

         call              char_217

         error_pop_merge
   fail! jump              failed_676
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_676
         error_push

         call              char_234

         error_pop_merge
   fail! jump              failed_676
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_676

         loc_pop_discard
         return

failed_676:
         loc_pop_rewind
         return

char_669:
# '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_686

         value_clear
         symbol_save       WHITESPACE
         error_nonterminal WHITESPACE
         loc_pop_discard
         return

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

         loc_push
         error_push

         call              choice_684

         error_pop_merge
   fail! jump              failed_687
         loc_pop_discard
         jump              kleene_686

failed_687:
         loc_pop_rewind
         status_ok
         return

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

         error_clear

         loc_push
         error_push

         call              space_680

         error_pop_merge
     ok! jump              oknoast_683

         loc_pop_rewind
         loc_push
         error_push

         call              sym_COMMENT

         error_pop_merge
     ok! jump              oknoast_683

         loc_pop_rewind
         status_fail
         return

oknoast_683:
         loc_pop_discard
         return

space_680:
# <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_704
         loc_push

         call              sequence_701

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

found_704:
     ok! ast_value_push
         return

sequence_701:
# 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_702
         error_push

         call              char_457

         error_pop_merge
   fail! jump              failed_702
         error_push

         call              char_217

         error_pop_merge
   fail! jump              failed_702
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_702
         error_push

         call              char_234

         error_pop_merge
   fail! jump              failed_702
         error_push

         call              char_52

         error_pop_merge
   fail! jump              failed_702
         error_push

         call              char_27

         error_pop_merge
   fail! jump              failed_702
         error_push

         call              char_4

         error_pop_merge
   fail! jump              failed_702
         error_push

         call              char_109

         error_pop_merge
   fail! jump              failed_702
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_702
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_702

         loc_pop_discard
         return

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

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

         symbol_restore    XDIGIT
  found! jump              found_719
         loc_push

         call              sequence_716

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

found_719:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_2

         error_pop_merge
   fail! jump              failed_717
         error_push

         call              char_707

         error_pop_merge
   fail! jump              failed_717
         error_push

         call              char_234

         error_pop_merge
   fail! jump              failed_717
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_717
         error_push

         call              char_238

         error_pop_merge
   fail! jump              failed_717
         error_push

         call              char_54

         error_pop_merge
   fail! jump              failed_717
         error_push

         call              char_111

         error_pop_merge
   fail! jump              failed_717
         error_push

         call              char_14

         error_pop_merge
   fail! jump              failed_717
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_717

         loc_pop_discard
         return

failed_717:
         loc_pop_rewind
         return

char_707:
# 'x'

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

#
#
