# -*- 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_40
         loc_push

         call              sequence_37

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

found_40:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_22

         error_pop_merge
   fail! jump              failed_38
         error_push

         call              char_24

         error_pop_merge
   fail! jump              failed_38
         error_push

         call              char_26

         error_pop_merge
   fail! jump              failed_38
         error_push

         call              char_28

         error_pop_merge
   fail! jump              failed_38
         error_push

         call              char_30

         error_pop_merge
   fail! jump              failed_38
         error_push

         call              char_32

         error_pop_merge
   fail! jump              failed_38
         error_push

         call              char_34

         error_pop_merge
   fail! jump              failed_38
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_38

         loc_pop_discard
         return

failed_38:
         loc_pop_rewind
         return

char_22:
# '<'

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

char_24:
# 'a'

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

char_26:
# 'l'

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

char_28:
# 'p'

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

char_30:
# 'h'

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

char_32:
# 'a'

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

char_34:
# '>'

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

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

         symbol_restore    AND
  found! jump              found_48
         loc_push

         call              sequence_45

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

found_48:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_42

         error_pop_merge
   fail! jump              failed_46
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_46

         loc_pop_discard
         return

failed_46:
         loc_pop_rewind
         return

char_42:
# '&'

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

sym_APOSTROPH:
# '''

         symbol_restore    APOSTROPH
  found! return
         loc_push

         call              char_50

         value_clear
         symbol_save       APOSTROPH
         error_nonterminal APOSTROPH
         loc_pop_discard
         return

char_50:
# '''

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

         call              sequence_68

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

found_71:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_53

         error_pop_merge
   fail! jump              failed_69
         error_push

         call              char_55

         error_pop_merge
   fail! jump              failed_69
         error_push

         call              char_57

         error_pop_merge
   fail! jump              failed_69
         error_push

         call              char_59

         error_pop_merge
   fail! jump              failed_69
         error_push

         call              char_61

         error_pop_merge
   fail! jump              failed_69
         error_push

         call              char_63

         error_pop_merge
   fail! jump              failed_69
         error_push

         call              char_65

         error_pop_merge
   fail! jump              failed_69
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_69

         loc_pop_discard
         return

failed_69:
         loc_pop_rewind
         return

char_53:
# '<'

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

char_55:
# 'a'

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

char_57:
# 's'

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

char_59:
# 'c'

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

char_61:
# 'i'

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

char_63:
# 'i'

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

char_65:
# '>'

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

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

         symbol_restore    Attribute
  found! jump              found_82
         loc_push
         ast_push

         call              sequence_79

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

found_82:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              choice_76

         error_pop_merge
   fail! jump              failed_80
         error_push

         call              sym_COLON

         error_pop_merge
   fail! jump              failed_80

         ast_pop_discard
         loc_pop_discard
         return

failed_80:
         ast_pop_rewind
         loc_pop_rewind
         return

choice_76:
# /
#     (VOID)
#     (LEAF)

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_VOID

         error_pop_merge
     ok! jump              ok_75

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_LEAF

         error_pop_merge
     ok! jump              ok_75

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

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

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

         symbol_restore    Char
  found! jump              found_92
         loc_push
         ast_push

         call              choice_90

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

found_92:
     ok! ast_value_push
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_CharSpecial

         error_pop_merge
     ok! jump              ok_89

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CharOctalFull

         error_pop_merge
     ok! jump              ok_89

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CharOctalPart

         error_pop_merge
     ok! jump              ok_89

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CharUnicode

         error_pop_merge
     ok! jump              ok_89

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CharUnescaped

         error_pop_merge
     ok! jump              ok_89

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_89:
         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_105
         loc_push

         call              sequence_102

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

found_105:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_94

         error_pop_merge
   fail! jump              failed_103
         error_push

         call              range_96

         error_pop_merge
   fail! jump              failed_103
         error_push

         call              range_98

         error_pop_merge
   fail! jump              failed_103
         error_push

         call              range_100

         error_pop_merge
   fail! jump              failed_103

         loc_pop_discard
         return

failed_103:
         loc_pop_rewind
         return

char_94:
# '\'

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

range_96:
# range (0 .. 2)

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

range_98:
# range (0 .. 7)

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

range_100:
# 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_118
         loc_push

         call              sequence_115

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

found_118:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_107

         error_pop_merge
   fail! jump              failed_116
         error_push

         call              range_109

         error_pop_merge
   fail! jump              failed_116
         error_push

         call              optional_113

         error_pop_merge
   fail! jump              failed_116

         loc_pop_discard
         return

failed_116:
         loc_pop_rewind
         return

char_107:
# '\'

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

range_109:
# range (0 .. 7)

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

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

         loc_push
         error_push

         call              range_111

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

range_111:
# range (0 .. 7)

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

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

         symbol_restore    CharSpecial
  found! jump              found_144
         loc_push

         call              sequence_141

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

found_144:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_120

         error_pop_merge
   fail! jump              failed_142
         error_push

         call              choice_139

         error_pop_merge
   fail! jump              failed_142

         loc_pop_discard
         return

failed_142:
         loc_pop_rewind
         return

