Commits

Anonymous committed df10f47

fix

Comments (0)

Files changed (4)

src/gen_actions.pir

 
 .namespace ["z2";"Grammar";"Actions"]
 .sub "_block13" :init :load :subid("39")
-    .const 'Sub' $P377 = "37" 
-    capture_lex $P377
-    .const 'Sub' $P360 = "36" 
-    capture_lex $P360
-    .const 'Sub' $P348 = "35" 
-    capture_lex $P348
-    .const 'Sub' $P329 = "34" 
-    capture_lex $P329
-    .const 'Sub' $P314 = "33" 
-    capture_lex $P314
-    .const 'Sub' $P299 = "32" 
-    capture_lex $P299
-    .const 'Sub' $P262 = "28" 
-    capture_lex $P262
+    .const 'Sub' $P378 = "37" 
+    capture_lex $P378
+    .const 'Sub' $P361 = "36" 
+    capture_lex $P361
+    .const 'Sub' $P349 = "35" 
+    capture_lex $P349
+    .const 'Sub' $P330 = "34" 
+    capture_lex $P330
+    .const 'Sub' $P315 = "33" 
+    capture_lex $P315
+    .const 'Sub' $P300 = "32" 
+    capture_lex $P300
+    .const 'Sub' $P263 = "28" 
+    capture_lex $P263
     .const 'Sub' $P225 = "25" 
     capture_lex $P225
     .const 'Sub' $P184 = "23" 
         $P2 = $P0.'new_class'($P1)
       subclass_done:
         pop_eh
-    .const 'Sub' $P377 = "37" 
-    capture_lex $P377
-    .return ($P377)
+    .const 'Sub' $P378 = "37" 
+    capture_lex $P378
+    .return ($P378)
 .end
 
 
     defined $I235, $P234
     unless $I235, for_undef_94
     iter $P232, $P234
-    new $P253, 'ExceptionHandler'
-    set_addr $P253, loop252_handler
-    $P253."handle_types"(64, 66, 65)
-    push_eh $P253
-  loop252_test:
-    unless $P232, loop252_done
+    new $P254, 'ExceptionHandler'
+    set_addr $P254, loop253_handler
+    $P254."handle_types"(64, 66, 65)
+    push_eh $P254
+  loop253_test:
+    unless $P232, loop253_done
     shift $P236, $P232
-  loop252_redo:
+  loop253_redo:
     .const 'Sub' $P238 = "26" 
     capture_lex $P238
     $P238($P236)
-  loop252_next:
-    goto loop252_test
-  loop252_handler:
+  loop253_next:
+    goto loop253_test
+  loop253_handler:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P254, exception, 'type'
-    eq $P254, 64, loop252_next
-    eq $P254, 66, loop252_redo
-  loop252_done:
+    getattribute $P255, exception, 'type'
+    eq $P255, 64, loop253_next
+    eq $P255, 66, loop253_redo
+  loop253_done:
     pop_eh 
   for_undef_94:
-    find_lex $P255, "$/"
-    get_hll_global $P256, ["PAST"], "Val"
-    find_lex $P257, "$value"
-    unless_null $P257, vivify_100
-    new $P257, "Undef"
+    find_lex $P256, "$/"
+    get_hll_global $P257, ["PAST"], "Val"
+    find_lex $P258, "$value"
+    unless_null $P258, vivify_100
+    new $P258, "Undef"
   vivify_100:
-    find_lex $P258, "$/"
-    unless_null $P258, vivify_101
-    new $P258, "Undef"
+    find_lex $P259, "$/"
+    unless_null $P259, vivify_101
+    new $P259, "Undef"
   vivify_101:
-    $P259 = $P256."new"($P257 :named("value"), "Integer" :named("returns"), $P258 :named("node"))
-    $P260 = $P255."result_object"($P259)
-    .return ($P260)
+    $P260 = $P257."new"($P258 :named("value"), "Integer" :named("returns"), $P259 :named("node"))
+    $P261 = $P256."result_object"($P260)
+    .return ($P261)
   control_226:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P261, exception, "payload"
-    .return ($P261)
+    getattribute $P262, exception, "payload"
+    .return ($P262)
     rethrow exception
 .end
 
 .sub "_block237"  :anon :subid("26") :outer("25")
     .param pmc param_239
     .lex "$_", param_239
-    find_lex $P243, "$_"
-    unless_null $P243, vivify_95
-    new $P243, "Hash"
+    find_lex $P244, "$_"
+    unless_null $P244, vivify_95
+    new $P244, "Hash"
   vivify_95:
-    set $P244, $P243["first_person_possessive"]
-    unless_null $P244, vivify_96
-    new $P244, "Undef"
+    set $P245, $P244["first_person_possessive"]
+    unless_null $P245, vivify_96
+    new $P245, "Undef"
   vivify_96:
-    unless $P244, unless_242
-    set $P241, $P244
-    goto unless_242_end
-  unless_242:
-    find_lex $P245, "$_"
-    unless_null $P245, vivify_97
-    new $P245, "Hash"
+    unless $P245, unless_243
+    set $P242, $P245
+    goto unless_243_end
+  unless_243:
+    find_lex $P246, "$_"
+    unless_null $P246, vivify_97
+    new $P246, "Hash"
   vivify_97:
-    set $P246, $P245["second_person_possessive"]
-    unless_null $P246, vivify_98
-    new $P246, "Undef"
+    set $P247, $P246["second_person_possessive"]
+    unless_null $P247, vivify_98
+    new $P247, "Undef"
   vivify_98:
-    set $P241, $P246
-  unless_242_end:
-    unless $P241, if_240_end
-    .const 'Sub' $P248 = "27" 
-    capture_lex $P248
-    $P248()
-  if_240_end:
+    set $P242, $P247
+  unless_243_end:
+    unless $P242, unless_241
+    set $P240, $P242
+    goto unless_241_end
+  unless_241:
+    .const 'Sub' $P249 = "27" 
+    capture_lex $P249
+    $P252 = $P249()
+    set $P240, $P252
+  unless_241_end:
+    .return ($P240)
+.end
+
+
+.namespace ["z2";"Grammar";"Actions"]
+.sub "_block248"  :anon :subid("27") :outer("26")
     find_lex $P250, "$value"
     unless_null $P250, vivify_99
     new $P250, "Undef"
 
 
 .namespace ["z2";"Grammar";"Actions"]
-.sub "_block247"  :anon :subid("27") :outer("26")
-    get_hll_global $P249, "next"
-    .return ($P249)
-.end
-
-
-.namespace ["z2";"Grammar";"Actions"]
 .sub "noun"  :subid("28") :method :outer("39")
-    .param pmc param_265
     .param pmc param_266
-    new $P264, 'ExceptionHandler'
-    set_addr $P264, control_263
-    $P264."handle_types"(58)
-    push_eh $P264
-    .lex "$/", param_265
-    .lex "$k", param_266
-    find_lex $P269, "$k"
-    unless_null $P269, vivify_102
-    new $P269, "Undef"
+    .param pmc param_267
+    new $P265, 'ExceptionHandler'
+    set_addr $P265, control_264
+    $P265."handle_types"(58)
+    push_eh $P265
+    .lex "$/", param_266
+    .lex "$k", param_267
+    find_lex $P270, "$k"
+    unless_null $P270, vivify_102
+    new $P270, "Undef"
   vivify_102:
