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

sym_EOF:
# !
#     <dot>

         symbol_restore    EOF
  found! return
         loc_push

         call              notahead_329

         value_clear
         symbol_save       EOF
         error_nonterminal EOF
         loc_pop_discard
         return

notahead_329:
# !
#     <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_337

         value_clear
         symbol_save       EOL
         error_nonterminal EOL
         loc_pop_discard
         return

choice_337:
# /
#     '\n'
#     '\r'

         error_clear

         loc_push
         error_push

         call              char_332

         error_pop_merge
     ok! jump              oknoast_336

         loc_pop_rewind
         loc_push
         error_push

         call              char_334

         error_pop_merge
     ok! jump              oknoast_336

         loc_pop_rewind
         status_fail
         return

oknoast_336:
         loc_pop_discard
         return

char_332:
# '\n'

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

char_334:
# '\r'

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

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

         symbol_restore    Expression
  found! jump              found_353
         loc_push
         ast_push

         call              sequence_350

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

found_353:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Sequence

         error_pop_merge
   fail! jump              failed_351
         error_push

         call              kleene_347

         error_pop_merge
   fail! jump              failed_351

         ast_pop_discard
         loc_pop_discard
         return

failed_351:
         ast_pop_rewind
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_343

         error_pop_merge
   fail! jump              failed_348
         loc_pop_discard
         jump              kleene_347

failed_348:
         loc_pop_rewind
         status_ok
         return

sequence_343:
# x
#     (SLASH)
#     (Sequence)

         loc_push
         error_clear

         error_push

         call              sym_SLASH

         error_pop_merge
   fail! jump              failednoast_345
         ast_push
         error_push

         call              sym_Sequence

         error_pop_merge
   fail! jump              failed_344

         ast_pop_discard
         loc_pop_discard
         return

failed_344:
         ast_pop_rewind

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

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

         symbol_restore    Final
  found! return
         loc_push

         call              sequence_364

         value_clear
         symbol_save       Final
         error_nonterminal Final
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_355

         error_pop_merge
   fail! jump              failed_365
         error_push

         call              char_357

         error_pop_merge
   fail! jump              failed_365
         error_push

         call              char_359

         error_pop_merge
   fail! jump              failed_365
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_365
         error_push

         call              sym_SEMICOLON

         error_pop_merge
   fail! jump              failed_365
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_365

         loc_pop_discard
         return

failed_365:
         loc_pop_rewind
         return

char_355:
# 'E'

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

char_357:
# 'N'

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

char_359:
# 'D'

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

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

         symbol_restore    Grammar
  found! jump              found_380
         loc_push
         ast_push

         call              sequence_376

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

found_380:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failednoast_378
         ast_push
         error_push

         call              sym_Header

         error_pop_merge
   fail! jump              failed_377
         error_push

         call              kleene_371

         error_pop_merge
   fail! jump              failed_377
         error_push

         call              sym_Final

         error_pop_merge
   fail! jump              failed_377
         error_push

         call              sym_EOF

         error_pop_merge
   fail! jump              failed_377

         ast_pop_discard
         loc_pop_discard
         return

failed_377:
         ast_pop_rewind

failednoast_378:
         loc_pop_rewind
         return

kleene_371:
# *
#     (Definition)

         loc_push
         error_push

         call              sym_Definition

         error_pop_merge
   fail! jump              failed_372
         loc_pop_discard
         jump              kleene_371

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

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

         symbol_restore    GRAPH
  found! jump              found_400
         loc_push

         call              sequence_397

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

found_400:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_382

         error_pop_merge
   fail! jump              failed_398
         error_push

         call              char_384

         error_pop_merge
   fail! jump              failed_398
         error_push

         call              char_386

         error_pop_merge
   fail! jump              failed_398
         error_push

         call              char_388

         error_pop_merge
   fail! jump              failed_398
         error_push

         call              char_390

         error_pop_merge
   fail! jump              failed_398
         error_push

         call              char_392

         error_pop_merge
   fail! jump              failed_398
         error_push

         call              char_394

         error_pop_merge
   fail! jump              failed_398
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_398

         loc_pop_discard
         return