char_120:
# '\'

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

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

         error_clear

         loc_push
         error_push

         call              char_122

         error_pop_merge
     ok! jump              oknoast_138

         loc_pop_rewind
         loc_push
         error_push

         call              char_124

         error_pop_merge
     ok! jump              oknoast_138

         loc_pop_rewind
         loc_push
         error_push

         call              char_126

         error_pop_merge
     ok! jump              oknoast_138

         loc_pop_rewind
         loc_push
         error_push

         call              char_128

         error_pop_merge
     ok! jump              oknoast_138

         loc_pop_rewind
         loc_push
         error_push

         call              char_130

         error_pop_merge
     ok! jump              oknoast_138

         loc_pop_rewind
         loc_push
         error_push

         call              char_132

         error_pop_merge
     ok! jump              oknoast_138

         loc_pop_rewind
         loc_push
         error_push

         call              char_134

         error_pop_merge
     ok! jump              oknoast_138

         loc_pop_rewind
         loc_push
         error_push

         call              char_136

         error_pop_merge
     ok! jump              oknoast_138

         loc_pop_rewind
         status_fail
         return

oknoast_138:
         loc_pop_discard
         return

char_122:
# 'n'

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

char_124:
# 'r'

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

char_126:
# 't'

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

char_128:
# '''

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

char_130:
# '\"'

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

char_132:
# '['

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

char_134:
# ']'

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

char_136:
# '\'

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

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

         symbol_restore    CharUnescaped
  found! jump              found_154
         loc_push

         call              sequence_151

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

found_154:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              notahead_148

         error_pop_merge
   fail! jump              failed_152
         error_push

         input_next        "dot"

         error_pop_merge
   fail! jump              failed_152

         loc_pop_discard
         return

failed_152:
         loc_pop_rewind
         return

notahead_148:
# !
#     '\'

         loc_push

         call              char_146

         loc_pop_rewind
         status_negate
         return

char_146:
# '\'

         input_next        "t \\"
     ok! test_char         "\\"
         return
#
# leaf Symbol 'CharUnicode'
#

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

         symbol_restore    CharUnicode
  found! jump              found_183
         loc_push

         call              sequence_180

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

found_183:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_156

         error_pop_merge
   fail! jump              failed_181
         error_push

         call              char_158

         error_pop_merge
   fail! jump              failed_181
         error_push

         call              xdigit_160

         error_pop_merge
   fail! jump              failed_181
         error_push

         call              optional_178

         error_pop_merge
   fail! jump              failed_181

         loc_pop_discard
         return

failed_181:
         loc_pop_rewind
         return

char_156:
# '\'

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

char_158:
# 'u'

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

xdigit_160:
# <xdigit>

         input_next        "xdigit"
     ok! test_xdigit
         return

optional_178:
# ?
#     x
#         <xdigit>
#         ?
#             x
#                 <xdigit>
#                 ?
#                     <xdigit>

         loc_push
         error_push

         call              sequence_175

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

sequence_175:
# x
#     <xdigit>
#     ?
#         x
#             <xdigit>
#             ?
#                 <xdigit>

         loc_push
         error_clear

         error_push

         call              xdigit_162

         error_pop_merge
   fail! jump              failed_176
         error_push

         call              optional_173

         error_pop_merge
   fail! jump              failed_176

         loc_pop_discard
         return

failed_176:
         loc_pop_rewind
         return

xdigit_162:
# <xdigit>

         input_next        "xdigit"
     ok! test_xdigit
         return

optional_173:
# ?
#     x
#         <xdigit>
#         ?
#             <xdigit>

         loc_push
         error_push

         call              sequence_170

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

sequence_170:
# x
#     <xdigit>
#     ?
#         <xdigit>

         loc_push
         error_clear

         error_push

         call              xdigit_164

         error_pop_merge
   fail! jump              failed_171
         error_push

         call              optional_168

         error_pop_merge
   fail! jump              failed_171

         loc_pop_discard
         return

failed_171:
         loc_pop_rewind
         return

xdigit_164:
# <xdigit>

         input_next        "xdigit"
     ok! test_xdigit
         return

optional_168:
# ?
#     <xdigit>

         loc_push
         error_push

         call              xdigit_166

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

xdigit_166:
# <xdigit>

         input_next        "xdigit"
     ok! test_xdigit
         return
#
# value Symbol 'Class'
#

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

         symbol_restore    Class
  found! jump              found_203
         loc_push
         ast_push

         call              sequence_199

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

found_203:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              sym_OPENB

         error_pop_merge
   fail! jump              failednoast_201
         ast_push
         error_push

         call              kleene_194

         error_pop_merge
   fail! jump              failed_200
         error_push

         call              sym_CLOSEB

         error_pop_merge
   fail! jump              failed_200
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_200

         ast_pop_discard
         loc_pop_discard
         return

failed_200:
         ast_pop_rewind

failednoast_201:
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_190

         error_pop_merge
   fail! jump              failed_195
         loc_pop_discard
         jump              kleene_194

failed_195:
         loc_pop_rewind
         status_ok
         return

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

         loc_push
         error_clear

         error_push

         call              notahead_187

         error_pop_merge
   fail! jump              failednoast_192
         ast_push
         error_push

         call              sym_Range

         error_pop_merge
   fail! jump              failed_191

         ast_pop_discard
         loc_pop_discard
         return

failed_191:
         ast_pop_rewind

failednoast_192:
         loc_pop_rewind
         return

notahead_187:
# !
#     (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_208

         value_clear
         symbol_save       CLOSE
         error_nonterminal CLOSE
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_205

         error_pop_merge
   fail! jump              failed_209
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_209

         loc_pop_discard
         return

failed_209:
         loc_pop_rewind
         return