-    set $S270, $P269
-    iseq $I271, $S270, "one"
-    if $I271, if_268
-    find_lex $P279, "$k"
-    unless_null $P279, vivify_103
-    new $P279, "Undef"
+    set $S271, $P270
+    iseq $I272, $S271, "one"
+    if $I272, if_269
+    find_lex $P280, "$k"
+    unless_null $P280, vivify_103
+    new $P280, "Undef"
   vivify_103:
-    set $S280, $P279
-    iseq $I281, $S280, "minus_one"
-    if $I281, if_278
-    find_lex $P291, "$k"
-    unless_null $P291, vivify_104
-    new $P291, "Undef"
+    set $S281, $P280
+    iseq $I282, $S281, "minus_one"
+    if $I282, if_279
+    find_lex $P292, "$k"
+    unless_null $P292, vivify_104
+    new $P292, "Undef"
   vivify_104:
-    set $S292, $P291
-    iseq $I293, $S292, "lookup"
-    if $I293, if_290
-    new $P289, 'Integer'
-    set $P289, $I293
-    goto if_290_end
-  if_290:
-    .const 'Sub' $P295 = "31" 
-    capture_lex $P295
-    $P297 = $P295()
-    set $P289, $P297
-  if_290_end:
-    set $P277, $P289
-    goto if_278_end
-  if_278:
-    .const 'Sub' $P283 = "30" 
-    capture_lex $P283
-    $P288 = $P283()
-    set $P277, $P288
-  if_278_end:
-    set $P267, $P277
-    goto if_268_end
-  if_268:
-    .const 'Sub' $P273 = "29" 
-    capture_lex $P273
-    $P276 = $P273()
-    set $P267, $P276
-  if_268_end:
-    .return ($P267)
-  control_263:
+    set $S293, $P292
+    iseq $I294, $S293, "lookup"
+    if $I294, if_291
+    new $P290, 'Integer'
+    set $P290, $I294
+    goto if_291_end
+  if_291:
+    .const 'Sub' $P296 = "31" 
+    capture_lex $P296
+    $P298 = $P296()
+    set $P290, $P298
+  if_291_end:
+    set $P278, $P290
+    goto if_279_end
+  if_279:
+    .const 'Sub' $P284 = "30" 
+    capture_lex $P284
+    $P289 = $P284()
+    set $P278, $P289
+  if_279_end:
+    set $P268, $P278
+    goto if_269_end
+  if_269:
+    .const 'Sub' $P274 = "29" 
+    capture_lex $P274
+    $P277 = $P274()
+    set $P268, $P277
+  if_269_end:
+    .return ($P268)
+  control_264:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P298, exception, "payload"
-    .return ($P298)
+    getattribute $P299, exception, "payload"
+    .return ($P299)
     rethrow exception
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
-.sub "_block294"  :anon :subid("31") :outer("28")
+.sub "_block295"  :anon :subid("31") :outer("28")
     "say"("you")
-    $P296 = "panic"()
-    .return ($P296)
+    $P297 = "panic"()
+    .return ($P297)
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
-.sub "_block282"  :anon :subid("30") :outer("28")
-    find_lex $P284, "$/"
-    new $P285, "Integer"
-    assign $P285, 1
-    n_neg $P286, $P285
-    $P287 = $P284."result_object"($P286)
-    .return ($P287)
+.sub "_block283"  :anon :subid("30") :outer("28")
+    find_lex $P285, "$/"
+    new $P286, "Integer"
+    assign $P286, 1
+    n_neg $P287, $P286
+    $P288 = $P285."result_object"($P287)
+    .return ($P288)
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
-.sub "_block272"  :anon :subid("29") :outer("28")
-    find_lex $P274, "$/"
-    $P275 = $P274."result_object"(1)
-    .return ($P275)
+.sub "_block273"  :anon :subid("29") :outer("28")
+    find_lex $P275, "$/"
+    $P276 = $P275."result_object"(1)
+    .return ($P276)
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
 .sub "tap"  :subid("32") :method :outer("39")
-    .param pmc param_302
-    new $P301, 'ExceptionHandler'
-    set_addr $P301, control_300
-    $P301."handle_types"(58)
-    push_eh $P301
-    .lex "$/", param_302
-    get_hll_global $P303, ["PAST"], "Op"
-    find_lex $P304, "$/"
-    unless_null $P304, vivify_105
-    new $P304, "Undef"
+    .param pmc param_303
+    new $P302, 'ExceptionHandler'
+    set_addr $P302, control_301
+    $P302."handle_types"(58)
+    push_eh $P302
+    .lex "$/", param_303
+    get_hll_global $P304, ["PAST"], "Op"
+    find_lex $P305, "$/"
+    unless_null $P305, vivify_105
+    new $P305, "Undef"
   vivify_105:
-    $P305 = $P303."new"("tap" :named("name"), "call" :named("pasttype"), $P304 :named("node"))
-    .lex "$res", $P305
-    find_lex $P306, "$res"
-    unless_null $P306, vivify_106
-    new $P306, "Undef"
+    $P306 = $P304."new"("tap" :named("name"), "call" :named("pasttype"), $P305 :named("node"))
+    .lex "$res", $P306
+    find_lex $P307, "$res"
+    unless_null $P307, vivify_106
+    new $P307, "Undef"
   vivify_106:
-    find_lex $P307, "$/"
-    set $P308, $P307["value"]
-    unless_null $P308, vivify_107
-    new $P308, "Undef"
+    find_lex $P308, "$/"
+    set $P309, $P308["value"]
+    unless_null $P309, vivify_107
+    new $P309, "Undef"
   vivify_107:
-    $P309 = $P308."item"()
-    $P306."push"($P309)
-    find_lex $P310, "$/"
-    find_lex $P311, "$res"
-    unless_null $P311, vivify_108
-    new $P311, "Undef"
+    $P310 = $P309."item"()
+    $P307."push"($P310)
+    find_lex $P311, "$/"
+    find_lex $P312, "$res"
+    unless_null $P312, vivify_108
+    new $P312, "Undef"
   vivify_108:
-    $P312 = $P310."result_object"($P311)
-    .return ($P312)
-  control_300:
+    $P313 = $P311."result_object"($P312)
+    .return ($P313)
+  control_301:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P313, exception, "payload"
-    .return ($P313)
+    getattribute $P314, exception, "payload"
+    .return ($P314)
     rethrow exception
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
 .sub "plan"  :subid("33") :method :outer("39")
-    .param pmc param_317
-    new $P316, 'ExceptionHandler'
-    set_addr $P316, control_315
-    $P316."handle_types"(58)
-    push_eh $P316
-    .lex "$/", param_317
-    get_hll_global $P318, ["PAST"], "Op"
-    find_lex $P319, "$/"
-    unless_null $P319, vivify_109
-    new $P319, "Undef"
+    .param pmc param_318
+    new $P317, 'ExceptionHandler'
+    set_addr $P317, control_316
+    $P317."handle_types"(58)
+    push_eh $P317
+    .lex "$/", param_318
+    get_hll_global $P319, ["PAST"], "Op"
+    find_lex $P320, "$/"
+    unless_null $P320, vivify_109
+    new $P320, "Undef"
   vivify_109:
-    $P320 = $P318."new"("plan" :named("name"), "call" :named("pasttype"), $P319 :named("node"))
-    .lex "$res", $P320
-    find_lex $P321, "$res"
-    unless_null $P321, vivify_110
-    new $P321, "Undef"
+    $P321 = $P319."new"("plan" :named("name"), "call" :named("pasttype"), $P320 :named("node"))
+    .lex "$res", $P321
+    find_lex $P322, "$res"
+    unless_null $P322, vivify_110
+    new $P322, "Undef"
   vivify_110:
-    find_lex $P322, "$/"
-    set $P323, $P322["value"]
-    unless_null $P323, vivify_111
-    new $P323, "Undef"
+    find_lex $P323, "$/"
+    set $P324, $P323["value"]
+    unless_null $P324, vivify_111
+    new $P324, "Undef"
   vivify_111:
-    $P324 = $P323."item"()
-    $P321."push"($P324)
-    find_lex $P325, "$/"
-    find_lex $P326, "$res"
-    unless_null $P326, vivify_112
-    new $P326, "Undef"
+    $P325 = $P324."item"()
+    $P322."push"($P325)
+    find_lex $P326, "$/"
+    find_lex $P327, "$res"
+    unless_null $P327, vivify_112
+    new $P327, "Undef"
   vivify_112:
-    $P327 = $P325."result_object"($P326)
-    .return ($P327)
-  control_315:
+    $P328 = $P326."result_object"($P327)
+    .return ($P328)
+  control_316:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P328, exception, "payload"
-    .return ($P328)
+    getattribute $P329, exception, "payload"
+    .return ($P329)
     rethrow exception
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
 .sub "test"  :subid("34") :method :outer("39")
-    .param pmc param_332
     .param pmc param_333
-    new $P331, 'ExceptionHandler'
-    set_addr $P331, control_330
-    $P331."handle_types"(58)
-    push_eh $P331
-    .lex "$/", param_332
-    .lex "$k", param_333
-    get_hll_global $P334, ["PAST"], "Var"
-    find_lex $P335, "$/"
-    unless_null $P335, vivify_113
-    new $P335, "Undef"
+    .param pmc param_334
+    new $P332, 'ExceptionHandler'
+    set_addr $P332, control_331
+    $P332."handle_types"(58)
+    push_eh $P332
+    .lex "$/", param_333
+    .lex "$k", param_334
+    get_hll_global $P335, ["PAST"], "Var"
+    find_lex $P336, "$/"
+    unless_null $P336, vivify_113
+    new $P336, "Undef"
   vivify_113:
-    $P336 = $P334."new"("the_condition" :named("name"), 0 :named("isdecl"), "package" :named("scope"), $P335 :named("node"))
-    .lex "$test", $P336
-    find_lex $P337, "$/"
-    get_hll_global $P338, ["PAST"], "Op"
-    find_lex $P339, "$test"
-    unless_null $P339, vivify_114
-    new $P339, "Undef"
+    $P337 = $P335."new"("the_condition" :named("name"), 0 :named("isdecl"), "package" :named("scope"), $P336 :named("node"))
+    .lex "$test", $P337
+    find_lex $P338, "$/"
+    get_hll_global $P339, ["PAST"], "Op"
+    find_lex $P340, "$test"
+    unless_null $P340, vivify_114
+    new $P340, "Undef"
   vivify_114:
-    find_lex $P340, "$/"
-    set $P341, $P340["branch"]
-    unless_null $P341, vivify_115
-    new $P341, "Undef"
+    find_lex $P341, "$/"
+    set $P342, $P341["branch"]
+    unless_null $P342, vivify_115
+    new $P342, "Undef"
   vivify_115:
-    $P342 = $P341."item"()
-    find_lex $P343, "$k"
-    unless_null $P343, vivify_116
-    new $P343, "Undef"
+    $P343 = $P342."item"()
+    find_lex $P344, "$k"
+    unless_null $P344, vivify_116
+    new $P344, "Undef"
   vivify_116:
-    find_lex $P344, "$/"
-    unless_null $P344, vivify_117
-    new $P344, "Undef"
+    find_lex $P345, "$/"
+    unless_null $P345, vivify_117
+    new $P345, "Undef"
   vivify_117:
-    $P345 = $P338."new"($P339, $P342, $P343 :named("pasttype"), $P344 :named("node"))
-    $P346 = $P337."result_object"($P345)
-    .return ($P346)
-  control_330:
+    $P346 = $P339."new"($P340, $P343, $P344 :named("pasttype"), $P345 :named("node"))
+    $P347 = $P338."result_object"($P346)
+    .return ($P347)
+  control_331:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P347, exception, "payload"
-    .return ($P347)
+    getattribute $P348, exception, "payload"
+    .return ($P348)
     rethrow exception
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
 .sub "computation"  :subid("35") :method :outer("39")
-    .param pmc param_351
     .param pmc param_352
-    new $P350, 'ExceptionHandler'
-    set_addr $P350, control_349
-    $P350."handle_types"(58)
-    push_eh $P350
-    .lex "$/", param_351
-    .lex "$key", param_352
-    find_lex $P353, "$/"
-    find_lex $P354, "$key"
-    unless_null $P354, vivify_118
-    new $P354, "Undef"
+    .param pmc param_353
+    new $P351, 'ExceptionHandler'
+    set_addr $P351, control_350
+    $P351."handle_types"(58)
+    push_eh $P351
+    .lex "$/", param_352
+    .lex "$key", param_353
+    find_lex $P354, "$/"
+    find_lex $P355, "$key"
+    unless_null $P355, vivify_118
+    new $P355, "Undef"
   vivify_118:
-    find_lex $P355, "$/"
-    unless_null $P355, vivify_119
-    new $P355, "Hash"
+    find_lex $P356, "$/"
+    unless_null $P356, vivify_119
+    new $P356, "Hash"
   vivify_119:
-    set $P356, $P355[$P354]
-    unless_null $P356, vivify_120
-    new $P356, "Undef"
+    set $P357, $P356[$P355]
+    unless_null $P357, vivify_120
+    new $P357, "Undef"
   vivify_120:
-    $P357 = $P356."item"()
-    $P358 = $P353."result_object"($P357)
-    .return ($P358)
-  control_349:
+    $P358 = $P357."item"()
+    $P359 = $P354."result_object"($P358)
+    .return ($P359)
+  control_350:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P359, exception, "payload"
-    .return ($P359)
+    getattribute $P360, exception, "payload"
+    .return ($P360)
     rethrow exception
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
 .sub "unary"  :subid("36") :method :outer("39")
-    .param pmc param_363
     .param pmc param_364
-    new $P362, 'ExceptionHandler'
-    set_addr $P362, control_361
-    $P362."handle_types"(58)
-    push_eh $P362
-    .lex "$/", param_363
-    .lex "$key", param_364
-    get_hll_global $P365, ["PAST"], "Op"
-    find_lex $P366, "$key"
-    unless_null $P366, vivify_121
-    new $P366, "Undef"
+    .param pmc param_365
+    new $P363, 'ExceptionHandler'
+    set_addr $P363, control_362
+    $P363."handle_types"(58)
+    push_eh $P363
+    .lex "$/", param_364
+    .lex "$key", param_365
+    get_hll_global $P366, ["PAST"], "Op"
+    find_lex $P367, "$key"
+    unless_null $P367, vivify_121
+    new $P367, "Undef"
   vivify_121:
-    find_lex $P367, "$/"
-    unless_null $P367, vivify_122
-    new $P367, "Undef"
+    find_lex $P368, "$/"
+    unless_null $P368, vivify_122
+    new $P368, "Undef"
   vivify_122:
-    $P368 = $P365."new"($P366 :named("name"), "call" :named("pasttype"), $P367 :named("node"))
-    .lex "$res", $P368
-    find_lex $P369, "$res"
-    unless_null $P369, vivify_123
-    new $P369, "Undef"
+    $P369 = $P366."new"($P367 :named("name"), "call" :named("pasttype"), $P368 :named("node"))
+    .lex "$res", $P369
+    find_lex $P370, "$res"
+    unless_null $P370, vivify_123
+    new $P370, "Undef"
   vivify_123:
-    find_lex $P370, "$/"
-    set $P371, $P370["value"]
-    unless_null $P371, vivify_124
-    new $P371, "Undef"
+    find_lex $P371, "$/"
+    set $P372, $P371["value"]
+    unless_null $P372, vivify_124
+    new $P372, "Undef"
   vivify_124:
-    $P372 = $P371."item"()
-    $P369."push"($P372)
-    find_lex $P373, "$/"
-    find_lex $P374, "$res"
-    unless_null $P374, vivify_125
-    new $P374, "Undef"
+    $P373 = $P372."item"()
+    $P370."push"($P373)
+    find_lex $P374, "$/"
+    find_lex $P375, "$res"
+    unless_null $P375, vivify_125
+    new $P375, "Undef"
   vivify_125:
-    $P375 = $P373."result_object"($P374)
-    .return ($P375)
-  control_361:
+    $P376 = $P374."result_object"($P375)
+    .return ($P376)
+  control_362:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P376, exception, "payload"
-    .return ($P376)
+    getattribute $P377, exception, "payload"
+    .return ($P377)
     rethrow exception
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
 .sub "binary"  :subid("37") :method :outer("39")
-    .param pmc param_380
     .param pmc param_381
-    new $P379, 'ExceptionHandler'
-    set_addr $P379, control_378
-    $P379."handle_types"(58)
-    push_eh $P379
-    .lex "$/", param_380
-    .lex "$key", param_381
-    get_hll_global $P382, ["PAST"], "Op"
-    find_lex $P383, "$key"
-    unless_null $P383, vivify_126
-    new $P383, "Undef"
+    .param pmc param_382
+    new $P380, 'ExceptionHandler'
+    set_addr $P380, control_379
+    $P380."handle_types"(58)
+    push_eh $P380
+    .lex "$/", param_381
+    .lex "$key", param_382
+    get_hll_global $P383, ["PAST"], "Op"
+    find_lex $P384, "$key"
+    unless_null $P384, vivify_126
+    new $P384, "Undef"
   vivify_126:
-    find_lex $P384, "$/"
-    unless_null $P384, vivify_127
-    new $P384, "Undef"
+    find_lex $P385, "$/"
+    unless_null $P385, vivify_127
+    new $P385, "Undef"
   vivify_127:
-    $P385 = $P382."new"($P383 :named("name"), "call" :named("pasttype"), $P384 :named("node"))
-    .lex "$res", $P385
-    find_lex $P387, "$/"
-    set $P388, $P387["value"]
-    unless_null $P388, vivify_128
-    new $P388, "Undef"
+    $P386 = $P383."new"($P384 :named("name"), "call" :named("pasttype"), $P385 :named("node"))
+    .lex "$res", $P386
+    find_lex $P388, "$/"
+    set $P389, $P388["value"]
+    unless_null $P389, vivify_128
+    new $P389, "Undef"
   vivify_128:
-    defined $I389, $P388
-    unless $I389, for_undef_129
-    iter $P386, $P388
-    new $P399, 'ExceptionHandler'
-    set_addr $P399, loop398_handler
-    $P399."handle_types"(64, 66, 65)
-    push_eh $P399
-  loop398_test:
-    unless $P386, loop398_done
-    shift $P390, $P386
-  loop398_redo:
-    .const 'Sub' $P392 = "38" 
-    capture_lex $P392
-    $P392($P390)
-  loop398_next:
-    goto loop398_test
-  loop398_handler:
+    defined $I390, $P389
+    unless $I390, for_undef_129
+    iter $P387, $P389
+    new $P400, 'ExceptionHandler'
+    set_addr $P400, loop399_handler
+    $P400."handle_types"(64, 66, 65)
+    push_eh $P400
+  loop399_test:
+    unless $P387, loop399_done
+    shift $P391, $P387
+  loop399_redo:
+    .const 'Sub' $P393 = "38" 
+    capture_lex $P393
+    $P393($P391)
+  loop399_next:
+    goto loop399_test
+  loop399_handler:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P400, exception, 'type'
-    eq $P400, 64, loop398_next
-    eq $P400, 66, loop398_redo
-  loop398_done:
+    getattribute $P401, exception, 'type'
+    eq $P401, 64, loop399_next
+    eq $P401, 66, loop399_redo
+  loop399_done:
     pop_eh 
   for_undef_129:
-    find_lex $P401, "$/"
-    find_lex $P402, "$res"
-    unless_null $P402, vivify_132
-    new $P402, "Undef"
+    find_lex $P402, "$/"
+    find_lex $P403, "$res"
+    unless_null $P403, vivify_132
+    new $P403, "Undef"
   vivify_132:
-    $P403 = $P401."result_object"($P402)
-    .return ($P403)
-  control_378:
+    $P404 = $P402."result_object"($P403)
+    .return ($P404)
+  control_379:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P404, exception, "payload"
-    .return ($P404)
+    getattribute $P405, exception, "payload"
+    .return ($P405)
     rethrow exception
 .end
 
 
 .namespace ["z2";"Grammar";"Actions"]
-.sub "_block391"  :anon :subid("38") :outer("37")
-    .param pmc param_393
-    .lex "$_", param_393
-    find_lex $P394, "$res"
-    unless_null $P394, vivify_130
-    new $P394, "Undef"
+.sub "_block392"  :anon :subid("38") :outer("37")
+    .param pmc param_394
+    .lex "$_", param_394
+    find_lex $P395, "$res"
+    unless_null $P395, vivify_130
+    new $P395, "Undef"
   vivify_130:
-    find_lex $P395, "$_"
-    unless_null $P395, vivify_131
-    new $P395, "Undef"
+    find_lex $P396, "$_"
+    unless_null $P396, vivify_131
+    new $P396, "Undef"
   vivify_131:
-    $P396 = $P395."item"()
-    $P397 = $P394."push"($P396)
-    .return ($P397)
+    $P397 = $P396."item"()
+    $P398 = $P395."push"($P397)
+    .return ($P398)
 .end
 

src/gen_grammar.pir

       .sub '__onload' :load :init
           .local pmc optable
           ## namespace z2::Grammar
-          push_eh onload_1421
+          push_eh onload_1425
           .local pmc p6meta
           p6meta = get_hll_global 'P6metaclass'
           p6meta.'new_class'('z2::Grammar', 'parent'=>'PCT::Grammar')
-        onload_1421:
+        onload_1425:
           pop_eh
           .return ()
       .end
           
           
           pos = $P1