failed_398:
         loc_pop_rewind
         return

char_382:
# '<'

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

char_384:
# 'g'

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

char_386:
# 'r'

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

char_388:
# 'a'

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

char_390:
# 'p'

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

char_392:
# 'h'

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

char_394:
# '>'

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

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

         symbol_restore    Header
  found! jump              found_409
         loc_push
         ast_push

         call              sequence_405

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

found_409:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              sym_PEG

         error_pop_merge
   fail! jump              failednoast_407
         ast_push
         error_push

         call              sym_Identifier

         error_pop_merge
   fail! jump              failed_406
         error_push

         call              sym_StartExpr

         error_pop_merge
   fail! jump              failed_406

         ast_pop_discard
         loc_pop_discard
         return

failed_406:
         ast_pop_rewind

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

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

         symbol_restore    Ident
  found! jump              found_435
         loc_push

         call              sequence_432

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

found_435:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              choice_418

         error_pop_merge
   fail! jump              failed_433
         error_push

         call              kleene_429

         error_pop_merge
   fail! jump              failed_433

         loc_pop_discard
         return

failed_433:
         loc_pop_rewind
         return

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

         error_clear

         loc_push
         error_push

         call              char_411

         error_pop_merge
     ok! jump              oknoast_417

         loc_pop_rewind
         loc_push
         error_push

         call              char_413

         error_pop_merge
     ok! jump              oknoast_417

         loc_pop_rewind
         loc_push
         error_push

         call              alpha_415

         error_pop_merge
     ok! jump              oknoast_417

         loc_pop_rewind
         status_fail
         return

oknoast_417:
         loc_pop_discard
         return

char_411:
# '_'

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

char_413:
# ':'

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

alpha_415:
# <alpha>

         input_next        "alpha"
     ok! test_alpha
         return

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

         loc_push
         error_push

         call              choice_427

         error_pop_merge
   fail! jump              failed_430
         loc_pop_discard
         jump              kleene_429

failed_430:
         loc_pop_rewind
         status_ok
         return

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

         error_clear

         loc_push
         error_push

         call              char_420

         error_pop_merge
     ok! jump              oknoast_426

         loc_pop_rewind
         loc_push
         error_push

         call              char_422

         error_pop_merge
     ok! jump              oknoast_426

         loc_pop_rewind
         loc_push
         error_push

         call              alnum_424

         error_pop_merge
     ok! jump              oknoast_426

         loc_pop_rewind
         status_fail
         return

oknoast_426:
         loc_pop_discard
         return

char_420:
# '_'

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

char_422:
# ':'

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

alnum_424:
# <alnum>

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

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

         symbol_restore    Identifier
  found! jump              found_442
         loc_push
         ast_push

         call              sequence_439

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

found_442:
     ok! ast_value_push
         return

sequence_439:
# x
#     (Ident)
#     (WHITESPACE)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Ident

         error_pop_merge
   fail! jump              failed_440
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_440

         ast_pop_discard
         loc_pop_discard
         return

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

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

         symbol_restore    IS
  found! return
         loc_push

         call              sequence_449

         value_clear
         symbol_save       IS
         error_nonterminal IS
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_444

         error_pop_merge
   fail! jump              failed_450
         error_push

         call              char_446

         error_pop_merge
   fail! jump              failed_450
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_450

         loc_pop_discard
         return

failed_450:
         loc_pop_rewind
         return

char_444:
# '<'

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

char_446:
# '-'

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

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

         symbol_restore    LEAF
  found! jump              found_465
         loc_push

         call              sequence_462

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