char_205:
# '\)'

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

sym_CLOSEB:
# ']'

         symbol_restore    CLOSEB
  found! return
         loc_push

         call              char_212

         value_clear
         symbol_save       CLOSEB
         error_nonterminal CLOSEB
         loc_pop_discard
         return

char_212:
# ']'

         input_next        "t ]"
     ok! test_char         "]"
         return
#
# void Symbol 'COLON'
#

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

         symbol_restore    COLON
  found! return
         loc_push

         call              sequence_218

         value_clear
         symbol_save       COLON
         error_nonterminal COLON
         loc_pop_discard
         return

sequence_218:
# x
#     ':'
#     (WHITESPACE)

         loc_push
         error_clear

         error_push

         call              char_215

         error_pop_merge
   fail! jump              failed_219
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_219

         loc_pop_discard
         return

failed_219:
         loc_pop_rewind
         return

char_215:
# ':'

         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_235

         value_clear
         symbol_save       COMMENT
         error_nonterminal COMMENT
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_222

         error_pop_merge
   fail! jump              failed_236
         error_push

         call              kleene_231

         error_pop_merge
   fail! jump              failed_236
         error_push

         call              sym_EOL

         error_pop_merge
   fail! jump              failed_236

         loc_pop_discard
         return

failed_236:
         loc_pop_rewind
         return

char_222:
# '#'

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

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

         loc_push
         error_push

         call              sequence_228

         error_pop_merge
   fail! jump              failed_232
         loc_pop_discard
         jump              kleene_231

failed_232:
         loc_pop_rewind
         status_ok
         return

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

         loc_push
         error_clear

         error_push

         call              notahead_225

         error_pop_merge
   fail! jump              failed_229
         error_push

         input_next        "dot"

         error_pop_merge
   fail! jump              failed_229

         loc_pop_discard
         return

failed_229:
         loc_pop_rewind
         return

notahead_225:
# !
#     (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_261
         loc_push

         call              sequence_258

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

found_261:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_239

         error_pop_merge
   fail! jump              failed_259
         error_push

         call              char_241

         error_pop_merge
   fail! jump              failed_259
         error_push

         call              char_243

         error_pop_merge
   fail! jump              failed_259
         error_push

         call              char_245

         error_pop_merge
   fail! jump              failed_259
         error_push

         call              char_247

         error_pop_merge
   fail! jump              failed_259
         error_push

         call              char_249

         error_pop_merge
   fail! jump              failed_259
         error_push

         call              char_251

         error_pop_merge
   fail! jump              failed_259
         error_push

         call              char_253

         error_pop_merge
   fail! jump              failed_259
         error_push

         call              char_255

         error_pop_merge
   fail! jump              failed_259
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_259

         loc_pop_discard
         return

failed_259:
         loc_pop_rewind
         return

char_239:
# '<'

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

char_241:
# 'c'

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

char_243:
# 'o'

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

char_245:
# 'n'

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

char_247:
# 't'

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

char_249:
# 'r'

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

char_251:
# 'o'

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

char_253:
# 'l'

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

char_255:
# '>'

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

sym_DAPOSTROPH:
# '\"'

         symbol_restore    DAPOSTROPH
  found! return
         loc_push

         call              char_263

         value_clear
         symbol_save       DAPOSTROPH
         error_nonterminal DAPOSTROPH
         loc_pop_discard
         return

char_263:
# '\"'

         input_next        "t \""
     ok! test_char         "\""
         return
#
# leaf Symbol 'DDIGIT'
#

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

         symbol_restore    DDIGIT
  found! jump              found_286
         loc_push

         call              sequence_283

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

found_286:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_266

         error_pop_merge
   fail! jump              failed_284
         error_push

         call              char_268

         error_pop_merge
   fail! jump              failed_284
         error_push

         call              char_270

         error_pop_merge
   fail! jump              failed_284
         error_push

         call              char_272

         error_pop_merge
   fail! jump              failed_284
         error_push

         call              char_274

         error_pop_merge
   fail! jump              failed_284
         error_push

         call              char_276

         error_pop_merge
   fail! jump              failed_284
         error_push

         call              char_278

         error_pop_merge
   fail! jump              failed_284
         error_push

         call              char_280

         error_pop_merge
   fail! jump              failed_284
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_284

         loc_pop_discard
         return

failed_284:
         loc_pop_rewind
         return

char_266:
# '<'

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

char_268:
# 'd'

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

char_270:
# 'd'

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

char_272:
# 'i'

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

char_274:
# 'g'

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

char_276:
# 'i'

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

char_278:
# 't'

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

char_280:
# '>'

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

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

         symbol_restore    Definition
  found! jump              found_298
         loc_push
         ast_push

         call              sequence_295

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

found_298:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              optional_289

         error_pop_merge
   fail! jump              failed_296
         error_push

         call              sym_Identifier

         error_pop_merge
   fail! jump              failed_296
         error_push

         call              sym_IS

         error_pop_merge
   fail! jump              failed_296
         error_push

         call              sym_Expression

         error_pop_merge
   fail! jump              failed_296
         error_push

         call              sym_SEMICOLON

         error_pop_merge
   fail! jump              failed_296

         ast_pop_discard
         loc_pop_discard
         return

failed_296:
         ast_pop_rewind
         loc_pop_rewind
         return

optional_289:
# ?
#     (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_318
         loc_push

         call              sequence_315

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