+          local_branch cstack, R729
+          
+          goto fail
+        R729: # action
+          $P1 = adverbs['action']
+          if null $P1 goto R730
+          $I1 = can $P1, "enter_exit"
+          if $I1 == 0 goto R730
+          mpos = pos
+          $P1."enter_exit"(mob, "enter")
+          goto R730
+        R730: # subrule ws
+          captob = captscope
+          $P0 = getattribute captob, '$.pos'
+          $P0 = pos
+          $I0 = can mob, 'ws'
+          if $I0 == 0 goto R730_1
+          $P0 = find_method mob, 'ws'
+          goto R730_2
+        R730_1:
+          $P0 = find_name 'ws'
+          unless null $P0 goto R730_2
+          say "Unable to find regex 'ws'"
+        R730_2:
+          $P2 = adverbs['action']
+          captob = $P0(captob, 'action'=>$P2)
+          $P1 = getattribute captob, '$.pos'
+          if $P1 <= -3 goto fail_match
+          if $P1 < 0 goto fail
+          
+          
+          pos = $P1
           local_branch cstack, R719
           
           goto fail
         R723: # concat
-        R729: # subrule ws
-          captob = captscope
-          $P0 = getattribute captob, '$.pos'
-          $P0 = pos
-          $I0 = can mob, 'ws'
-          if $I0 == 0 goto R729_1
-          $P0 = find_method mob, 'ws'
-          goto R729_2
-        R729_1:
-          $P0 = find_name 'ws'
-          unless null $P0 goto R729_2
-          say "Unable to find regex 'ws'"
-        R729_2:
-          $P2 = adverbs['action']
-          captob = $P0(captob, 'action'=>$P2)
-          $P1 = getattribute captob, '$.pos'
-          if $P1 <= -3 goto fail_match
-          if $P1 < 0 goto fail
-          
-          
-          pos = $P1
-          local_branch cstack, R730
-          
-          goto fail
-        R730: # literal
+        R731: # subrule ws
+          captob = captscope
+          $P0 = getattribute captob, '$.pos'
+          $P0 = pos
+          $I0 = can mob, 'ws'
+          if $I0 == 0 goto R731_1
+          $P0 = find_method mob, 'ws'
+          goto R731_2
+        R731_1:
+          $P0 = find_name 'ws'
+          unless null $P0 goto R731_2
+          say "Unable to find regex 'ws'"
+        R731_2:
+          $P2 = adverbs['action']
+          captob = $P0(captob, 'action'=>$P2)
+          $P1 = getattribute captob, '$.pos'
+          if $P1 <= -3 goto fail_match
+          if $P1 < 0 goto fail
+          
+          
+          pos = $P1
+          local_branch cstack, R732
+          
+          goto fail
+        R732: # literal
           $I0 = pos + 4
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 4
           
           if $S0 != "exit" goto fail
           pos += 4
-          goto R731
-
-        R731: # subrule ws
-          captob = captscope
-          $P0 = getattribute captob, '$.pos'
-          $P0 = pos
-          $I0 = can mob, 'ws'
-          if $I0 == 0 goto R731_1
-          $P0 = find_method mob, 'ws'
-          goto R731_2
-        R731_1:
-          $P0 = find_name 'ws'
-          unless null $P0 goto R731_2
-          say "Unable to find regex 'ws'"
-        R731_2:
-          $P2 = adverbs['action']
-          captob = $P0(captob, 'action'=>$P2)
-          $P1 = getattribute captob, '$.pos'
-          if $P1 <= -3 goto fail_match
-          if $P1 < 0 goto fail
-          
-          
-          pos = $P1
-          local_branch cstack, R732
-          
-          goto fail
-        R732: # subrule character
-          captob = captscope
-          $P0 = getattribute captob, '$.pos'
-          $P0 = pos
-          $I0 = can mob, 'character'
-          if $I0 == 0 goto R732_1
-          $P0 = find_method mob, 'character'
-          goto R732_2
-        R732_1:
-          $P0 = find_name 'character'
-          unless null $P0 goto R732_2
-          say "Unable to find regex 'character'"
-        R732_2:
-          $P2 = adverbs['action']
-          captob = $P0(captob, 'action'=>$P2)
-          $P1 = getattribute captob, '$.pos'
-          if $P1 <= -3 goto fail_match
-          if $P1 < 0 goto fail
-          
-          captscope["character"] = captob
-
-          pos = $P1
-          local_branch cstack, R733
-          delete captscope["character"]
-
-          goto fail
+          goto R733
+
         R733: # subrule ws
           captob = captscope
           $P0 = getattribute captob, '$.pos'
           
           
           pos = $P1
-          local_branch cstack, R719
-          
-          goto fail
-        R721: # concat
-        R734: # subrule ws
-          captob = captscope
-          $P0 = getattribute captob, '$.pos'
-          $P0 = pos
-          $I0 = can mob, 'ws'
+          local_branch cstack, R734
+          
+          goto fail
+        R734: # subrule character
+          captob = captscope
+          $P0 = getattribute captob, '$.pos'
+          $P0 = pos
+          $I0 = can mob, 'character'
           if $I0 == 0 goto R734_1
-          $P0 = find_method mob, 'ws'
+          $P0 = find_method mob, 'character'
           goto R734_2
         R734_1:
-          $P0 = find_name 'ws'
+          $P0 = find_name 'character'
           unless null $P0 goto R734_2
-          say "Unable to find regex 'ws'"
+          say "Unable to find regex 'character'"
         R734_2:
           $P2 = adverbs['action']
           captob = $P0(captob, 'action'=>$P2)
           if $P1 <= -3 goto fail_match
           if $P1 < 0 goto fail
           
-          
+          captscope["character"] = captob
+
           pos = $P1
           local_branch cstack, R735
-          
-          goto fail
-        R735: # literal
+          delete captscope["character"]
+
+          goto fail
+        R735: # subrule ws
+          captob = captscope
+          $P0 = getattribute captob, '$.pos'
+          $P0 = pos
+          $I0 = can mob, 'ws'
+          if $I0 == 0 goto R735_1
+          $P0 = find_method mob, 'ws'
+          goto R735_2
+        R735_1:
+          $P0 = find_name 'ws'
+          unless null $P0 goto R735_2
+          say "Unable to find regex 'ws'"
+        R735_2:
+          $P2 = adverbs['action']
+          captob = $P0(captob, 'action'=>$P2)
+          $P1 = getattribute captob, '$.pos'
+          if $P1 <= -3 goto fail_match
+          if $P1 < 0 goto fail
+          
+          
+          pos = $P1
+          local_branch cstack, R736
+          
+          goto fail
+        R736: # action
+          $P1 = adverbs['action']
+          if null $P1 goto R737
+          $I1 = can $P1, "enter_exit"
+          if $I1 == 0 goto R737
+          mpos = pos
+          $P1."enter_exit"(mob, "exit")
+          goto R737
+        R737: # subrule ws
+          captob = captscope
+          $P0 = getattribute captob, '$.pos'
+          $P0 = pos
+          $I0 = can mob, 'ws'
+          if $I0 == 0 goto R737_1
+          $P0 = find_method mob, 'ws'
+          goto R737_2
+        R737_1:
+          $P0 = find_name 'ws'
+          unless null $P0 goto R737_2
+          say "Unable to find regex 'ws'"
+        R737_2:
+          $P2 = adverbs['action']
+          captob = $P0(captob, 'action'=>$P2)
+          $P1 = getattribute captob, '$.pos'
+          if $P1 <= -3 goto fail_match
+          if $P1 < 0 goto fail
+          
+          
+          pos = $P1
+          local_branch cstack, R719
+          
+          goto fail
+        R721: # concat
+        R738: # subrule ws
+          captob = captscope
+          $P0 = getattribute captob, '$.pos'
+          $P0 = pos
+          $I0 = can mob, 'ws'
+          if $I0 == 0 goto R738_1
+          $P0 = find_method mob, 'ws'
+          goto R738_2
+        R738_1:
+          $P0 = find_name 'ws'
+          unless null $P0 goto R738_2
+          say "Unable to find regex 'ws'"
+        R738_2:
+          $P2 = adverbs['action']
+          captob = $P0(captob, 'action'=>$P2)
+          $P1 = getattribute captob, '$.pos'
+          if $P1 <= -3 goto fail_match
+          if $P1 < 0 goto fail
+          
+          
+          pos = $P1
+          local_branch cstack, R739
+          
+          goto fail
+        R739: # literal
           $I0 = pos + 6
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 6
           
           if $S0 != "exeunt" goto fail
           pos += 6