found_465:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_453

         error_pop_merge
   fail! jump              failed_463
         error_push

         call              char_455

         error_pop_merge
   fail! jump              failed_463
         error_push

         call              char_457

         error_pop_merge
   fail! jump              failed_463
         error_push

         call              char_459

         error_pop_merge
   fail! jump              failed_463
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_463

         loc_pop_discard
         return

failed_463:
         loc_pop_rewind
         return

char_453:
# 'l'

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

char_455:
# 'e'

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

char_457:
# 'a'

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

char_459:
# '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_506
         loc_push
         ast_push

         call              choice_504

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

found_506:
     ok! ast_value_push
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sequence_481

         error_pop_merge
     ok! jump              ok_503

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sequence_499

         error_pop_merge
     ok! jump              ok_503

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_503:
         ast_pop_discard
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              sym_APOSTROPH

         error_pop_merge
   fail! jump              failednoast_483
         ast_push
         error_push

         call              kleene_476

         error_pop_merge
   fail! jump              failed_482
         error_push

         call              sym_APOSTROPH

         error_pop_merge
   fail! jump              failed_482
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_482

         ast_pop_discard
         loc_pop_discard
         return

failed_482:
         ast_pop_rewind

failednoast_483:
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_472

         error_pop_merge
   fail! jump              failed_477
         loc_pop_discard
         jump              kleene_476

failed_477:
         loc_pop_rewind
         status_ok
         return

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

         loc_push
         error_clear

         error_push

         call              notahead_469

         error_pop_merge
   fail! jump              failednoast_474
         ast_push
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_473

         ast_pop_discard
         loc_pop_discard
         return

failed_473:
         ast_pop_rewind

failednoast_474:
         loc_pop_rewind
         return

notahead_469:
# !
#     (APOSTROPH)

         loc_push

         call              sym_APOSTROPH

         loc_pop_rewind
         status_negate
         return

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

         loc_push
         error_clear

         error_push

         call              sym_DAPOSTROPH

         error_pop_merge
   fail! jump              failednoast_501
         ast_push
         error_push

         call              kleene_494

         error_pop_merge
   fail! jump              failed_500
         error_push

         call              sym_DAPOSTROPH

         error_pop_merge
   fail! jump              failed_500
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_500

         ast_pop_discard
         loc_pop_discard
         return

failed_500:
         ast_pop_rewind

failednoast_501:
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              sequence_490

         error_pop_merge
   fail! jump              failed_495
         loc_pop_discard
         jump              kleene_494

failed_495:
         loc_pop_rewind
         status_ok
         return

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

         loc_push
         error_clear

         error_push

         call              notahead_487

         error_pop_merge
   fail! jump              failednoast_492
         ast_push
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_491

         ast_pop_discard
         loc_pop_discard
         return

failed_491:
         ast_pop_rewind

failednoast_492:
         loc_pop_rewind
         return

notahead_487:
# !
#     (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_526
         loc_push

         call              sequence_523

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

found_526:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_508

         error_pop_merge
   fail! jump              failed_524
         error_push

         call              char_510

         error_pop_merge
   fail! jump              failed_524
         error_push

         call              char_512

         error_pop_merge
   fail! jump              failed_524
         error_push

         call              char_514

         error_pop_merge
   fail! jump              failed_524
         error_push

         call              char_516

         error_pop_merge
   fail! jump              failed_524
         error_push

         call              char_518

         error_pop_merge
   fail! jump              failed_524
         error_push

         call              char_520

         error_pop_merge
   fail! jump              failed_524
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_524

         loc_pop_discard
         return

failed_524:
         loc_pop_rewind
         return

char_508:
# '<'

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

char_510:
# 'l'

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

char_512:
# 'o'

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

char_514:
# 'w'

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

char_516:
# 'e'

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

char_518:
# 'r'

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

char_520:
# '>'

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

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

         symbol_restore    NOT
  found! jump              found_534
         loc_push

         call              sequence_531

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

found_534:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_528

         error_pop_merge
   fail! jump              failed_532
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_532

         loc_pop_discard
         return