found_318:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_300

         error_pop_merge
   fail! jump              failed_316
         error_push

         call              char_302

         error_pop_merge
   fail! jump              failed_316
         error_push

         call              char_304

         error_pop_merge
   fail! jump              failed_316
         error_push

         call              char_306

         error_pop_merge
   fail! jump              failed_316
         error_push

         call              char_308

         error_pop_merge
   fail! jump              failed_316
         error_push

         call              char_310

         error_pop_merge
   fail! jump              failed_316
         error_push

         call              char_312

         error_pop_merge
   fail! jump              failed_316
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_316

         loc_pop_discard
         return

failed_316:
         loc_pop_rewind
         return

char_300:
# '<'

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

char_302:
# 'd'

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

char_304:
# 'i'

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

char_306:
# 'g'

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

char_308:
# 'i'

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

char_310:
# 't'

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

char_312:
# '>'

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

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

         symbol_restore    DOT
  found! jump              found_326
         loc_push

         call              sequence_323

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

found_326:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_320

         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

char_320:
# '.'

         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_335

         value_clear
         symbol_save       END
         error_nonterminal END
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_328

         error_pop_merge
   fail! jump              failed_336
         error_push

         call              char_330

         error_pop_merge
   fail! jump              failed_336
         error_push

         call              char_332

         error_pop_merge
   fail! jump              failed_336
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_336

         loc_pop_discard
         return

failed_336:
         loc_pop_rewind
         return

char_328:
# 'E'

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

char_330:
# 'N'

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

char_332:
# '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_340

         value_clear
         symbol_save       EOF
         error_nonterminal EOF
         loc_pop_discard
         return

notahead_340:
# !
#     <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_348

         value_clear
         symbol_save       EOL
         error_nonterminal EOL
         loc_pop_discard
         return

choice_348:
# /
#     '\n'
#     '\r'

         error_clear

         loc_push
         error_push

         call              char_343

         error_pop_merge
     ok! jump              oknoast_347

         loc_pop_rewind
         loc_push
         error_push

         call              char_345

         error_pop_merge
     ok! jump              oknoast_347

         loc_pop_rewind
         status_fail
         return

oknoast_347:
         loc_pop_discard
         return

char_343:
# '\n'

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

char_345:
# '\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_364
         loc_push
         ast_push

         call              sequence_361

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

found_364:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Sequence

         error_pop_merge
   fail! jump              failed_362
         error_push

         call              kleene_358

         error_pop_merge
   fail! jump              failed_362

         ast_pop_discard
         loc_pop_discard
         return

failed_362:
         ast_pop_rewind
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_354

         error_pop_merge
   fail! jump              failed_359
         loc_pop_discard
         jump              kleene_358

failed_359:
         loc_pop_rewind
         status_ok
         return

sequence_354:
# x
#     (SLASH)
#     (Sequence)

         loc_push
         error_clear

         error_push

         call              sym_SLASH

         error_pop_merge
   fail! jump              failednoast_356
         ast_push
         error_push

         call              sym_Sequence

         error_pop_merge
   fail! jump              failed_355

         ast_pop_discard
         loc_pop_discard
         return

failed_355:
         ast_pop_rewind

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

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

         symbol_restore    Final
  found! return
         loc_push

         call              sequence_369

         value_clear
         symbol_save       Final
         error_nonterminal Final
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              sym_END

         error_pop_merge
   fail! jump              failed_370
         error_push

         call              sym_SEMICOLON

         error_pop_merge
   fail! jump              failed_370
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_370

         loc_pop_discard
         return

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

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

         symbol_restore    Grammar
  found! jump              found_385
         loc_push
         ast_push

         call              sequence_381

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

found_385:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failednoast_383
         ast_push
         error_push

         call              sym_Header

         error_pop_merge
   fail! jump              failed_382
         error_push

         call              kleene_376

         error_pop_merge
   fail! jump              failed_382
         error_push

         call              sym_Final

         error_pop_merge
   fail! jump              failed_382
         error_push

         call              sym_EOF

         error_pop_merge
   fail! jump              failed_382

         ast_pop_discard
         loc_pop_discard
         return

failed_382:
         ast_pop_rewind

failednoast_383:
         loc_pop_rewind
         return

kleene_376:
# *
#     (Definition)

         loc_push
         error_push

         call              sym_Definition

         error_pop_merge
   fail! jump              failed_377
         loc_pop_discard
         jump              kleene_376

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

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

         symbol_restore    GRAPH
  found! jump              found_405
         loc_push

         call              sequence_402

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

found_405:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_387

         error_pop_merge
   fail! jump              failed_403
         error_push

         call              char_389

         error_pop_merge
   fail! jump              failed_403
         error_push

         call              char_391

         error_pop_merge
   fail! jump              failed_403
         error_push

         call              char_393

         error_pop_merge
   fail! jump              failed_403
         error_push

         call              char_395

         error_pop_merge
   fail! jump              failed_403
         error_push

         call              char_397

         error_pop_merge
   fail! jump              failed_403
         error_push

         call              char_399

         error_pop_merge
   fail! jump              failed_403
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_403

         loc_pop_discard
         return

failed_403:
         loc_pop_rewind
         return

char_387:
# '<'

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

char_389:
# 'g'

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

char_391:
# 'r'

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

char_393:
# 'a'

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

char_395:
# 'p'

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

char_397:
# 'h'

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

char_399:
# '>'

         input_next        "t >"
     ok! test_char         ">"
         return