-          goto R736
-
-        R736: # subrule ws
-          captob = captscope
-          $P0 = getattribute captob, '$.pos'
-          $P0 = pos
-          $I0 = can mob, 'ws'
-          if $I0 == 0 goto R736_1
-          $P0 = find_method mob, 'ws'
-          goto R736_2
-        R736_1:
-          $P0 = find_name 'ws'
-          unless null $P0 goto R736_2
-          say "Unable to find regex 'ws'"
-        R736_2:
-          $P2 = adverbs['action']
-          captob = $P0(captob, 'action'=>$P2)
-          $P1 = getattribute captob, '$.pos'
-          if $P1 <= -3 goto fail_match
-          if $P1 < 0 goto fail
-          
-          
-          pos = $P1
-          local_branch cstack, R737
-          
-          goto fail
-        R737:  # quant 0..1 (3) greedy/none
+          goto R740
+
+        R740: # subrule ws
+          captob = captscope
+          $P0 = getattribute captob, '$.pos'
+          $P0 = pos
+          $I0 = can mob, 'ws'
+          if $I0 == 0 goto R740_1
+          $P0 = find_method mob, 'ws'
+          goto R740_2
+        R740_1:
+          $P0 = find_name 'ws'
+          unless null $P0 goto R740_2
+          say "Unable to find regex 'ws'"
+        R740_2:
+          $P2 = adverbs['action']
+          captob = $P0(captob, 'action'=>$P2)
+          $P1 = getattribute captob, '$.pos'
+          if $P1 <= -3 goto fail_match
+          if $P1 < 0 goto fail
+          
+          
+          pos = $P1
+          local_branch cstack, R741
+          
+          goto fail
+        R741:  # quant 0..1 (3) greedy/none
           push gpad, 0
-          local_branch cstack, R737_repeat
+          local_branch cstack, R741_repeat
           $I0 = pop gpad
-          if cutmark != 740 goto fail
+          if cutmark != 744 goto fail
           cutmark = 0
           goto fail
-        R737_repeat:
+        R741_repeat:
           rep = gpad[-1]
-          if rep >= 1 goto R737_1
+          if rep >= 1 goto R741_1
           inc rep
           gpad[-1] = rep
           push ustack, pos
           push ustack, rep
-          local_branch cstack, R739
+          local_branch cstack, R743
           rep = pop ustack
           pos = pop ustack
           if cutmark != 0 goto fail
           dec rep
-        R737_1:
+        R741_1:
           ### if rep < 0 goto fail
           $I0 = pop gpad
           push ustack, rep
-          local_branch cstack, R738
+          local_branch cstack, R742
           rep = pop ustack
           push gpad, rep
           if cutmark != 0 goto fail
-          cutmark = 740
-          goto fail
-
-        R739: # subrule charlist
+          cutmark = 744
+          goto fail
+
+        R743: # subrule charlist
           captob = captscope
           $P0 = getattribute captob, '$.pos'
           $P0 = pos
           $I0 = can mob, 'charlist'
-          if $I0 == 0 goto R739_1
+          if $I0 == 0 goto R743_1
           $P0 = find_method mob, 'charlist'
-          goto R739_2
-        R739_1:
+          goto R743_2
+        R743_1:
           $P0 = find_name 'charlist'
-          unless null $P0 goto R739_2
+          unless null $P0 goto R743_2
           say "Unable to find regex 'charlist'"
-        R739_2:
+        R743_2:
           $P2 = adverbs['action']
           captob = $P0(captob, 'action'=>$P2)
           $P1 = getattribute captob, '$.pos'
           if $P1 <= -3 goto fail_match
           if $P1 < 0 goto fail
                     $I0 = defined captscope["charlist"]
-          if $I0 goto R739_cgen
+          if $I0 goto R743_cgen
           $P0 = new 'ResizablePMCArray'
           captscope["charlist"] = $P0
-          local_branch cstack, R739_cgen
+          local_branch cstack, R743_cgen
           delete captscope["charlist"]
           goto fail
-        R739_cgen:
+        R743_cgen:
 
           $P2 = captscope["charlist"]
           push $P2, captob
 
           pos = $P1
-          local_branch cstack, R737_repeat
+          local_branch cstack, R741_repeat
           $P2 = captscope["charlist"]
           $P2 = pop $P2
 
           goto fail
-        R738: # subrule ws
-          captob = captscope
-          $P0 = getattribute captob, '$.pos'
-          $P0 = pos
-          $I0 = can mob, 'ws'
-          if $I0 == 0 goto R738_1
-          $P0 = find_method mob, 'ws'
-          goto R738_2
-        R738_1:
-          $P0 = find_name 'ws'
-          unless null $P0 goto R738_2
-          say "Unable to find regex 'ws'"
-        R738_2:
+        R742: # subrule ws
+          captob = captscope
+          $P0 = getattribute captob, '$.pos'
+          $P0 = pos
+          $I0 = can mob, 'ws'
+          if $I0 == 0 goto R742_1
+          $P0 = find_method mob, 'ws'
+          goto R742_2
+        R742_1:
+          $P0 = find_name 'ws'
+          unless null $P0 goto R742_2
+          say "Unable to find regex 'ws'"
+        R742_2:
           $P2 = adverbs['action']
           captob = $P0(captob, 'action'=>$P2)
           $P1 = getattribute captob, '$.pos'
           
           
           pos = $P1
-          local_branch cstack, R741
-          
-          goto fail
-        R741: # literal
+          local_branch cstack, R745
+          
+          goto fail
+        R745: # literal
           $I0 = pos + 1
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 1
           
           if $S0 != "]" goto fail
           pos += 1