failed_532:
         loc_pop_rewind
         return

char_528:
# '!'

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

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

         symbol_restore    OPEN
  found! return
         loc_push

         call              sequence_539

         value_clear
         symbol_save       OPEN
         error_nonterminal OPEN
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_536

         error_pop_merge
   fail! jump              failed_540
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_540

         loc_pop_discard
         return

failed_540:
         loc_pop_rewind
         return

char_536:
# '\('

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

sym_OPENB:
# '['

         symbol_restore    OPENB
  found! return
         loc_push

         call              char_543

         value_clear
         symbol_save       OPENB
         error_nonterminal OPENB
         loc_pop_discard
         return

char_543:
# '['

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

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

         symbol_restore    PEG
  found! return
         loc_push

         call              sequence_564

         value_clear
         symbol_save       PEG
         error_nonterminal PEG
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_546

         error_pop_merge
   fail! jump              failed_565
         error_push

         call              char_548

         error_pop_merge
   fail! jump              failed_565
         error_push

         call              char_550

         error_pop_merge
   fail! jump              failed_565
         error_push

         call              notahead_561

         error_pop_merge
   fail! jump              failed_565
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_565

         loc_pop_discard
         return

failed_565:
         loc_pop_rewind
         return

char_546:
# 'P'

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

char_548:
# 'E'

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

char_550:
# 'G'

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

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

         loc_push

         call              choice_559

         loc_pop_rewind
         status_negate
         return

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

         error_clear

         loc_push
         error_push

         call              char_552

         error_pop_merge
     ok! jump              oknoast_558

         loc_pop_rewind
         loc_push
         error_push

         call              char_554

         error_pop_merge
     ok! jump              oknoast_558

         loc_pop_rewind
         loc_push
         error_push

         call              alnum_556

         error_pop_merge
     ok! jump              oknoast_558

         loc_pop_rewind
         status_fail
         return

oknoast_558:
         loc_pop_discard
         return

char_552:
# '_'

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

char_554:
# ':'

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

alnum_556:
# <alnum>

         input_next        "alnum"
     ok! test_alnum
         return
#
# leaf Symbol 'PLUS'
#

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

         symbol_restore    PLUS
  found! jump              found_574
         loc_push

         call              sequence_571

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

found_574:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_568

         error_pop_merge
   fail! jump              failed_572
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_572

         loc_pop_discard
         return

failed_572:
         loc_pop_rewind
         return

char_568:
# '+'

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

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

         symbol_restore    Prefix
  found! jump              found_587
         loc_push
         ast_push

         call              sequence_584

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

found_587:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              optional_581

         error_pop_merge
   fail! jump              failed_585
         error_push

         call              sym_Suffix

         error_pop_merge
   fail! jump              failed_585

         ast_pop_discard
         loc_pop_discard
         return

failed_585:
         ast_pop_rewind
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              choice_579

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

choice_579:
# /
#     (AND)
#     (NOT)

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_AND

         error_pop_merge
     ok! jump              ok_578

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_NOT

         error_pop_merge
     ok! jump              ok_578

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_578:
         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_617
         loc_push
         ast_push

         call              choice_615

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

found_617:
     ok! ast_value_push
         return

choice_615:
# /
#     (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_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_ALPHA

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_ASCII

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_CONTROL

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DDIGIT

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DIGIT

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_GRAPH

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_LOWER

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PRINTABLE

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PUNCT

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_SPACE

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_UPPER

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_WORDCHAR

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_XDIGIT

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Identifier

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sequence_607

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Literal

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Class

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_DOT

         error_pop_merge
     ok! jump              ok_614

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_614:
         ast_pop_discard
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              sym_OPEN

         error_pop_merge
   fail! jump              failednoast_609
         ast_push
         error_push

         call              sym_Expression

         error_pop_merge
   fail! jump              failed_608
         error_push

         call              sym_CLOSE

         error_pop_merge
   fail! jump              failed_608

         ast_pop_discard
         loc_pop_discard
         return