#
# value Symbol 'Header'
#

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

         symbol_restore    Header
  found! jump              found_414
         loc_push
         ast_push

         call              sequence_410

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

found_414:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              sym_PEG

         error_pop_merge
   fail! jump              failednoast_412
         ast_push
         error_push

         call              sym_Identifier

         error_pop_merge
   fail! jump              failed_411
         error_push

         call              sym_StartExpr

         error_pop_merge
   fail! jump              failed_411

         ast_pop_discard
         loc_pop_discard
         return

failed_411:
         ast_pop_rewind

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

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

         symbol_restore    Ident
  found! jump              found_440
         loc_push

         call              sequence_437

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

found_440:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              choice_423

         error_pop_merge
   fail! jump              failed_438
         error_push

         call              kleene_434

         error_pop_merge
   fail! jump              failed_438

         loc_pop_discard
         return

failed_438:
         loc_pop_rewind
         return

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

         error_clear

         loc_push
         error_push

         call              char_416

         error_pop_merge
     ok! jump              oknoast_422

         loc_pop_rewind
         loc_push
         error_push

         call              char_418

         error_pop_merge
     ok! jump              oknoast_422

         loc_pop_rewind
         loc_push
         error_push

         call              alpha_420

         error_pop_merge
     ok! jump              oknoast_422

         loc_pop_rewind
         status_fail
         return

oknoast_422:
         loc_pop_discard
         return

char_416:
# '_'

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

char_418:
# ':'

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

alpha_420:
# <alpha>

         input_next        "alpha"
     ok! test_alpha
         return

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

         loc_push
         error_push

         call              choice_432

         error_pop_merge
   fail! jump              failed_435
         loc_pop_discard
         jump              kleene_434

failed_435:
         loc_pop_rewind
         status_ok
         return

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

         error_clear

         loc_push
         error_push

         call              char_425

         error_pop_merge
     ok! jump              oknoast_431

         loc_pop_rewind
         loc_push
         error_push

         call              char_427

         error_pop_merge
     ok! jump              oknoast_431

         loc_pop_rewind
         loc_push
         error_push

         call              alnum_429

         error_pop_merge
     ok! jump              oknoast_431

         loc_pop_rewind
         status_fail
         return

oknoast_431:
         loc_pop_discard
         return

char_425:
# '_'

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

char_427:
# ':'

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

alnum_429:
# <alnum>

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

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

         symbol_restore    Identifier
  found! jump              found_447
         loc_push
         ast_push

         call              sequence_444

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

found_447:
     ok! ast_value_push
         return

sequence_444:
# x
#     (Ident)
#     (WHITESPACE)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Ident

         error_pop_merge
   fail! jump              failed_445
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_445

         ast_pop_discard
         loc_pop_discard
         return

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

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

         symbol_restore    IS
  found! return
         loc_push

         call              sequence_454

         value_clear
         symbol_save       IS
         error_nonterminal IS
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_449

         error_pop_merge
   fail! jump              failed_455
         error_push

         call              char_451

         error_pop_merge
   fail! jump              failed_455
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_455

         loc_pop_discard
         return

failed_455:
         loc_pop_rewind
         return

char_449:
# '<'

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

char_451:
# '-'

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

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

         symbol_restore    LEAF
  found! jump              found_470
         loc_push

         call              sequence_467

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

found_470:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_458

         error_pop_merge
   fail! jump              failed_468
         error_push

         call              char_460

         error_pop_merge
   fail! jump              failed_468
         error_push

         call              char_462

         error_pop_merge
   fail! jump              failed_468
         error_push

         call              char_464

         error_pop_merge
   fail! jump              failed_468
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_468

         loc_pop_discard
         return

failed_468:
         loc_pop_rewind
         return

char_458:
# 'l'

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

char_460:
# 'e'

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

char_462:
# 'a'

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

char_464:
# '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_511
         loc_push
         ast_push

         call              choice_509

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

found_511:
     ok! ast_value_push
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sequence_486

         error_pop_merge
     ok! jump              ok_508

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sequence_504

         error_pop_merge
     ok! jump              ok_508

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_508:
         ast_pop_discard
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              sym_APOSTROPH

         error_pop_merge
   fail! jump              failednoast_488
         ast_push
         error_push

         call              kleene_481

         error_pop_merge
   fail! jump              failed_487
         error_push

         call              sym_APOSTROPH

         error_pop_merge
   fail! jump              failed_487
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_487

         ast_pop_discard
         loc_pop_discard
         return

failed_487:
         ast_pop_rewind

failednoast_488:
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_477

         error_pop_merge
   fail! jump              failed_482
         loc_pop_discard
         jump              kleene_481

failed_482:
         loc_pop_rewind
         status_ok
         return

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

         loc_push
         error_clear

         error_push

         call              notahead_474

         error_pop_merge
   fail! jump              failednoast_479
         ast_push
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_478

         ast_pop_discard
         loc_pop_discard
         return

failed_478:
         ast_pop_rewind

failednoast_479:
         loc_pop_rewind
         return

notahead_474:
# !
#     (APOSTROPH)

         loc_push

         call              sym_APOSTROPH

         loc_pop_rewind
         status_negate
         return

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

         loc_push
         error_clear

         error_push

         call              sym_DAPOSTROPH

         error_pop_merge
   fail! jump              failednoast_506
         ast_push
         error_push

         call              kleene_499

         error_pop_merge
   fail! jump              failed_505
         error_push

         call              sym_DAPOSTROPH

         error_pop_merge
   fail! jump              failed_505
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_505

         ast_pop_discard
         loc_pop_discard
         return