-          goto R742
-
-        R742: # subrule ws
-          captob = captscope
-          $P0 = getattribute captob, '$.pos'
-          $P0 = pos
-          $I0 = can mob, 'ws'
-          if $I0 == 0 goto R742_1
-          $P0 = find_method mob, 'ws'
-          goto R742_2
-        R742_1:
-          $P0 = find_name 'ws'
-          unless null $P0 goto R742_2
-          say "Unable to find regex 'ws'"
-        R742_2:
+          goto R746
+
+        R746: # subrule ws
+          captob = captscope
+          $P0 = getattribute captob, '$.pos'
+          $P0 = pos
+          $I0 = can mob, 'ws'
+          if $I0 == 0 goto R746_1
+          $P0 = find_method mob, 'ws'
+          goto R746_2
+        R746_1:
+          $P0 = find_name 'ws'
+          unless null $P0 goto R746_2
+          say "Unable to find regex 'ws'"
+        R746_2:
           $P2 = adverbs['action']
           captob = $P0(captob, 'action'=>$P2)
           $P1 = getattribute captob, '$.pos'
           local_return cstack
         R:  # quant 0..Inf none
           local_branch cstack, R_repeat
-          if cutmark != 744 goto fail
+          if cutmark != 748 goto fail
           cutmark = 0
           goto fail
         R_repeat:
           push ustack, pos
-          local_branch cstack, R743
+          local_branch cstack, R747
           pos = pop ustack
           if cutmark != 0 goto fail
           local_branch cstack, succeed
           if cutmark != 0 goto fail
-          cutmark = 744
-          goto fail
-        R743: # concat
-        R745: # enumcharlist "."
+          cutmark = 748
+          goto fail
+        R747: # concat
+        R749: # enumcharlist "."
           if pos >= lastpos goto fail
           $S0 = substr target, pos, 1
           $I0 = index ".", $S0
           if $I0 >= 0 goto fail
           ###   zero width
-          goto R746
-        R746: # cclass .
+          goto R750
+        R750: # cclass .
           if pos >= lastpos goto fail
           inc pos
           goto R_repeat
           .return (mob)
         fail:
           local_return cstack
-        R:  # alt R747, R748
-          push ustack, pos
-          local_branch cstack, R747
-          pos = pop ustack
-          if cutmark != 0 goto fail
-          goto R748
-
-        R747:  # alt R749, R750
-          push ustack, pos
-          local_branch cstack, R749
-          pos = pop ustack
-          if cutmark != 0 goto fail
-          goto R750
-
-        R749: # literal
+        R:  # alt R751, R752
+          push ustack, pos
+          local_branch cstack, R751
+          pos = pop ustack
+          if cutmark != 0 goto fail
+          goto R752
+
+        R751:  # alt R753, R754
+          push ustack, pos
+          local_branch cstack, R753
+          pos = pop ustack
+          if cutmark != 0 goto fail
+          goto R754
+
+        R753: # literal
           $I0 = pos + 1
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 1
           pos += 1
           goto succeed
 
-        R750: # literal
+        R754: # literal
           $I0 = pos + 2
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 2
           pos += 2
           goto succeed
 
-        R748: # literal
+        R752: # literal
           $I0 = pos + 3
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 3
           .return (mob)
         fail:
           local_return cstack
-        R:  # alt R751, R752
-          push ustack, pos
-          local_branch cstack, R751
-          pos = pop ustack
-          if cutmark != 0 goto fail
-          goto R752
-
-        R751:  # alt R753, R754
-          push ustack, pos
-          local_branch cstack, R753
-          pos = pop ustack
-          if cutmark != 0 goto fail
-          goto R754
-
-        R753:  # alt R755, R756
+        R:  # alt R755, R756
           push ustack, pos
           local_branch cstack, R755
           pos = pop ustack
           if cutmark != 0 goto fail
           goto R758
 
-        R757: # literal
+        R757:  # alt R759, R760
+          push ustack, pos
+          local_branch cstack, R759
+          pos = pop ustack
+          if cutmark != 0 goto fail
+          goto R760
+
+        R759:  # alt R761, R762
+          push ustack, pos
+          local_branch cstack, R761
+          pos = pop ustack
+          if cutmark != 0 goto fail
+          goto R762
+
+        R761: # literal
           $I0 = pos + 2
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 2
           pos += 2
           goto succeed
 
-        R758: # literal
+        R762: # literal
           $I0 = pos + 3
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 3
           pos += 3
           goto succeed
 
-        R756: # literal
+        R760: # literal
           $I0 = pos + 3
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 3
           pos += 3
           goto succeed
 
-        R754: # literal
+        R758: # literal
           $I0 = pos + 2
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 2
           pos += 2
           goto succeed
 
-        R752: # literal
+        R756: # literal
           $I0 = pos + 2
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 2
           .return (mob)
         fail:
           local_return cstack
-        R:  # alt R759, R760
-          push ustack, pos
-          local_branch cstack, R759
-          pos = pop ustack
-          if cutmark != 0 goto fail
-          goto R760
-
-        R759:  # alt R761, R762
-          push ustack, pos
-          local_branch cstack, R761
-          pos = pop ustack
-          if cutmark != 0 goto fail
-          goto R762
-
-        R761:  # alt R763, R764
+        R:  # alt R763, R764
           push ustack, pos
           local_branch cstack, R763
           pos = pop ustack
           if cutmark != 0 goto fail
           goto R1060
 
-        R1059: # literal
+        R1059:  # alt R1061, R1062
+          push ustack, pos
+          local_branch cstack, R1061
+          pos = pop ustack
+          if cutmark != 0 goto fail
+          goto R1062
+
+        R1061:  # alt R1063, R1064
+          push ustack, pos
+          local_branch cstack, R1063
+          pos = pop ustack
+          if cutmark != 0 goto fail
+          goto R1064
+
+        R1063: # literal
           $I0 = pos + 8
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 8
           pos += 8
           goto succeed
 
+        R1064: # literal
+          $I0 = pos + 6
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 6
+          
+          if $S0 != "adonis" goto fail
+          pos += 6
+          goto succeed
+
+        R1062: # literal
+          $I0 = pos + 7
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 7
+          
+          if $S0 != "adriana" goto fail
+          pos += 7
+          goto succeed
+
         R1060: # literal
           $I0 = pos + 6
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 6
           
-          if $S0 != "adonis" goto fail
+          if $S0 != "aegeon" goto fail
           pos += 6
           goto succeed
 
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 7
           
-          if $S0 != "adriana" goto fail
+          if $S0 != "aemilia" goto fail
           pos += 7
           goto succeed
 
         R1056: # literal
-          $I0 = pos + 6
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 6
-          
-          if $S0 != "aegeon" goto fail
-          pos += 6
+          $I0 = pos + 9
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 9
+          
+          if $S0 != "agamemnon" goto fail
+          pos += 9
           goto succeed
 
         R1054: # literal
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 7
           
-          if $S0 != "aemilia" goto fail
-          pos += 7
-          goto succeed
-
-        R1052: # literal
-          $I0 = pos + 9
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 9
-          
-          if $S0 != "agamemnon" goto fail
-          pos += 9
-          goto succeed
-
-        R1050: # literal
-          $I0 = pos + 7
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 7
-          
           if $S0 != "agrippa" goto fail
           pos += 7
           goto succeed
 
-        R1048: # literal
+        R1052: # literal
           $I0 = pos + 4
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 4
           pos += 4
           goto succeed
 
-        R1046: # literal
+        R1050: # literal
           $I0 = pos + 6
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 6
           pos += 6
           goto succeed
 