failed_608:
         ast_pop_rewind

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

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

         symbol_restore    PRINTABLE
  found! jump              found_637
         loc_push

         call              sequence_634

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

found_637:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_619

         error_pop_merge
   fail! jump              failed_635
         error_push

         call              char_621

         error_pop_merge
   fail! jump              failed_635
         error_push

         call              char_623

         error_pop_merge
   fail! jump              failed_635
         error_push

         call              char_625

         error_pop_merge
   fail! jump              failed_635
         error_push

         call              char_627

         error_pop_merge
   fail! jump              failed_635
         error_push

         call              char_629

         error_pop_merge
   fail! jump              failed_635
         error_push

         call              char_631

         error_pop_merge
   fail! jump              failed_635
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_635

         loc_pop_discard
         return

failed_635:
         loc_pop_rewind
         return

char_619:
# '<'

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

char_621:
# 'p'

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

char_623:
# 'r'

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

char_625:
# 'i'

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

char_627:
# 'n'

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

char_629:
# 't'

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

char_631:
# '>'

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

         call              sequence_654

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

found_657:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_639

         error_pop_merge
   fail! jump              failed_655
         error_push

         call              char_641

         error_pop_merge
   fail! jump              failed_655
         error_push

         call              char_643

         error_pop_merge
   fail! jump              failed_655
         error_push

         call              char_645

         error_pop_merge
   fail! jump              failed_655
         error_push

         call              char_647

         error_pop_merge
   fail! jump              failed_655
         error_push

         call              char_649

         error_pop_merge
   fail! jump              failed_655
         error_push

         call              char_651

         error_pop_merge
   fail! jump              failed_655
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_655

         loc_pop_discard
         return

failed_655:
         loc_pop_rewind
         return

char_639:
# '<'

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

char_641:
# 'p'

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

char_643:
# 'u'

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

char_645:
# 'n'

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

char_647:
# 'c'

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

char_649:
# 't'

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

char_651:
# '>'

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

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

         symbol_restore    QUESTION
  found! jump              found_665
         loc_push

         call              sequence_662

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

found_665:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_659

         error_pop_merge
   fail! jump              failed_663
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_663

         loc_pop_discard
         return

failed_663:
         loc_pop_rewind
         return

char_659:
# '?'

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

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

         symbol_restore    Range
  found! jump              found_677
         loc_push
         ast_push

         call              choice_675

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

found_677:
     ok! ast_value_push
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sequence_670

         error_pop_merge
     ok! jump              ok_674

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_Char

         error_pop_merge
     ok! jump              ok_674

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

ok_674:
         ast_pop_discard
         loc_pop_discard
         return

sequence_670:
# x
#     (Char)
#     (TO)
#     (Char)

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_671
         error_push

         call              sym_TO

         error_pop_merge
   fail! jump              failed_671
         error_push

         call              sym_Char

         error_pop_merge
   fail! jump              failed_671

         ast_pop_discard
         loc_pop_discard
         return

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

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

         symbol_restore    SEMICOLON
  found! return
         loc_push

         call              sequence_682

         value_clear
         symbol_save       SEMICOLON
         error_nonterminal SEMICOLON
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_679

         error_pop_merge
   fail! jump              failed_683
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_683

         loc_pop_discard
         return

failed_683:
         loc_pop_rewind
         return

char_679:
# ';'

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

sym_Sequence:
# +
#     (Prefix)

         symbol_restore    Sequence
  found! jump              found_691
         loc_push
         ast_push

         call              poskleene_687

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

found_691:
     ok! ast_value_push
         return

poskleene_687:
# +
#     (Prefix)

         loc_push

         call              sym_Prefix

   fail! jump              failed_688