failed_505:
         ast_pop_rewind

failednoast_506:
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_495

         error_pop_merge
   fail! jump              failed_500
         loc_pop_discard
         jump              kleene_499

failed_500:
         loc_pop_rewind
         status_ok
         return

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

         loc_push
         error_clear

         error_push

         call              notahead_492

         error_pop_merge
   fail! jump              failednoast_497
         ast_push
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_496

         ast_pop_discard
         loc_pop_discard
         return

failed_496:
         ast_pop_rewind

failednoast_497:
         loc_pop_rewind
         return

notahead_492:
# !
#     (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_531
         loc_push

         call              sequence_528

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

found_531:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_513

         error_pop_merge
   fail! jump              failed_529
         error_push

         call              char_515

         error_pop_merge
   fail! jump              failed_529
         error_push

         call              char_517

         error_pop_merge
   fail! jump              failed_529
         error_push

         call              char_519

         error_pop_merge
   fail! jump              failed_529
         error_push

         call              char_521

         error_pop_merge
   fail! jump              failed_529
         error_push

         call              char_523

         error_pop_merge
   fail! jump              failed_529
         error_push

         call              char_525

         error_pop_merge
   fail! jump              failed_529
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_529

         loc_pop_discard
         return

failed_529:
         loc_pop_rewind
         return

char_513:
# '<'

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

char_515:
# 'l'

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

char_517:
# 'o'

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

char_519:
# 'w'

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

char_521:
# 'e'

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

char_523:
# 'r'

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

char_525:
# '>'

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

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

         symbol_restore    NOT
  found! jump              found_539
         loc_push

         call              sequence_536

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

found_539:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_533

         error_pop_merge
   fail! jump              failed_537
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_537

         loc_pop_discard
         return

failed_537:
         loc_pop_rewind
         return

char_533:
# '!'

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

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

         symbol_restore    OPEN
  found! return
         loc_push

         call              sequence_544

         value_clear
         symbol_save       OPEN
         error_nonterminal OPEN
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_541

         error_pop_merge
   fail! jump              failed_545
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_545

         loc_pop_discard
         return

failed_545:
         loc_pop_rewind
         return

char_541:
# '\('

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

sym_OPENB:
# '['

         symbol_restore    OPENB
  found! return
         loc_push

         call              char_548

         value_clear
         symbol_save       OPENB
         error_nonterminal OPENB
         loc_pop_discard
         return

char_548:
# '['

         input_next        "t ["
     ok! test_char         "["
         return
#
# void Symbol 'PEG'
#

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

         symbol_restore    PEG
  found! return
         loc_push

         call              sequence_558

         value_clear
         symbol_save       PEG
         error_nonterminal PEG
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_551

         error_pop_merge
   fail! jump              failed_559
         error_push

         call              char_553

         error_pop_merge
   fail! jump              failed_559
         error_push

         call              char_555

         error_pop_merge
   fail! jump              failed_559
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_559

         loc_pop_discard
         return

failed_559:
         loc_pop_rewind
         return

char_551:
# 'P'

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

char_553:
# 'E'

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

char_555:
# 'G'

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

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

         symbol_restore    PLUS
  found! jump              found_568
         loc_push

         call              sequence_565

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

found_568:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_562

         error_pop_merge
   fail! jump              failed_566
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_566

         loc_pop_discard
         return

failed_566:
         loc_pop_rewind
         return

char_562:
# '+'

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

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

         symbol_restore    Prefix
  found! jump              found_581
         loc_push
         ast_push

         call              sequence_578

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

found_581:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              optional_575

         error_pop_merge
   fail! jump              failed_579
         error_push

         call              sym_Suffix

         error_pop_merge
   fail! jump              failed_579

         ast_pop_discard
         loc_pop_discard
         return

failed_579:
         ast_pop_rewind
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              choice_573

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

choice_573:
# /
#     (AND)
#     (NOT)

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_AND

         error_pop_merge
     ok! jump              ok_572

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_NOT

         error_pop_merge
     ok! jump              ok_572

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_572:
         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_611
         loc_push
         ast_push

         call              choice_609

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

found_611:
     ok! ast_value_push
         return

choice_609:
# /
#     (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_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_ALPHA

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_ASCII

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CONTROL

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DDIGIT

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DIGIT

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_GRAPH

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_LOWER

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PRINTABLE

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PUNCT

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_SPACE

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_UPPER

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_WORDCHAR

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_XDIGIT

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Identifier

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sequence_601

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Literal

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Class

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DOT

         error_pop_merge
     ok! jump              ok_608

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_608:
         ast_pop_discard
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              sym_OPEN

         error_pop_merge
   fail! jump              failednoast_603
         ast_push
         error_push

         call              sym_Expression

         error_pop_merge
   fail! jump              failed_602
         error_push

         call              sym_CLOSE

         error_pop_merge
   fail! jump              failed_602

         ast_pop_discard
         loc_pop_discard
         return

failed_602:
         ast_pop_rewind

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

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

         symbol_restore    PRINTABLE
  found! jump              found_631
         loc_push

         call              sequence_628

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

