1# -*- text -*- 2# Parsing Expression Grammar 'TEMPLATE'. 3# Generated for unknown, from file 'TEST' 4 5# 6# Grammar Start Expression 7# 8 9<<MAIN>>: 10 call sym_eos 11 halt 12 13# 14# value Symbol 'eos' 15# 16 17sym_eos: 18# x 19# (ex) 20# * 21# x 22# + 23# <space> 24# (ex) 25 26 symbol_restore eos 27 found! jump found_19 28 loc_push 29 ast_push 30 31 call sequence_16 32 33 fail! value_clear 34 ok! value_reduce eos 35 symbol_save eos 36 error_nonterminal eos 37 ast_pop_rewind 38 loc_pop_discard 39 40found_19: 41 ok! ast_value_push 42 return 43 44sequence_16: 45# x 46# (ex) 47# * 48# x 49# + 50# <space> 51# (ex) 52 53 ast_push 54 loc_push 55 error_clear 56 57 error_push 58 59 call sym_ex 60 61 error_pop_merge 62 fail! jump failed_17 63 error_push 64 65 call kleene_13 66 67 error_pop_merge 68 fail! jump failed_17 69 70 ast_pop_discard 71 loc_pop_discard 72 return 73 74failed_17: 75 ast_pop_rewind 76 loc_pop_rewind 77 return 78 79kleene_13: 80# * 81# x 82# + 83# <space> 84# (ex) 85 86 loc_push 87 error_push 88 89 call sequence_9 90 91 error_pop_merge 92 fail! jump failed_14 93 loc_pop_discard 94 jump kleene_13 95 96failed_14: 97 loc_pop_rewind 98 status_ok 99 return 100 101sequence_9: 102# x 103# + 104# <space> 105# (ex) 106 107 loc_push 108 error_clear 109 110 error_push 111 112 call poskleene_4 113 114 error_pop_merge 115 fail! jump failednoast_11 116 ast_push 117 error_push 118 119 call sym_ex 120 121 error_pop_merge 122 fail! jump failed_10 123 124 ast_pop_discard 125 loc_pop_discard 126 return 127 128failed_10: 129 ast_pop_rewind 130 131failednoast_11: 132 loc_pop_rewind 133 return 134 135poskleene_4: 136# + 137# <space> 138 139 loc_push 140 141 input_next "space" 142 ok! test_space 143 144 fail! jump failed_5 145 146loop_6: 147 loc_pop_discard 148 loc_push 149 error_push 150 151 input_next "space" 152 ok! test_space 153 154 error_pop_merge 155 ok! jump loop_6 156 status_ok 157 158failed_5: 159 loc_pop_rewind 160 return 161# 162# value Symbol 'ex' 163# 164 165sym_ex: 166# x 167# + 168# x 169# ! 170# (X) 171# / 172# 'x' 173# 'z' 174# ? 175# (X) 176 177 symbol_restore ex 178 found! jump found_43 179 loc_push 180 ast_push 181 182 call sequence_39 183 184 fail! value_clear 185 ok! value_reduce ex 186 symbol_save ex 187 error_nonterminal ex 188 ast_pop_rewind 189 loc_pop_discard 190 191found_43: 192 ok! ast_value_push 193 return 194 195sequence_39: 196# x 197# + 198# x 199# ! 200# (X) 201# / 202# 'x' 203# 'z' 204# ? 205# (X) 206 207 loc_push 208 error_clear 209 210 error_push 211 212 call poskleene_32 213 214 error_pop_merge 215 fail! jump failednoast_41 216 ast_push 217 error_push 218 219 call optional_37 220 221 error_pop_merge 222 fail! jump failed_40 223 224 ast_pop_discard 225 loc_pop_discard 226 return 227 228failed_40: 229 ast_pop_rewind 230 231failednoast_41: 232 loc_pop_rewind 233 return 234 235poskleene_32: 236# + 237# x 238# ! 239# (X) 240# / 241# 'x' 242# 'z' 243 244 loc_push 245 246 call sequence_29 247 248 fail! jump failed_33 249 250loop_34: 251 loc_pop_discard 252 loc_push 253 error_push 254 255 call sequence_29 256 257 error_pop_merge 258 ok! jump loop_34 259 status_ok 260 261failed_33: 262 loc_pop_rewind 263 return 264 265sequence_29: 266# x 267# ! 268# (X) 269# / 270# 'x' 271# 'z' 272 273 loc_push 274 error_clear 275 276 error_push 277 278 call notahead_22 279 280 error_pop_merge 281 fail! jump failed_30 282 error_push 283 284 call choice_27 285 286 error_pop_merge 287 fail! jump failed_30 288 289 loc_pop_discard 290 return 291 292failed_30: 293 loc_pop_rewind 294 return 295 296notahead_22: 297# ! 298# (X) 299 300 loc_push 301 ast_push 302 303 call sym_X 304 305 fail! ast_pop_discard 306 ok! ast_pop_rewind 307 loc_pop_rewind 308 status_negate 309 return 310 311choice_27: 312# / 313# 'x' 314# 'z' 315 316 error_clear 317 318 loc_push 319 error_push 320 321 input_next "t x" 322 ok! test_char "x" 323 324 error_pop_merge 325 ok! jump oknoast_26 326 327 loc_pop_rewind 328 loc_push 329 error_push 330 331 input_next "t z" 332 ok! test_char "z" 333 334 error_pop_merge 335 ok! jump oknoast_26 336 337 loc_pop_rewind 338 status_fail 339 return 340 341oknoast_26: 342 loc_pop_discard 343 return 344 345optional_37: 346# ? 347# (X) 348 349 loc_push 350 error_push 351 352 call sym_X 353 354 error_pop_merge 355 fail! loc_pop_rewind 356 ok! loc_pop_discard 357 status_ok 358 return 359# 360# value Symbol 'X' 361# 362 363sym_X: 364# 'x' 365 366 symbol_restore X 367 found! jump found_46 368 loc_push 369 370 input_next "t x" 371 ok! test_char "x" 372 373 fail! value_clear 374 ok! value_leaf X 375 symbol_save X 376 error_nonterminal X 377 loc_pop_discard 378 379found_46: 380 ok! ast_value_push 381 return 382 383# 384# 385