loop_689:
         loc_pop_discard
         loc_push
         error_push

         call              sym_Prefix

         error_pop_merge
     ok! jump              loop_689
         status_ok

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

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

         symbol_restore    SLASH
  found! return
         loc_push

         call              sequence_696

         value_clear
         symbol_save       SLASH
         error_nonterminal SLASH
         loc_pop_discard
         return

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

         loc_push
         error_clear

         error_push

         call              char_693

         error_pop_merge
   fail! jump              failed_697
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_697

         loc_pop_discard
         return

failed_697:
         loc_pop_rewind
         return

char_693:
# '/'

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

         call              sequence_715

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

found_718:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_700

         error_pop_merge
   fail! jump              failed_716
         error_push

         call              char_702

         error_pop_merge
   fail! jump              failed_716
         error_push

         call              char_704

         error_pop_merge
   fail! jump              failed_716
         error_push

         call              char_706

         error_pop_merge
   fail! jump              failed_716
         error_push

         call              char_708

         error_pop_merge
   fail! jump              failed_716
         error_push

         call              char_710

         error_pop_merge
   fail! jump              failed_716
         error_push

         call              char_712

         error_pop_merge
   fail! jump              failed_716
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_716

         loc_pop_discard
         return

failed_716:
         loc_pop_rewind
         return

char_700:
# '<'

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

char_702:
# 's'

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

char_704:
# 'p'

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

char_706:
# 'a'

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

char_708:
# 'c'

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

char_710:
# 'e'

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

char_712:
# '>'

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

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

         symbol_restore    STAR
  found! jump              found_726
         loc_push

         call              sequence_723

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

found_726:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_720

         error_pop_merge
   fail! jump              failed_724
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_724

         loc_pop_discard
         return

failed_724:
         loc_pop_rewind
         return

char_720:
# '*'

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

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

         symbol_restore    StartExpr
  found! jump              found_735
         loc_push
         ast_push

         call              sequence_731

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

found_735:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              sym_OPEN

         error_pop_merge
   fail! jump              failednoast_733
         ast_push
         error_push

         call              sym_Expression

         error_pop_merge
   fail! jump              failed_732
         error_push

         call              sym_CLOSE

         error_pop_merge
   fail! jump              failed_732

         ast_pop_discard
         loc_pop_discard
         return

failed_732:
         ast_pop_rewind

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

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

         symbol_restore    Suffix
  found! jump              found_749
         loc_push
         ast_push

         call              sequence_746

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

found_749:
     ok! ast_value_push
         return

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

         ast_push
         loc_push
         error_clear

         error_push

         call              sym_Primary

         error_pop_merge
   fail! jump              failed_747
         error_push

         call              optional_744

         error_pop_merge
   fail! jump              failed_747

         ast_pop_discard
         loc_pop_discard
         return

failed_747:
         ast_pop_rewind
         loc_pop_rewind
         return

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

         loc_push
         error_push

         call              choice_742

         error_pop_merge
   fail! loc_pop_rewind
     ok! loc_pop_discard
         status_ok
         return

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

         error_clear

         ast_push
         loc_push
         error_push

         call              sym_QUESTION

         error_pop_merge
     ok! jump              ok_741

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_STAR

         error_pop_merge
     ok! jump              ok_741

         ast_pop_rewind
         loc_pop_rewind
         ast_push
         loc_push
         error_push

         call              sym_PLUS

         error_pop_merge
     ok! jump              ok_741

         ast_pop_rewind
         loc_pop_rewind
         status_fail
         return

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

sym_TO:
# '-'

         symbol_restore    TO
  found! return
         loc_push

         call              char_751

         value_clear
         symbol_save       TO
         error_nonterminal TO
         loc_pop_discard
         return

char_751:
# '-'

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

         call              sequence_769

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