found_631:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_613

         error_pop_merge
   fail! jump              failed_629
         error_push

         call              char_615

         error_pop_merge
   fail! jump              failed_629
         error_push

         call              char_617

         error_pop_merge
   fail! jump              failed_629
         error_push

         call              char_619

         error_pop_merge
   fail! jump              failed_629
         error_push

         call              char_621

         error_pop_merge
   fail! jump              failed_629
         error_push

         call              char_623

         error_pop_merge
   fail! jump              failed_629
         error_push

         call              char_625

         error_pop_merge
   fail! jump              failed_629
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_629

         loc_pop_discard
         return

failed_629:
         loc_pop_rewind
         return

char_613:
# '<'

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

char_615:
# 'p'

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

char_617:
# 'r'

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

char_619:
# 'i'

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

char_621:
# 'n'

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

char_623:
# 't'

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

char_625:
# '>'

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

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

         symbol_restore    PUNCT
  found! jump              found_651
         loc_push

         call              sequence_648

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

found_651:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_633

         error_pop_merge
   fail! jump              failed_649
         error_push

         call              char_635

         error_pop_merge
   fail! jump              failed_649
         error_push

         call              char_637

         error_pop_merge
   fail! jump              failed_649
         error_push

         call              char_639

         error_pop_merge
   fail! jump              failed_649
         error_push

         call              char_641

         error_pop_merge
   fail! jump              failed_649
         error_push

         call              char_643

         error_pop_merge
   fail! jump              failed_649
         error_push

         call              char_645

         error_pop_merge
   fail! jump              failed_649
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_649

         loc_pop_discard
         return

failed_649:
         loc_pop_rewind
         return

char_633:
# '<'

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

char_635:
# 'p'

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

char_637:
# 'u'

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

char_639:
# 'n'

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

char_641:
# 'c'

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

char_643:
# 't'

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

char_645:
# '>'

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

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

         symbol_restore    QUESTION
  found! jump              found_659
         loc_push

         call              sequence_656

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

found_659:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_653

         error_pop_merge
   fail! jump              failed_657
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_657

         loc_pop_discard
         return

failed_657:
         loc_pop_rewind
         return

char_653:
# '?'

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

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

         symbol_restore    Range
  found! jump              found_671
         loc_push
         ast_push

         call              choice_669

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

found_671:
     ok! ast_value_push
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sequence_664

         error_pop_merge
     ok! jump              ok_668

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Char

         error_pop_merge
     ok! jump              ok_668

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_668:
         ast_pop_discard
         loc_pop_discard
         return

sequence_664:
# x
#     (Char)
#     (TO)
#     (Char)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_665
         error_push

         call              sym_TO

         error_pop_merge
   fail! jump              failed_665
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_665

         ast_pop_discard
         loc_pop_discard
         return

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

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

         symbol_restore    SEMICOLON
  found! return
         loc_push

         call              sequence_676

         value_clear
         symbol_save       SEMICOLON
         error_nonterminal SEMICOLON
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_673

         error_pop_merge
   fail! jump              failed_677
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_677

         loc_pop_discard
         return

failed_677:
         loc_pop_rewind
         return

char_673:
# ';'

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

sym_Sequence:
# +
#     (Prefix)

         symbol_restore    Sequence
  found! jump              found_685
         loc_push
         ast_push

         call              poskleene_681

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

found_685:
     ok! ast_value_push
         return

poskleene_681:
# +
#     (Prefix)

         loc_push

         call              sym_Prefix

   fail! jump              failed_682

loop_683:
         loc_pop_discard
         loc_push
         error_push

         call              sym_Prefix

         error_pop_merge
     ok! jump              loop_683
         status_ok

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

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

         symbol_restore    SLASH
  found! return
         loc_push

         call              sequence_690

         value_clear
         symbol_save       SLASH
         error_nonterminal SLASH
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_687

         error_pop_merge
   fail! jump              failed_691
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_691

         loc_pop_discard
         return

failed_691:
         loc_pop_rewind
         return

char_687:
# '/'

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

         call              sequence_709

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

found_712:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_694

         error_pop_merge
   fail! jump              failed_710
         error_push

         call              char_696

         error_pop_merge
   fail! jump              failed_710
         error_push

         call              char_698

         error_pop_merge
   fail! jump              failed_710
         error_push

         call              char_700

         error_pop_merge
   fail! jump              failed_710
         error_push

         call              char_702

         error_pop_merge
   fail! jump              failed_710
         error_push

         call              char_704

         error_pop_merge
   fail! jump              failed_710
         error_push

         call              char_706

         error_pop_merge
   fail! jump              failed_710
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_710

         loc_pop_discard
         return

failed_710:
         loc_pop_rewind
         return

char_694:
# '<'

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

char_696:
# 's'

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

char_698:
# 'p'

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

char_700:
# 'a'

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

char_702:
# 'c'

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

char_704:
# 'e'

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

char_706:
# '>'

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

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

         symbol_restore    STAR
  found! jump              found_720
         loc_push

         call              sequence_717

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

found_720:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_714

         error_pop_merge
   fail! jump              failed_718
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_718

         loc_pop_discard
         return

failed_718:
         loc_pop_rewind
         return

char_714:
# '*'

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

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

         symbol_restore    StartExpr
  found! jump              found_729
         loc_push
         ast_push

         call              sequence_725

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

found_729:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              sym_OPEN

         error_pop_merge
   fail! jump              failednoast_727
         ast_push
         error_push

         call              sym_Expression

         error_pop_merge
   fail! jump              failed_726
         error_push

         call              sym_CLOSE

         error_pop_merge
   fail! jump              failed_726

         ast_pop_discard
         loc_pop_discard
         return