-        R1044: # literal
+        R1048: # literal
           $I0 = pos + 10
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 10
           pos += 10
           goto succeed
 
-        R1042: # literal
+        R1046: # literal
           $I0 = pos + 6
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 6
           pos += 6
           goto succeed
 
-        R1040: # literal
+        R1044: # literal
           $I0 = pos + 9
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 9
           pos += 9
           goto succeed
 
-        R1038: # literal
+        R1042: # literal
           $I0 = pos + 7
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 7
           pos += 7
           goto succeed
 
-        R1036: # literal
+        R1040: # literal
           $I0 = pos + 6
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 6
           pos += 6
           goto succeed
 
-        R1034: # literal
+        R1038: # literal
           $I0 = pos + 9
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 9
           pos += 9
           goto succeed
 
-        R1032: # literal
+        R1036: # literal
           $I0 = pos + 9
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 9
           pos += 9
           goto succeed
 
+        R1034: # literal
+          $I0 = pos + 6
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 6
+          
+          if $S0 != "banquo" goto fail
+          pos += 6
+          goto succeed
+
+        R1032: # literal
+          $I0 = pos + 8
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 8
+          
+          if $S0 != "beatrice" goto fail
+          pos += 8
+          goto succeed
+
         R1030: # literal
-          $I0 = pos + 6
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 6
-          
-          if $S0 != "banquo" goto fail
-          pos += 6
+          $I0 = pos + 8
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 8
+          
+          if $S0 != "benedick" goto fail
+          pos += 8
           goto succeed
 
         R1028: # literal
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 8
           
-          if $S0 != "beatrice" goto fail
-          pos += 8
-          goto succeed
-
-        R1026: # literal
-          $I0 = pos + 8
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 8
-          
-          if $S0 != "benedick" goto fail
-          pos += 8
-          goto succeed
-
-        R1024: # literal
-          $I0 = pos + 8
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 8
-          
           if $S0 != "benvolio" goto fail
           pos += 8
           goto succeed
 
-        R1022: # literal
+        R1026: # literal
           $I0 = pos + 6
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 6
           pos += 6
           goto succeed
 
-        R1020: # literal
+        R1024: # literal
           $I0 = pos + 9
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 9
           pos += 9
           goto succeed
 
+        R1022: # literal
+          $I0 = pos + 6
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 6
+          
+          if $S0 != "brutus" goto fail
+          pos += 6
+          goto succeed
+
+        R1020: # literal
+          $I0 = pos + 7
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 7
+          
+          if $S0 != "capulet" goto fail
+          pos += 7
+          goto succeed
+
         R1018: # literal
-          $I0 = pos + 6
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 6
-          
-          if $S0 != "brutus" goto fail
-          pos += 6
+          $I0 = pos + 9
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 9
+          
+          if $S0 != "cassandra" goto fail
+          pos += 9
           goto succeed
 
         R1016: # literal
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 7
           
-          if $S0 != "capulet" goto fail
-          pos += 7
-          goto succeed
-
-        R1014: # literal
-          $I0 = pos + 9
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 9
-          
-          if $S0 != "cassandra" goto fail
-          pos += 9
-          goto succeed
-
-        R1012: # literal
-          $I0 = pos + 7
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 7
-          
           if $S0 != "cassius" goto fail
           pos += 7
           goto succeed
 
-        R1010: # literal
+        R1014: # literal
           $I0 = pos + 15
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 15
           pos += 15
           goto succeed
 
-        R1008: # literal
+        R1012: # literal
           $I0 = pos + 6
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 6
           pos += 6
           goto succeed
 
-        R1006: # literal
+        R1010: # literal
           $I0 = pos + 7
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 7
           pos += 7
           goto succeed
 
+        R1008: # literal
+          $I0 = pos + 8
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 8
+          
+          if $S0 != "claudius" goto fail
+          pos += 8
+          goto succeed
+
+        R1006: # literal
+          $I0 = pos + 9
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 9
+          
+          if $S0 != "cleopatra" goto fail
+          pos += 9
+          goto succeed
+
         R1004: # literal
           $I0 = pos + 8
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 8
           
-          if $S0 != "claudius" goto fail
+          if $S0 != "cordelia" goto fail
           pos += 8
           goto succeed
 
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 9
           
-          if $S0 != "cleopatra" goto fail
+          if $S0 != "cornelius" goto fail
           pos += 9
           goto succeed
 
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 8
           
-          if $S0 != "cordelia" goto fail
-          pos += 8
-          goto succeed
-
-        R998: # literal
-          $I0 = pos + 9
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 9
-          
-          if $S0 != "cornelius" goto fail
-          pos += 9
-          goto succeed
-
-        R996: # literal
-          $I0 = pos + 8
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 8
-          
           if $S0 != "cressida" goto fail
           pos += 8
           goto succeed
 
-        R994: # literal
+        R998: # literal
           $I0 = pos + 10
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 10
           pos += 10
           goto succeed
 
-        R992: # literal
+        R996: # literal
           $I0 = pos + 9
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 9
           pos += 9
           goto succeed
 
-        R990: # literal
+        R994: # literal
           $I0 = pos + 9
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 9
           pos += 9
           goto succeed
 
-        R988: # literal
+        R992: # literal
           $I0 = pos + 7
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 7
           pos += 7
           goto succeed
 
-        R986: # literal
+        R990: # literal
           $I0 = pos + 12
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 12
           pos += 12
           goto succeed
 
-        R984: # literal
+        R988: # literal
           $I0 = pos + 8
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 8
           pos += 8
           goto succeed
 
-        R982: # literal
+        R986: # literal
           $I0 = pos + 8
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 8
           pos += 8
           goto succeed
 
-        R980: # literal
+        R984: # literal
           $I0 = pos + 9
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 9
           pos += 9
           goto succeed
 
-        R978: # literal
+        R982: # literal
           $I0 = pos + 9
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 9
           pos += 9
           goto succeed
 
+        R980: # literal
+          $I0 = pos + 6
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 6
+          
+          if $S0 != "dorcas" goto fail
+          pos += 6
+          goto succeed
+
+        R978: # literal
+          $I0 = pos + 6
+          if $I0 > lastpos goto fail
+          $S0 = substr target, pos, 6
+          
+          if $S0 != "duncan" goto fail
+          pos += 6
+          goto succeed
+
         R976: # literal
-          $I0 = pos + 6
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 6
-          
-          if $S0 != "dorcas" goto fail
-          pos += 6
-          goto succeed
-
-        R974: # literal
-          $I0 = pos + 6
-          if $I0 > lastpos goto fail
-          $S0 = substr target, pos, 6
-          
-          if $S0 != "duncan" goto fail
-          pos += 6
-          goto succeed
-
-        R972: # literal
           $I0 = pos + 5
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 5
           pos += 5
           goto succeed
 
-        R970: # literal
+        R974: # literal
           $I0 = pos + 6
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 6
           pos += 6
           goto succeed
 
-        R968: # literal
+        R972: # literal
           $I0 = pos + 7
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 7
           pos += 7
           goto succeed
 
-        R966: # literal
+        R970: # literal
           $I0 = pos + 8
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 8
           pos += 8
           goto succeed
 
-        R964: # literal
+        R968: # literal
           $I0 = pos + 6
           if $I0 > lastpos goto fail
           $S0 = substr target, pos, 6
           pos += 6
           goto succeed