found_772:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_754

         error_pop_merge
   fail! jump              failed_770
         error_push

         call              char_756

         error_pop_merge
   fail! jump              failed_770
         error_push

         call              char_758

         error_pop_merge
   fail! jump              failed_770
         error_push

         call              char_760

         error_pop_merge
   fail! jump              failed_770
         error_push

         call              char_762

         error_pop_merge
   fail! jump              failed_770
         error_push

         call              char_764

         error_pop_merge
   fail! jump              failed_770
         error_push

         call              char_766

         error_pop_merge
   fail! jump              failed_770
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_770

         loc_pop_discard
         return

failed_770:
         loc_pop_rewind
         return

char_754:
# '<'

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

char_756:
# 'u'

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

char_758:
# 'p'

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

char_760:
# 'p'

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

char_762:
# 'e'

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

char_764:
# 'r'

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

char_766:
# '>'

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

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

         symbol_restore    VOID
  found! jump              found_786
         loc_push

         call              sequence_783

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

found_786:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_774

         error_pop_merge
   fail! jump              failed_784
         error_push

         call              char_776

         error_pop_merge
   fail! jump              failed_784
         error_push

         call              char_778

         error_pop_merge
   fail! jump              failed_784
         error_push

         call              char_780

         error_pop_merge
   fail! jump              failed_784
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_784

         loc_pop_discard
         return

failed_784:
         loc_pop_rewind
         return

char_774:
# 'v'

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

char_776:
# 'o'

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

char_778:
# 'i'

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

char_780:
# '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_794

         value_clear
         symbol_save       WHITESPACE
         error_nonterminal WHITESPACE
         loc_pop_discard
         return

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

         loc_push
         error_push

         call              choice_792

         error_pop_merge
   fail! jump              failed_795
         loc_pop_discard
         jump              kleene_794

failed_795:
         loc_pop_rewind
         status_ok
         return

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

         error_clear

         loc_push
         error_push

         call              space_788

         error_pop_merge
     ok! jump              oknoast_791

         loc_pop_rewind
         loc_push
         error_push

         call              sym_COMMENT

         error_pop_merge
     ok! jump              oknoast_791

         loc_pop_rewind
         status_fail
         return

oknoast_791:
         loc_pop_discard
         return

space_788:
# <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_822
         loc_push

         call              sequence_819

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

found_822:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_798

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              char_800

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              char_802

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              char_804

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              char_806

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              char_808

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              char_810

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              char_812

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              char_814

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              char_816

         error_pop_merge
   fail! jump              failed_820
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_820

         loc_pop_discard
         return

failed_820:
         loc_pop_rewind
         return

char_798:
# '<'

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

char_800:
# 'w'

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

char_802:
# 'o'

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

char_804:
# 'r'

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

char_806:
# 'd'

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

char_808:
# 'c'

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

char_810:
# 'h'

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

char_812:
# 'a'

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

char_814:
# 'r'

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

char_816:
# '>'

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

         call              sequence_841

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

found_844:
     ok! ast_value_push
         return

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

         loc_push
         error_clear

         error_push

         call              char_824

         error_pop_merge
   fail! jump              failed_842
         error_push

         call              char_826

         error_pop_merge
   fail! jump              failed_842
         error_push

         call              char_828

         error_pop_merge
   fail! jump              failed_842
         error_push

         call              char_830

         error_pop_merge
   fail! jump              failed_842
         error_push

         call              char_832

         error_pop_merge
   fail! jump              failed_842
         error_push

         call              char_834

         error_pop_merge
   fail! jump              failed_842
         error_push

         call              char_836

         error_pop_merge
   fail! jump              failed_842
         error_push

         call              char_838

         error_pop_merge
   fail! jump              failed_842
         error_push

         call              sym_WHITESPACE

         error_pop_merge
   fail! jump              failed_842

         loc_pop_discard
         return

failed_842:
         loc_pop_rewind
         return

char_824:
# '<'

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

char_826:
# 'x'

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

char_828:
# 'd'

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

char_830:
# 'i'

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

char_832:
# 'g'

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

char_834:
# 'i'

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

char_836:
# 't'

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

char_838:
# '>'

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

#
#