failed_726:
         ast_pop_rewind

failednoast_727:
         loc_pop_rewind
         return
#
# value Symbol 'Suffix'
#

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

         symbol_restore    Suffix
  found! jump              found_743
         loc_push
         ast_push

         call              sequence_740

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

found_743:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Primary

         error_pop_merge
   fail! jump              failed_741
         error_push

         call              optional_738

         error_pop_merge
   fail! jump              failed_741

         ast_pop_discard
         loc_pop_discard
         return

failed_741:
         ast_pop_rewind
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              choice_736

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_QUESTION

         error_pop_merge
     ok! jump              ok_735

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_STAR

         error_pop_merge
     ok! jump              ok_735

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PLUS

         error_pop_merge
     ok! jump              ok_735

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

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

sym_TO:
# '-'

         symbol_restore    TO
  found! return
         loc_push

         call              char_745

         value_clear
         symbol_save       TO
         error_nonterminal TO
         loc_pop_discard
         return

char_745:
# '-'

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

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

         symbol_restore    UPPER
  found! jump              found_766
         loc_push

         call              sequence_763

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

found_766:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_748

         error_pop_merge
   fail! jump              failed_764
         error_push

         call              char_750

         error_pop_merge
   fail! jump              failed_764
         error_push

         call              char_752

         error_pop_merge
   fail! jump              failed_764
         error_push

         call              char_754

         error_pop_merge
   fail! jump              failed_764
         error_push

         call              char_756

         error_pop_merge
   fail! jump              failed_764
         error_push

         call              char_758

         error_pop_merge
   fail! jump              failed_764
         error_push

         call              char_760

         error_pop_merge
   fail! jump              failed_764
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_764

         loc_pop_discard
         return

failed_764:
         loc_pop_rewind
         return

char_748:
# '<'

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

char_750:
# 'u'

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

char_752:
# 'p'

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

char_754:
# 'p'

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

char_756:
# 'e'

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

char_758:
# 'r'

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

char_760:
# '>'

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

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

         symbol_restore    VOID
  found! jump              found_780
         loc_push

         call              sequence_777

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

found_780:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_768

         error_pop_merge
   fail! jump              failed_778
         error_push

         call              char_770

         error_pop_merge
   fail! jump              failed_778
         error_push

         call              char_772

         error_pop_merge
   fail! jump              failed_778
         error_push

         call              char_774

         error_pop_merge
   fail! jump              failed_778
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_778

         loc_pop_discard
         return

failed_778:
         loc_pop_rewind
         return

char_768:
# 'v'

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

char_770:
# 'o'

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

char_772:
# 'i'

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

char_774:
# 'd'

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

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

         symbol_restore    WHITESPACE
  found! return
         loc_push

         call              kleene_788

         value_clear
         symbol_save       WHITESPACE
         error_nonterminal WHITESPACE
         loc_pop_discard
         return

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

         loc_push
         error_push

         call              choice_786

         error_pop_merge
   fail! jump              failed_789
         loc_pop_discard
         jump              kleene_788

failed_789:
         loc_pop_rewind
         status_ok
         return

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

         error_clear

         loc_push
         error_push

         call              space_782

         error_pop_merge
     ok! jump              oknoast_785

         loc_pop_rewind
         loc_push
         error_push

         call              sym_COMMENT

         error_pop_merge
     ok! jump              oknoast_785

         loc_pop_rewind
         status_fail
         return

oknoast_785:
         loc_pop_discard
         return

space_782:
# <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_816
         loc_push

         call              sequence_813

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

found_816:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_792

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              char_794

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              char_796

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              char_798

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              char_800

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              char_802

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              char_804

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              char_806

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              char_808

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              char_810

         error_pop_merge
   fail! jump              failed_814
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_814

         loc_pop_discard
         return

failed_814:
         loc_pop_rewind
         return

char_792:
# '<'

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

char_794:
# 'w'

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

char_796:
# 'o'

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

char_798:
# 'r'

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

char_800:
# 'd'

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

char_802:
# 'c'

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

char_804:
# 'h'

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

char_806:
# 'a'

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

char_808:
# 'r'

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

char_810:
# '>'

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

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

         symbol_restore    XDIGIT
  found! jump              found_838
         loc_push

         call              sequence_835

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

found_838:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_818

         error_pop_merge
   fail! jump              failed_836
         error_push

         call              char_820

         error_pop_merge
   fail! jump              failed_836
         error_push

         call              char_822

         error_pop_merge
   fail! jump              failed_836
         error_push

         call              char_824

         error_pop_merge
   fail! jump              failed_836
         error_push

         call              char_826

         error_pop_merge
   fail! jump              failed_836
         error_push

         call              char_828

         error_pop_merge
   fail! jump              failed_836
         error_push

         call              char_830

         error_pop_merge
   fail! jump              failed_836
         error_push

         call              char_832

         error_pop_merge
   fail! jump              failed_836
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_836

         loc_pop_discard
         return

failed_836:
         loc_pop_rewind
         return

char_818:
# '<'

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

char_820:
# 'x'

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

char_822:
# 'd'

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

char_824:
# 'i'

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

char_826:
# 'g'

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

char_828:
# 'i'

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

char_830:
# 't'

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

char_832:
# '>'

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

#
#
