[svn:parrot] r48118 - in branches/gsoc_threads: . ext/nqp-rx/src/stage0 include/parrot lib/Parrot src/interp src/runcore t/src tools/dev

Chandon at svn.parrot.org Chandon at svn.parrot.org
Tue Jul 20 01:40:48 UTC 2010


Author: Chandon
Date: Tue Jul 20 01:40:46 2010
New Revision: 48118
URL: https://trac.parrot.org/parrot/changeset/48118

Log:
[gsoc_threads] Merge from trunk.

Modified:
   branches/gsoc_threads/   (props changed)
   branches/gsoc_threads/CREDITS
   branches/gsoc_threads/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/gsoc_threads/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/gsoc_threads/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/gsoc_threads/ext/nqp-rx/src/stage0/Regex-s0.pir
   branches/gsoc_threads/include/parrot/runcore_trace.h   (props changed)
   branches/gsoc_threads/lib/Parrot/Install.pm
   branches/gsoc_threads/src/interp/inter_create.c   (props changed)
   branches/gsoc_threads/src/runcore/cores.c   (props changed)
   branches/gsoc_threads/src/runcore/trace.c   (props changed)
   branches/gsoc_threads/t/src/embed.t   (props changed)
   branches/gsoc_threads/tools/dev/mk_gitignore.pl   (props changed)

Modified: branches/gsoc_threads/CREDITS
==============================================================================
--- branches/gsoc_threads/CREDITS	Tue Jul 20 01:19:43 2010	(r48117)
+++ branches/gsoc_threads/CREDITS	Tue Jul 20 01:40:46 2010	(r48118)
@@ -129,8 +129,7 @@
 E: ask at develooper.com
 
 N: Audrey Tang
-U: audreyt
-U: autrijus
+U: au
 E: audreyt at audreyt.org
 D: Pugs, a Perl6->Parrot implementation.
 

Modified: branches/gsoc_threads/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/gsoc_threads/ext/nqp-rx/src/stage0/HLL-s0.pir	Tue Jul 20 01:19:43 2010	(r48117)
+++ branches/gsoc_threads/ext/nqp-rx/src/stage0/HLL-s0.pir	Tue Jul 20 01:40:46 2010	(r48118)
@@ -902,7 +902,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1278500527.62277")
+.sub "_block11"  :anon :subid("10_1279564387.65485")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
@@ -916,103 +916,103 @@
 .annotate 'line', 5
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
-    $P348 = $P14()
+    $P332 = $P14()
 .annotate 'line', 1
-    .return ($P348)
-    .const 'Sub' $P350 = "106_1278500527.62277" 
-    .return ($P350)
+    .return ($P332)
+    .const 'Sub' $P334 = "106_1279564387.65485" 
+    .return ($P334)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post107") :outer("10_1278500527.62277")
+.sub "" :load :init :subid("post107") :outer("10_1279564387.65485")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1278500527.62277" 
+    .const 'Sub' $P12 = "10_1279564387.65485" 
     .local pmc block
     set block, $P12
-    $P353 = get_root_global ["parrot"], "P6metaclass"
-    $P353."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
+    $P337 = get_root_global ["parrot"], "P6metaclass"
+    $P337."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1278500527.62277") :outer("10_1278500527.62277")
+.sub "_block13"  :subid("11_1279564387.65485") :outer("10_1279564387.65485")
 .annotate 'line', 5
-    .const 'Sub' $P334 = "103_1278500527.62277" 
-    capture_lex $P334
-    .const 'Sub' $P327 = "101_1278500527.62277" 
-    capture_lex $P327
-    .const 'Sub' $P314 = "98_1278500527.62277" 
-    capture_lex $P314
-    .const 'Sub' $P282 = "93_1278500527.62277" 
-    capture_lex $P282
-    .const 'Sub' $P276 = "91_1278500527.62277" 
-    capture_lex $P276
-    .const 'Sub' $P271 = "89_1278500527.62277" 
-    capture_lex $P271
-    .const 'Sub' $P265 = "87_1278500527.62277" 
-    capture_lex $P265
-    .const 'Sub' $P259 = "85_1278500527.62277" 
-    capture_lex $P259
-    .const 'Sub' $P254 = "83_1278500527.62277" 
-    capture_lex $P254
-    .const 'Sub' $P249 = "81_1278500527.62277" 
-    capture_lex $P249
-    .const 'Sub' $P244 = "79_1278500527.62277" 
-    capture_lex $P244
-    .const 'Sub' $P239 = "77_1278500527.62277" 
-    capture_lex $P239
-    .const 'Sub' $P234 = "75_1278500527.62277" 
-    capture_lex $P234
-    .const 'Sub' $P229 = "73_1278500527.62277" 
-    capture_lex $P229
-    .const 'Sub' $P224 = "71_1278500527.62277" 
-    capture_lex $P224
-    .const 'Sub' $P219 = "69_1278500527.62277" 
-    capture_lex $P219
-    .const 'Sub' $P208 = "65_1278500527.62277" 
-    capture_lex $P208
-    .const 'Sub' $P195 = "63_1278500527.62277" 
+    .const 'Sub' $P319 = "103_1279564387.65485" 
+    capture_lex $P319
+    .const 'Sub' $P313 = "101_1279564387.65485" 
+    capture_lex $P313
+    .const 'Sub' $P300 = "98_1279564387.65485" 
+    capture_lex $P300
+    .const 'Sub' $P268 = "93_1279564387.65485" 
+    capture_lex $P268
+    .const 'Sub' $P262 = "91_1279564387.65485" 
+    capture_lex $P262
+    .const 'Sub' $P257 = "89_1279564387.65485" 
+    capture_lex $P257
+    .const 'Sub' $P251 = "87_1279564387.65485" 
+    capture_lex $P251
+    .const 'Sub' $P245 = "85_1279564387.65485" 
+    capture_lex $P245
+    .const 'Sub' $P240 = "83_1279564387.65485" 
+    capture_lex $P240
+    .const 'Sub' $P235 = "81_1279564387.65485" 
+    capture_lex $P235
+    .const 'Sub' $P230 = "79_1279564387.65485" 
+    capture_lex $P230
+    .const 'Sub' $P225 = "77_1279564387.65485" 
+    capture_lex $P225
+    .const 'Sub' $P220 = "75_1279564387.65485" 
+    capture_lex $P220
+    .const 'Sub' $P215 = "73_1279564387.65485" 
+    capture_lex $P215
+    .const 'Sub' $P210 = "71_1279564387.65485" 
+    capture_lex $P210
+    .const 'Sub' $P205 = "69_1279564387.65485" 
+    capture_lex $P205
+    .const 'Sub' $P195 = "65_1279564387.65485" 
     capture_lex $P195
-    .const 'Sub' $P183 = "61_1278500527.62277" 
-    capture_lex $P183
-    .const 'Sub' $P176 = "59_1278500527.62277" 
-    capture_lex $P176
-    .const 'Sub' $P167 = "57_1278500527.62277" 
-    capture_lex $P167
-    .const 'Sub' $P160 = "55_1278500527.62277" 
-    capture_lex $P160
-    .const 'Sub' $P151 = "53_1278500527.62277" 
+    .const 'Sub' $P182 = "63_1279564387.65485" 
+    capture_lex $P182
+    .const 'Sub' $P170 = "61_1279564387.65485" 
+    capture_lex $P170
+    .const 'Sub' $P164 = "59_1279564387.65485" 
+    capture_lex $P164
+    .const 'Sub' $P157 = "57_1279564387.65485" 
+    capture_lex $P157
+    .const 'Sub' $P151 = "55_1279564387.65485" 
     capture_lex $P151
-    .const 'Sub' $P144 = "51_1278500527.62277" 
+    .const 'Sub' $P144 = "53_1279564387.65485" 
     capture_lex $P144
-    .const 'Sub' $P135 = "49_1278500527.62277" 
-    capture_lex $P135
-    .const 'Sub' $P128 = "47_1278500527.62277" 
-    capture_lex $P128
-    .const 'Sub' $P121 = "45_1278500527.62277" 
-    capture_lex $P121
-    .const 'Sub' $P111 = "43_1278500527.62277" 
-    capture_lex $P111
-    .const 'Sub' $P103 = "41_1278500527.62277" 
-    capture_lex $P103
-    .const 'Sub' $P93 = "40_1278500527.62277" 
-    capture_lex $P93
-    .const 'Sub' $P87 = "38_1278500527.62277" 
-    capture_lex $P87
-    .const 'Sub' $P82 = "36_1278500527.62277" 
-    capture_lex $P82
-    .const 'Sub' $P74 = "34_1278500527.62277" 
-    capture_lex $P74
-    .const 'Sub' $P68 = "32_1278500527.62277" 
-    capture_lex $P68
-    .const 'Sub' $P62 = "30_1278500527.62277" 
-    capture_lex $P62
-    .const 'Sub' $P56 = "28_1278500527.62277" 
-    capture_lex $P56
-    .const 'Sub' $P23 = "14_1278500527.62277" 
-    capture_lex $P23
-    .const 'Sub' $P15 = "12_1278500527.62277" 
+    .const 'Sub' $P138 = "51_1279564387.65485" 
+    capture_lex $P138
+    .const 'Sub' $P131 = "49_1279564387.65485" 
+    capture_lex $P131
+    .const 'Sub' $P125 = "47_1279564387.65485" 
+    capture_lex $P125
+    .const 'Sub' $P119 = "45_1279564387.65485" 
+    capture_lex $P119
+    .const 'Sub' $P110 = "43_1279564387.65485" 
+    capture_lex $P110
+    .const 'Sub' $P102 = "41_1279564387.65485" 
+    capture_lex $P102
+    .const 'Sub' $P92 = "40_1279564387.65485" 
+    capture_lex $P92
+    .const 'Sub' $P86 = "38_1279564387.65485" 
+    capture_lex $P86
+    .const 'Sub' $P81 = "36_1279564387.65485" 
+    capture_lex $P81
+    .const 'Sub' $P73 = "34_1279564387.65485" 
+    capture_lex $P73
+    .const 'Sub' $P67 = "32_1279564387.65485" 
+    capture_lex $P67
+    .const 'Sub' $P61 = "30_1279564387.65485" 
+    capture_lex $P61
+    .const 'Sub' $P55 = "28_1279564387.65485" 
+    capture_lex $P55
+    .const 'Sub' $P22 = "14_1279564387.65485" 
+    capture_lex $P22
+    .const 'Sub' $P15 = "12_1279564387.65485" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -1021,17 +1021,17 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 33
-    .const 'Sub' $P334 = "103_1278500527.62277" 
-    capture_lex $P334
+    .const 'Sub' $P319 = "103_1279564387.65485" 
+    capture_lex $P319
 .annotate 'line', 5
-    .return ($P334)
-    .const 'Sub' $P345 = "105_1278500527.62277" 
-    .return ($P345)
+    .return ($P319)
+    .const 'Sub' $P329 = "105_1279564387.65485" 
+    .return ($P329)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "ws"  :subid("12_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1039,8 +1039,7 @@
     .local int rx16_eos
     .local int rx16_rep
     .local pmc rx16_cur
-    (rx16_cur, rx16_pos, rx16_tgt) = self."!cursor_start"()
-    rx16_cur."!cursor_debug"("START ", "ws")
+    (rx16_cur, rx16_pos, rx16_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx16_cur
     .local pmc match
     .lex "$/", match
@@ -1051,6 +1050,8 @@
     sub rx16_off, rx16_pos, 1
     substr rx16_tgt, rx16_tgt, rx16_off
   rx16_start:
+    eq $I10, 1, rx16_restart
+    rx16_cur."!cursor_debug"("START ", "ws")
     $I10 = self.'from'()
     ne $I10, -1, rxscan19_done
     goto rxscan19_scan
@@ -1068,8 +1069,8 @@
     $P10 = rx16_cur."ww"()
     if $P10, rx16_fail
   # rx rxquantr20 ** 0..*
-    set_addr $I22, rxquantr20_done
-    rx16_cur."!mark_push"(0, rx16_pos, $I22)
+    set_addr $I10, rxquantr20_done
+    rx16_cur."!mark_push"(0, rx16_pos, $I10)
   rxquantr20_loop:
   alt21_0:
     set_addr $I10, alt21_1
@@ -1094,14 +1095,18 @@
     find_cclass $I11, 4096, rx16_tgt, $I10, rx16_eos
     add rx16_pos, rx16_off, $I11
   alt21_end:
-    (rx16_rep) = rx16_cur."!mark_commit"($I22)
-    rx16_cur."!mark_push"(rx16_rep, rx16_pos, $I22)
+    set_addr $I10, rxquantr20_done
+    (rx16_rep) = rx16_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr20_done
+    rx16_cur."!mark_push"(rx16_rep, rx16_pos, $I10)
     goto rxquantr20_loop
   rxquantr20_done:
   # rx pass
     rx16_cur."!cursor_pass"(rx16_pos, "ws")
     rx16_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx16_pos)
     .return (rx16_cur)
+  rx16_restart:
+    rx16_cur."!cursor_debug"("NEXT ", "ws")
   rx16_fail:
     (rx16_rep, rx16_pos, $I10, $P10) = rx16_cur."!mark_fail"(0)
     lt rx16_pos, -1, rx16_done
@@ -1116,7 +1121,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1278500527.62277") :method
+.sub "!PREFIX__ws"  :subid("13_1279564387.65485") :method
 .annotate 'line', 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1125,1123 +1130,1292 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "termish"  :subid("14_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 5
-    .local string rx24_tgt
-    .local int rx24_pos
-    .local int rx24_off
-    .local int rx24_eos
-    .local int rx24_rep
-    .local pmc rx24_cur
-    (rx24_cur, rx24_pos, rx24_tgt) = self."!cursor_start"()
-    rx24_cur."!cursor_debug"("START ", "termish")
-    rx24_cur."!cursor_caparray"("postfixish", "prefixish")
-    .lex unicode:"$\x{a2}", rx24_cur
+    .local string rx23_tgt
+    .local int rx23_pos
+    .local int rx23_off
+    .local int rx23_eos
+    .local int rx23_rep
+    .local pmc rx23_cur
+    (rx23_cur, rx23_pos, rx23_tgt, $I10) = self."!cursor_start"()
+    rx23_cur."!cursor_caparray"("postfixish", "prefixish")
+    .lex unicode:"$\x{a2}", rx23_cur
     .local pmc match
     .lex "$/", match
-    length rx24_eos, rx24_tgt
-    gt rx24_pos, rx24_eos, rx24_done
-    set rx24_off, 0
-    lt rx24_pos, 2, rx24_start
-    sub rx24_off, rx24_pos, 1
-    substr rx24_tgt, rx24_tgt, rx24_off
-  rx24_start:
+    length rx23_eos, rx23_tgt
+    gt rx23_pos, rx23_eos, rx23_done
+    set rx23_off, 0
+    lt rx23_pos, 2, rx23_start
+    sub rx23_off, rx23_pos, 1
+    substr rx23_tgt, rx23_tgt, rx23_off
+  rx23_start:
+    eq $I10, 1, rx23_restart
+    rx23_cur."!cursor_debug"("START ", "termish")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan27_done
-    goto rxscan27_scan
-  rxscan27_loop:
-    ($P10) = rx24_cur."from"()
+    ne $I10, -1, rxscan26_done
+    goto rxscan26_scan
+  rxscan26_loop:
+    ($P10) = rx23_cur."from"()
     inc $P10
-    set rx24_pos, $P10
-    ge rx24_pos, rx24_eos, rxscan27_done
-  rxscan27_scan:
-    set_addr $I10, rxscan27_loop
-    rx24_cur."!mark_push"(0, rx24_pos, $I10)
-  rxscan27_done:
+    set rx23_pos, $P10
+    ge rx23_pos, rx23_eos, rxscan26_done
+  rxscan26_scan:
+    set_addr $I10, rxscan26_loop
+    rx23_cur."!mark_push"(0, rx23_pos, $I10)
+  rxscan26_done:
 .annotate 'line', 8
-  # rx rxquantr28 ** 0..*
-    set_addr $I29, rxquantr28_done
-    rx24_cur."!mark_push"(0, rx24_pos, $I29)
-  rxquantr28_loop:
+  # rx rxquantr27 ** 0..*
+    set_addr $I10, rxquantr27_done
+    rx23_cur."!mark_push"(0, rx23_pos, $I10)
+  rxquantr27_loop:
   # rx subrule "prefixish" subtype=capture negate=
-    rx24_cur."!cursor_pos"(rx24_pos)
-    $P10 = rx24_cur."prefixish"()
-    unless $P10, rx24_fail
-    rx24_cur."!mark_push"(0, -1, 0, $P10)
+    rx23_cur."!cursor_pos"(rx23_pos)
+    $P10 = rx23_cur."prefixish"()
+    unless $P10, rx23_fail
+    goto rxsubrule28_pass
+  rxsubrule28_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx23_fail
+  rxsubrule28_pass:
+    set_addr $I10, rxsubrule28_back
+    rx23_cur."!mark_push"(0, rx23_pos, $I10, $P10)
     $P10."!cursor_names"("prefixish")
-    rx24_pos = $P10."pos"()
-    (rx24_rep) = rx24_cur."!mark_commit"($I29)
-    rx24_cur."!mark_push"(rx24_rep, rx24_pos, $I29)
-    goto rxquantr28_loop
-  rxquantr28_done:
+    rx23_pos = $P10."pos"()
+    set_addr $I10, rxquantr27_done
+    (rx23_rep) = rx23_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr27_done
+    rx23_cur."!mark_push"(rx23_rep, rx23_pos, $I10)
+    goto rxquantr27_loop
+  rxquantr27_done:
 .annotate 'line', 9
   # rx subrule "term" subtype=capture negate=
-    rx24_cur."!cursor_pos"(rx24_pos)
-    $P10 = rx24_cur."term"()
-    unless $P10, rx24_fail
-    rx24_cur."!mark_push"(0, -1, 0, $P10)
+    rx23_cur."!cursor_pos"(rx23_pos)
+    $P10 = rx23_cur."term"()
+    unless $P10, rx23_fail
+    rx23_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("term")
-    rx24_pos = $P10."pos"()
+    rx23_pos = $P10."pos"()
 .annotate 'line', 10
-  # rx rxquantr30 ** 0..*
-    set_addr $I31, rxquantr30_done
-    rx24_cur."!mark_push"(0, rx24_pos, $I31)
-  rxquantr30_loop:
+  # rx rxquantr29 ** 0..*
+    set_addr $I10, rxquantr29_done
+    rx23_cur."!mark_push"(0, rx23_pos, $I10)
+  rxquantr29_loop:
   # rx subrule "postfixish" subtype=capture negate=
-    rx24_cur."!cursor_pos"(rx24_pos)
-    $P10 = rx24_cur."postfixish"()
-    unless $P10, rx24_fail
-    rx24_cur."!mark_push"(0, -1, 0, $P10)
+    rx23_cur."!cursor_pos"(rx23_pos)
+    $P10 = rx23_cur."postfixish"()
+    unless $P10, rx23_fail
+    goto rxsubrule30_pass
+  rxsubrule30_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx23_fail
+  rxsubrule30_pass:
+    set_addr $I10, rxsubrule30_back
+    rx23_cur."!mark_push"(0, rx23_pos, $I10, $P10)
     $P10."!cursor_names"("postfixish")
-    rx24_pos = $P10."pos"()
-    (rx24_rep) = rx24_cur."!mark_commit"($I31)
-    rx24_cur."!mark_push"(rx24_rep, rx24_pos, $I31)
-    goto rxquantr30_loop
-  rxquantr30_done:
+    rx23_pos = $P10."pos"()
+    set_addr $I10, rxquantr29_done
+    (rx23_rep) = rx23_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr29_done
+    rx23_cur."!mark_push"(rx23_rep, rx23_pos, $I10)
+    goto rxquantr29_loop
+  rxquantr29_done:
 .annotate 'line', 7
   # rx pass
-    rx24_cur."!cursor_pass"(rx24_pos, "termish")
-    rx24_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx24_pos)
-    .return (rx24_cur)
-  rx24_fail:
+    rx23_cur."!cursor_pass"(rx23_pos, "termish")
+    rx23_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx23_pos)
+    .return (rx23_cur)
+  rx23_restart:
 .annotate 'line', 5
-    (rx24_rep, rx24_pos, $I10, $P10) = rx24_cur."!mark_fail"(0)
-    lt rx24_pos, -1, rx24_done
-    eq rx24_pos, -1, rx24_fail
+    rx23_cur."!cursor_debug"("NEXT ", "termish")
+  rx23_fail:
+    (rx23_rep, rx23_pos, $I10, $P10) = rx23_cur."!mark_fail"(0)
+    lt rx23_pos, -1, rx23_done
+    eq rx23_pos, -1, rx23_fail
     jump $I10
-  rx24_done:
-    rx24_cur."!cursor_fail"()
-    rx24_cur."!cursor_debug"("FAIL  ", "termish")
-    .return (rx24_cur)
+  rx23_done:
+    rx23_cur."!cursor_fail"()
+    rx23_cur."!cursor_debug"("FAIL  ", "termish")
+    .return (rx23_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1278500527.62277") :method
+.sub "!PREFIX__termish"  :subid("15_1279564387.65485") :method
 .annotate 'line', 5
-    new $P26, "ResizablePMCArray"
-    push $P26, ""
-    .return ($P26)
+    new $P25, "ResizablePMCArray"
+    push $P25, ""
+    .return ($P25)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1278500527.62277") :method
+.sub "term"  :subid("16_1279564387.65485") :method
 .annotate 'line', 13
-    $P33 = self."!protoregex"("term")
-    .return ($P33)
+    $P32 = self."!protoregex"("term")
+    .return ($P32)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1278500527.62277") :method
+.sub "!PREFIX__term"  :subid("17_1279564387.65485") :method
 .annotate 'line', 13
-    $P35 = self."!PREFIX__!protoregex"("term")
-    .return ($P35)
+    $P34 = self."!PREFIX__!protoregex"("term")
+    .return ($P34)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1278500527.62277") :method
+.sub "infix"  :subid("18_1279564387.65485") :method
 .annotate 'line', 14
-    $P37 = self."!protoregex"("infix")
-    .return ($P37)
+    $P36 = self."!protoregex"("infix")
+    .return ($P36)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1278500527.62277") :method
+.sub "!PREFIX__infix"  :subid("19_1279564387.65485") :method
 .annotate 'line', 14
-    $P39 = self."!PREFIX__!protoregex"("infix")
-    .return ($P39)
+    $P38 = self."!PREFIX__!protoregex"("infix")
+    .return ($P38)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1278500527.62277") :method
+.sub "prefix"  :subid("20_1279564387.65485") :method
 .annotate 'line', 15
-    $P41 = self."!protoregex"("prefix")
-    .return ($P41)
+    $P40 = self."!protoregex"("prefix")
+    .return ($P40)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1278500527.62277") :method
+.sub "!PREFIX__prefix"  :subid("21_1279564387.65485") :method
 .annotate 'line', 15
-    $P43 = self."!PREFIX__!protoregex"("prefix")
-    .return ($P43)
+    $P42 = self."!PREFIX__!protoregex"("prefix")
+    .return ($P42)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1278500527.62277") :method
+.sub "postfix"  :subid("22_1279564387.65485") :method
 .annotate 'line', 16
-    $P45 = self."!protoregex"("postfix")
-    .return ($P45)
+    $P44 = self."!protoregex"("postfix")
+    .return ($P44)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1278500527.62277") :method
+.sub "!PREFIX__postfix"  :subid("23_1279564387.65485") :method
 .annotate 'line', 16
-    $P47 = self."!PREFIX__!protoregex"("postfix")
-    .return ($P47)
+    $P46 = self."!PREFIX__!protoregex"("postfix")
+    .return ($P46)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1278500527.62277") :method
+.sub "circumfix"  :subid("24_1279564387.65485") :method
 .annotate 'line', 17
-    $P49 = self."!protoregex"("circumfix")
-    .return ($P49)
+    $P48 = self."!protoregex"("circumfix")
+    .return ($P48)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1278500527.62277") :method
+.sub "!PREFIX__circumfix"  :subid("25_1279564387.65485") :method
 .annotate 'line', 17
-    $P51 = self."!PREFIX__!protoregex"("circumfix")
-    .return ($P51)
+    $P50 = self."!PREFIX__!protoregex"("circumfix")
+    .return ($P50)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1278500527.62277") :method
+.sub "postcircumfix"  :subid("26_1279564387.65485") :method
 .annotate 'line', 18
-    $P53 = self."!protoregex"("postcircumfix")
-    .return ($P53)
+    $P52 = self."!protoregex"("postcircumfix")
+    .return ($P52)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1278500527.62277") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1279564387.65485") :method
 .annotate 'line', 18
-    $P55 = self."!PREFIX__!protoregex"("postcircumfix")
-    .return ($P55)
+    $P54 = self."!PREFIX__!protoregex"("postcircumfix")
+    .return ($P54)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "term:sym<circumfix>"  :subid("28_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 5
-    .local string rx57_tgt
-    .local int rx57_pos
-    .local int rx57_off
-    .local int rx57_eos
-    .local int rx57_rep
-    .local pmc rx57_cur
-    (rx57_cur, rx57_pos, rx57_tgt) = self."!cursor_start"()
-    rx57_cur."!cursor_debug"("START ", "term:sym<circumfix>")
-    .lex unicode:"$\x{a2}", rx57_cur
+    .local string rx56_tgt
+    .local int rx56_pos
+    .local int rx56_off
+    .local int rx56_eos
+    .local int rx56_rep
+    .local pmc rx56_cur
+    (rx56_cur, rx56_pos, rx56_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx56_cur
     .local pmc match
     .lex "$/", match
-    length rx57_eos, rx57_tgt
-    gt rx57_pos, rx57_eos, rx57_done
-    set rx57_off, 0
-    lt rx57_pos, 2, rx57_start
-    sub rx57_off, rx57_pos, 1
-    substr rx57_tgt, rx57_tgt, rx57_off
-  rx57_start:
+    length rx56_eos, rx56_tgt
+    gt rx56_pos, rx56_eos, rx56_done
+    set rx56_off, 0
+    lt rx56_pos, 2, rx56_start
+    sub rx56_off, rx56_pos, 1
+    substr rx56_tgt, rx56_tgt, rx56_off
+  rx56_start:
+    eq $I10, 1, rx56_restart
+    rx56_cur."!cursor_debug"("START ", "term:sym<circumfix>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan61_done
-    goto rxscan61_scan
-  rxscan61_loop:
-    ($P10) = rx57_cur."from"()
+    ne $I10, -1, rxscan60_done
+    goto rxscan60_scan
+  rxscan60_loop:
+    ($P10) = rx56_cur."from"()
     inc $P10
-    set rx57_pos, $P10
-    ge rx57_pos, rx57_eos, rxscan61_done
-  rxscan61_scan:
-    set_addr $I10, rxscan61_loop
-    rx57_cur."!mark_push"(0, rx57_pos, $I10)
-  rxscan61_done:
+    set rx56_pos, $P10
+    ge rx56_pos, rx56_eos, rxscan60_done
+  rxscan60_scan:
+    set_addr $I10, rxscan60_loop
+    rx56_cur."!mark_push"(0, rx56_pos, $I10)
+  rxscan60_done:
 .annotate 'line', 20
   # rx subrule "circumfix" subtype=capture negate=
-    rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."circumfix"()
-    unless $P10, rx57_fail
-    rx57_cur."!mark_push"(0, -1, 0, $P10)
+    rx56_cur."!cursor_pos"(rx56_pos)
+    $P10 = rx56_cur."circumfix"()
+    unless $P10, rx56_fail
+    rx56_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("circumfix")
-    rx57_pos = $P10."pos"()
+    rx56_pos = $P10."pos"()
   # rx pass
-    rx57_cur."!cursor_pass"(rx57_pos, "term:sym<circumfix>")
-    rx57_cur."!cursor_debug"("PASS  ", "term:sym<circumfix>", " at pos=", rx57_pos)
-    .return (rx57_cur)
-  rx57_fail:
+    rx56_cur."!cursor_pass"(rx56_pos, "term:sym<circumfix>")
+    rx56_cur."!cursor_debug"("PASS  ", "term:sym<circumfix>", " at pos=", rx56_pos)
+    .return (rx56_cur)
+  rx56_restart:
 .annotate 'line', 5
-    (rx57_rep, rx57_pos, $I10, $P10) = rx57_cur."!mark_fail"(0)
-    lt rx57_pos, -1, rx57_done
-    eq rx57_pos, -1, rx57_fail
+    rx56_cur."!cursor_debug"("NEXT ", "term:sym<circumfix>")
+  rx56_fail:
+    (rx56_rep, rx56_pos, $I10, $P10) = rx56_cur."!mark_fail"(0)
+    lt rx56_pos, -1, rx56_done
+    eq rx56_pos, -1, rx56_fail
     jump $I10
-  rx57_done:
-    rx57_cur."!cursor_fail"()
-    rx57_cur."!cursor_debug"("FAIL  ", "term:sym<circumfix>")
-    .return (rx57_cur)
+  rx56_done:
+    rx56_cur."!cursor_fail"()
+    rx56_cur."!cursor_debug"("FAIL  ", "term:sym<circumfix>")
+    .return (rx56_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1278500527.62277") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1279564387.65485") :method
 .annotate 'line', 5
-    $P59 = self."!PREFIX__!subrule"("circumfix", "")
-    new $P60, "ResizablePMCArray"
-    push $P60, $P59
-    .return ($P60)
+    $P58 = self."!PREFIX__!subrule"("circumfix", "")
+    new $P59, "ResizablePMCArray"
+    push $P59, $P58
+    .return ($P59)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "infixish"  :subid("30_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 5
-    .local string rx63_tgt
-    .local int rx63_pos
-    .local int rx63_off
-    .local int rx63_eos
-    .local int rx63_rep
-    .local pmc rx63_cur
-    (rx63_cur, rx63_pos, rx63_tgt) = self."!cursor_start"()
-    rx63_cur."!cursor_debug"("START ", "infixish")
-    .lex unicode:"$\x{a2}", rx63_cur
+    .local string rx62_tgt
+    .local int rx62_pos
+    .local int rx62_off
+    .local int rx62_eos
+    .local int rx62_rep
+    .local pmc rx62_cur
+    (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx62_cur
     .local pmc match
     .lex "$/", match
-    length rx63_eos, rx63_tgt
-    gt rx63_pos, rx63_eos, rx63_done
-    set rx63_off, 0
-    lt rx63_pos, 2, rx63_start
-    sub rx63_off, rx63_pos, 1
-    substr rx63_tgt, rx63_tgt, rx63_off
-  rx63_start:
+    length rx62_eos, rx62_tgt
+    gt rx62_pos, rx62_eos, rx62_done
+    set rx62_off, 0
+    lt rx62_pos, 2, rx62_start
+    sub rx62_off, rx62_pos, 1
+    substr rx62_tgt, rx62_tgt, rx62_off
+  rx62_start:
+    eq $I10, 1, rx62_restart
+    rx62_cur."!cursor_debug"("START ", "infixish")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan67_done
-    goto rxscan67_scan
-  rxscan67_loop:
-    ($P10) = rx63_cur."from"()
+    ne $I10, -1, rxscan66_done
+    goto rxscan66_scan
+  rxscan66_loop:
+    ($P10) = rx62_cur."from"()
     inc $P10
-    set rx63_pos, $P10
-    ge rx63_pos, rx63_eos, rxscan67_done
-  rxscan67_scan:
-    set_addr $I10, rxscan67_loop
-    rx63_cur."!mark_push"(0, rx63_pos, $I10)
-  rxscan67_done:
+    set rx62_pos, $P10
+    ge rx62_pos, rx62_eos, rxscan66_done
+  rxscan66_scan:
+    set_addr $I10, rxscan66_loop
+    rx62_cur."!mark_push"(0, rx62_pos, $I10)
+  rxscan66_done:
 .annotate 'line', 22
   # rx subrule "infix" subtype=capture negate=
-    rx63_cur."!cursor_pos"(rx63_pos)
-    $P10 = rx63_cur."infix"()
-    unless $P10, rx63_fail
-    rx63_cur."!mark_push"(0, -1, 0, $P10)
+    rx62_cur."!cursor_pos"(rx62_pos)
+    $P10 = rx62_cur."infix"()
+    unless $P10, rx62_fail
+    rx62_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=infix")
-    rx63_pos = $P10."pos"()
+    rx62_pos = $P10."pos"()
   # rx pass
-    rx63_cur."!cursor_pass"(rx63_pos, "infixish")
-    rx63_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx63_pos)
-    .return (rx63_cur)
-  rx63_fail:
+    rx62_cur."!cursor_pass"(rx62_pos, "infixish")
+    rx62_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx62_pos)
+    .return (rx62_cur)
+  rx62_restart:
 .annotate 'line', 5
-    (rx63_rep, rx63_pos, $I10, $P10) = rx63_cur."!mark_fail"(0)
-    lt rx63_pos, -1, rx63_done
-    eq rx63_pos, -1, rx63_fail
+    rx62_cur."!cursor_debug"("NEXT ", "infixish")
+  rx62_fail:
+    (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
+    lt rx62_pos, -1, rx62_done
+    eq rx62_pos, -1, rx62_fail
     jump $I10
-  rx63_done:
-    rx63_cur."!cursor_fail"()
-    rx63_cur."!cursor_debug"("FAIL  ", "infixish")
-    .return (rx63_cur)
+  rx62_done:
+    rx62_cur."!cursor_fail"()
+    rx62_cur."!cursor_debug"("FAIL  ", "infixish")
+    .return (rx62_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1278500527.62277") :method
+.sub "!PREFIX__infixish"  :subid("31_1279564387.65485") :method
 .annotate 'line', 5
-    $P65 = self."!PREFIX__!subrule"("infix", "")
-    new $P66, "ResizablePMCArray"
-    push $P66, $P65
-    .return ($P66)
+    $P64 = self."!PREFIX__!subrule"("infix", "")
+    new $P65, "ResizablePMCArray"
+    push $P65, $P64
+    .return ($P65)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "prefixish"  :subid("32_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 5
-    .local string rx69_tgt
-    .local int rx69_pos
-    .local int rx69_off
-    .local int rx69_eos
-    .local int rx69_rep
-    .local pmc rx69_cur
-    (rx69_cur, rx69_pos, rx69_tgt) = self."!cursor_start"()
-    rx69_cur."!cursor_debug"("START ", "prefixish")
-    .lex unicode:"$\x{a2}", rx69_cur
+    .local string rx68_tgt
+    .local int rx68_pos
+    .local int rx68_off
+    .local int rx68_eos
+    .local int rx68_rep
+    .local pmc rx68_cur
+    (rx68_cur, rx68_pos, rx68_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx68_cur
     .local pmc match
     .lex "$/", match
-    length rx69_eos, rx69_tgt
-    gt rx69_pos, rx69_eos, rx69_done
-    set rx69_off, 0
-    lt rx69_pos, 2, rx69_start
-    sub rx69_off, rx69_pos, 1
-    substr rx69_tgt, rx69_tgt, rx69_off
-  rx69_start:
+    length rx68_eos, rx68_tgt
+    gt rx68_pos, rx68_eos, rx68_done
+    set rx68_off, 0
+    lt rx68_pos, 2, rx68_start
+    sub rx68_off, rx68_pos, 1
+    substr rx68_tgt, rx68_tgt, rx68_off
+  rx68_start:
+    eq $I10, 1, rx68_restart
+    rx68_cur."!cursor_debug"("START ", "prefixish")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan73_done
-    goto rxscan73_scan
-  rxscan73_loop:
-    ($P10) = rx69_cur."from"()
+    ne $I10, -1, rxscan72_done
+    goto rxscan72_scan
+  rxscan72_loop:
+    ($P10) = rx68_cur."from"()
     inc $P10
-    set rx69_pos, $P10
-    ge rx69_pos, rx69_eos, rxscan73_done
-  rxscan73_scan:
-    set_addr $I10, rxscan73_loop
-    rx69_cur."!mark_push"(0, rx69_pos, $I10)
-  rxscan73_done:
+    set rx68_pos, $P10
+    ge rx68_pos, rx68_eos, rxscan72_done
+  rxscan72_scan:
+    set_addr $I10, rxscan72_loop
+    rx68_cur."!mark_push"(0, rx68_pos, $I10)
+  rxscan72_done:
 .annotate 'line', 23
   # rx subrule "prefix" subtype=capture negate=
-    rx69_cur."!cursor_pos"(rx69_pos)
-    $P10 = rx69_cur."prefix"()
-    unless $P10, rx69_fail
-    rx69_cur."!mark_push"(0, -1, 0, $P10)
+    rx68_cur."!cursor_pos"(rx68_pos)
+    $P10 = rx68_cur."prefix"()
+    unless $P10, rx68_fail
+    rx68_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=prefix")
-    rx69_pos = $P10."pos"()
+    rx68_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx69_cur."!cursor_pos"(rx69_pos)
-    $P10 = rx69_cur."ws"()
-    unless $P10, rx69_fail
-    rx69_pos = $P10."pos"()
+    rx68_cur."!cursor_pos"(rx68_pos)
+    $P10 = rx68_cur."ws"()
+    unless $P10, rx68_fail
+    rx68_pos = $P10."pos"()
   # rx pass
-    rx69_cur."!cursor_pass"(rx69_pos, "prefixish")
-    rx69_cur."!cursor_debug"("PASS  ", "prefixish", " at pos=", rx69_pos)
-    .return (rx69_cur)
-  rx69_fail:
+    rx68_cur."!cursor_pass"(rx68_pos, "prefixish")
+    rx68_cur."!cursor_debug"("PASS  ", "prefixish", " at pos=", rx68_pos)
+    .return (rx68_cur)
+  rx68_restart:
 .annotate 'line', 5
-    (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
-    lt rx69_pos, -1, rx69_done
-    eq rx69_pos, -1, rx69_fail
+    rx68_cur."!cursor_debug"("NEXT ", "prefixish")
+  rx68_fail:
+    (rx68_rep, rx68_pos, $I10, $P10) = rx68_cur."!mark_fail"(0)
+    lt rx68_pos, -1, rx68_done
+    eq rx68_pos, -1, rx68_fail
     jump $I10
-  rx69_done:
-    rx69_cur."!cursor_fail"()
-    rx69_cur."!cursor_debug"("FAIL  ", "prefixish")
-    .return (rx69_cur)
+  rx68_done:
+    rx68_cur."!cursor_fail"()
+    rx68_cur."!cursor_debug"("FAIL  ", "prefixish")
+    .return (rx68_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1278500527.62277") :method
+.sub "!PREFIX__prefixish"  :subid("33_1279564387.65485") :method
 .annotate 'line', 5
-    $P71 = self."!PREFIX__!subrule"("prefix", "")
-    new $P72, "ResizablePMCArray"
-    push $P72, $P71
-    .return ($P72)
+    $P70 = self."!PREFIX__!subrule"("prefix", "")
+    new $P71, "ResizablePMCArray"
+    push $P71, $P70
+    .return ($P71)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "postfixish"  :subid("34_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 5
-    .local string rx75_tgt
-    .local int rx75_pos
-    .local int rx75_off
-    .local int rx75_eos
-    .local int rx75_rep
-    .local pmc rx75_cur
-    (rx75_cur, rx75_pos, rx75_tgt) = self."!cursor_start"()
-    rx75_cur."!cursor_debug"("START ", "postfixish")
-    .lex unicode:"$\x{a2}", rx75_cur
+    .local string rx74_tgt
+    .local int rx74_pos
+    .local int rx74_off
+    .local int rx74_eos
+    .local int rx74_rep
+    .local pmc rx74_cur
+    (rx74_cur, rx74_pos, rx74_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx74_cur
     .local pmc match
     .lex "$/", match
-    length rx75_eos, rx75_tgt
-    gt rx75_pos, rx75_eos, rx75_done
-    set rx75_off, 0
-    lt rx75_pos, 2, rx75_start
-    sub rx75_off, rx75_pos, 1
-    substr rx75_tgt, rx75_tgt, rx75_off
-  rx75_start:
+    length rx74_eos, rx74_tgt
+    gt rx74_pos, rx74_eos, rx74_done
+    set rx74_off, 0
+    lt rx74_pos, 2, rx74_start
+    sub rx74_off, rx74_pos, 1
+    substr rx74_tgt, rx74_tgt, rx74_off
+  rx74_start:
+    eq $I10, 1, rx74_restart
+    rx74_cur."!cursor_debug"("START ", "postfixish")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan80_done
-    goto rxscan80_scan
-  rxscan80_loop:
-    ($P10) = rx75_cur."from"()
+    ne $I10, -1, rxscan79_done
+    goto rxscan79_scan
+  rxscan79_loop:
+    ($P10) = rx74_cur."from"()
     inc $P10
-    set rx75_pos, $P10
-    ge rx75_pos, rx75_eos, rxscan80_done
-  rxscan80_scan:
-    set_addr $I10, rxscan80_loop
-    rx75_cur."!mark_push"(0, rx75_pos, $I10)
-  rxscan80_done:
-  alt81_0:
+    set rx74_pos, $P10
+    ge rx74_pos, rx74_eos, rxscan79_done
+  rxscan79_scan:
+    set_addr $I10, rxscan79_loop
+    rx74_cur."!mark_push"(0, rx74_pos, $I10)
+  rxscan79_done:
+  alt80_0:
 .annotate 'line', 24
-    set_addr $I10, alt81_1
-    rx75_cur."!mark_push"(0, rx75_pos, $I10)
+    set_addr $I10, alt80_1
+    rx74_cur."!mark_push"(0, rx74_pos, $I10)
 .annotate 'line', 25
   # rx subrule "postfix" subtype=capture negate=
-    rx75_cur."!cursor_pos"(rx75_pos)
-    $P10 = rx75_cur."postfix"()
-    unless $P10, rx75_fail
-    rx75_cur."!mark_push"(0, -1, 0, $P10)
+    rx74_cur."!cursor_pos"(rx74_pos)
+    $P10 = rx74_cur."postfix"()
+    unless $P10, rx74_fail
+    rx74_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=postfix")
-    rx75_pos = $P10."pos"()
-    goto alt81_end
-  alt81_1:
+    rx74_pos = $P10."pos"()
+    goto alt80_end
+  alt80_1:
 .annotate 'line', 26
   # rx subrule "postcircumfix" subtype=capture negate=
-    rx75_cur."!cursor_pos"(rx75_pos)
-    $P10 = rx75_cur."postcircumfix"()
-    unless $P10, rx75_fail
-    rx75_cur."!mark_push"(0, -1, 0, $P10)
+    rx74_cur."!cursor_pos"(rx74_pos)
+    $P10 = rx74_cur."postcircumfix"()
+    unless $P10, rx74_fail
+    rx74_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=postcircumfix")
-    rx75_pos = $P10."pos"()
-  alt81_end:
+    rx74_pos = $P10."pos"()
+  alt80_end:
 .annotate 'line', 24
   # rx pass
-    rx75_cur."!cursor_pass"(rx75_pos, "postfixish")
-    rx75_cur."!cursor_debug"("PASS  ", "postfixish", " at pos=", rx75_pos)
-    .return (rx75_cur)
-  rx75_fail:
+    rx74_cur."!cursor_pass"(rx74_pos, "postfixish")
+    rx74_cur."!cursor_debug"("PASS  ", "postfixish", " at pos=", rx74_pos)
+    .return (rx74_cur)
+  rx74_restart:
 .annotate 'line', 5
-    (rx75_rep, rx75_pos, $I10, $P10) = rx75_cur."!mark_fail"(0)
-    lt rx75_pos, -1, rx75_done
-    eq rx75_pos, -1, rx75_fail
+    rx74_cur."!cursor_debug"("NEXT ", "postfixish")
+  rx74_fail:
+    (rx74_rep, rx74_pos, $I10, $P10) = rx74_cur."!mark_fail"(0)
+    lt rx74_pos, -1, rx74_done
+    eq rx74_pos, -1, rx74_fail
     jump $I10
-  rx75_done:
-    rx75_cur."!cursor_fail"()
-    rx75_cur."!cursor_debug"("FAIL  ", "postfixish")
-    .return (rx75_cur)
+  rx74_done:
+    rx74_cur."!cursor_fail"()
+    rx74_cur."!cursor_debug"("FAIL  ", "postfixish")
+    .return (rx74_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1278500527.62277") :method
+.sub "!PREFIX__postfixish"  :subid("35_1279564387.65485") :method
 .annotate 'line', 5
-    $P77 = self."!PREFIX__!subrule"("postcircumfix", "")
-    $P78 = self."!PREFIX__!subrule"("postfix", "")
-    new $P79, "ResizablePMCArray"
-    push $P79, $P77
-    push $P79, $P78
-    .return ($P79)
+    $P76 = self."!PREFIX__!subrule"("postcircumfix", "")
+    $P77 = self."!PREFIX__!subrule"("postfix", "")
+    new $P78, "ResizablePMCArray"
+    push $P78, $P76
+    push $P78, $P77
+    .return ($P78)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "nullterm"  :subid("36_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 5
-    .local string rx83_tgt
-    .local int rx83_pos
-    .local int rx83_off
-    .local int rx83_eos
-    .local int rx83_rep
-    .local pmc rx83_cur
-    (rx83_cur, rx83_pos, rx83_tgt) = self."!cursor_start"()
-    rx83_cur."!cursor_debug"("START ", "nullterm")
-    .lex unicode:"$\x{a2}", rx83_cur
+    .local string rx82_tgt
+    .local int rx82_pos
+    .local int rx82_off
+    .local int rx82_eos
+    .local int rx82_rep
+    .local pmc rx82_cur
+    (rx82_cur, rx82_pos, rx82_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx82_cur
     .local pmc match
     .lex "$/", match
-    length rx83_eos, rx83_tgt
-    gt rx83_pos, rx83_eos, rx83_done
-    set rx83_off, 0
-    lt rx83_pos, 2, rx83_start
-    sub rx83_off, rx83_pos, 1
-    substr rx83_tgt, rx83_tgt, rx83_off
-  rx83_start:
+    length rx82_eos, rx82_tgt
+    gt rx82_pos, rx82_eos, rx82_done
+    set rx82_off, 0
+    lt rx82_pos, 2, rx82_start
+    sub rx82_off, rx82_pos, 1
+    substr rx82_tgt, rx82_tgt, rx82_off
+  rx82_start:
+    eq $I10, 1, rx82_restart
+    rx82_cur."!cursor_debug"("START ", "nullterm")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan86_done
-    goto rxscan86_scan
-  rxscan86_loop:
-    ($P10) = rx83_cur."from"()
+    ne $I10, -1, rxscan85_done
+    goto rxscan85_scan
+  rxscan85_loop:
+    ($P10) = rx82_cur."from"()
     inc $P10
-    set rx83_pos, $P10
-    ge rx83_pos, rx83_eos, rxscan86_done
-  rxscan86_scan:
-    set_addr $I10, rxscan86_loop
-    rx83_cur."!mark_push"(0, rx83_pos, $I10)
-  rxscan86_done:
+    set rx82_pos, $P10
+    ge rx82_pos, rx82_eos, rxscan85_done
+  rxscan85_scan:
+    set_addr $I10, rxscan85_loop
+    rx82_cur."!mark_push"(0, rx82_pos, $I10)
+  rxscan85_done:
 .annotate 'line', 29
   # rx pass
-    rx83_cur."!cursor_pass"(rx83_pos, "nullterm")
-    rx83_cur."!cursor_debug"("PASS  ", "nullterm", " at pos=", rx83_pos)
-    .return (rx83_cur)
-  rx83_fail:
+    rx82_cur."!cursor_pass"(rx82_pos, "nullterm")
+    rx82_cur."!cursor_debug"("PASS  ", "nullterm", " at pos=", rx82_pos)
+    .return (rx82_cur)
+  rx82_restart:
 .annotate 'line', 5
-    (rx83_rep, rx83_pos, $I10, $P10) = rx83_cur."!mark_fail"(0)
-    lt rx83_pos, -1, rx83_done
-    eq rx83_pos, -1, rx83_fail
+    rx82_cur."!cursor_debug"("NEXT ", "nullterm")
+  rx82_fail:
+    (rx82_rep, rx82_pos, $I10, $P10) = rx82_cur."!mark_fail"(0)
+    lt rx82_pos, -1, rx82_done
+    eq rx82_pos, -1, rx82_fail
     jump $I10
-  rx83_done:
-    rx83_cur."!cursor_fail"()
-    rx83_cur."!cursor_debug"("FAIL  ", "nullterm")
-    .return (rx83_cur)
+  rx82_done:
+    rx82_cur."!cursor_fail"()
+    rx82_cur."!cursor_debug"("FAIL  ", "nullterm")
+    .return (rx82_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1278500527.62277") :method
+.sub "!PREFIX__nullterm"  :subid("37_1279564387.65485") :method
 .annotate 'line', 5
-    new $P85, "ResizablePMCArray"
-    push $P85, ""
-    .return ($P85)
+    new $P84, "ResizablePMCArray"
+    push $P84, ""
+    .return ($P84)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "nullterm_alt"  :subid("38_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 5
-    .local string rx88_tgt
-    .local int rx88_pos
-    .local int rx88_off
-    .local int rx88_eos
-    .local int rx88_rep
-    .local pmc rx88_cur
-    (rx88_cur, rx88_pos, rx88_tgt) = self."!cursor_start"()
-    rx88_cur."!cursor_debug"("START ", "nullterm_alt")
-    .lex unicode:"$\x{a2}", rx88_cur
+    .local string rx87_tgt
+    .local int rx87_pos
+    .local int rx87_off
+    .local int rx87_eos
+    .local int rx87_rep
+    .local pmc rx87_cur
+    (rx87_cur, rx87_pos, rx87_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx87_cur
     .local pmc match
     .lex "$/", match
-    length rx88_eos, rx88_tgt
-    gt rx88_pos, rx88_eos, rx88_done
-    set rx88_off, 0
-    lt rx88_pos, 2, rx88_start
-    sub rx88_off, rx88_pos, 1
-    substr rx88_tgt, rx88_tgt, rx88_off
-  rx88_start:
+    length rx87_eos, rx87_tgt
+    gt rx87_pos, rx87_eos, rx87_done
+    set rx87_off, 0
+    lt rx87_pos, 2, rx87_start
+    sub rx87_off, rx87_pos, 1
+    substr rx87_tgt, rx87_tgt, rx87_off
+  rx87_start:
+    eq $I10, 1, rx87_restart
+    rx87_cur."!cursor_debug"("START ", "nullterm_alt")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan92_done
-    goto rxscan92_scan
-  rxscan92_loop:
-    ($P10) = rx88_cur."from"()
+    ne $I10, -1, rxscan91_done
+    goto rxscan91_scan
+  rxscan91_loop:
+    ($P10) = rx87_cur."from"()
     inc $P10
-    set rx88_pos, $P10
-    ge rx88_pos, rx88_eos, rxscan92_done
-  rxscan92_scan:
-    set_addr $I10, rxscan92_loop
-    rx88_cur."!mark_push"(0, rx88_pos, $I10)
-  rxscan92_done:
+    set rx87_pos, $P10
+    ge rx87_pos, rx87_eos, rxscan91_done
+  rxscan91_scan:
+    set_addr $I10, rxscan91_loop
+    rx87_cur."!mark_push"(0, rx87_pos, $I10)
+  rxscan91_done:
 .annotate 'line', 30
   # rx subrule "nullterm" subtype=capture negate=
-    rx88_cur."!cursor_pos"(rx88_pos)
-    $P10 = rx88_cur."nullterm"()
-    unless $P10, rx88_fail
-    rx88_cur."!mark_push"(0, -1, 0, $P10)
+    rx87_cur."!cursor_pos"(rx87_pos)
+    $P10 = rx87_cur."nullterm"()
+    unless $P10, rx87_fail
+    rx87_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("term")
-    rx88_pos = $P10."pos"()
+    rx87_pos = $P10."pos"()
   # rx pass
-    rx88_cur."!cursor_pass"(rx88_pos, "nullterm_alt")
-    rx88_cur."!cursor_debug"("PASS  ", "nullterm_alt", " at pos=", rx88_pos)
-    .return (rx88_cur)
-  rx88_fail:
+    rx87_cur."!cursor_pass"(rx87_pos, "nullterm_alt")
+    rx87_cur."!cursor_debug"("PASS  ", "nullterm_alt", " at pos=", rx87_pos)
+    .return (rx87_cur)
+  rx87_restart:
 .annotate 'line', 5
-    (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0)
-    lt rx88_pos, -1, rx88_done
-    eq rx88_pos, -1, rx88_fail
+    rx87_cur."!cursor_debug"("NEXT ", "nullterm_alt")
+  rx87_fail:
+    (rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0)
+    lt rx87_pos, -1, rx87_done
+    eq rx87_pos, -1, rx87_fail
     jump $I10
-  rx88_done:
-    rx88_cur."!cursor_fail"()
-    rx88_cur."!cursor_debug"("FAIL  ", "nullterm_alt")
-    .return (rx88_cur)
+  rx87_done:
+    rx87_cur."!cursor_fail"()
+    rx87_cur."!cursor_debug"("FAIL  ", "nullterm_alt")
+    .return (rx87_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1278500527.62277") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1279564387.65485") :method
 .annotate 'line', 5
-    $P90 = self."!PREFIX__!subrule"("nullterm", "")
-    new $P91, "ResizablePMCArray"
-    push $P91, $P90
-    .return ($P91)
+    $P89 = self."!PREFIX__!subrule"("nullterm", "")
+    new $P90, "ResizablePMCArray"
+    push $P90, $P89
+    .return ($P90)
 .end
 
 
 .namespace ["HLL";"Grammar"]
 .include "except_types.pasm"
-.sub "nulltermish"  :subid("40_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "nulltermish"  :subid("40_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    new $P95, 'ExceptionHandler'
-    set_addr $P95, control_94
-    $P95."handle_types"(.CONTROL_RETURN)
-    push_eh $P95
-    .lex "self", self
-    find_lex $P98, "self"
-    $P99 = $P98."termish"()
-    unless $P99, unless_97
-    set $P96, $P99
-    goto unless_97_end
-  unless_97:
-    find_lex $P100, "self"
-    $P101 = $P100."nullterm_alt"()
-    set $P96, $P101
-  unless_97_end:
-    .return ($P96)
-  control_94:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P102, exception, "payload"
-    .return ($P102)
+    new $P94, 'ExceptionHandler'
+    set_addr $P94, control_93
+    $P94."handle_types"(.CONTROL_RETURN)
+    push_eh $P94
+    .lex "self", self
+    find_lex $P97, "self"
+    $P98 = $P97."termish"()
+    unless $P98, unless_96
+    set $P95, $P98
+    goto unless_96_end
+  unless_96:
+    find_lex $P99, "self"
+    $P100 = $P99."nullterm_alt"()
+    set $P95, $P100
+  unless_96_end:
+    .return ($P95)
+  control_93:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P101, exception, "payload"
+    .return ($P101)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1278500527.62277") :method :outer("11_1278500527.62277")
-.annotate 'line', 33
-    .local string rx104_tgt
-    .local int rx104_pos
-    .local int rx104_off
-    .local int rx104_eos
-    .local int rx104_rep
-    .local pmc rx104_cur
-    (rx104_cur, rx104_pos, rx104_tgt) = self."!cursor_start"()
-    rx104_cur."!cursor_debug"("START ", "quote_delimited")
-    rx104_cur."!cursor_caparray"("quote_atom")
-    .lex unicode:"$\x{a2}", rx104_cur
+.sub "quote_delimited"  :subid("41_1279564387.65485") :method :outer("11_1279564387.65485")
+.annotate 'line', 33
+    .local string rx103_tgt
+    .local int rx103_pos
+    .local int rx103_off
+    .local int rx103_eos
+    .local int rx103_rep
+    .local pmc rx103_cur
+    (rx103_cur, rx103_pos, rx103_tgt, $I10) = self."!cursor_start"()
+    rx103_cur."!cursor_caparray"("quote_atom")
+    .lex unicode:"$\x{a2}", rx103_cur
     .local pmc match
     .lex "$/", match
-    length rx104_eos, rx104_tgt
-    gt rx104_pos, rx104_eos, rx104_done
-    set rx104_off, 0
-    lt rx104_pos, 2, rx104_start
-    sub rx104_off, rx104_pos, 1
-    substr rx104_tgt, rx104_tgt, rx104_off
-  rx104_start:
+    length rx103_eos, rx103_tgt
+    gt rx103_pos, rx103_eos, rx103_done
+    set rx103_off, 0
+    lt rx103_pos, 2, rx103_start
+    sub rx103_off, rx103_pos, 1
+    substr rx103_tgt, rx103_tgt, rx103_off
+  rx103_start:
+    eq $I10, 1, rx103_restart
+    rx103_cur."!cursor_debug"("START ", "quote_delimited")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan108_done
-    goto rxscan108_scan
-  rxscan108_loop:
-    ($P10) = rx104_cur."from"()
+    ne $I10, -1, rxscan107_done
+    goto rxscan107_scan
+  rxscan107_loop:
+    ($P10) = rx103_cur."from"()
     inc $P10
-    set rx104_pos, $P10
-    ge rx104_pos, rx104_eos, rxscan108_done
-  rxscan108_scan:
-    set_addr $I10, rxscan108_loop
-    rx104_cur."!mark_push"(0, rx104_pos, $I10)
-  rxscan108_done:
+    set rx103_pos, $P10
+    ge rx103_pos, rx103_eos, rxscan107_done
+  rxscan107_scan:
+    set_addr $I10, rxscan107_loop
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+  rxscan107_done:
 .annotate 'line', 37
   # rx subrule "starter" subtype=capture negate=
-    rx104_cur."!cursor_pos"(rx104_pos)
-    $P10 = rx104_cur."starter"()
-    unless $P10, rx104_fail
-    rx104_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."starter"()
+    unless $P10, rx103_fail
+    rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("starter")
-    rx104_pos = $P10."pos"()
-  # rx rxquantr109 ** 0..*
-    set_addr $I110, rxquantr109_done
-    rx104_cur."!mark_push"(0, rx104_pos, $I110)
-  rxquantr109_loop:
+    rx103_pos = $P10."pos"()
+  # rx rxquantr108 ** 0..*
+    set_addr $I10, rxquantr108_done
+    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+  rxquantr108_loop:
   # rx subrule "quote_atom" subtype=capture negate=
-    rx104_cur."!cursor_pos"(rx104_pos)
-    $P10 = rx104_cur."quote_atom"()
-    unless $P10, rx104_fail
-    rx104_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."quote_atom"()
+    unless $P10, rx103_fail
+    goto rxsubrule109_pass
+  rxsubrule109_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx103_fail
+  rxsubrule109_pass:
+    set_addr $I10, rxsubrule109_back
+    rx103_cur."!mark_push"(0, rx103_pos, $I10, $P10)
     $P10."!cursor_names"("quote_atom")
-    rx104_pos = $P10."pos"()
-    (rx104_rep) = rx104_cur."!mark_commit"($I110)
-    rx104_cur."!mark_push"(rx104_rep, rx104_pos, $I110)
-    goto rxquantr109_loop
-  rxquantr109_done:
+    rx103_pos = $P10."pos"()
+    set_addr $I10, rxquantr108_done
+    (rx103_rep) = rx103_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr108_done
+    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I10)
+    goto rxquantr108_loop
+  rxquantr108_done:
   # rx subrule "stopper" subtype=capture negate=
-    rx104_cur."!cursor_pos"(rx104_pos)
-    $P10 = rx104_cur."stopper"()
-    unless $P10, rx104_fail
-    rx104_cur."!mark_push"(0, -1, 0, $P10)
+    rx103_cur."!cursor_pos"(rx103_pos)
+    $P10 = rx103_cur."stopper"()
+    unless $P10, rx103_fail
+    rx103_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("stopper")
-    rx104_pos = $P10."pos"()
+    rx103_pos = $P10."pos"()
 .annotate 'line', 36
   # rx pass
-    rx104_cur."!cursor_pass"(rx104_pos, "quote_delimited")
-    rx104_cur."!cursor_debug"("PASS  ", "quote_delimited", " at pos=", rx104_pos)
-    .return (rx104_cur)
-  rx104_fail:
-.annotate 'line', 33
-    (rx104_rep, rx104_pos, $I10, $P10) = rx104_cur."!mark_fail"(0)
-    lt rx104_pos, -1, rx104_done
-    eq rx104_pos, -1, rx104_fail
+    rx103_cur."!cursor_pass"(rx103_pos, "quote_delimited")
+    rx103_cur."!cursor_debug"("PASS  ", "quote_delimited", " at pos=", rx103_pos)
+    .return (rx103_cur)
+  rx103_restart:
+.annotate 'line', 33
+    rx103_cur."!cursor_debug"("NEXT ", "quote_delimited")
+  rx103_fail:
+    (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
+    lt rx103_pos, -1, rx103_done
+    eq rx103_pos, -1, rx103_fail
     jump $I10
-  rx104_done:
-    rx104_cur."!cursor_fail"()
-    rx104_cur."!cursor_debug"("FAIL  ", "quote_delimited")
-    .return (rx104_cur)
+  rx103_done:
+    rx103_cur."!cursor_fail"()
+    rx103_cur."!cursor_debug"("FAIL  ", "quote_delimited")
+    .return (rx103_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1278500527.62277") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1279564387.65485") :method
 .annotate 'line', 33
-    $P106 = self."!PREFIX__!subrule"("starter", "")
-    new $P107, "ResizablePMCArray"
-    push $P107, $P106
-    .return ($P107)
+    $P105 = self."!PREFIX__!subrule"("starter", "")
+    new $P106, "ResizablePMCArray"
+    push $P106, $P105
+    .return ($P106)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_atom"  :subid("43_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx112_tgt
-    .local int rx112_pos
-    .local int rx112_off
-    .local int rx112_eos
-    .local int rx112_rep
-    .local pmc rx112_cur
-    (rx112_cur, rx112_pos, rx112_tgt) = self."!cursor_start"()
-    rx112_cur."!cursor_debug"("START ", "quote_atom")
-    .lex unicode:"$\x{a2}", rx112_cur
+    .local string rx111_tgt
+    .local int rx111_pos
+    .local int rx111_off
+    .local int rx111_eos
+    .local int rx111_rep
+    .local pmc rx111_cur
+    (rx111_cur, rx111_pos, rx111_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx111_cur
     .local pmc match
     .lex "$/", match
-    length rx112_eos, rx112_tgt
-    gt rx112_pos, rx112_eos, rx112_done
-    set rx112_off, 0
-    lt rx112_pos, 2, rx112_start
-    sub rx112_off, rx112_pos, 1
-    substr rx112_tgt, rx112_tgt, rx112_off
-  rx112_start:
+    length rx111_eos, rx111_tgt
+    gt rx111_pos, rx111_eos, rx111_done
+    set rx111_off, 0
+    lt rx111_pos, 2, rx111_start
+    sub rx111_off, rx111_pos, 1
+    substr rx111_tgt, rx111_tgt, rx111_off
+  rx111_start:
+    eq $I10, 1, rx111_restart
+    rx111_cur."!cursor_debug"("START ", "quote_atom")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan115_done
-    goto rxscan115_scan
-  rxscan115_loop:
-    ($P10) = rx112_cur."from"()
+    ne $I10, -1, rxscan114_done
+    goto rxscan114_scan
+  rxscan114_loop:
+    ($P10) = rx111_cur."from"()
     inc $P10
-    set rx112_pos, $P10
-    ge rx112_pos, rx112_eos, rxscan115_done
-  rxscan115_scan:
-    set_addr $I10, rxscan115_loop
-    rx112_cur."!mark_push"(0, rx112_pos, $I10)
-  rxscan115_done:
+    set rx111_pos, $P10
+    ge rx111_pos, rx111_eos, rxscan114_done
+  rxscan114_scan:
+    set_addr $I10, rxscan114_loop
+    rx111_cur."!mark_push"(0, rx111_pos, $I10)
+  rxscan114_done:
 .annotate 'line', 41
   # rx subrule "stopper" subtype=zerowidth negate=1
-    rx112_cur."!cursor_pos"(rx112_pos)
-    $P10 = rx112_cur."stopper"()
-    if $P10, rx112_fail
-  alt116_0:
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."stopper"()
+    if $P10, rx111_fail
+  alt115_0:
 .annotate 'line', 42
-    set_addr $I10, alt116_1
-    rx112_cur."!mark_push"(0, rx112_pos, $I10)
+    set_addr $I10, alt115_1
+    rx111_cur."!mark_push"(0, rx111_pos, $I10)
 .annotate 'line', 43
   # rx subrule "quote_escape" subtype=capture negate=
-    rx112_cur."!cursor_pos"(rx112_pos)
-    $P10 = rx112_cur."quote_escape"()
-    unless $P10, rx112_fail
-    rx112_cur."!mark_push"(0, -1, 0, $P10)
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."quote_escape"()
+    unless $P10, rx111_fail
+    rx111_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_escape")
-    rx112_pos = $P10."pos"()
-    goto alt116_end
-  alt116_1:
+    rx111_pos = $P10."pos"()
+    goto alt115_end
+  alt115_1:
 .annotate 'line', 44
-  # rx rxquantr117 ** 1..*
-    set_addr $I120, rxquantr117_done
-    rx112_cur."!mark_push"(0, -1, $I120)
-  rxquantr117_loop:
+  # rx rxquantr116 ** 1..*
+    set_addr $I10, rxquantr116_done
+    rx111_cur."!mark_push"(0, -1, $I10)
+  rxquantr116_loop:
   # rx subrule "stopper" subtype=zerowidth negate=1
-    rx112_cur."!cursor_pos"(rx112_pos)
-    $P10 = rx112_cur."stopper"()
-    if $P10, rx112_fail
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."stopper"()
+    if $P10, rx111_fail
   # rx subrule "quote_escape" subtype=zerowidth negate=1
-    rx112_cur."!cursor_pos"(rx112_pos)
-    $P10 = rx112_cur."quote_escape"()
-    if $P10, rx112_fail
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."quote_escape"()
+    if $P10, rx111_fail
   # rx charclass .
-    ge rx112_pos, rx112_eos, rx112_fail
-    inc rx112_pos
-    (rx112_rep) = rx112_cur."!mark_commit"($I120)
-    rx112_cur."!mark_push"(rx112_rep, rx112_pos, $I120)
-    goto rxquantr117_loop
-  rxquantr117_done:
-  alt116_end:
+    ge rx111_pos, rx111_eos, rx111_fail
+    inc rx111_pos
+    set_addr $I10, rxquantr116_done
+    (rx111_rep) = rx111_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr116_done
+    rx111_cur."!mark_push"(rx111_rep, rx111_pos, $I10)
+    goto rxquantr116_loop
+  rxquantr116_done:
+  alt115_end:
 .annotate 'line', 40
   # rx pass
-    rx112_cur."!cursor_pass"(rx112_pos, "quote_atom")
-    rx112_cur."!cursor_debug"("PASS  ", "quote_atom", " at pos=", rx112_pos)
-    .return (rx112_cur)
-  rx112_fail:
-.annotate 'line', 33
-    (rx112_rep, rx112_pos, $I10, $P10) = rx112_cur."!mark_fail"(0)
-    lt rx112_pos, -1, rx112_done
-    eq rx112_pos, -1, rx112_fail
+    rx111_cur."!cursor_pass"(rx111_pos, "quote_atom")
+    rx111_cur."!cursor_debug"("PASS  ", "quote_atom", " at pos=", rx111_pos)
+    .return (rx111_cur)
+  rx111_restart:
+.annotate 'line', 33
+    rx111_cur."!cursor_debug"("NEXT ", "quote_atom")
+  rx111_fail:
+    (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0)
+    lt rx111_pos, -1, rx111_done
+    eq rx111_pos, -1, rx111_fail
     jump $I10
-  rx112_done:
-    rx112_cur."!cursor_fail"()
-    rx112_cur."!cursor_debug"("FAIL  ", "quote_atom")
-    .return (rx112_cur)
+  rx111_done:
+    rx111_cur."!cursor_fail"()
+    rx111_cur."!cursor_debug"("FAIL  ", "quote_atom")
+    .return (rx111_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1278500527.62277") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1279564387.65485") :method
 .annotate 'line', 33
-    new $P114, "ResizablePMCArray"
-    push $P114, ""
-    .return ($P114)
+    new $P113, "ResizablePMCArray"
+    push $P113, ""
+    .return ($P113)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "decint"  :subid("45_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx122_tgt
-    .local int rx122_pos
-    .local int rx122_off
-    .local int rx122_eos
-    .local int rx122_rep
-    .local pmc rx122_cur
-    (rx122_cur, rx122_pos, rx122_tgt) = self."!cursor_start"()
-    rx122_cur."!cursor_debug"("START ", "decint")
-    .lex unicode:"$\x{a2}", rx122_cur
+    .local string rx120_tgt
+    .local int rx120_pos
+    .local int rx120_off
+    .local int rx120_eos
+    .local int rx120_rep
+    .local pmc rx120_cur
+    (rx120_cur, rx120_pos, rx120_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx120_cur
     .local pmc match
     .lex "$/", match
-    length rx122_eos, rx122_tgt
-    gt rx122_pos, rx122_eos, rx122_done
-    set rx122_off, 0
-    lt rx122_pos, 2, rx122_start
-    sub rx122_off, rx122_pos, 1
-    substr rx122_tgt, rx122_tgt, rx122_off
-  rx122_start:
+    length rx120_eos, rx120_tgt
+    gt rx120_pos, rx120_eos, rx120_done
+    set rx120_off, 0
+    lt rx120_pos, 2, rx120_start
+    sub rx120_off, rx120_pos, 1
+    substr rx120_tgt, rx120_tgt, rx120_off
+  rx120_start:
+    eq $I10, 1, rx120_restart
+    rx120_cur."!cursor_debug"("START ", "decint")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan125_done
-    goto rxscan125_scan
-  rxscan125_loop:
-    ($P10) = rx122_cur."from"()
+    ne $I10, -1, rxscan123_done
+    goto rxscan123_scan
+  rxscan123_loop:
+    ($P10) = rx120_cur."from"()
     inc $P10
-    set rx122_pos, $P10
-    ge rx122_pos, rx122_eos, rxscan125_done
-  rxscan125_scan:
-    set_addr $I10, rxscan125_loop
-    rx122_cur."!mark_push"(0, rx122_pos, $I10)
-  rxscan125_done:
+    set rx120_pos, $P10
+    ge rx120_pos, rx120_eos, rxscan123_done
+  rxscan123_scan:
+    set_addr $I10, rxscan123_loop
+    rx120_cur."!mark_push"(0, rx120_pos, $I10)
+  rxscan123_done:
 .annotate 'line', 48
-  # rx rxquantr126 ** 1..*
-    set_addr $I127, rxquantr126_done
-    rx122_cur."!mark_push"(0, -1, $I127)
-  rxquantr126_loop:
+  # rx rxquantr124 ** 1..*
+    set_addr $I10, rxquantr124_done
+    rx120_cur."!mark_push"(0, -1, $I10)
+  rxquantr124_loop:
   # rx charclass_q d r 1..-1
-    sub $I10, rx122_pos, rx122_off
-    find_not_cclass $I11, 8, rx122_tgt, $I10, rx122_eos
+    sub $I10, rx120_pos, rx120_off
+    find_not_cclass $I11, 8, rx120_tgt, $I10, rx120_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx122_fail
-    add rx122_pos, rx122_off, $I11
-    (rx122_rep) = rx122_cur."!mark_commit"($I127)
-    rx122_cur."!mark_push"(rx122_rep, rx122_pos, $I127)
+    lt $I11, $I12, rx120_fail
+    add rx120_pos, rx120_off, $I11
+    set_addr $I10, rxquantr124_done
+    (rx120_rep) = rx120_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr124_done
+    rx120_cur."!mark_push"(rx120_rep, rx120_pos, $I10)
   # rx literal  "_"
-    add $I11, rx122_pos, 1
-    gt $I11, rx122_eos, rx122_fail
-    sub $I11, rx122_pos, rx122_off
-    substr $S10, rx122_tgt, $I11, 1
-    ne $S10, "_", rx122_fail
-    add rx122_pos, 1
-    goto rxquantr126_loop
-  rxquantr126_done:
+    add $I11, rx120_pos, 1
+    gt $I11, rx120_eos, rx120_fail
+    sub $I11, rx120_pos, rx120_off
+    substr $S10, rx120_tgt, $I11, 1
+    ne $S10, "_", rx120_fail
+    add rx120_pos, 1
+    goto rxquantr124_loop
+  rxquantr124_done:
   # rx pass
-    rx122_cur."!cursor_pass"(rx122_pos, "decint")
-    rx122_cur."!cursor_debug"("PASS  ", "decint", " at pos=", rx122_pos)
-    .return (rx122_cur)
-  rx122_fail:
-.annotate 'line', 33
-    (rx122_rep, rx122_pos, $I10, $P10) = rx122_cur."!mark_fail"(0)
-    lt rx122_pos, -1, rx122_done
-    eq rx122_pos, -1, rx122_fail
+    rx120_cur."!cursor_pass"(rx120_pos, "decint")
+    rx120_cur."!cursor_debug"("PASS  ", "decint", " at pos=", rx120_pos)
+    .return (rx120_cur)
+  rx120_restart:
+.annotate 'line', 33
+    rx120_cur."!cursor_debug"("NEXT ", "decint")
+  rx120_fail:
+    (rx120_rep, rx120_pos, $I10, $P10) = rx120_cur."!mark_fail"(0)
+    lt rx120_pos, -1, rx120_done
+    eq rx120_pos, -1, rx120_fail
     jump $I10
-  rx122_done:
-    rx122_cur."!cursor_fail"()
-    rx122_cur."!cursor_debug"("FAIL  ", "decint")
-    .return (rx122_cur)
+  rx120_done:
+    rx120_cur."!cursor_fail"()
+    rx120_cur."!cursor_debug"("FAIL  ", "decint")
+    .return (rx120_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1278500527.62277") :method
+.sub "!PREFIX__decint"  :subid("46_1279564387.65485") :method
 .annotate 'line', 33
-    new $P124, "ResizablePMCArray"
-    push $P124, ""
-    .return ($P124)
+    new $P122, "ResizablePMCArray"
+    push $P122, ""
+    .return ($P122)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "decints"  :subid("47_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx129_tgt
-    .local int rx129_pos
-    .local int rx129_off
-    .local int rx129_eos
-    .local int rx129_rep
-    .local pmc rx129_cur
-    (rx129_cur, rx129_pos, rx129_tgt) = self."!cursor_start"()
-    rx129_cur."!cursor_debug"("START ", "decints")
-    rx129_cur."!cursor_caparray"("decint")
-    .lex unicode:"$\x{a2}", rx129_cur
+    .local string rx126_tgt
+    .local int rx126_pos
+    .local int rx126_off
+    .local int rx126_eos
+    .local int rx126_rep
+    .local pmc rx126_cur
+    (rx126_cur, rx126_pos, rx126_tgt, $I10) = self."!cursor_start"()
+    rx126_cur."!cursor_caparray"("decint")
+    .lex unicode:"$\x{a2}", rx126_cur
     .local pmc match
     .lex "$/", match
-    length rx129_eos, rx129_tgt
-    gt rx129_pos, rx129_eos, rx129_done
-    set rx129_off, 0
-    lt rx129_pos, 2, rx129_start
-    sub rx129_off, rx129_pos, 1
-    substr rx129_tgt, rx129_tgt, rx129_off
-  rx129_start:
+    length rx126_eos, rx126_tgt
+    gt rx126_pos, rx126_eos, rx126_done
+    set rx126_off, 0
+    lt rx126_pos, 2, rx126_start
+    sub rx126_off, rx126_pos, 1
+    substr rx126_tgt, rx126_tgt, rx126_off
+  rx126_start:
+    eq $I10, 1, rx126_restart
+    rx126_cur."!cursor_debug"("START ", "decints")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan132_done
-    goto rxscan132_scan
-  rxscan132_loop:
-    ($P10) = rx129_cur."from"()
+    ne $I10, -1, rxscan129_done
+    goto rxscan129_scan
+  rxscan129_loop:
+    ($P10) = rx126_cur."from"()
     inc $P10
-    set rx129_pos, $P10
-    ge rx129_pos, rx129_eos, rxscan132_done
-  rxscan132_scan:
-    set_addr $I10, rxscan132_loop
-    rx129_cur."!mark_push"(0, rx129_pos, $I10)
-  rxscan132_done:
+    set rx126_pos, $P10
+    ge rx126_pos, rx126_eos, rxscan129_done
+  rxscan129_scan:
+    set_addr $I10, rxscan129_loop
+    rx126_cur."!mark_push"(0, rx126_pos, $I10)
+  rxscan129_done:
 .annotate 'line', 49
-  # rx rxquantr133 ** 1..*
-    set_addr $I134, rxquantr133_done
-    rx129_cur."!mark_push"(0, -1, $I134)
-  rxquantr133_loop:
+  # rx rxquantr130 ** 1..*
+    set_addr $I10, rxquantr130_done
+    rx126_cur."!mark_push"(0, -1, $I10)
+  rxquantr130_loop:
   # rx subrule "ws" subtype=method negate=
-    rx129_cur."!cursor_pos"(rx129_pos)
-    $P10 = rx129_cur."ws"()
-    unless $P10, rx129_fail
-    rx129_pos = $P10."pos"()
+    rx126_cur."!cursor_pos"(rx126_pos)
+    $P10 = rx126_cur."ws"()
+    unless $P10, rx126_fail
+    rx126_pos = $P10."pos"()
   # rx subrule "decint" subtype=capture negate=
-    rx129_cur."!cursor_pos"(rx129_pos)
-    $P10 = rx129_cur."decint"()
-    unless $P10, rx129_fail
-    rx129_cur."!mark_push"(0, -1, 0, $P10)
+    rx126_cur."!cursor_pos"(rx126_pos)
+    $P10 = rx126_cur."decint"()
+    unless $P10, rx126_fail
+    rx126_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("decint")
-    rx129_pos = $P10."pos"()
+    rx126_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx129_cur."!cursor_pos"(rx129_pos)
-    $P10 = rx129_cur."ws"()
-    unless $P10, rx129_fail
-    rx129_pos = $P10."pos"()
-    (rx129_rep) = rx129_cur."!mark_commit"($I134)
-    rx129_cur."!mark_push"(rx129_rep, rx129_pos, $I134)
+    rx126_cur."!cursor_pos"(rx126_pos)
+    $P10 = rx126_cur."ws"()
+    unless $P10, rx126_fail
+    rx126_pos = $P10."pos"()
+    set_addr $I10, rxquantr130_done
+    (rx126_rep) = rx126_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr130_done
+    rx126_cur."!mark_push"(rx126_rep, rx126_pos, $I10)
   # rx literal  ","
-    add $I11, rx129_pos, 1
-    gt $I11, rx129_eos, rx129_fail
-    sub $I11, rx129_pos, rx129_off
-    substr $S10, rx129_tgt, $I11, 1
-    ne $S10, ",", rx129_fail
-    add rx129_pos, 1
-    goto rxquantr133_loop
-  rxquantr133_done:
+    add $I11, rx126_pos, 1
+    gt $I11, rx126_eos, rx126_fail
+    sub $I11, rx126_pos, rx126_off
+    substr $S10, rx126_tgt, $I11, 1
+    ne $S10, ",", rx126_fail
+    add rx126_pos, 1
+    goto rxquantr130_loop
+  rxquantr130_done:
   # rx pass
-    rx129_cur."!cursor_pass"(rx129_pos, "decints")
-    rx129_cur."!cursor_debug"("PASS  ", "decints", " at pos=", rx129_pos)
-    .return (rx129_cur)
-  rx129_fail:
-.annotate 'line', 33
-    (rx129_rep, rx129_pos, $I10, $P10) = rx129_cur."!mark_fail"(0)
-    lt rx129_pos, -1, rx129_done
-    eq rx129_pos, -1, rx129_fail
+    rx126_cur."!cursor_pass"(rx126_pos, "decints")
+    rx126_cur."!cursor_debug"("PASS  ", "decints", " at pos=", rx126_pos)
+    .return (rx126_cur)
+  rx126_restart:
+.annotate 'line', 33
+    rx126_cur."!cursor_debug"("NEXT ", "decints")
+  rx126_fail:
+    (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
+    lt rx126_pos, -1, rx126_done
+    eq rx126_pos, -1, rx126_fail
     jump $I10
-  rx129_done:
-    rx129_cur."!cursor_fail"()
-    rx129_cur."!cursor_debug"("FAIL  ", "decints")
-    .return (rx129_cur)
+  rx126_done:
+    rx126_cur."!cursor_fail"()
+    rx126_cur."!cursor_debug"("FAIL  ", "decints")
+    .return (rx126_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1278500527.62277") :method
+.sub "!PREFIX__decints"  :subid("48_1279564387.65485") :method
 .annotate 'line', 33
-    new $P131, "ResizablePMCArray"
-    push $P131, ""
-    .return ($P131)
+    new $P128, "ResizablePMCArray"
+    push $P128, ""
+    .return ($P128)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "hexint"  :subid("49_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx136_tgt
-    .local int rx136_pos
-    .local int rx136_off
-    .local int rx136_eos
-    .local int rx136_rep
-    .local pmc rx136_cur
-    (rx136_cur, rx136_pos, rx136_tgt) = self."!cursor_start"()
-    rx136_cur."!cursor_debug"("START ", "hexint")
-    .lex unicode:"$\x{a2}", rx136_cur
+    .local string rx132_tgt
+    .local int rx132_pos
+    .local int rx132_off
+    .local int rx132_eos
+    .local int rx132_rep
+    .local pmc rx132_cur
+    (rx132_cur, rx132_pos, rx132_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx132_cur
     .local pmc match
     .lex "$/", match
-    length rx136_eos, rx136_tgt
-    gt rx136_pos, rx136_eos, rx136_done
-    set rx136_off, 0
-    lt rx136_pos, 2, rx136_start
-    sub rx136_off, rx136_pos, 1
-    substr rx136_tgt, rx136_tgt, rx136_off
-  rx136_start:
+    length rx132_eos, rx132_tgt
+    gt rx132_pos, rx132_eos, rx132_done
+    set rx132_off, 0
+    lt rx132_pos, 2, rx132_start
+    sub rx132_off, rx132_pos, 1
+    substr rx132_tgt, rx132_tgt, rx132_off
+  rx132_start:
+    eq $I10, 1, rx132_restart
+    rx132_cur."!cursor_debug"("START ", "hexint")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan139_done
-    goto rxscan139_scan
-  rxscan139_loop:
-    ($P10) = rx136_cur."from"()
+    ne $I10, -1, rxscan135_done
+    goto rxscan135_scan
+  rxscan135_loop:
+    ($P10) = rx132_cur."from"()
     inc $P10
-    set rx136_pos, $P10
-    ge rx136_pos, rx136_eos, rxscan139_done
-  rxscan139_scan:
-    set_addr $I10, rxscan139_loop
-    rx136_cur."!mark_push"(0, rx136_pos, $I10)
-  rxscan139_done:
+    set rx132_pos, $P10
+    ge rx132_pos, rx132_eos, rxscan135_done
+  rxscan135_scan:
+    set_addr $I10, rxscan135_loop
+    rx132_cur."!mark_push"(0, rx132_pos, $I10)
+  rxscan135_done:
 .annotate 'line', 51
-  # rx rxquantr140 ** 1..*
-    set_addr $I143, rxquantr140_done
-    rx136_cur."!mark_push"(0, -1, $I143)
-  rxquantr140_loop:
-  # rx rxquantr141 ** 1..*
-    set_addr $I142, rxquantr141_done
-    rx136_cur."!mark_push"(0, -1, $I142)
-  rxquantr141_loop:
+  # rx rxquantr136 ** 1..*
+    set_addr $I10, rxquantr136_done
+    rx132_cur."!mark_push"(0, -1, $I10)
+  rxquantr136_loop:
+  # rx rxquantr137 ** 1..*
+    set_addr $I10, rxquantr137_done
+    rx132_cur."!mark_push"(0, -1, $I10)
+  rxquantr137_loop:
   # rx enumcharlist negate=0 
-    ge rx136_pos, rx136_eos, rx136_fail
-    sub $I10, rx136_pos, rx136_off
-    substr $S10, rx136_tgt, $I10, 1
+    ge rx132_pos, rx132_eos, rx132_fail
+    sub $I10, rx132_pos, rx132_off
+    substr $S10, rx132_tgt, $I10, 1
     index $I11, "0123456789abcdefABCDEF", $S10
-    lt $I11, 0, rx136_fail
-    inc rx136_pos
-    (rx136_rep) = rx136_cur."!mark_commit"($I142)
-    rx136_cur."!mark_push"(rx136_rep, rx136_pos, $I142)
-    goto rxquantr141_loop
-  rxquantr141_done:
-    (rx136_rep) = rx136_cur."!mark_commit"($I143)
-    rx136_cur."!mark_push"(rx136_rep, rx136_pos, $I143)
+    lt $I11, 0, rx132_fail
+    inc rx132_pos
+    set_addr $I10, rxquantr137_done
+    (rx132_rep) = rx132_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr137_done
+    rx132_cur."!mark_push"(rx132_rep, rx132_pos, $I10)
+    goto rxquantr137_loop
+  rxquantr137_done:
+    set_addr $I10, rxquantr136_done
+    (rx132_rep) = rx132_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr136_done
+    rx132_cur."!mark_push"(rx132_rep, rx132_pos, $I10)
   # rx literal  "_"
-    add $I11, rx136_pos, 1
-    gt $I11, rx136_eos, rx136_fail
-    sub $I11, rx136_pos, rx136_off
-    substr $S10, rx136_tgt, $I11, 1
-    ne $S10, "_", rx136_fail
-    add rx136_pos, 1
-    goto rxquantr140_loop
-  rxquantr140_done:
+    add $I11, rx132_pos, 1
+    gt $I11, rx132_eos, rx132_fail
+    sub $I11, rx132_pos, rx132_off
+    substr $S10, rx132_tgt, $I11, 1
+    ne $S10, "_", rx132_fail
+    add rx132_pos, 1
+    goto rxquantr136_loop
+  rxquantr136_done:
+  # rx pass
+    rx132_cur."!cursor_pass"(rx132_pos, "hexint")
+    rx132_cur."!cursor_debug"("PASS  ", "hexint", " at pos=", rx132_pos)
+    .return (rx132_cur)
+  rx132_restart:
+.annotate 'line', 33
+    rx132_cur."!cursor_debug"("NEXT ", "hexint")
+  rx132_fail:
+    (rx132_rep, rx132_pos, $I10, $P10) = rx132_cur."!mark_fail"(0)
+    lt rx132_pos, -1, rx132_done
+    eq rx132_pos, -1, rx132_fail
+    jump $I10
+  rx132_done:
+    rx132_cur."!cursor_fail"()
+    rx132_cur."!cursor_debug"("FAIL  ", "hexint")
+    .return (rx132_cur)
+    .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__hexint"  :subid("50_1279564387.65485") :method
+.annotate 'line', 33
+    new $P134, "ResizablePMCArray"
+    push $P134, ""
+    .return ($P134)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "hexints"  :subid("51_1279564387.65485") :method :outer("11_1279564387.65485")
+.annotate 'line', 33
+    .local string rx139_tgt
+    .local int rx139_pos
+    .local int rx139_off
+    .local int rx139_eos
+    .local int rx139_rep
+    .local pmc rx139_cur
+    (rx139_cur, rx139_pos, rx139_tgt, $I10) = self."!cursor_start"()
+    rx139_cur."!cursor_caparray"("hexint")
+    .lex unicode:"$\x{a2}", rx139_cur
+    .local pmc match
+    .lex "$/", match
+    length rx139_eos, rx139_tgt
+    gt rx139_pos, rx139_eos, rx139_done
+    set rx139_off, 0
+    lt rx139_pos, 2, rx139_start
+    sub rx139_off, rx139_pos, 1
+    substr rx139_tgt, rx139_tgt, rx139_off
+  rx139_start:
+    eq $I10, 1, rx139_restart
+    rx139_cur."!cursor_debug"("START ", "hexints")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan142_done
+    goto rxscan142_scan
+  rxscan142_loop:
+    ($P10) = rx139_cur."from"()
+    inc $P10
+    set rx139_pos, $P10
+    ge rx139_pos, rx139_eos, rxscan142_done
+  rxscan142_scan:
+    set_addr $I10, rxscan142_loop
+    rx139_cur."!mark_push"(0, rx139_pos, $I10)
+  rxscan142_done:
+.annotate 'line', 52
+  # rx rxquantr143 ** 1..*
+    set_addr $I10, rxquantr143_done
+    rx139_cur."!mark_push"(0, -1, $I10)
+  rxquantr143_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx139_cur."!cursor_pos"(rx139_pos)
+    $P10 = rx139_cur."ws"()
+    unless $P10, rx139_fail
+    rx139_pos = $P10."pos"()
+  # rx subrule "hexint" subtype=capture negate=
+    rx139_cur."!cursor_pos"(rx139_pos)
+    $P10 = rx139_cur."hexint"()
+    unless $P10, rx139_fail
+    rx139_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("hexint")
+    rx139_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx139_cur."!cursor_pos"(rx139_pos)
+    $P10 = rx139_cur."ws"()
+    unless $P10, rx139_fail
+    rx139_pos = $P10."pos"()
+    set_addr $I10, rxquantr143_done
+    (rx139_rep) = rx139_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr143_done
+    rx139_cur."!mark_push"(rx139_rep, rx139_pos, $I10)
+  # rx literal  ","
+    add $I11, rx139_pos, 1
+    gt $I11, rx139_eos, rx139_fail
+    sub $I11, rx139_pos, rx139_off
+    substr $S10, rx139_tgt, $I11, 1
+    ne $S10, ",", rx139_fail
+    add rx139_pos, 1
+    goto rxquantr143_loop
+  rxquantr143_done:
   # rx pass
-    rx136_cur."!cursor_pass"(rx136_pos, "hexint")
-    rx136_cur."!cursor_debug"("PASS  ", "hexint", " at pos=", rx136_pos)
-    .return (rx136_cur)
-  rx136_fail:
-.annotate 'line', 33
-    (rx136_rep, rx136_pos, $I10, $P10) = rx136_cur."!mark_fail"(0)
-    lt rx136_pos, -1, rx136_done
-    eq rx136_pos, -1, rx136_fail
+    rx139_cur."!cursor_pass"(rx139_pos, "hexints")
+    rx139_cur."!cursor_debug"("PASS  ", "hexints", " at pos=", rx139_pos)
+    .return (rx139_cur)
+  rx139_restart:
+.annotate 'line', 33
+    rx139_cur."!cursor_debug"("NEXT ", "hexints")
+  rx139_fail:
+    (rx139_rep, rx139_pos, $I10, $P10) = rx139_cur."!mark_fail"(0)
+    lt rx139_pos, -1, rx139_done
+    eq rx139_pos, -1, rx139_fail
     jump $I10
-  rx136_done:
-    rx136_cur."!cursor_fail"()
-    rx136_cur."!cursor_debug"("FAIL  ", "hexint")
-    .return (rx136_cur)
+  rx139_done:
+    rx139_cur."!cursor_fail"()
+    rx139_cur."!cursor_debug"("FAIL  ", "hexints")
+    .return (rx139_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1278500527.62277") :method
+.sub "!PREFIX__hexints"  :subid("52_1279564387.65485") :method
 .annotate 'line', 33
-    new $P138, "ResizablePMCArray"
-    push $P138, ""
-    .return ($P138)
+    new $P141, "ResizablePMCArray"
+    push $P141, ""
+    .return ($P141)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "octint"  :subid("53_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2249,9 +2423,7 @@
     .local int rx145_eos
     .local int rx145_rep
     .local pmc rx145_cur
-    (rx145_cur, rx145_pos, rx145_tgt) = self."!cursor_start"()
-    rx145_cur."!cursor_debug"("START ", "hexints")
-    rx145_cur."!cursor_caparray"("hexint")
+    (rx145_cur, rx145_pos, rx145_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx145_cur
     .local pmc match
     .lex "$/", match
@@ -2262,6 +2434,8 @@
     sub rx145_off, rx145_pos, 1
     substr rx145_tgt, rx145_tgt, rx145_off
   rx145_start:
+    eq $I10, 1, rx145_restart
+    rx145_cur."!cursor_debug"("START ", "octint")
     $I10 = self.'from'()
     ne $I10, -1, rxscan148_done
     goto rxscan148_scan
@@ -2274,59 +2448,63 @@
     set_addr $I10, rxscan148_loop
     rx145_cur."!mark_push"(0, rx145_pos, $I10)
   rxscan148_done:
-.annotate 'line', 52
+.annotate 'line', 54
   # rx rxquantr149 ** 1..*
-    set_addr $I150, rxquantr149_done
-    rx145_cur."!mark_push"(0, -1, $I150)
+    set_addr $I10, rxquantr149_done
+    rx145_cur."!mark_push"(0, -1, $I10)
   rxquantr149_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx145_cur."!cursor_pos"(rx145_pos)
-    $P10 = rx145_cur."ws"()
-    unless $P10, rx145_fail
-    rx145_pos = $P10."pos"()
-  # rx subrule "hexint" subtype=capture negate=
-    rx145_cur."!cursor_pos"(rx145_pos)
-    $P10 = rx145_cur."hexint"()
-    unless $P10, rx145_fail
-    rx145_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("hexint")
-    rx145_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx145_cur."!cursor_pos"(rx145_pos)
-    $P10 = rx145_cur."ws"()
-    unless $P10, rx145_fail
-    rx145_pos = $P10."pos"()
-    (rx145_rep) = rx145_cur."!mark_commit"($I150)
-    rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I150)
-  # rx literal  ","
+  # rx rxquantr150 ** 1..*
+    set_addr $I10, rxquantr150_done
+    rx145_cur."!mark_push"(0, -1, $I10)
+  rxquantr150_loop:
+  # rx enumcharlist negate=0 
+    ge rx145_pos, rx145_eos, rx145_fail
+    sub $I10, rx145_pos, rx145_off
+    substr $S10, rx145_tgt, $I10, 1
+    index $I11, "01234567", $S10
+    lt $I11, 0, rx145_fail
+    inc rx145_pos
+    set_addr $I10, rxquantr150_done
+    (rx145_rep) = rx145_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr150_done
+    rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I10)
+    goto rxquantr150_loop
+  rxquantr150_done:
+    set_addr $I10, rxquantr149_done
+    (rx145_rep) = rx145_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr149_done
+    rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I10)
+  # rx literal  "_"
     add $I11, rx145_pos, 1
     gt $I11, rx145_eos, rx145_fail
     sub $I11, rx145_pos, rx145_off
     substr $S10, rx145_tgt, $I11, 1
-    ne $S10, ",", rx145_fail
+    ne $S10, "_", rx145_fail
     add rx145_pos, 1
     goto rxquantr149_loop
   rxquantr149_done:
   # rx pass
-    rx145_cur."!cursor_pass"(rx145_pos, "hexints")
-    rx145_cur."!cursor_debug"("PASS  ", "hexints", " at pos=", rx145_pos)
+    rx145_cur."!cursor_pass"(rx145_pos, "octint")
+    rx145_cur."!cursor_debug"("PASS  ", "octint", " at pos=", rx145_pos)
     .return (rx145_cur)
-  rx145_fail:
+  rx145_restart:
 .annotate 'line', 33
+    rx145_cur."!cursor_debug"("NEXT ", "octint")
+  rx145_fail:
     (rx145_rep, rx145_pos, $I10, $P10) = rx145_cur."!mark_fail"(0)
     lt rx145_pos, -1, rx145_done
     eq rx145_pos, -1, rx145_fail
     jump $I10
   rx145_done:
     rx145_cur."!cursor_fail"()
-    rx145_cur."!cursor_debug"("FAIL  ", "hexints")
+    rx145_cur."!cursor_debug"("FAIL  ", "octint")
     .return (rx145_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1278500527.62277") :method
+.sub "!PREFIX__octint"  :subid("54_1279564387.65485") :method
 .annotate 'line', 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2335,7 +2513,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "octints"  :subid("55_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2343,8 +2521,8 @@
     .local int rx152_eos
     .local int rx152_rep
     .local pmc rx152_cur
-    (rx152_cur, rx152_pos, rx152_tgt) = self."!cursor_start"()
-    rx152_cur."!cursor_debug"("START ", "octint")
+    (rx152_cur, rx152_pos, rx152_tgt, $I10) = self."!cursor_start"()
+    rx152_cur."!cursor_caparray"("octint")
     .lex unicode:"$\x{a2}", rx152_cur
     .local pmc match
     .lex "$/", match
@@ -2355,6 +2533,8 @@
     sub rx152_off, rx152_pos, 1
     substr rx152_tgt, rx152_tgt, rx152_off
   rx152_start:
+    eq $I10, 1, rx152_restart
+    rx152_cur."!cursor_debug"("START ", "octints")
     $I10 = self.'from'()
     ne $I10, -1, rxscan155_done
     goto rxscan155_scan
@@ -2367,57 +2547,63 @@
     set_addr $I10, rxscan155_loop
     rx152_cur."!mark_push"(0, rx152_pos, $I10)
   rxscan155_done:
-.annotate 'line', 54
+.annotate 'line', 55
   # rx rxquantr156 ** 1..*
-    set_addr $I159, rxquantr156_done
-    rx152_cur."!mark_push"(0, -1, $I159)
+    set_addr $I10, rxquantr156_done
+    rx152_cur."!mark_push"(0, -1, $I10)
   rxquantr156_loop:
-  # rx rxquantr157 ** 1..*
-    set_addr $I158, rxquantr157_done
-    rx152_cur."!mark_push"(0, -1, $I158)
-  rxquantr157_loop:
-  # rx enumcharlist negate=0 
-    ge rx152_pos, rx152_eos, rx152_fail
-    sub $I10, rx152_pos, rx152_off
-    substr $S10, rx152_tgt, $I10, 1
-    index $I11, "01234567", $S10
-    lt $I11, 0, rx152_fail
-    inc rx152_pos
-    (rx152_rep) = rx152_cur."!mark_commit"($I158)
-    rx152_cur."!mark_push"(rx152_rep, rx152_pos, $I158)
-    goto rxquantr157_loop
-  rxquantr157_done:
-    (rx152_rep) = rx152_cur."!mark_commit"($I159)
-    rx152_cur."!mark_push"(rx152_rep, rx152_pos, $I159)
-  # rx literal  "_"
+  # rx subrule "ws" subtype=method negate=
+    rx152_cur."!cursor_pos"(rx152_pos)
+    $P10 = rx152_cur."ws"()
+    unless $P10, rx152_fail
+    rx152_pos = $P10."pos"()
+  # rx subrule "octint" subtype=capture negate=
+    rx152_cur."!cursor_pos"(rx152_pos)
+    $P10 = rx152_cur."octint"()
+    unless $P10, rx152_fail
+    rx152_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("octint")
+    rx152_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx152_cur."!cursor_pos"(rx152_pos)
+    $P10 = rx152_cur."ws"()
+    unless $P10, rx152_fail
+    rx152_pos = $P10."pos"()
+    set_addr $I10, rxquantr156_done
+    (rx152_rep) = rx152_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr156_done
+    rx152_cur."!mark_push"(rx152_rep, rx152_pos, $I10)
+  # rx literal  ","
     add $I11, rx152_pos, 1
     gt $I11, rx152_eos, rx152_fail
     sub $I11, rx152_pos, rx152_off
     substr $S10, rx152_tgt, $I11, 1
-    ne $S10, "_", rx152_fail
+    ne $S10, ",", rx152_fail
     add rx152_pos, 1
     goto rxquantr156_loop
   rxquantr156_done:
   # rx pass
-    rx152_cur."!cursor_pass"(rx152_pos, "octint")
-    rx152_cur."!cursor_debug"("PASS  ", "octint", " at pos=", rx152_pos)
+    rx152_cur."!cursor_pass"(rx152_pos, "octints")
+    rx152_cur."!cursor_debug"("PASS  ", "octints", " at pos=", rx152_pos)
     .return (rx152_cur)
-  rx152_fail:
+  rx152_restart:
 .annotate 'line', 33
+    rx152_cur."!cursor_debug"("NEXT ", "octints")
+  rx152_fail:
     (rx152_rep, rx152_pos, $I10, $P10) = rx152_cur."!mark_fail"(0)
     lt rx152_pos, -1, rx152_done
     eq rx152_pos, -1, rx152_fail
     jump $I10
   rx152_done:
     rx152_cur."!cursor_fail"()
-    rx152_cur."!cursor_debug"("FAIL  ", "octint")
+    rx152_cur."!cursor_debug"("FAIL  ", "octints")
     .return (rx152_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1278500527.62277") :method
+.sub "!PREFIX__octints"  :subid("56_1279564387.65485") :method
 .annotate 'line', 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2426,2477 +2612,2477 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "binint"  :subid("57_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx161_tgt
-    .local int rx161_pos
-    .local int rx161_off
-    .local int rx161_eos
-    .local int rx161_rep
-    .local pmc rx161_cur
-    (rx161_cur, rx161_pos, rx161_tgt) = self."!cursor_start"()
-    rx161_cur."!cursor_debug"("START ", "octints")
-    rx161_cur."!cursor_caparray"("octint")
-    .lex unicode:"$\x{a2}", rx161_cur
+    .local string rx158_tgt
+    .local int rx158_pos
+    .local int rx158_off
+    .local int rx158_eos
+    .local int rx158_rep
+    .local pmc rx158_cur
+    (rx158_cur, rx158_pos, rx158_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx158_cur
     .local pmc match
     .lex "$/", match
-    length rx161_eos, rx161_tgt
-    gt rx161_pos, rx161_eos, rx161_done
-    set rx161_off, 0
-    lt rx161_pos, 2, rx161_start
-    sub rx161_off, rx161_pos, 1
-    substr rx161_tgt, rx161_tgt, rx161_off
-  rx161_start:
+    length rx158_eos, rx158_tgt
+    gt rx158_pos, rx158_eos, rx158_done
+    set rx158_off, 0
+    lt rx158_pos, 2, rx158_start
+    sub rx158_off, rx158_pos, 1
+    substr rx158_tgt, rx158_tgt, rx158_off
+  rx158_start:
+    eq $I10, 1, rx158_restart
+    rx158_cur."!cursor_debug"("START ", "binint")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan164_done
-    goto rxscan164_scan
-  rxscan164_loop:
-    ($P10) = rx161_cur."from"()
+    ne $I10, -1, rxscan161_done
+    goto rxscan161_scan
+  rxscan161_loop:
+    ($P10) = rx158_cur."from"()
     inc $P10
-    set rx161_pos, $P10
-    ge rx161_pos, rx161_eos, rxscan164_done
-  rxscan164_scan:
-    set_addr $I10, rxscan164_loop
-    rx161_cur."!mark_push"(0, rx161_pos, $I10)
-  rxscan164_done:
-.annotate 'line', 55
-  # rx rxquantr165 ** 1..*
-    set_addr $I166, rxquantr165_done
-    rx161_cur."!mark_push"(0, -1, $I166)
-  rxquantr165_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx161_cur."!cursor_pos"(rx161_pos)
-    $P10 = rx161_cur."ws"()
-    unless $P10, rx161_fail
-    rx161_pos = $P10."pos"()
-  # rx subrule "octint" subtype=capture negate=
-    rx161_cur."!cursor_pos"(rx161_pos)
-    $P10 = rx161_cur."octint"()
-    unless $P10, rx161_fail
-    rx161_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("octint")
-    rx161_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx161_cur."!cursor_pos"(rx161_pos)
-    $P10 = rx161_cur."ws"()
-    unless $P10, rx161_fail
-    rx161_pos = $P10."pos"()
-    (rx161_rep) = rx161_cur."!mark_commit"($I166)
-    rx161_cur."!mark_push"(rx161_rep, rx161_pos, $I166)
-  # rx literal  ","
-    add $I11, rx161_pos, 1
-    gt $I11, rx161_eos, rx161_fail
-    sub $I11, rx161_pos, rx161_off
-    substr $S10, rx161_tgt, $I11, 1
-    ne $S10, ",", rx161_fail
-    add rx161_pos, 1
-    goto rxquantr165_loop
-  rxquantr165_done:
-  # rx pass
-    rx161_cur."!cursor_pass"(rx161_pos, "octints")
-    rx161_cur."!cursor_debug"("PASS  ", "octints", " at pos=", rx161_pos)
-    .return (rx161_cur)
-  rx161_fail:
-.annotate 'line', 33
-    (rx161_rep, rx161_pos, $I10, $P10) = rx161_cur."!mark_fail"(0)
-    lt rx161_pos, -1, rx161_done
-    eq rx161_pos, -1, rx161_fail
-    jump $I10
-  rx161_done:
-    rx161_cur."!cursor_fail"()
-    rx161_cur."!cursor_debug"("FAIL  ", "octints")
-    .return (rx161_cur)
-    .return ()
-.end
-
-
-.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1278500527.62277") :method
-.annotate 'line', 33
-    new $P163, "ResizablePMCArray"
-    push $P163, ""
-    .return ($P163)
-.end
-
-
-.namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1278500527.62277") :method :outer("11_1278500527.62277")
-.annotate 'line', 33
-    .local string rx168_tgt
-    .local int rx168_pos
-    .local int rx168_off
-    .local int rx168_eos
-    .local int rx168_rep
-    .local pmc rx168_cur
-    (rx168_cur, rx168_pos, rx168_tgt) = self."!cursor_start"()
-    rx168_cur."!cursor_debug"("START ", "binint")
-    .lex unicode:"$\x{a2}", rx168_cur
-    .local pmc match
-    .lex "$/", match
-    length rx168_eos, rx168_tgt
-    gt rx168_pos, rx168_eos, rx168_done
-    set rx168_off, 0
-    lt rx168_pos, 2, rx168_start
-    sub rx168_off, rx168_pos, 1
-    substr rx168_tgt, rx168_tgt, rx168_off
-  rx168_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan171_done
-    goto rxscan171_scan
-  rxscan171_loop:
-    ($P10) = rx168_cur."from"()
-    inc $P10
-    set rx168_pos, $P10
-    ge rx168_pos, rx168_eos, rxscan171_done
-  rxscan171_scan:
-    set_addr $I10, rxscan171_loop
-    rx168_cur."!mark_push"(0, rx168_pos, $I10)
-  rxscan171_done:
+    set rx158_pos, $P10
+    ge rx158_pos, rx158_eos, rxscan161_done
+  rxscan161_scan:
+    set_addr $I10, rxscan161_loop
+    rx158_cur."!mark_push"(0, rx158_pos, $I10)
+  rxscan161_done:
 .annotate 'line', 57
-  # rx rxquantr172 ** 1..*
-    set_addr $I175, rxquantr172_done
-    rx168_cur."!mark_push"(0, -1, $I175)
-  rxquantr172_loop:
-  # rx rxquantr173 ** 1..*
-    set_addr $I174, rxquantr173_done
-    rx168_cur."!mark_push"(0, -1, $I174)
-  rxquantr173_loop:
+  # rx rxquantr162 ** 1..*
+    set_addr $I10, rxquantr162_done
+    rx158_cur."!mark_push"(0, -1, $I10)
+  rxquantr162_loop:
+  # rx rxquantr163 ** 1..*
+    set_addr $I10, rxquantr163_done
+    rx158_cur."!mark_push"(0, -1, $I10)
+  rxquantr163_loop:
   # rx enumcharlist negate=0 
-    ge rx168_pos, rx168_eos, rx168_fail
-    sub $I10, rx168_pos, rx168_off
-    substr $S10, rx168_tgt, $I10, 1
+    ge rx158_pos, rx158_eos, rx158_fail
+    sub $I10, rx158_pos, rx158_off
+    substr $S10, rx158_tgt, $I10, 1
     index $I11, "01", $S10
-    lt $I11, 0, rx168_fail
-    inc rx168_pos
-    (rx168_rep) = rx168_cur."!mark_commit"($I174)
-    rx168_cur."!mark_push"(rx168_rep, rx168_pos, $I174)
-    goto rxquantr173_loop
-  rxquantr173_done:
-    (rx168_rep) = rx168_cur."!mark_commit"($I175)
-    rx168_cur."!mark_push"(rx168_rep, rx168_pos, $I175)
+    lt $I11, 0, rx158_fail
+    inc rx158_pos
+    set_addr $I10, rxquantr163_done
+    (rx158_rep) = rx158_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr163_done
+    rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I10)
+    goto rxquantr163_loop
+  rxquantr163_done:
+    set_addr $I10, rxquantr162_done
+    (rx158_rep) = rx158_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr162_done
+    rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I10)
   # rx literal  "_"
-    add $I11, rx168_pos, 1
-    gt $I11, rx168_eos, rx168_fail
-    sub $I11, rx168_pos, rx168_off
-    substr $S10, rx168_tgt, $I11, 1
-    ne $S10, "_", rx168_fail
-    add rx168_pos, 1
-    goto rxquantr172_loop
-  rxquantr172_done:
+    add $I11, rx158_pos, 1
+    gt $I11, rx158_eos, rx158_fail
+    sub $I11, rx158_pos, rx158_off
+    substr $S10, rx158_tgt, $I11, 1
+    ne $S10, "_", rx158_fail
+    add rx158_pos, 1
+    goto rxquantr162_loop
+  rxquantr162_done:
   # rx pass
-    rx168_cur."!cursor_pass"(rx168_pos, "binint")
-    rx168_cur."!cursor_debug"("PASS  ", "binint", " at pos=", rx168_pos)
-    .return (rx168_cur)
-  rx168_fail:
-.annotate 'line', 33
-    (rx168_rep, rx168_pos, $I10, $P10) = rx168_cur."!mark_fail"(0)
-    lt rx168_pos, -1, rx168_done
-    eq rx168_pos, -1, rx168_fail
+    rx158_cur."!cursor_pass"(rx158_pos, "binint")
+    rx158_cur."!cursor_debug"("PASS  ", "binint", " at pos=", rx158_pos)
+    .return (rx158_cur)
+  rx158_restart:
+.annotate 'line', 33
+    rx158_cur."!cursor_debug"("NEXT ", "binint")
+  rx158_fail:
+    (rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0)
+    lt rx158_pos, -1, rx158_done
+    eq rx158_pos, -1, rx158_fail
     jump $I10
-  rx168_done:
-    rx168_cur."!cursor_fail"()
-    rx168_cur."!cursor_debug"("FAIL  ", "binint")
-    .return (rx168_cur)
+  rx158_done:
+    rx158_cur."!cursor_fail"()
+    rx158_cur."!cursor_debug"("FAIL  ", "binint")
+    .return (rx158_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1278500527.62277") :method
+.sub "!PREFIX__binint"  :subid("58_1279564387.65485") :method
 .annotate 'line', 33
-    new $P170, "ResizablePMCArray"
-    push $P170, ""
-    .return ($P170)
+    new $P160, "ResizablePMCArray"
+    push $P160, ""
+    .return ($P160)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "binints"  :subid("59_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx177_tgt
-    .local int rx177_pos
-    .local int rx177_off
-    .local int rx177_eos
-    .local int rx177_rep
-    .local pmc rx177_cur
-    (rx177_cur, rx177_pos, rx177_tgt) = self."!cursor_start"()
-    rx177_cur."!cursor_debug"("START ", "binints")
-    rx177_cur."!cursor_caparray"("binint")
-    .lex unicode:"$\x{a2}", rx177_cur
+    .local string rx165_tgt
+    .local int rx165_pos
+    .local int rx165_off
+    .local int rx165_eos
+    .local int rx165_rep
+    .local pmc rx165_cur
+    (rx165_cur, rx165_pos, rx165_tgt, $I10) = self."!cursor_start"()
+    rx165_cur."!cursor_caparray"("binint")
+    .lex unicode:"$\x{a2}", rx165_cur
     .local pmc match
     .lex "$/", match
-    length rx177_eos, rx177_tgt
-    gt rx177_pos, rx177_eos, rx177_done
-    set rx177_off, 0
-    lt rx177_pos, 2, rx177_start
-    sub rx177_off, rx177_pos, 1
-    substr rx177_tgt, rx177_tgt, rx177_off
-  rx177_start:
+    length rx165_eos, rx165_tgt
+    gt rx165_pos, rx165_eos, rx165_done
+    set rx165_off, 0
+    lt rx165_pos, 2, rx165_start
+    sub rx165_off, rx165_pos, 1
+    substr rx165_tgt, rx165_tgt, rx165_off
+  rx165_start:
+    eq $I10, 1, rx165_restart
+    rx165_cur."!cursor_debug"("START ", "binints")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan180_done
-    goto rxscan180_scan
-  rxscan180_loop:
-    ($P10) = rx177_cur."from"()
+    ne $I10, -1, rxscan168_done
+    goto rxscan168_scan
+  rxscan168_loop:
+    ($P10) = rx165_cur."from"()
     inc $P10
-    set rx177_pos, $P10
-    ge rx177_pos, rx177_eos, rxscan180_done
-  rxscan180_scan:
-    set_addr $I10, rxscan180_loop
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
-  rxscan180_done:
+    set rx165_pos, $P10
+    ge rx165_pos, rx165_eos, rxscan168_done
+  rxscan168_scan:
+    set_addr $I10, rxscan168_loop
+    rx165_cur."!mark_push"(0, rx165_pos, $I10)
+  rxscan168_done:
 .annotate 'line', 58
-  # rx rxquantr181 ** 1..*
-    set_addr $I182, rxquantr181_done
-    rx177_cur."!mark_push"(0, -1, $I182)
-  rxquantr181_loop:
+  # rx rxquantr169 ** 1..*
+    set_addr $I10, rxquantr169_done
+    rx165_cur."!mark_push"(0, -1, $I10)
+  rxquantr169_loop:
   # rx subrule "ws" subtype=method negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."ws"()
-    unless $P10, rx177_fail
-    rx177_pos = $P10."pos"()
+    rx165_cur."!cursor_pos"(rx165_pos)
+    $P10 = rx165_cur."ws"()
+    unless $P10, rx165_fail
+    rx165_pos = $P10."pos"()
   # rx subrule "binint" subtype=capture negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."binint"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
+    rx165_cur."!cursor_pos"(rx165_pos)
+    $P10 = rx165_cur."binint"()
+    unless $P10, rx165_fail
+    rx165_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("binint")
-    rx177_pos = $P10."pos"()
+    rx165_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."ws"()
-    unless $P10, rx177_fail
-    rx177_pos = $P10."pos"()
-    (rx177_rep) = rx177_cur."!mark_commit"($I182)
-    rx177_cur."!mark_push"(rx177_rep, rx177_pos, $I182)
+    rx165_cur."!cursor_pos"(rx165_pos)
+    $P10 = rx165_cur."ws"()
+    unless $P10, rx165_fail
+    rx165_pos = $P10."pos"()
+    set_addr $I10, rxquantr169_done
+    (rx165_rep) = rx165_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr169_done
+    rx165_cur."!mark_push"(rx165_rep, rx165_pos, $I10)
   # rx literal  ","
-    add $I11, rx177_pos, 1
-    gt $I11, rx177_eos, rx177_fail
-    sub $I11, rx177_pos, rx177_off
-    substr $S10, rx177_tgt, $I11, 1
-    ne $S10, ",", rx177_fail
-    add rx177_pos, 1
-    goto rxquantr181_loop
-  rxquantr181_done:
+    add $I11, rx165_pos, 1
+    gt $I11, rx165_eos, rx165_fail
+    sub $I11, rx165_pos, rx165_off
+    substr $S10, rx165_tgt, $I11, 1
+    ne $S10, ",", rx165_fail
+    add rx165_pos, 1
+    goto rxquantr169_loop
+  rxquantr169_done:
   # rx pass
-    rx177_cur."!cursor_pass"(rx177_pos, "binints")
-    rx177_cur."!cursor_debug"("PASS  ", "binints", " at pos=", rx177_pos)
-    .return (rx177_cur)
-  rx177_fail:
-.annotate 'line', 33
-    (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
-    lt rx177_pos, -1, rx177_done
-    eq rx177_pos, -1, rx177_fail
+    rx165_cur."!cursor_pass"(rx165_pos, "binints")
+    rx165_cur."!cursor_debug"("PASS  ", "binints", " at pos=", rx165_pos)
+    .return (rx165_cur)
+  rx165_restart:
+.annotate 'line', 33
+    rx165_cur."!cursor_debug"("NEXT ", "binints")
+  rx165_fail:
+    (rx165_rep, rx165_pos, $I10, $P10) = rx165_cur."!mark_fail"(0)
+    lt rx165_pos, -1, rx165_done
+    eq rx165_pos, -1, rx165_fail
     jump $I10
-  rx177_done:
-    rx177_cur."!cursor_fail"()
-    rx177_cur."!cursor_debug"("FAIL  ", "binints")
-    .return (rx177_cur)
+  rx165_done:
+    rx165_cur."!cursor_fail"()
+    rx165_cur."!cursor_debug"("FAIL  ", "binints")
+    .return (rx165_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1278500527.62277") :method
+.sub "!PREFIX__binints"  :subid("60_1279564387.65485") :method
 .annotate 'line', 33
-    new $P179, "ResizablePMCArray"
-    push $P179, ""
-    .return ($P179)
+    new $P167, "ResizablePMCArray"
+    push $P167, ""
+    .return ($P167)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "integer"  :subid("61_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx184_tgt
-    .local int rx184_pos
-    .local int rx184_off
-    .local int rx184_eos
-    .local int rx184_rep
-    .local pmc rx184_cur
-    (rx184_cur, rx184_pos, rx184_tgt) = self."!cursor_start"()
-    rx184_cur."!cursor_debug"("START ", "integer")
-    .lex unicode:"$\x{a2}", rx184_cur
+    .local string rx171_tgt
+    .local int rx171_pos
+    .local int rx171_off
+    .local int rx171_eos
+    .local int rx171_rep
+    .local pmc rx171_cur
+    (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx171_cur
     .local pmc match
     .lex "$/", match
-    length rx184_eos, rx184_tgt
-    gt rx184_pos, rx184_eos, rx184_done
-    set rx184_off, 0
-    lt rx184_pos, 2, rx184_start
-    sub rx184_off, rx184_pos, 1
-    substr rx184_tgt, rx184_tgt, rx184_off
-  rx184_start:
+    length rx171_eos, rx171_tgt
+    gt rx171_pos, rx171_eos, rx171_done
+    set rx171_off, 0
+    lt rx171_pos, 2, rx171_start
+    sub rx171_off, rx171_pos, 1
+    substr rx171_tgt, rx171_tgt, rx171_off
+  rx171_start:
+    eq $I10, 1, rx171_restart
+    rx171_cur."!cursor_debug"("START ", "integer")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan192_done
-    goto rxscan192_scan
-  rxscan192_loop:
-    ($P10) = rx184_cur."from"()
+    ne $I10, -1, rxscan179_done
+    goto rxscan179_scan
+  rxscan179_loop:
+    ($P10) = rx171_cur."from"()
     inc $P10
-    set rx184_pos, $P10
-    ge rx184_pos, rx184_eos, rxscan192_done
-  rxscan192_scan:
-    set_addr $I10, rxscan192_loop
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
-  rxscan192_done:
-  alt193_0:
+    set rx171_pos, $P10
+    ge rx171_pos, rx171_eos, rxscan179_done
+  rxscan179_scan:
+    set_addr $I10, rxscan179_loop
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+  rxscan179_done:
+  alt180_0:
 .annotate 'line', 61
-    set_addr $I10, alt193_1
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
+    set_addr $I10, alt180_1
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
 .annotate 'line', 62
   # rx literal  "0"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "0", rx184_fail
-    add rx184_pos, 1
-  alt194_0:
-    set_addr $I10, alt194_1
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "0", rx171_fail
+    add rx171_pos, 1
+  alt181_0:
+    set_addr $I10, alt181_1
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
   # rx literal  "b"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "b", rx184_fail
-    add rx184_pos, 1
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "b", rx171_fail
+    add rx171_pos, 1
   # rx subrule "binint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."binint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."binint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=binint")
-    rx184_pos = $P10."pos"()
-    goto alt194_end
-  alt194_1:
-    set_addr $I10, alt194_2
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
+    rx171_pos = $P10."pos"()
+    goto alt181_end
+  alt181_1:
+    set_addr $I10, alt181_2
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
 .annotate 'line', 63
   # rx literal  "o"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "o", rx184_fail
-    add rx184_pos, 1
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "o", rx171_fail
+    add rx171_pos, 1
   # rx subrule "octint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."octint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."octint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=octint")
-    rx184_pos = $P10."pos"()
-    goto alt194_end
-  alt194_2:
-    set_addr $I10, alt194_3
-    rx184_cur."!mark_push"(0, rx184_pos, $I10)
+    rx171_pos = $P10."pos"()
+    goto alt181_end
+  alt181_2:
+    set_addr $I10, alt181_3
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
 .annotate 'line', 64
   # rx literal  "x"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "x", rx184_fail
-    add rx184_pos, 1
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "x", rx171_fail
+    add rx171_pos, 1
   # rx subrule "hexint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."hexint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."hexint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=hexint")
-    rx184_pos = $P10."pos"()
-    goto alt194_end
-  alt194_3:
+    rx171_pos = $P10."pos"()
+    goto alt181_end
+  alt181_3:
 .annotate 'line', 65
   # rx literal  "d"
-    add $I11, rx184_pos, 1
-    gt $I11, rx184_eos, rx184_fail
-    sub $I11, rx184_pos, rx184_off
-    substr $S10, rx184_tgt, $I11, 1
-    ne $S10, "d", rx184_fail
-    add rx184_pos, 1
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, "d", rx171_fail
+    add rx171_pos, 1
   # rx subrule "decint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."decint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."decint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=decint")
-    rx184_pos = $P10."pos"()
-  alt194_end:
+    rx171_pos = $P10."pos"()
+  alt181_end:
 .annotate 'line', 62
-    goto alt193_end
-  alt193_1:
+    goto alt180_end
+  alt180_1:
 .annotate 'line', 67
   # rx subrule "decint" subtype=capture negate=
-    rx184_cur."!cursor_pos"(rx184_pos)
-    $P10 = rx184_cur."decint"()
-    unless $P10, rx184_fail
-    rx184_cur."!mark_push"(0, -1, 0, $P10)
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."decint"()
+    unless $P10, rx171_fail
+    rx171_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("VALUE=decint")
-    rx184_pos = $P10."pos"()
-  alt193_end:
+    rx171_pos = $P10."pos"()
+  alt180_end:
 .annotate 'line', 60
   # rx pass
-    rx184_cur."!cursor_pass"(rx184_pos, "integer")
-    rx184_cur."!cursor_debug"("PASS  ", "integer", " at pos=", rx184_pos)
-    .return (rx184_cur)
-  rx184_fail:
-.annotate 'line', 33
-    (rx184_rep, rx184_pos, $I10, $P10) = rx184_cur."!mark_fail"(0)
-    lt rx184_pos, -1, rx184_done
-    eq rx184_pos, -1, rx184_fail
+    rx171_cur."!cursor_pass"(rx171_pos, "integer")
+    rx171_cur."!cursor_debug"("PASS  ", "integer", " at pos=", rx171_pos)
+    .return (rx171_cur)
+  rx171_restart:
+.annotate 'line', 33
+    rx171_cur."!cursor_debug"("NEXT ", "integer")
+  rx171_fail:
+    (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
+    lt rx171_pos, -1, rx171_done
+    eq rx171_pos, -1, rx171_fail
     jump $I10
-  rx184_done:
-    rx184_cur."!cursor_fail"()
-    rx184_cur."!cursor_debug"("FAIL  ", "integer")
-    .return (rx184_cur)
+  rx171_done:
+    rx171_cur."!cursor_fail"()
+    rx171_cur."!cursor_debug"("FAIL  ", "integer")
+    .return (rx171_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1278500527.62277") :method
+.sub "!PREFIX__integer"  :subid("62_1279564387.65485") :method
 .annotate 'line', 33
-    $P186 = self."!PREFIX__!subrule"("decint", "")
-    $P187 = self."!PREFIX__!subrule"("decint", "0d")
-    $P188 = self."!PREFIX__!subrule"("hexint", "0x")
-    $P189 = self."!PREFIX__!subrule"("octint", "0o")
-    $P190 = self."!PREFIX__!subrule"("binint", "0b")
-    new $P191, "ResizablePMCArray"
-    push $P191, $P186
-    push $P191, $P187
-    push $P191, $P188
-    push $P191, $P189
-    push $P191, $P190
-    .return ($P191)
+    $P173 = self."!PREFIX__!subrule"("decint", "")
+    $P174 = self."!PREFIX__!subrule"("decint", "0d")
+    $P175 = self."!PREFIX__!subrule"("hexint", "0x")
+    $P176 = self."!PREFIX__!subrule"("octint", "0o")
+    $P177 = self."!PREFIX__!subrule"("binint", "0b")
+    new $P178, "ResizablePMCArray"
+    push $P178, $P173
+    push $P178, $P174
+    push $P178, $P175
+    push $P178, $P176
+    push $P178, $P177
+    .return ($P178)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "dec_number"  :subid("63_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx196_tgt
-    .local int rx196_pos
-    .local int rx196_off
-    .local int rx196_eos
-    .local int rx196_rep
-    .local pmc rx196_cur
-    (rx196_cur, rx196_pos, rx196_tgt) = self."!cursor_start"()
-    rx196_cur."!cursor_debug"("START ", "dec_number")
-    rx196_cur."!cursor_caparray"("escale")
-    .lex unicode:"$\x{a2}", rx196_cur
+    .local string rx183_tgt
+    .local int rx183_pos
+    .local int rx183_off
+    .local int rx183_eos
+    .local int rx183_rep
+    .local pmc rx183_cur
+    (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
+    rx183_cur."!cursor_caparray"("escale")
+    .lex unicode:"$\x{a2}", rx183_cur
     .local pmc match
     .lex "$/", match
-    length rx196_eos, rx196_tgt
-    gt rx196_pos, rx196_eos, rx196_done
-    set rx196_off, 0
-    lt rx196_pos, 2, rx196_start
-    sub rx196_off, rx196_pos, 1
-    substr rx196_tgt, rx196_tgt, rx196_off
-  rx196_start:
+    length rx183_eos, rx183_tgt
+    gt rx183_pos, rx183_eos, rx183_done
+    set rx183_off, 0
+    lt rx183_pos, 2, rx183_start
+    sub rx183_off, rx183_pos, 1
+    substr rx183_tgt, rx183_tgt, rx183_off
+  rx183_start:
+    eq $I10, 1, rx183_restart
+    rx183_cur."!cursor_debug"("START ", "dec_number")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan199_done
-    goto rxscan199_scan
-  rxscan199_loop:
-    ($P10) = rx196_cur."from"()
+    ne $I10, -1, rxscan186_done
+    goto rxscan186_scan
+  rxscan186_loop:
+    ($P10) = rx183_cur."from"()
     inc $P10
-    set rx196_pos, $P10
-    ge rx196_pos, rx196_eos, rxscan199_done
-  rxscan199_scan:
-    set_addr $I10, rxscan199_loop
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
-  rxscan199_done:
-  alt200_0:
+    set rx183_pos, $P10
+    ge rx183_pos, rx183_eos, rxscan186_done
+  rxscan186_scan:
+    set_addr $I10, rxscan186_loop
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
+  rxscan186_done:
+  alt187_0:
 .annotate 'line', 71
-    set_addr $I10, alt200_1
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    set_addr $I10, alt187_1
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
 .annotate 'line', 72
   # rx subcapture "coeff"
-    set_addr $I10, rxcap_201_fail
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    set_addr $I10, rxcap_188_fail
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
   # rx literal  "."
-    add $I11, rx196_pos, 1
-    gt $I11, rx196_eos, rx196_fail
-    sub $I11, rx196_pos, rx196_off
-    substr $S10, rx196_tgt, $I11, 1
-    ne $S10, ".", rx196_fail
-    add rx196_pos, 1
+    add $I11, rx183_pos, 1
+    gt $I11, rx183_eos, rx183_fail
+    sub $I11, rx183_pos, rx183_off
+    substr $S10, rx183_tgt, $I11, 1
+    ne $S10, ".", rx183_fail
+    add rx183_pos, 1
   # rx charclass_q d r 1..-1
-    sub $I10, rx196_pos, rx196_off
-    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+    sub $I10, rx183_pos, rx183_off
+    find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx196_fail
-    add rx196_pos, rx196_off, $I11
-    set_addr $I10, rxcap_201_fail
-    ($I12, $I11) = rx196_cur."!mark_peek"($I10)
-    rx196_cur."!cursor_pos"($I11)
-    ($P10) = rx196_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx196_pos, "")
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx183_fail
+    add rx183_pos, rx183_off, $I11
+    set_addr $I10, rxcap_188_fail
+    ($I12, $I11) = rx183_cur."!mark_peek"($I10)
+    rx183_cur."!cursor_pos"($I11)
+    ($P10) = rx183_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx183_pos, "")
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("coeff")
-    goto rxcap_201_done
-  rxcap_201_fail:
-    goto rx196_fail
-  rxcap_201_done:
-  # rx rxquantr202 ** 0..1
-    set_addr $I203, rxquantr202_done
-    rx196_cur."!mark_push"(0, rx196_pos, $I203)
-  rxquantr202_loop:
+    goto rxcap_188_done
+  rxcap_188_fail:
+    goto rx183_fail
+  rxcap_188_done:
+  # rx rxquantr189 ** 0..1
+    set_addr $I10, rxquantr189_done
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
+  rxquantr189_loop:
   # rx subrule "escale" subtype=capture negate=
-    rx196_cur."!cursor_pos"(rx196_pos)
-    $P10 = rx196_cur."escale"()
-    unless $P10, rx196_fail
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."escale"()
+    unless $P10, rx183_fail
+    goto rxsubrule190_pass
+  rxsubrule190_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx183_fail
+  rxsubrule190_pass:
+    set_addr $I10, rxsubrule190_back
+    rx183_cur."!mark_push"(0, rx183_pos, $I10, $P10)
     $P10."!cursor_names"("escale")
-    rx196_pos = $P10."pos"()
-    (rx196_rep) = rx196_cur."!mark_commit"($I203)
-  rxquantr202_done:
-    goto alt200_end
-  alt200_1:
-    set_addr $I10, alt200_2
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    rx183_pos = $P10."pos"()
+    set_addr $I10, rxquantr189_done
+    (rx183_rep) = rx183_cur."!mark_commit"($I10)
+  rxquantr189_done:
+    goto alt187_end
+  alt187_1:
+    set_addr $I10, alt187_2
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
 .annotate 'line', 73
   # rx subcapture "coeff"
-    set_addr $I10, rxcap_204_fail
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    set_addr $I10, rxcap_191_fail
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx196_pos, rx196_off
-    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+    sub $I10, rx183_pos, rx183_off
+    find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx196_fail
-    add rx196_pos, rx196_off, $I11
+    lt $I11, $I12, rx183_fail
+    add rx183_pos, rx183_off, $I11
   # rx literal  "."
-    add $I11, rx196_pos, 1
-    gt $I11, rx196_eos, rx196_fail
-    sub $I11, rx196_pos, rx196_off
-    substr $S10, rx196_tgt, $I11, 1
-    ne $S10, ".", rx196_fail
-    add rx196_pos, 1
+    add $I11, rx183_pos, 1
+    gt $I11, rx183_eos, rx183_fail
+    sub $I11, rx183_pos, rx183_off
+    substr $S10, rx183_tgt, $I11, 1
+    ne $S10, ".", rx183_fail
+    add rx183_pos, 1
   # rx charclass_q d r 1..-1
-    sub $I10, rx196_pos, rx196_off
-    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+    sub $I10, rx183_pos, rx183_off
+    find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx196_fail
-    add rx196_pos, rx196_off, $I11
-    set_addr $I10, rxcap_204_fail
-    ($I12, $I11) = rx196_cur."!mark_peek"($I10)
-    rx196_cur."!cursor_pos"($I11)
-    ($P10) = rx196_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx196_pos, "")
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx183_fail
+    add rx183_pos, rx183_off, $I11
+    set_addr $I10, rxcap_191_fail
+    ($I12, $I11) = rx183_cur."!mark_peek"($I10)
+    rx183_cur."!cursor_pos"($I11)
+    ($P10) = rx183_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx183_pos, "")
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("coeff")
-    goto rxcap_204_done
-  rxcap_204_fail:
-    goto rx196_fail
-  rxcap_204_done:
-  # rx rxquantr205 ** 0..1
-    set_addr $I206, rxquantr205_done
-    rx196_cur."!mark_push"(0, rx196_pos, $I206)
-  rxquantr205_loop:
+    goto rxcap_191_done
+  rxcap_191_fail:
+    goto rx183_fail
+  rxcap_191_done:
+  # rx rxquantr192 ** 0..1
+    set_addr $I10, rxquantr192_done
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
+  rxquantr192_loop:
   # rx subrule "escale" subtype=capture negate=
-    rx196_cur."!cursor_pos"(rx196_pos)
-    $P10 = rx196_cur."escale"()
-    unless $P10, rx196_fail
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."escale"()
+    unless $P10, rx183_fail
+    goto rxsubrule193_pass
+  rxsubrule193_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx183_fail
+  rxsubrule193_pass:
+    set_addr $I10, rxsubrule193_back
+    rx183_cur."!mark_push"(0, rx183_pos, $I10, $P10)
     $P10."!cursor_names"("escale")
-    rx196_pos = $P10."pos"()
-    (rx196_rep) = rx196_cur."!mark_commit"($I206)
-  rxquantr205_done:
-    goto alt200_end
-  alt200_2:
+    rx183_pos = $P10."pos"()
+    set_addr $I10, rxquantr192_done
+    (rx183_rep) = rx183_cur."!mark_commit"($I10)
+  rxquantr192_done:
+    goto alt187_end
+  alt187_2:
 .annotate 'line', 74
   # rx subcapture "coeff"
-    set_addr $I10, rxcap_207_fail
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+    set_addr $I10, rxcap_194_fail
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx196_pos, rx196_off
-    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
+    sub $I10, rx183_pos, rx183_off
+    find_not_cclass $I11, 8, rx183_tgt, $I10, rx183_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx196_fail
-    add rx196_pos, rx196_off, $I11
-    set_addr $I10, rxcap_207_fail
-    ($I12, $I11) = rx196_cur."!mark_peek"($I10)
-    rx196_cur."!cursor_pos"($I11)
-    ($P10) = rx196_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx196_pos, "")
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx183_fail
+    add rx183_pos, rx183_off, $I11
+    set_addr $I10, rxcap_194_fail
+    ($I12, $I11) = rx183_cur."!mark_peek"($I10)
+    rx183_cur."!cursor_pos"($I11)
+    ($P10) = rx183_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx183_pos, "")
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("coeff")
-    goto rxcap_207_done
-  rxcap_207_fail:
-    goto rx196_fail
-  rxcap_207_done:
+    goto rxcap_194_done
+  rxcap_194_fail:
+    goto rx183_fail
+  rxcap_194_done:
   # rx subrule "escale" subtype=capture negate=
-    rx196_cur."!cursor_pos"(rx196_pos)
-    $P10 = rx196_cur."escale"()
-    unless $P10, rx196_fail
-    rx196_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."escale"()
+    unless $P10, rx183_fail
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("escale")
-    rx196_pos = $P10."pos"()
-  alt200_end:
+    rx183_pos = $P10."pos"()
+  alt187_end:
 .annotate 'line', 71
   # rx pass
-    rx196_cur."!cursor_pass"(rx196_pos, "dec_number")
-    rx196_cur."!cursor_debug"("PASS  ", "dec_number", " at pos=", rx196_pos)
-    .return (rx196_cur)
-  rx196_fail:
-.annotate 'line', 33
-    (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
-    lt rx196_pos, -1, rx196_done
-    eq rx196_pos, -1, rx196_fail
+    rx183_cur."!cursor_pass"(rx183_pos, "dec_number")
+    rx183_cur."!cursor_debug"("PASS  ", "dec_number", " at pos=", rx183_pos)
+    .return (rx183_cur)
+  rx183_restart:
+.annotate 'line', 33
+    rx183_cur."!cursor_debug"("NEXT ", "dec_number")
+  rx183_fail:
+    (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
+    lt rx183_pos, -1, rx183_done
+    eq rx183_pos, -1, rx183_fail
     jump $I10
-  rx196_done:
-    rx196_cur."!cursor_fail"()
-    rx196_cur."!cursor_debug"("FAIL  ", "dec_number")
-    .return (rx196_cur)
+  rx183_done:
+    rx183_cur."!cursor_fail"()
+    rx183_cur."!cursor_debug"("FAIL  ", "dec_number")
+    .return (rx183_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1278500527.62277") :method
+.sub "!PREFIX__dec_number"  :subid("64_1279564387.65485") :method
 .annotate 'line', 33
-    new $P198, "ResizablePMCArray"
-    push $P198, ""
-    push $P198, ""
-    push $P198, "."
-    .return ($P198)
+    new $P185, "ResizablePMCArray"
+    push $P185, ""
+    push $P185, ""
+    push $P185, "."
+    .return ($P185)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "escale"  :subid("65_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx209_tgt
-    .local int rx209_pos
-    .local int rx209_off
-    .local int rx209_eos
-    .local int rx209_rep
-    .local pmc rx209_cur
-    (rx209_cur, rx209_pos, rx209_tgt) = self."!cursor_start"()
-    rx209_cur."!cursor_debug"("START ", "escale")
-    .lex unicode:"$\x{a2}", rx209_cur
+    .local string rx196_tgt
+    .local int rx196_pos
+    .local int rx196_off
+    .local int rx196_eos
+    .local int rx196_rep
+    .local pmc rx196_cur
+    (rx196_cur, rx196_pos, rx196_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx196_cur
     .local pmc match
     .lex "$/", match
-    length rx209_eos, rx209_tgt
-    gt rx209_pos, rx209_eos, rx209_done
-    set rx209_off, 0
-    lt rx209_pos, 2, rx209_start
-    sub rx209_off, rx209_pos, 1
-    substr rx209_tgt, rx209_tgt, rx209_off
-  rx209_start:
+    length rx196_eos, rx196_tgt
+    gt rx196_pos, rx196_eos, rx196_done
+    set rx196_off, 0
+    lt rx196_pos, 2, rx196_start
+    sub rx196_off, rx196_pos, 1
+    substr rx196_tgt, rx196_tgt, rx196_off
+  rx196_start:
+    eq $I10, 1, rx196_restart
+    rx196_cur."!cursor_debug"("START ", "escale")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan212_done
-    goto rxscan212_scan
-  rxscan212_loop:
-    ($P10) = rx209_cur."from"()
+    ne $I10, -1, rxscan199_done
+    goto rxscan199_scan
+  rxscan199_loop:
+    ($P10) = rx196_cur."from"()
     inc $P10
-    set rx209_pos, $P10
-    ge rx209_pos, rx209_eos, rxscan212_done
-  rxscan212_scan:
-    set_addr $I10, rxscan212_loop
-    rx209_cur."!mark_push"(0, rx209_pos, $I10)
-  rxscan212_done:
+    set rx196_pos, $P10
+    ge rx196_pos, rx196_eos, rxscan199_done
+  rxscan199_scan:
+    set_addr $I10, rxscan199_loop
+    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+  rxscan199_done:
 .annotate 'line', 77
   # rx enumcharlist negate=0 
-    ge rx209_pos, rx209_eos, rx209_fail
-    sub $I10, rx209_pos, rx209_off
-    substr $S10, rx209_tgt, $I10, 1
+    ge rx196_pos, rx196_eos, rx196_fail
+    sub $I10, rx196_pos, rx196_off
+    substr $S10, rx196_tgt, $I10, 1
     index $I11, "Ee", $S10
-    lt $I11, 0, rx209_fail
-    inc rx209_pos
-  # rx rxquantr213 ** 0..1
-    set_addr $I214, rxquantr213_done
-    rx209_cur."!mark_push"(0, rx209_pos, $I214)
-  rxquantr213_loop:
+    lt $I11, 0, rx196_fail
+    inc rx196_pos
+  # rx rxquantr200 ** 0..1
+    set_addr $I10, rxquantr200_done
+    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+  rxquantr200_loop:
   # rx enumcharlist negate=0 
-    ge rx209_pos, rx209_eos, rx209_fail
-    sub $I10, rx209_pos, rx209_off
-    substr $S10, rx209_tgt, $I10, 1
+    ge rx196_pos, rx196_eos, rx196_fail
+    sub $I10, rx196_pos, rx196_off
+    substr $S10, rx196_tgt, $I10, 1
     index $I11, "+-", $S10
-    lt $I11, 0, rx209_fail
-    inc rx209_pos
-    (rx209_rep) = rx209_cur."!mark_commit"($I214)
-  rxquantr213_done:
+    lt $I11, 0, rx196_fail
+    inc rx196_pos
+    set_addr $I10, rxquantr200_done
+    (rx196_rep) = rx196_cur."!mark_commit"($I10)
+  rxquantr200_done:
   # rx charclass_q d r 1..-1
-    sub $I10, rx209_pos, rx209_off
-    find_not_cclass $I11, 8, rx209_tgt, $I10, rx209_eos
+    sub $I10, rx196_pos, rx196_off
+    find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx209_fail
-    add rx209_pos, rx209_off, $I11
+    lt $I11, $I12, rx196_fail
+    add rx196_pos, rx196_off, $I11
   # rx pass
-    rx209_cur."!cursor_pass"(rx209_pos, "escale")
-    rx209_cur."!cursor_debug"("PASS  ", "escale", " at pos=", rx209_pos)
-    .return (rx209_cur)
-  rx209_fail:
-.annotate 'line', 33
-    (rx209_rep, rx209_pos, $I10, $P10) = rx209_cur."!mark_fail"(0)
-    lt rx209_pos, -1, rx209_done
-    eq rx209_pos, -1, rx209_fail
+    rx196_cur."!cursor_pass"(rx196_pos, "escale")
+    rx196_cur."!cursor_debug"("PASS  ", "escale", " at pos=", rx196_pos)
+    .return (rx196_cur)
+  rx196_restart:
+.annotate 'line', 33
+    rx196_cur."!cursor_debug"("NEXT ", "escale")
+  rx196_fail:
+    (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
+    lt rx196_pos, -1, rx196_done
+    eq rx196_pos, -1, rx196_fail
     jump $I10
-  rx209_done:
-    rx209_cur."!cursor_fail"()
-    rx209_cur."!cursor_debug"("FAIL  ", "escale")
-    .return (rx209_cur)
+  rx196_done:
+    rx196_cur."!cursor_fail"()
+    rx196_cur."!cursor_debug"("FAIL  ", "escale")
+    .return (rx196_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1278500527.62277") :method
+.sub "!PREFIX__escale"  :subid("66_1279564387.65485") :method
 .annotate 'line', 33
-    new $P211, "ResizablePMCArray"
-    push $P211, "e"
-    push $P211, "E"
-    .return ($P211)
+    new $P198, "ResizablePMCArray"
+    push $P198, "e"
+    push $P198, "E"
+    .return ($P198)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1278500527.62277") :method
+.sub "quote_escape"  :subid("67_1279564387.65485") :method
 .annotate 'line', 79
-    $P216 = self."!protoregex"("quote_escape")
-    .return ($P216)
+    $P202 = self."!protoregex"("quote_escape")
+    .return ($P202)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1278500527.62277") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1279564387.65485") :method
 .annotate 'line', 79
-    $P218 = self."!PREFIX__!protoregex"("quote_escape")
-    .return ($P218)
+    $P204 = self."!PREFIX__!protoregex"("quote_escape")
+    .return ($P204)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<backslash>"  :subid("69_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx220_tgt
-    .local int rx220_pos
-    .local int rx220_off
-    .local int rx220_eos
-    .local int rx220_rep
-    .local pmc rx220_cur
-    (rx220_cur, rx220_pos, rx220_tgt) = self."!cursor_start"()
-    rx220_cur."!cursor_debug"("START ", "quote_escape:sym<backslash>")
-    .lex unicode:"$\x{a2}", rx220_cur
+    .local string rx206_tgt
+    .local int rx206_pos
+    .local int rx206_off
+    .local int rx206_eos
+    .local int rx206_rep
+    .local pmc rx206_cur
+    (rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx206_cur
     .local pmc match
     .lex "$/", match
-    length rx220_eos, rx220_tgt
-    gt rx220_pos, rx220_eos, rx220_done
-    set rx220_off, 0
-    lt rx220_pos, 2, rx220_start
-    sub rx220_off, rx220_pos, 1
-    substr rx220_tgt, rx220_tgt, rx220_off
-  rx220_start:
+    length rx206_eos, rx206_tgt
+    gt rx206_pos, rx206_eos, rx206_done
+    set rx206_off, 0
+    lt rx206_pos, 2, rx206_start
+    sub rx206_off, rx206_pos, 1
+    substr rx206_tgt, rx206_tgt, rx206_off
+  rx206_start:
+    eq $I10, 1, rx206_restart
+    rx206_cur."!cursor_debug"("START ", "quote_escape:sym<backslash>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan223_done
-    goto rxscan223_scan
-  rxscan223_loop:
-    ($P10) = rx220_cur."from"()
+    ne $I10, -1, rxscan209_done
+    goto rxscan209_scan
+  rxscan209_loop:
+    ($P10) = rx206_cur."from"()
     inc $P10
-    set rx220_pos, $P10
-    ge rx220_pos, rx220_eos, rxscan223_done
-  rxscan223_scan:
-    set_addr $I10, rxscan223_loop
-    rx220_cur."!mark_push"(0, rx220_pos, $I10)
-  rxscan223_done:
+    set rx206_pos, $P10
+    ge rx206_pos, rx206_eos, rxscan209_done
+  rxscan209_scan:
+    set_addr $I10, rxscan209_loop
+    rx206_cur."!mark_push"(0, rx206_pos, $I10)
+  rxscan209_done:
 .annotate 'line', 80
   # rx literal  "\\\\"
-    add $I11, rx220_pos, 2
-    gt $I11, rx220_eos, rx220_fail
-    sub $I11, rx220_pos, rx220_off
-    substr $S10, rx220_tgt, $I11, 2
-    ne $S10, "\\\\", rx220_fail
-    add rx220_pos, 2
+    add $I11, rx206_pos, 2
+    gt $I11, rx206_eos, rx206_fail
+    sub $I11, rx206_pos, rx206_off
+    substr $S10, rx206_tgt, $I11, 2
+    ne $S10, "\\\\", rx206_fail
+    add rx206_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx220_cur."!cursor_pos"(rx220_pos)
-    $P10 = rx220_cur."quotemod_check"("q")
-    unless $P10, rx220_fail
+    rx206_cur."!cursor_pos"(rx206_pos)
+    $P10 = rx206_cur."quotemod_check"("q")
+    unless $P10, rx206_fail
   # rx pass
-    rx220_cur."!cursor_pass"(rx220_pos, "quote_escape:sym<backslash>")
-    rx220_cur."!cursor_debug"("PASS  ", "quote_escape:sym<backslash>", " at pos=", rx220_pos)
-    .return (rx220_cur)
-  rx220_fail:
-.annotate 'line', 33
-    (rx220_rep, rx220_pos, $I10, $P10) = rx220_cur."!mark_fail"(0)
-    lt rx220_pos, -1, rx220_done
-    eq rx220_pos, -1, rx220_fail
+    rx206_cur."!cursor_pass"(rx206_pos, "quote_escape:sym<backslash>")
+    rx206_cur."!cursor_debug"("PASS  ", "quote_escape:sym<backslash>", " at pos=", rx206_pos)
+    .return (rx206_cur)
+  rx206_restart:
+.annotate 'line', 33
+    rx206_cur."!cursor_debug"("NEXT ", "quote_escape:sym<backslash>")
+  rx206_fail:
+    (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0)
+    lt rx206_pos, -1, rx206_done
+    eq rx206_pos, -1, rx206_fail
     jump $I10
-  rx220_done:
-    rx220_cur."!cursor_fail"()
-    rx220_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<backslash>")
-    .return (rx220_cur)
+  rx206_done:
+    rx206_cur."!cursor_fail"()
+    rx206_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<backslash>")
+    .return (rx206_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1279564387.65485") :method
 .annotate 'line', 33
-    new $P222, "ResizablePMCArray"
-    push $P222, "\\\\"
-    .return ($P222)
+    new $P208, "ResizablePMCArray"
+    push $P208, "\\\\"
+    .return ($P208)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<stopper>"  :subid("71_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx225_tgt
-    .local int rx225_pos
-    .local int rx225_off
-    .local int rx225_eos
-    .local int rx225_rep
-    .local pmc rx225_cur
-    (rx225_cur, rx225_pos, rx225_tgt) = self."!cursor_start"()
-    rx225_cur."!cursor_debug"("START ", "quote_escape:sym<stopper>")
-    .lex unicode:"$\x{a2}", rx225_cur
+    .local string rx211_tgt
+    .local int rx211_pos
+    .local int rx211_off
+    .local int rx211_eos
+    .local int rx211_rep
+    .local pmc rx211_cur
+    (rx211_cur, rx211_pos, rx211_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx211_cur
     .local pmc match
     .lex "$/", match
-    length rx225_eos, rx225_tgt
-    gt rx225_pos, rx225_eos, rx225_done
-    set rx225_off, 0
-    lt rx225_pos, 2, rx225_start
-    sub rx225_off, rx225_pos, 1
-    substr rx225_tgt, rx225_tgt, rx225_off
-  rx225_start:
+    length rx211_eos, rx211_tgt
+    gt rx211_pos, rx211_eos, rx211_done
+    set rx211_off, 0
+    lt rx211_pos, 2, rx211_start
+    sub rx211_off, rx211_pos, 1
+    substr rx211_tgt, rx211_tgt, rx211_off
+  rx211_start:
+    eq $I10, 1, rx211_restart
+    rx211_cur."!cursor_debug"("START ", "quote_escape:sym<stopper>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan228_done
-    goto rxscan228_scan
-  rxscan228_loop:
-    ($P10) = rx225_cur."from"()
+    ne $I10, -1, rxscan214_done
+    goto rxscan214_scan
+  rxscan214_loop:
+    ($P10) = rx211_cur."from"()
     inc $P10
-    set rx225_pos, $P10
-    ge rx225_pos, rx225_eos, rxscan228_done
-  rxscan228_scan:
-    set_addr $I10, rxscan228_loop
-    rx225_cur."!mark_push"(0, rx225_pos, $I10)
-  rxscan228_done:
+    set rx211_pos, $P10
+    ge rx211_pos, rx211_eos, rxscan214_done
+  rxscan214_scan:
+    set_addr $I10, rxscan214_loop
+    rx211_cur."!mark_push"(0, rx211_pos, $I10)
+  rxscan214_done:
 .annotate 'line', 81
   # rx literal  "\\"
-    add $I11, rx225_pos, 1
-    gt $I11, rx225_eos, rx225_fail
-    sub $I11, rx225_pos, rx225_off
-    substr $S10, rx225_tgt, $I11, 1
-    ne $S10, "\\", rx225_fail
-    add rx225_pos, 1
+    add $I11, rx211_pos, 1
+    gt $I11, rx211_eos, rx211_fail
+    sub $I11, rx211_pos, rx211_off
+    substr $S10, rx211_tgt, $I11, 1
+    ne $S10, "\\", rx211_fail
+    add rx211_pos, 1
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx225_cur."!cursor_pos"(rx225_pos)
-    $P10 = rx225_cur."quotemod_check"("q")
-    unless $P10, rx225_fail
+    rx211_cur."!cursor_pos"(rx211_pos)
+    $P10 = rx211_cur."quotemod_check"("q")
+    unless $P10, rx211_fail
   # rx subrule "stopper" subtype=capture negate=
-    rx225_cur."!cursor_pos"(rx225_pos)
-    $P10 = rx225_cur."stopper"()
-    unless $P10, rx225_fail
-    rx225_cur."!mark_push"(0, -1, 0, $P10)
+    rx211_cur."!cursor_pos"(rx211_pos)
+    $P10 = rx211_cur."stopper"()
+    unless $P10, rx211_fail
+    rx211_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("stopper")
-    rx225_pos = $P10."pos"()
+    rx211_pos = $P10."pos"()
   # rx pass
-    rx225_cur."!cursor_pass"(rx225_pos, "quote_escape:sym<stopper>")
-    rx225_cur."!cursor_debug"("PASS  ", "quote_escape:sym<stopper>", " at pos=", rx225_pos)
-    .return (rx225_cur)
-  rx225_fail:
-.annotate 'line', 33
-    (rx225_rep, rx225_pos, $I10, $P10) = rx225_cur."!mark_fail"(0)
-    lt rx225_pos, -1, rx225_done
-    eq rx225_pos, -1, rx225_fail
+    rx211_cur."!cursor_pass"(rx211_pos, "quote_escape:sym<stopper>")
+    rx211_cur."!cursor_debug"("PASS  ", "quote_escape:sym<stopper>", " at pos=", rx211_pos)
+    .return (rx211_cur)
+  rx211_restart:
+.annotate 'line', 33
+    rx211_cur."!cursor_debug"("NEXT ", "quote_escape:sym<stopper>")
+  rx211_fail:
+    (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
+    lt rx211_pos, -1, rx211_done
+    eq rx211_pos, -1, rx211_fail
     jump $I10
-  rx225_done:
-    rx225_cur."!cursor_fail"()
-    rx225_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<stopper>")
-    .return (rx225_cur)
+  rx211_done:
+    rx211_cur."!cursor_fail"()
+    rx211_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<stopper>")
+    .return (rx211_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1279564387.65485") :method
 .annotate 'line', 33
-    new $P227, "ResizablePMCArray"
-    push $P227, "\\"
-    .return ($P227)
+    new $P213, "ResizablePMCArray"
+    push $P213, "\\"
+    .return ($P213)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<bs>"  :subid("73_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx230_tgt
-    .local int rx230_pos
-    .local int rx230_off
-    .local int rx230_eos
-    .local int rx230_rep
-    .local pmc rx230_cur
-    (rx230_cur, rx230_pos, rx230_tgt) = self."!cursor_start"()
-    rx230_cur."!cursor_debug"("START ", "quote_escape:sym<bs>")
-    .lex unicode:"$\x{a2}", rx230_cur
+    .local string rx216_tgt
+    .local int rx216_pos
+    .local int rx216_off
+    .local int rx216_eos
+    .local int rx216_rep
+    .local pmc rx216_cur
+    (rx216_cur, rx216_pos, rx216_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx216_cur
     .local pmc match
     .lex "$/", match
-    length rx230_eos, rx230_tgt
-    gt rx230_pos, rx230_eos, rx230_done
-    set rx230_off, 0
-    lt rx230_pos, 2, rx230_start
-    sub rx230_off, rx230_pos, 1
-    substr rx230_tgt, rx230_tgt, rx230_off
-  rx230_start:
+    length rx216_eos, rx216_tgt
+    gt rx216_pos, rx216_eos, rx216_done
+    set rx216_off, 0
+    lt rx216_pos, 2, rx216_start
+    sub rx216_off, rx216_pos, 1
+    substr rx216_tgt, rx216_tgt, rx216_off
+  rx216_start:
+    eq $I10, 1, rx216_restart
+    rx216_cur."!cursor_debug"("START ", "quote_escape:sym<bs>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan233_done
-    goto rxscan233_scan
-  rxscan233_loop:
-    ($P10) = rx230_cur."from"()
+    ne $I10, -1, rxscan219_done
+    goto rxscan219_scan
+  rxscan219_loop:
+    ($P10) = rx216_cur."from"()
     inc $P10
-    set rx230_pos, $P10
-    ge rx230_pos, rx230_eos, rxscan233_done
-  rxscan233_scan:
-    set_addr $I10, rxscan233_loop
-    rx230_cur."!mark_push"(0, rx230_pos, $I10)
-  rxscan233_done:
+    set rx216_pos, $P10
+    ge rx216_pos, rx216_eos, rxscan219_done
+  rxscan219_scan:
+    set_addr $I10, rxscan219_loop
+    rx216_cur."!mark_push"(0, rx216_pos, $I10)
+  rxscan219_done:
 .annotate 'line', 83
   # rx literal  "\\b"
-    add $I11, rx230_pos, 2
-    gt $I11, rx230_eos, rx230_fail
-    sub $I11, rx230_pos, rx230_off
-    substr $S10, rx230_tgt, $I11, 2
-    ne $S10, "\\b", rx230_fail
-    add rx230_pos, 2
+    add $I11, rx216_pos, 2
+    gt $I11, rx216_eos, rx216_fail
+    sub $I11, rx216_pos, rx216_off
+    substr $S10, rx216_tgt, $I11, 2
+    ne $S10, "\\b", rx216_fail
+    add rx216_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx230_cur."!cursor_pos"(rx230_pos)
-    $P10 = rx230_cur."quotemod_check"("b")
-    unless $P10, rx230_fail
+    rx216_cur."!cursor_pos"(rx216_pos)
+    $P10 = rx216_cur."quotemod_check"("b")
+    unless $P10, rx216_fail
   # rx pass
-    rx230_cur."!cursor_pass"(rx230_pos, "quote_escape:sym<bs>")
-    rx230_cur."!cursor_debug"("PASS  ", "quote_escape:sym<bs>", " at pos=", rx230_pos)
-    .return (rx230_cur)
-  rx230_fail:
-.annotate 'line', 33
-    (rx230_rep, rx230_pos, $I10, $P10) = rx230_cur."!mark_fail"(0)
-    lt rx230_pos, -1, rx230_done
-    eq rx230_pos, -1, rx230_fail
+    rx216_cur."!cursor_pass"(rx216_pos, "quote_escape:sym<bs>")
+    rx216_cur."!cursor_debug"("PASS  ", "quote_escape:sym<bs>", " at pos=", rx216_pos)
+    .return (rx216_cur)
+  rx216_restart:
+.annotate 'line', 33
+    rx216_cur."!cursor_debug"("NEXT ", "quote_escape:sym<bs>")
+  rx216_fail:
+    (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
+    lt rx216_pos, -1, rx216_done
+    eq rx216_pos, -1, rx216_fail
     jump $I10
-  rx230_done:
-    rx230_cur."!cursor_fail"()
-    rx230_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<bs>")
-    .return (rx230_cur)
+  rx216_done:
+    rx216_cur."!cursor_fail"()
+    rx216_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<bs>")
+    .return (rx216_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1279564387.65485") :method
 .annotate 'line', 33
-    new $P232, "ResizablePMCArray"
-    push $P232, "\\b"
-    .return ($P232)
+    new $P218, "ResizablePMCArray"
+    push $P218, "\\b"
+    .return ($P218)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<nl>"  :subid("75_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx235_tgt
-    .local int rx235_pos
-    .local int rx235_off
-    .local int rx235_eos
-    .local int rx235_rep
-    .local pmc rx235_cur
-    (rx235_cur, rx235_pos, rx235_tgt) = self."!cursor_start"()
-    rx235_cur."!cursor_debug"("START ", "quote_escape:sym<nl>")
-    .lex unicode:"$\x{a2}", rx235_cur
+    .local string rx221_tgt
+    .local int rx221_pos
+    .local int rx221_off
+    .local int rx221_eos
+    .local int rx221_rep
+    .local pmc rx221_cur
+    (rx221_cur, rx221_pos, rx221_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx221_cur
     .local pmc match
     .lex "$/", match
-    length rx235_eos, rx235_tgt
-    gt rx235_pos, rx235_eos, rx235_done
-    set rx235_off, 0
-    lt rx235_pos, 2, rx235_start
-    sub rx235_off, rx235_pos, 1
-    substr rx235_tgt, rx235_tgt, rx235_off
-  rx235_start:
+    length rx221_eos, rx221_tgt
+    gt rx221_pos, rx221_eos, rx221_done
+    set rx221_off, 0
+    lt rx221_pos, 2, rx221_start
+    sub rx221_off, rx221_pos, 1
+    substr rx221_tgt, rx221_tgt, rx221_off
+  rx221_start:
+    eq $I10, 1, rx221_restart
+    rx221_cur."!cursor_debug"("START ", "quote_escape:sym<nl>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan238_done
-    goto rxscan238_scan
-  rxscan238_loop:
-    ($P10) = rx235_cur."from"()
+    ne $I10, -1, rxscan224_done
+    goto rxscan224_scan
+  rxscan224_loop:
+    ($P10) = rx221_cur."from"()
     inc $P10
-    set rx235_pos, $P10
-    ge rx235_pos, rx235_eos, rxscan238_done
-  rxscan238_scan:
-    set_addr $I10, rxscan238_loop
-    rx235_cur."!mark_push"(0, rx235_pos, $I10)
-  rxscan238_done:
+    set rx221_pos, $P10
+    ge rx221_pos, rx221_eos, rxscan224_done
+  rxscan224_scan:
+    set_addr $I10, rxscan224_loop
+    rx221_cur."!mark_push"(0, rx221_pos, $I10)
+  rxscan224_done:
 .annotate 'line', 84
   # rx literal  "\\n"
-    add $I11, rx235_pos, 2
-    gt $I11, rx235_eos, rx235_fail
-    sub $I11, rx235_pos, rx235_off
-    substr $S10, rx235_tgt, $I11, 2
-    ne $S10, "\\n", rx235_fail
-    add rx235_pos, 2
+    add $I11, rx221_pos, 2
+    gt $I11, rx221_eos, rx221_fail
+    sub $I11, rx221_pos, rx221_off
+    substr $S10, rx221_tgt, $I11, 2
+    ne $S10, "\\n", rx221_fail
+    add rx221_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx235_cur."!cursor_pos"(rx235_pos)
-    $P10 = rx235_cur."quotemod_check"("b")
-    unless $P10, rx235_fail
+    rx221_cur."!cursor_pos"(rx221_pos)
+    $P10 = rx221_cur."quotemod_check"("b")
+    unless $P10, rx221_fail
   # rx pass
-    rx235_cur."!cursor_pass"(rx235_pos, "quote_escape:sym<nl>")
-    rx235_cur."!cursor_debug"("PASS  ", "quote_escape:sym<nl>", " at pos=", rx235_pos)
-    .return (rx235_cur)
-  rx235_fail:
-.annotate 'line', 33
-    (rx235_rep, rx235_pos, $I10, $P10) = rx235_cur."!mark_fail"(0)
-    lt rx235_pos, -1, rx235_done
-    eq rx235_pos, -1, rx235_fail
+    rx221_cur."!cursor_pass"(rx221_pos, "quote_escape:sym<nl>")
+    rx221_cur."!cursor_debug"("PASS  ", "quote_escape:sym<nl>", " at pos=", rx221_pos)
+    .return (rx221_cur)
+  rx221_restart:
+.annotate 'line', 33
+    rx221_cur."!cursor_debug"("NEXT ", "quote_escape:sym<nl>")
+  rx221_fail:
+    (rx221_rep, rx221_pos, $I10, $P10) = rx221_cur."!mark_fail"(0)
+    lt rx221_pos, -1, rx221_done
+    eq rx221_pos, -1, rx221_fail
     jump $I10
-  rx235_done:
-    rx235_cur."!cursor_fail"()
-    rx235_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<nl>")
-    .return (rx235_cur)
+  rx221_done:
+    rx221_cur."!cursor_fail"()
+    rx221_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<nl>")
+    .return (rx221_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1279564387.65485") :method
 .annotate 'line', 33
-    new $P237, "ResizablePMCArray"
-    push $P237, "\\n"
-    .return ($P237)
+    new $P223, "ResizablePMCArray"
+    push $P223, "\\n"
+    .return ($P223)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<cr>"  :subid("77_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx240_tgt
-    .local int rx240_pos
-    .local int rx240_off
-    .local int rx240_eos
-    .local int rx240_rep
-    .local pmc rx240_cur
-    (rx240_cur, rx240_pos, rx240_tgt) = self."!cursor_start"()
-    rx240_cur."!cursor_debug"("START ", "quote_escape:sym<cr>")
-    .lex unicode:"$\x{a2}", rx240_cur
+    .local string rx226_tgt
+    .local int rx226_pos
+    .local int rx226_off
+    .local int rx226_eos
+    .local int rx226_rep
+    .local pmc rx226_cur
+    (rx226_cur, rx226_pos, rx226_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx226_cur
     .local pmc match
     .lex "$/", match
-    length rx240_eos, rx240_tgt
-    gt rx240_pos, rx240_eos, rx240_done
-    set rx240_off, 0
-    lt rx240_pos, 2, rx240_start
-    sub rx240_off, rx240_pos, 1
-    substr rx240_tgt, rx240_tgt, rx240_off
-  rx240_start:
+    length rx226_eos, rx226_tgt
+    gt rx226_pos, rx226_eos, rx226_done
+    set rx226_off, 0
+    lt rx226_pos, 2, rx226_start
+    sub rx226_off, rx226_pos, 1
+    substr rx226_tgt, rx226_tgt, rx226_off
+  rx226_start:
+    eq $I10, 1, rx226_restart
+    rx226_cur."!cursor_debug"("START ", "quote_escape:sym<cr>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan243_done
-    goto rxscan243_scan
-  rxscan243_loop:
-    ($P10) = rx240_cur."from"()
+    ne $I10, -1, rxscan229_done
+    goto rxscan229_scan
+  rxscan229_loop:
+    ($P10) = rx226_cur."from"()
     inc $P10
-    set rx240_pos, $P10
-    ge rx240_pos, rx240_eos, rxscan243_done
-  rxscan243_scan:
-    set_addr $I10, rxscan243_loop
-    rx240_cur."!mark_push"(0, rx240_pos, $I10)
-  rxscan243_done:
+    set rx226_pos, $P10
+    ge rx226_pos, rx226_eos, rxscan229_done
+  rxscan229_scan:
+    set_addr $I10, rxscan229_loop
+    rx226_cur."!mark_push"(0, rx226_pos, $I10)
+  rxscan229_done:
 .annotate 'line', 85
   # rx literal  "\\r"
-    add $I11, rx240_pos, 2
-    gt $I11, rx240_eos, rx240_fail
-    sub $I11, rx240_pos, rx240_off
-    substr $S10, rx240_tgt, $I11, 2
-    ne $S10, "\\r", rx240_fail
-    add rx240_pos, 2
+    add $I11, rx226_pos, 2
+    gt $I11, rx226_eos, rx226_fail
+    sub $I11, rx226_pos, rx226_off
+    substr $S10, rx226_tgt, $I11, 2
+    ne $S10, "\\r", rx226_fail
+    add rx226_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx240_cur."!cursor_pos"(rx240_pos)
-    $P10 = rx240_cur."quotemod_check"("b")
-    unless $P10, rx240_fail
+    rx226_cur."!cursor_pos"(rx226_pos)
+    $P10 = rx226_cur."quotemod_check"("b")
+    unless $P10, rx226_fail
   # rx pass
-    rx240_cur."!cursor_pass"(rx240_pos, "quote_escape:sym<cr>")
-    rx240_cur."!cursor_debug"("PASS  ", "quote_escape:sym<cr>", " at pos=", rx240_pos)
-    .return (rx240_cur)
-  rx240_fail:
-.annotate 'line', 33
-    (rx240_rep, rx240_pos, $I10, $P10) = rx240_cur."!mark_fail"(0)
-    lt rx240_pos, -1, rx240_done
-    eq rx240_pos, -1, rx240_fail
+    rx226_cur."!cursor_pass"(rx226_pos, "quote_escape:sym<cr>")
+    rx226_cur."!cursor_debug"("PASS  ", "quote_escape:sym<cr>", " at pos=", rx226_pos)
+    .return (rx226_cur)
+  rx226_restart:
+.annotate 'line', 33
+    rx226_cur."!cursor_debug"("NEXT ", "quote_escape:sym<cr>")
+  rx226_fail:
+    (rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0)
+    lt rx226_pos, -1, rx226_done
+    eq rx226_pos, -1, rx226_fail
     jump $I10
-  rx240_done:
-    rx240_cur."!cursor_fail"()
-    rx240_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<cr>")
-    .return (rx240_cur)
+  rx226_done:
+    rx226_cur."!cursor_fail"()
+    rx226_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<cr>")
+    .return (rx226_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1279564387.65485") :method
 .annotate 'line', 33
-    new $P242, "ResizablePMCArray"
-    push $P242, "\\r"
-    .return ($P242)
+    new $P228, "ResizablePMCArray"
+    push $P228, "\\r"
+    .return ($P228)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<tab>"  :subid("79_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx245_tgt
-    .local int rx245_pos
-    .local int rx245_off
-    .local int rx245_eos
-    .local int rx245_rep
-    .local pmc rx245_cur
-    (rx245_cur, rx245_pos, rx245_tgt) = self."!cursor_start"()
-    rx245_cur."!cursor_debug"("START ", "quote_escape:sym<tab>")
-    .lex unicode:"$\x{a2}", rx245_cur
+    .local string rx231_tgt
+    .local int rx231_pos
+    .local int rx231_off
+    .local int rx231_eos
+    .local int rx231_rep
+    .local pmc rx231_cur
+    (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx231_cur
     .local pmc match
     .lex "$/", match
-    length rx245_eos, rx245_tgt
-    gt rx245_pos, rx245_eos, rx245_done
-    set rx245_off, 0
-    lt rx245_pos, 2, rx245_start
-    sub rx245_off, rx245_pos, 1
-    substr rx245_tgt, rx245_tgt, rx245_off
-  rx245_start:
+    length rx231_eos, rx231_tgt
+    gt rx231_pos, rx231_eos, rx231_done
+    set rx231_off, 0
+    lt rx231_pos, 2, rx231_start
+    sub rx231_off, rx231_pos, 1
+    substr rx231_tgt, rx231_tgt, rx231_off
+  rx231_start:
+    eq $I10, 1, rx231_restart
+    rx231_cur."!cursor_debug"("START ", "quote_escape:sym<tab>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan248_done
-    goto rxscan248_scan
-  rxscan248_loop:
-    ($P10) = rx245_cur."from"()
+    ne $I10, -1, rxscan234_done
+    goto rxscan234_scan
+  rxscan234_loop:
+    ($P10) = rx231_cur."from"()
     inc $P10
-    set rx245_pos, $P10
-    ge rx245_pos, rx245_eos, rxscan248_done
-  rxscan248_scan:
-    set_addr $I10, rxscan248_loop
-    rx245_cur."!mark_push"(0, rx245_pos, $I10)
-  rxscan248_done:
+    set rx231_pos, $P10
+    ge rx231_pos, rx231_eos, rxscan234_done
+  rxscan234_scan:
+    set_addr $I10, rxscan234_loop
+    rx231_cur."!mark_push"(0, rx231_pos, $I10)
+  rxscan234_done:
 .annotate 'line', 86
   # rx literal  "\\t"
-    add $I11, rx245_pos, 2
-    gt $I11, rx245_eos, rx245_fail
-    sub $I11, rx245_pos, rx245_off
-    substr $S10, rx245_tgt, $I11, 2
-    ne $S10, "\\t", rx245_fail
-    add rx245_pos, 2
+    add $I11, rx231_pos, 2
+    gt $I11, rx231_eos, rx231_fail
+    sub $I11, rx231_pos, rx231_off
+    substr $S10, rx231_tgt, $I11, 2
+    ne $S10, "\\t", rx231_fail
+    add rx231_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx245_cur."!cursor_pos"(rx245_pos)
-    $P10 = rx245_cur."quotemod_check"("b")
-    unless $P10, rx245_fail
+    rx231_cur."!cursor_pos"(rx231_pos)
+    $P10 = rx231_cur."quotemod_check"("b")
+    unless $P10, rx231_fail
   # rx pass
-    rx245_cur."!cursor_pass"(rx245_pos, "quote_escape:sym<tab>")
-    rx245_cur."!cursor_debug"("PASS  ", "quote_escape:sym<tab>", " at pos=", rx245_pos)
-    .return (rx245_cur)
-  rx245_fail:
-.annotate 'line', 33
-    (rx245_rep, rx245_pos, $I10, $P10) = rx245_cur."!mark_fail"(0)
-    lt rx245_pos, -1, rx245_done
-    eq rx245_pos, -1, rx245_fail
+    rx231_cur."!cursor_pass"(rx231_pos, "quote_escape:sym<tab>")
+    rx231_cur."!cursor_debug"("PASS  ", "quote_escape:sym<tab>", " at pos=", rx231_pos)
+    .return (rx231_cur)
+  rx231_restart:
+.annotate 'line', 33
+    rx231_cur."!cursor_debug"("NEXT ", "quote_escape:sym<tab>")
+  rx231_fail:
+    (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
+    lt rx231_pos, -1, rx231_done
+    eq rx231_pos, -1, rx231_fail
     jump $I10
-  rx245_done:
-    rx245_cur."!cursor_fail"()
-    rx245_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<tab>")
-    .return (rx245_cur)
+  rx231_done:
+    rx231_cur."!cursor_fail"()
+    rx231_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<tab>")
+    .return (rx231_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1279564387.65485") :method
 .annotate 'line', 33
-    new $P247, "ResizablePMCArray"
-    push $P247, "\\t"
-    .return ($P247)
+    new $P233, "ResizablePMCArray"
+    push $P233, "\\t"
+    .return ($P233)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<ff>"  :subid("81_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx250_tgt
-    .local int rx250_pos
-    .local int rx250_off
-    .local int rx250_eos
-    .local int rx250_rep
-    .local pmc rx250_cur
-    (rx250_cur, rx250_pos, rx250_tgt) = self."!cursor_start"()
-    rx250_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
-    .lex unicode:"$\x{a2}", rx250_cur
+    .local string rx236_tgt
+    .local int rx236_pos
+    .local int rx236_off
+    .local int rx236_eos
+    .local int rx236_rep
+    .local pmc rx236_cur
+    (rx236_cur, rx236_pos, rx236_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx236_cur
     .local pmc match
     .lex "$/", match
-    length rx250_eos, rx250_tgt
-    gt rx250_pos, rx250_eos, rx250_done
-    set rx250_off, 0
-    lt rx250_pos, 2, rx250_start
-    sub rx250_off, rx250_pos, 1
-    substr rx250_tgt, rx250_tgt, rx250_off
-  rx250_start:
+    length rx236_eos, rx236_tgt
+    gt rx236_pos, rx236_eos, rx236_done
+    set rx236_off, 0
+    lt rx236_pos, 2, rx236_start
+    sub rx236_off, rx236_pos, 1
+    substr rx236_tgt, rx236_tgt, rx236_off
+  rx236_start:
+    eq $I10, 1, rx236_restart
+    rx236_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan253_done
-    goto rxscan253_scan
-  rxscan253_loop:
-    ($P10) = rx250_cur."from"()
+    ne $I10, -1, rxscan239_done
+    goto rxscan239_scan
+  rxscan239_loop:
+    ($P10) = rx236_cur."from"()
     inc $P10
-    set rx250_pos, $P10
-    ge rx250_pos, rx250_eos, rxscan253_done
-  rxscan253_scan:
-    set_addr $I10, rxscan253_loop
-    rx250_cur."!mark_push"(0, rx250_pos, $I10)
-  rxscan253_done:
+    set rx236_pos, $P10
+    ge rx236_pos, rx236_eos, rxscan239_done
+  rxscan239_scan:
+    set_addr $I10, rxscan239_loop
+    rx236_cur."!mark_push"(0, rx236_pos, $I10)
+  rxscan239_done:
 .annotate 'line', 87
   # rx literal  "\\f"
-    add $I11, rx250_pos, 2
-    gt $I11, rx250_eos, rx250_fail
-    sub $I11, rx250_pos, rx250_off
-    substr $S10, rx250_tgt, $I11, 2
-    ne $S10, "\\f", rx250_fail
-    add rx250_pos, 2
+    add $I11, rx236_pos, 2
+    gt $I11, rx236_eos, rx236_fail
+    sub $I11, rx236_pos, rx236_off
+    substr $S10, rx236_tgt, $I11, 2
+    ne $S10, "\\f", rx236_fail
+    add rx236_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx250_cur."!cursor_pos"(rx250_pos)
-    $P10 = rx250_cur."quotemod_check"("b")
-    unless $P10, rx250_fail
+    rx236_cur."!cursor_pos"(rx236_pos)
+    $P10 = rx236_cur."quotemod_check"("b")
+    unless $P10, rx236_fail
   # rx pass
-    rx250_cur."!cursor_pass"(rx250_pos, "quote_escape:sym<ff>")
-    rx250_cur."!cursor_debug"("PASS  ", "quote_escape:sym<ff>", " at pos=", rx250_pos)
-    .return (rx250_cur)
-  rx250_fail:
-.annotate 'line', 33
-    (rx250_rep, rx250_pos, $I10, $P10) = rx250_cur."!mark_fail"(0)
-    lt rx250_pos, -1, rx250_done
-    eq rx250_pos, -1, rx250_fail
+    rx236_cur."!cursor_pass"(rx236_pos, "quote_escape:sym<ff>")
+    rx236_cur."!cursor_debug"("PASS  ", "quote_escape:sym<ff>", " at pos=", rx236_pos)
+    .return (rx236_cur)
+  rx236_restart:
+.annotate 'line', 33
+    rx236_cur."!cursor_debug"("NEXT ", "quote_escape:sym<ff>")
+  rx236_fail:
+    (rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0)
+    lt rx236_pos, -1, rx236_done
+    eq rx236_pos, -1, rx236_fail
     jump $I10
-  rx250_done:
-    rx250_cur."!cursor_fail"()
-    rx250_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<ff>")
-    .return (rx250_cur)
+  rx236_done:
+    rx236_cur."!cursor_fail"()
+    rx236_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<ff>")
+    .return (rx236_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1279564387.65485") :method
 .annotate 'line', 33
-    new $P252, "ResizablePMCArray"
-    push $P252, "\\f"
-    .return ($P252)
+    new $P238, "ResizablePMCArray"
+    push $P238, "\\f"
+    .return ($P238)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("83_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<esc>"  :subid("83_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx255_tgt
-    .local int rx255_pos
-    .local int rx255_off
-    .local int rx255_eos
-    .local int rx255_rep
-    .local pmc rx255_cur
-    (rx255_cur, rx255_pos, rx255_tgt) = self."!cursor_start"()
-    rx255_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
-    .lex unicode:"$\x{a2}", rx255_cur
+    .local string rx241_tgt
+    .local int rx241_pos
+    .local int rx241_off
+    .local int rx241_eos
+    .local int rx241_rep
+    .local pmc rx241_cur
+    (rx241_cur, rx241_pos, rx241_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx241_cur
     .local pmc match
     .lex "$/", match
-    length rx255_eos, rx255_tgt
-    gt rx255_pos, rx255_eos, rx255_done
-    set rx255_off, 0
-    lt rx255_pos, 2, rx255_start
-    sub rx255_off, rx255_pos, 1
-    substr rx255_tgt, rx255_tgt, rx255_off
-  rx255_start:
+    length rx241_eos, rx241_tgt
+    gt rx241_pos, rx241_eos, rx241_done
+    set rx241_off, 0
+    lt rx241_pos, 2, rx241_start
+    sub rx241_off, rx241_pos, 1
+    substr rx241_tgt, rx241_tgt, rx241_off
+  rx241_start:
+    eq $I10, 1, rx241_restart
+    rx241_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan258_done
-    goto rxscan258_scan
-  rxscan258_loop:
-    ($P10) = rx255_cur."from"()
+    ne $I10, -1, rxscan244_done
+    goto rxscan244_scan
+  rxscan244_loop:
+    ($P10) = rx241_cur."from"()
     inc $P10
-    set rx255_pos, $P10
-    ge rx255_pos, rx255_eos, rxscan258_done
-  rxscan258_scan:
-    set_addr $I10, rxscan258_loop
-    rx255_cur."!mark_push"(0, rx255_pos, $I10)
-  rxscan258_done:
+    set rx241_pos, $P10
+    ge rx241_pos, rx241_eos, rxscan244_done
+  rxscan244_scan:
+    set_addr $I10, rxscan244_loop
+    rx241_cur."!mark_push"(0, rx241_pos, $I10)
+  rxscan244_done:
 .annotate 'line', 88
   # rx literal  "\\e"
-    add $I11, rx255_pos, 2
-    gt $I11, rx255_eos, rx255_fail
-    sub $I11, rx255_pos, rx255_off
-    substr $S10, rx255_tgt, $I11, 2
-    ne $S10, "\\e", rx255_fail
-    add rx255_pos, 2
+    add $I11, rx241_pos, 2
+    gt $I11, rx241_eos, rx241_fail
+    sub $I11, rx241_pos, rx241_off
+    substr $S10, rx241_tgt, $I11, 2
+    ne $S10, "\\e", rx241_fail
+    add rx241_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx255_cur."!cursor_pos"(rx255_pos)
-    $P10 = rx255_cur."quotemod_check"("b")
-    unless $P10, rx255_fail
+    rx241_cur."!cursor_pos"(rx241_pos)
+    $P10 = rx241_cur."quotemod_check"("b")
+    unless $P10, rx241_fail
   # rx pass
-    rx255_cur."!cursor_pass"(rx255_pos, "quote_escape:sym<esc>")
-    rx255_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx255_pos)
-    .return (rx255_cur)
-  rx255_fail:
-.annotate 'line', 33
-    (rx255_rep, rx255_pos, $I10, $P10) = rx255_cur."!mark_fail"(0)
-    lt rx255_pos, -1, rx255_done
-    eq rx255_pos, -1, rx255_fail
+    rx241_cur."!cursor_pass"(rx241_pos, "quote_escape:sym<esc>")
+    rx241_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx241_pos)
+    .return (rx241_cur)
+  rx241_restart:
+.annotate 'line', 33
+    rx241_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+  rx241_fail:
+    (rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0)
+    lt rx241_pos, -1, rx241_done
+    eq rx241_pos, -1, rx241_fail
     jump $I10
-  rx255_done:
-    rx255_cur."!cursor_fail"()
-    rx255_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
-    .return (rx255_cur)
+  rx241_done:
+    rx241_cur."!cursor_fail"()
+    rx241_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
+    .return (rx241_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1279564387.65485") :method
 .annotate 'line', 33
-    new $P257, "ResizablePMCArray"
-    push $P257, "\\e"
-    .return ($P257)
+    new $P243, "ResizablePMCArray"
+    push $P243, "\\e"
+    .return ($P243)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("85_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<hex>"  :subid("85_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx260_tgt
-    .local int rx260_pos
-    .local int rx260_off
-    .local int rx260_eos
-    .local int rx260_rep
-    .local pmc rx260_cur
-    (rx260_cur, rx260_pos, rx260_tgt) = self."!cursor_start"()
-    rx260_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
-    .lex unicode:"$\x{a2}", rx260_cur
+    .local string rx246_tgt
+    .local int rx246_pos
+    .local int rx246_off
+    .local int rx246_eos
+    .local int rx246_rep
+    .local pmc rx246_cur
+    (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx246_cur
     .local pmc match
     .lex "$/", match
-    length rx260_eos, rx260_tgt
-    gt rx260_pos, rx260_eos, rx260_done
-    set rx260_off, 0
-    lt rx260_pos, 2, rx260_start
-    sub rx260_off, rx260_pos, 1
-    substr rx260_tgt, rx260_tgt, rx260_off
-  rx260_start:
+    length rx246_eos, rx246_tgt
+    gt rx246_pos, rx246_eos, rx246_done
+    set rx246_off, 0
+    lt rx246_pos, 2, rx246_start
+    sub rx246_off, rx246_pos, 1
+    substr rx246_tgt, rx246_tgt, rx246_off
+  rx246_start:
+    eq $I10, 1, rx246_restart
+    rx246_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan263_done
-    goto rxscan263_scan
-  rxscan263_loop:
-    ($P10) = rx260_cur."from"()
+    ne $I10, -1, rxscan249_done
+    goto rxscan249_scan
+  rxscan249_loop:
+    ($P10) = rx246_cur."from"()
     inc $P10
-    set rx260_pos, $P10
-    ge rx260_pos, rx260_eos, rxscan263_done
-  rxscan263_scan:
-    set_addr $I10, rxscan263_loop
-    rx260_cur."!mark_push"(0, rx260_pos, $I10)
-  rxscan263_done:
+    set rx246_pos, $P10
+    ge rx246_pos, rx246_eos, rxscan249_done
+  rxscan249_scan:
+    set_addr $I10, rxscan249_loop
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
+  rxscan249_done:
 .annotate 'line', 90
   # rx literal  unicode:"\\x"
-    add $I11, rx260_pos, 2
-    gt $I11, rx260_eos, rx260_fail
-    sub $I11, rx260_pos, rx260_off
-    substr $S10, rx260_tgt, $I11, 2
-    ne $S10, unicode:"\\x", rx260_fail
-    add rx260_pos, 2
+    add $I11, rx246_pos, 2
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 2
+    ne $S10, unicode:"\\x", rx246_fail
+    add rx246_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx260_cur."!cursor_pos"(rx260_pos)
-    $P10 = rx260_cur."quotemod_check"("b")
-    unless $P10, rx260_fail
-  alt264_0:
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."quotemod_check"("b")
+    unless $P10, rx246_fail
+  alt250_0:
 .annotate 'line', 91
-    set_addr $I10, alt264_1
-    rx260_cur."!mark_push"(0, rx260_pos, $I10)
+    set_addr $I10, alt250_1
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
   # rx subrule "hexint" subtype=capture negate=
-    rx260_cur."!cursor_pos"(rx260_pos)
-    $P10 = rx260_cur."hexint"()
-    unless $P10, rx260_fail
-    rx260_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."hexint"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexint")
-    rx260_pos = $P10."pos"()
-    goto alt264_end
-  alt264_1:
+    rx246_pos = $P10."pos"()
+    goto alt250_end
+  alt250_1:
   # rx literal  "["
-    add $I11, rx260_pos, 1
-    gt $I11, rx260_eos, rx260_fail
-    sub $I11, rx260_pos, rx260_off
-    substr $S10, rx260_tgt, $I11, 1
-    ne $S10, "[", rx260_fail
-    add rx260_pos, 1
+    add $I11, rx246_pos, 1
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 1
+    ne $S10, "[", rx246_fail
+    add rx246_pos, 1
   # rx subrule "hexints" subtype=capture negate=
-    rx260_cur."!cursor_pos"(rx260_pos)
-    $P10 = rx260_cur."hexints"()
-    unless $P10, rx260_fail
-    rx260_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."hexints"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexints")
-    rx260_pos = $P10."pos"()
+    rx246_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx260_pos, 1
-    gt $I11, rx260_eos, rx260_fail
-    sub $I11, rx260_pos, rx260_off
-    substr $S10, rx260_tgt, $I11, 1
-    ne $S10, "]", rx260_fail
-    add rx260_pos, 1
-  alt264_end:
+    add $I11, rx246_pos, 1
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 1
+    ne $S10, "]", rx246_fail
+    add rx246_pos, 1
+  alt250_end:
 .annotate 'line', 89
   # rx pass
-    rx260_cur."!cursor_pass"(rx260_pos, "quote_escape:sym<hex>")
-    rx260_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx260_pos)
-    .return (rx260_cur)
-  rx260_fail:
-.annotate 'line', 33
-    (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
-    lt rx260_pos, -1, rx260_done
-    eq rx260_pos, -1, rx260_fail
+    rx246_cur."!cursor_pass"(rx246_pos, "quote_escape:sym<hex>")
+    rx246_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx246_pos)
+    .return (rx246_cur)
+  rx246_restart:
+.annotate 'line', 33
+    rx246_cur."!cursor_debug"("NEXT ", "quote_escape:sym<hex>")
+  rx246_fail:
+    (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
+    lt rx246_pos, -1, rx246_done
+    eq rx246_pos, -1, rx246_fail
     jump $I10
-  rx260_done:
-    rx260_cur."!cursor_fail"()
-    rx260_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
-    .return (rx260_cur)
+  rx246_done:
+    rx246_cur."!cursor_fail"()
+    rx246_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
+    .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1279564387.65485") :method
 .annotate 'line', 33
-    new $P262, "ResizablePMCArray"
-    push $P262, unicode:"\\x"
-    .return ($P262)
+    new $P248, "ResizablePMCArray"
+    push $P248, unicode:"\\x"
+    .return ($P248)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("87_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<oct>"  :subid("87_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx266_tgt
-    .local int rx266_pos
-    .local int rx266_off
-    .local int rx266_eos
-    .local int rx266_rep
-    .local pmc rx266_cur
-    (rx266_cur, rx266_pos, rx266_tgt) = self."!cursor_start"()
-    rx266_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
-    .lex unicode:"$\x{a2}", rx266_cur
+    .local string rx252_tgt
+    .local int rx252_pos
+    .local int rx252_off
+    .local int rx252_eos
+    .local int rx252_rep
+    .local pmc rx252_cur
+    (rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx252_cur
     .local pmc match
     .lex "$/", match
-    length rx266_eos, rx266_tgt
-    gt rx266_pos, rx266_eos, rx266_done
-    set rx266_off, 0
-    lt rx266_pos, 2, rx266_start
-    sub rx266_off, rx266_pos, 1
-    substr rx266_tgt, rx266_tgt, rx266_off
-  rx266_start:
+    length rx252_eos, rx252_tgt
+    gt rx252_pos, rx252_eos, rx252_done
+    set rx252_off, 0
+    lt rx252_pos, 2, rx252_start
+    sub rx252_off, rx252_pos, 1
+    substr rx252_tgt, rx252_tgt, rx252_off
+  rx252_start:
+    eq $I10, 1, rx252_restart
+    rx252_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan269_done
-    goto rxscan269_scan
-  rxscan269_loop:
-    ($P10) = rx266_cur."from"()
+    ne $I10, -1, rxscan255_done
+    goto rxscan255_scan
+  rxscan255_loop:
+    ($P10) = rx252_cur."from"()
     inc $P10
-    set rx266_pos, $P10
-    ge rx266_pos, rx266_eos, rxscan269_done
-  rxscan269_scan:
-    set_addr $I10, rxscan269_loop
-    rx266_cur."!mark_push"(0, rx266_pos, $I10)
-  rxscan269_done:
+    set rx252_pos, $P10
+    ge rx252_pos, rx252_eos, rxscan255_done
+  rxscan255_scan:
+    set_addr $I10, rxscan255_loop
+    rx252_cur."!mark_push"(0, rx252_pos, $I10)
+  rxscan255_done:
 .annotate 'line', 94
   # rx literal  "\\o"
-    add $I11, rx266_pos, 2
-    gt $I11, rx266_eos, rx266_fail
-    sub $I11, rx266_pos, rx266_off
-    substr $S10, rx266_tgt, $I11, 2
-    ne $S10, "\\o", rx266_fail
-    add rx266_pos, 2
+    add $I11, rx252_pos, 2
+    gt $I11, rx252_eos, rx252_fail
+    sub $I11, rx252_pos, rx252_off
+    substr $S10, rx252_tgt, $I11, 2
+    ne $S10, "\\o", rx252_fail
+    add rx252_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx266_cur."!cursor_pos"(rx266_pos)
-    $P10 = rx266_cur."quotemod_check"("b")
-    unless $P10, rx266_fail
-  alt270_0:
+    rx252_cur."!cursor_pos"(rx252_pos)
+    $P10 = rx252_cur."quotemod_check"("b")
+    unless $P10, rx252_fail
+  alt256_0:
 .annotate 'line', 95
-    set_addr $I10, alt270_1
-    rx266_cur."!mark_push"(0, rx266_pos, $I10)
+    set_addr $I10, alt256_1
+    rx252_cur."!mark_push"(0, rx252_pos, $I10)
   # rx subrule "octint" subtype=capture negate=
-    rx266_cur."!cursor_pos"(rx266_pos)
-    $P10 = rx266_cur."octint"()
-    unless $P10, rx266_fail
-    rx266_cur."!mark_push"(0, -1, 0, $P10)
+    rx252_cur."!cursor_pos"(rx252_pos)
+    $P10 = rx252_cur."octint"()
+    unless $P10, rx252_fail
+    rx252_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octint")
-    rx266_pos = $P10."pos"()
-    goto alt270_end
-  alt270_1:
+    rx252_pos = $P10."pos"()
+    goto alt256_end
+  alt256_1:
   # rx literal  "["
-    add $I11, rx266_pos, 1
-    gt $I11, rx266_eos, rx266_fail
-    sub $I11, rx266_pos, rx266_off
-    substr $S10, rx266_tgt, $I11, 1
-    ne $S10, "[", rx266_fail
-    add rx266_pos, 1
+    add $I11, rx252_pos, 1
+    gt $I11, rx252_eos, rx252_fail
+    sub $I11, rx252_pos, rx252_off
+    substr $S10, rx252_tgt, $I11, 1
+    ne $S10, "[", rx252_fail
+    add rx252_pos, 1
   # rx subrule "octints" subtype=capture negate=
-    rx266_cur."!cursor_pos"(rx266_pos)
-    $P10 = rx266_cur."octints"()
-    unless $P10, rx266_fail
-    rx266_cur."!mark_push"(0, -1, 0, $P10)
+    rx252_cur."!cursor_pos"(rx252_pos)
+    $P10 = rx252_cur."octints"()
+    unless $P10, rx252_fail
+    rx252_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octints")
-    rx266_pos = $P10."pos"()
+    rx252_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx266_pos, 1
-    gt $I11, rx266_eos, rx266_fail
-    sub $I11, rx266_pos, rx266_off
-    substr $S10, rx266_tgt, $I11, 1
-    ne $S10, "]", rx266_fail
-    add rx266_pos, 1
-  alt270_end:
+    add $I11, rx252_pos, 1
+    gt $I11, rx252_eos, rx252_fail
+    sub $I11, rx252_pos, rx252_off
+    substr $S10, rx252_tgt, $I11, 1
+    ne $S10, "]", rx252_fail
+    add rx252_pos, 1
+  alt256_end:
 .annotate 'line', 93
   # rx pass
-    rx266_cur."!cursor_pass"(rx266_pos, "quote_escape:sym<oct>")
-    rx266_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx266_pos)
-    .return (rx266_cur)
-  rx266_fail:
-.annotate 'line', 33
-    (rx266_rep, rx266_pos, $I10, $P10) = rx266_cur."!mark_fail"(0)
-    lt rx266_pos, -1, rx266_done
-    eq rx266_pos, -1, rx266_fail
+    rx252_cur."!cursor_pass"(rx252_pos, "quote_escape:sym<oct>")
+    rx252_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx252_pos)
+    .return (rx252_cur)
+  rx252_restart:
+.annotate 'line', 33
+    rx252_cur."!cursor_debug"("NEXT ", "quote_escape:sym<oct>")
+  rx252_fail:
+    (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0)
+    lt rx252_pos, -1, rx252_done
+    eq rx252_pos, -1, rx252_fail
     jump $I10
-  rx266_done:
-    rx266_cur."!cursor_fail"()
-    rx266_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
-    .return (rx266_cur)
+  rx252_done:
+    rx252_cur."!cursor_fail"()
+    rx252_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
+    .return (rx252_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1279564387.65485") :method
 .annotate 'line', 33
-    new $P268, "ResizablePMCArray"
-    push $P268, "\\o"
-    .return ($P268)
+    new $P254, "ResizablePMCArray"
+    push $P254, "\\o"
+    .return ($P254)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("89_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<chr>"  :subid("89_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx272_tgt
-    .local int rx272_pos
-    .local int rx272_off
-    .local int rx272_eos
-    .local int rx272_rep
-    .local pmc rx272_cur
-    (rx272_cur, rx272_pos, rx272_tgt) = self."!cursor_start"()
-    rx272_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
-    .lex unicode:"$\x{a2}", rx272_cur
+    .local string rx258_tgt
+    .local int rx258_pos
+    .local int rx258_off
+    .local int rx258_eos
+    .local int rx258_rep
+    .local pmc rx258_cur
+    (rx258_cur, rx258_pos, rx258_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx258_cur
     .local pmc match
     .lex "$/", match
-    length rx272_eos, rx272_tgt
-    gt rx272_pos, rx272_eos, rx272_done
-    set rx272_off, 0
-    lt rx272_pos, 2, rx272_start
-    sub rx272_off, rx272_pos, 1
-    substr rx272_tgt, rx272_tgt, rx272_off
-  rx272_start:
+    length rx258_eos, rx258_tgt
+    gt rx258_pos, rx258_eos, rx258_done
+    set rx258_off, 0
+    lt rx258_pos, 2, rx258_start
+    sub rx258_off, rx258_pos, 1
+    substr rx258_tgt, rx258_tgt, rx258_off
+  rx258_start:
+    eq $I10, 1, rx258_restart
+    rx258_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan275_done
-    goto rxscan275_scan
-  rxscan275_loop:
-    ($P10) = rx272_cur."from"()
+    ne $I10, -1, rxscan261_done
+    goto rxscan261_scan
+  rxscan261_loop:
+    ($P10) = rx258_cur."from"()
     inc $P10
-    set rx272_pos, $P10
-    ge rx272_pos, rx272_eos, rxscan275_done
-  rxscan275_scan:
-    set_addr $I10, rxscan275_loop
-    rx272_cur."!mark_push"(0, rx272_pos, $I10)
-  rxscan275_done:
+    set rx258_pos, $P10
+    ge rx258_pos, rx258_eos, rxscan261_done
+  rxscan261_scan:
+    set_addr $I10, rxscan261_loop
+    rx258_cur."!mark_push"(0, rx258_pos, $I10)
+  rxscan261_done:
 .annotate 'line', 97
   # rx literal  "\\c"
-    add $I11, rx272_pos, 2
-    gt $I11, rx272_eos, rx272_fail
-    sub $I11, rx272_pos, rx272_off
-    substr $S10, rx272_tgt, $I11, 2
-    ne $S10, "\\c", rx272_fail
-    add rx272_pos, 2
+    add $I11, rx258_pos, 2
+    gt $I11, rx258_eos, rx258_fail
+    sub $I11, rx258_pos, rx258_off
+    substr $S10, rx258_tgt, $I11, 2
+    ne $S10, "\\c", rx258_fail
+    add rx258_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx272_cur."!cursor_pos"(rx272_pos)
-    $P10 = rx272_cur."quotemod_check"("b")
-    unless $P10, rx272_fail
+    rx258_cur."!cursor_pos"(rx258_pos)
+    $P10 = rx258_cur."quotemod_check"("b")
+    unless $P10, rx258_fail
   # rx subrule "charspec" subtype=capture negate=
-    rx272_cur."!cursor_pos"(rx272_pos)
-    $P10 = rx272_cur."charspec"()
-    unless $P10, rx272_fail
-    rx272_cur."!mark_push"(0, -1, 0, $P10)
+    rx258_cur."!cursor_pos"(rx258_pos)
+    $P10 = rx258_cur."charspec"()
+    unless $P10, rx258_fail
+    rx258_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charspec")
-    rx272_pos = $P10."pos"()
+    rx258_pos = $P10."pos"()
   # rx pass
-    rx272_cur."!cursor_pass"(rx272_pos, "quote_escape:sym<chr>")
-    rx272_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx272_pos)
-    .return (rx272_cur)
-  rx272_fail:
-.annotate 'line', 33
-    (rx272_rep, rx272_pos, $I10, $P10) = rx272_cur."!mark_fail"(0)
-    lt rx272_pos, -1, rx272_done
-    eq rx272_pos, -1, rx272_fail
+    rx258_cur."!cursor_pass"(rx258_pos, "quote_escape:sym<chr>")
+    rx258_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx258_pos)
+    .return (rx258_cur)
+  rx258_restart:
+.annotate 'line', 33
+    rx258_cur."!cursor_debug"("NEXT ", "quote_escape:sym<chr>")
+  rx258_fail:
+    (rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0)
+    lt rx258_pos, -1, rx258_done
+    eq rx258_pos, -1, rx258_fail
     jump $I10
-  rx272_done:
-    rx272_cur."!cursor_fail"()
-    rx272_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
-    .return (rx272_cur)
+  rx258_done:
+    rx258_cur."!cursor_fail"()
+    rx258_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
+    .return (rx258_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1279564387.65485") :method
 .annotate 'line', 33
-    new $P274, "ResizablePMCArray"
-    push $P274, "\\c"
-    .return ($P274)
+    new $P260, "ResizablePMCArray"
+    push $P260, "\\c"
+    .return ($P260)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("91_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<0>"  :subid("91_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx277_tgt
-    .local int rx277_pos
-    .local int rx277_off
-    .local int rx277_eos
-    .local int rx277_rep
-    .local pmc rx277_cur
-    (rx277_cur, rx277_pos, rx277_tgt) = self."!cursor_start"()
-    rx277_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
-    .lex unicode:"$\x{a2}", rx277_cur
+    .local string rx263_tgt
+    .local int rx263_pos
+    .local int rx263_off
+    .local int rx263_eos
+    .local int rx263_rep
+    .local pmc rx263_cur
+    (rx263_cur, rx263_pos, rx263_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx263_cur
     .local pmc match
     .lex "$/", match
-    length rx277_eos, rx277_tgt
-    gt rx277_pos, rx277_eos, rx277_done
-    set rx277_off, 0
-    lt rx277_pos, 2, rx277_start
-    sub rx277_off, rx277_pos, 1
-    substr rx277_tgt, rx277_tgt, rx277_off
-  rx277_start:
+    length rx263_eos, rx263_tgt
+    gt rx263_pos, rx263_eos, rx263_done
+    set rx263_off, 0
+    lt rx263_pos, 2, rx263_start
+    sub rx263_off, rx263_pos, 1
+    substr rx263_tgt, rx263_tgt, rx263_off
+  rx263_start:
+    eq $I10, 1, rx263_restart
+    rx263_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan280_done
-    goto rxscan280_scan
-  rxscan280_loop:
-    ($P10) = rx277_cur."from"()
+    ne $I10, -1, rxscan266_done
+    goto rxscan266_scan
+  rxscan266_loop:
+    ($P10) = rx263_cur."from"()
     inc $P10
-    set rx277_pos, $P10
-    ge rx277_pos, rx277_eos, rxscan280_done
-  rxscan280_scan:
-    set_addr $I10, rxscan280_loop
-    rx277_cur."!mark_push"(0, rx277_pos, $I10)
-  rxscan280_done:
+    set rx263_pos, $P10
+    ge rx263_pos, rx263_eos, rxscan266_done
+  rxscan266_scan:
+    set_addr $I10, rxscan266_loop
+    rx263_cur."!mark_push"(0, rx263_pos, $I10)
+  rxscan266_done:
 .annotate 'line', 98
   # rx literal  "\\"
-    add $I11, rx277_pos, 1
-    gt $I11, rx277_eos, rx277_fail
-    sub $I11, rx277_pos, rx277_off
-    substr $S10, rx277_tgt, $I11, 1
-    ne $S10, "\\", rx277_fail
-    add rx277_pos, 1
+    add $I11, rx263_pos, 1
+    gt $I11, rx263_eos, rx263_fail
+    sub $I11, rx263_pos, rx263_off
+    substr $S10, rx263_tgt, $I11, 1
+    ne $S10, "\\", rx263_fail
+    add rx263_pos, 1
   # rx subcapture "sym"
-    set_addr $I10, rxcap_281_fail
-    rx277_cur."!mark_push"(0, rx277_pos, $I10)
+    set_addr $I10, rxcap_267_fail
+    rx263_cur."!mark_push"(0, rx263_pos, $I10)
   # rx literal  "0"
-    add $I11, rx277_pos, 1
-    gt $I11, rx277_eos, rx277_fail
-    sub $I11, rx277_pos, rx277_off
-    substr $S10, rx277_tgt, $I11, 1
-    ne $S10, "0", rx277_fail
-    add rx277_pos, 1
-    set_addr $I10, rxcap_281_fail
-    ($I12, $I11) = rx277_cur."!mark_peek"($I10)
-    rx277_cur."!cursor_pos"($I11)
-    ($P10) = rx277_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx277_pos, "")
-    rx277_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx263_pos, 1
+    gt $I11, rx263_eos, rx263_fail
+    sub $I11, rx263_pos, rx263_off
+    substr $S10, rx263_tgt, $I11, 1
+    ne $S10, "0", rx263_fail
+    add rx263_pos, 1
+    set_addr $I10, rxcap_267_fail
+    ($I12, $I11) = rx263_cur."!mark_peek"($I10)
+    rx263_cur."!cursor_pos"($I11)
+    ($P10) = rx263_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx263_pos, "")
+    rx263_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_281_done
-  rxcap_281_fail:
-    goto rx277_fail
-  rxcap_281_done:
+    goto rxcap_267_done
+  rxcap_267_fail:
+    goto rx263_fail
+  rxcap_267_done:
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx277_cur."!cursor_pos"(rx277_pos)
-    $P10 = rx277_cur."quotemod_check"("b")
-    unless $P10, rx277_fail
+    rx263_cur."!cursor_pos"(rx263_pos)
+    $P10 = rx263_cur."quotemod_check"("b")
+    unless $P10, rx263_fail
   # rx pass
-    rx277_cur."!cursor_pass"(rx277_pos, "quote_escape:sym<0>")
-    rx277_cur."!cursor_debug"("PASS  ", "quote_escape:sym<0>", " at pos=", rx277_pos)
-    .return (rx277_cur)
-  rx277_fail:
-.annotate 'line', 33
-    (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0)
-    lt rx277_pos, -1, rx277_done
-    eq rx277_pos, -1, rx277_fail
+    rx263_cur."!cursor_pass"(rx263_pos, "quote_escape:sym<0>")
+    rx263_cur."!cursor_debug"("PASS  ", "quote_escape:sym<0>", " at pos=", rx263_pos)
+    .return (rx263_cur)
+  rx263_restart:
+.annotate 'line', 33
+    rx263_cur."!cursor_debug"("NEXT ", "quote_escape:sym<0>")
+  rx263_fail:
+    (rx263_rep, rx263_pos, $I10, $P10) = rx263_cur."!mark_fail"(0)
+    lt rx263_pos, -1, rx263_done
+    eq rx263_pos, -1, rx263_fail
     jump $I10
-  rx277_done:
-    rx277_cur."!cursor_fail"()
-    rx277_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<0>")
-    .return (rx277_cur)
+  rx263_done:
+    rx263_cur."!cursor_fail"()
+    rx263_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<0>")
+    .return (rx263_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1279564387.65485") :method
 .annotate 'line', 33
-    new $P279, "ResizablePMCArray"
-    push $P279, "\\0"
-    .return ($P279)
+    new $P265, "ResizablePMCArray"
+    push $P265, "\\0"
+    .return ($P265)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("93_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "quote_escape:sym<misc>"  :subid("93_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .const 'Sub' $P302 = "97_1278500527.62277" 
-    capture_lex $P302
-    .const 'Sub' $P295 = "96_1278500527.62277" 
-    capture_lex $P295
-    .const 'Sub' $P290 = "95_1278500527.62277" 
-    capture_lex $P290
-    .local string rx283_tgt
-    .local int rx283_pos
-    .local int rx283_off
-    .local int rx283_eos
-    .local int rx283_rep
-    .local pmc rx283_cur
-    (rx283_cur, rx283_pos, rx283_tgt) = self."!cursor_start"()
-    rx283_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
-    .lex unicode:"$\x{a2}", rx283_cur
+    .const 'Sub' $P288 = "97_1279564387.65485" 
+    capture_lex $P288
+    .const 'Sub' $P281 = "96_1279564387.65485" 
+    capture_lex $P281
+    .const 'Sub' $P276 = "95_1279564387.65485" 
+    capture_lex $P276
+    .local string rx269_tgt
+    .local int rx269_pos
+    .local int rx269_off
+    .local int rx269_eos
+    .local int rx269_rep
+    .local pmc rx269_cur
+    (rx269_cur, rx269_pos, rx269_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx269_cur
     .local pmc match
     .lex "$/", match
-    length rx283_eos, rx283_tgt
-    gt rx283_pos, rx283_eos, rx283_done
-    set rx283_off, 0
-    lt rx283_pos, 2, rx283_start
-    sub rx283_off, rx283_pos, 1
-    substr rx283_tgt, rx283_tgt, rx283_off
-  rx283_start:
+    length rx269_eos, rx269_tgt
+    gt rx269_pos, rx269_eos, rx269_done
+    set rx269_off, 0
+    lt rx269_pos, 2, rx269_start
+    sub rx269_off, rx269_pos, 1
+    substr rx269_tgt, rx269_tgt, rx269_off
+  rx269_start:
+    eq $I10, 1, rx269_restart
+    rx269_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan286_done
-    goto rxscan286_scan
-  rxscan286_loop:
-    ($P10) = rx283_cur."from"()
+    ne $I10, -1, rxscan272_done
+    goto rxscan272_scan
+  rxscan272_loop:
+    ($P10) = rx269_cur."from"()
     inc $P10
-    set rx283_pos, $P10
-    ge rx283_pos, rx283_eos, rxscan286_done
-  rxscan286_scan:
-    set_addr $I10, rxscan286_loop
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
-  rxscan286_done:
+    set rx269_pos, $P10
+    ge rx269_pos, rx269_eos, rxscan272_done
+  rxscan272_scan:
+    set_addr $I10, rxscan272_loop
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
+  rxscan272_done:
 .annotate 'line', 100
-    rx283_cur."!cursor_pos"(rx283_pos)
-    find_lex $P287, unicode:"$\x{a2}"
-    $P288 = $P287."MATCH"()
-    store_lex "$/", $P288
-    .const 'Sub' $P290 = "95_1278500527.62277" 
-    capture_lex $P290
-    $P291 = $P290()
+    rx269_cur."!cursor_pos"(rx269_pos)
+    find_lex $P273, unicode:"$\x{a2}"
+    $P274 = $P273."MATCH"()
+    store_lex "$/", $P274
+    .const 'Sub' $P276 = "95_1279564387.65485" 
+    capture_lex $P276
+    $P277 = $P276()
   # rx literal  "\\"
-    add $I11, rx283_pos, 1
-    gt $I11, rx283_eos, rx283_fail
-    sub $I11, rx283_pos, rx283_off
-    substr $S10, rx283_tgt, $I11, 1
-    ne $S10, "\\", rx283_fail
-    add rx283_pos, 1
-  alt292_0:
+    add $I11, rx269_pos, 1
+    gt $I11, rx269_eos, rx269_fail
+    sub $I11, rx269_pos, rx269_off
+    substr $S10, rx269_tgt, $I11, 1
+    ne $S10, "\\", rx269_fail
+    add rx269_pos, 1
+  alt278_0:
 .annotate 'line', 101
-    set_addr $I10, alt292_1
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+    set_addr $I10, alt278_1
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
 .annotate 'line', 102
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx283_cur."!cursor_pos"(rx283_pos)
-    $P10 = rx283_cur."quotemod_check"("b")
-    unless $P10, rx283_fail
-  alt293_0:
+    rx269_cur."!cursor_pos"(rx269_pos)
+    $P10 = rx269_cur."quotemod_check"("b")
+    unless $P10, rx269_fail
+  alt279_0:
 .annotate 'line', 103
-    set_addr $I10, alt293_1
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+    set_addr $I10, alt279_1
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
 .annotate 'line', 104
-  # rx subrule $P295 subtype=capture negate=
-    rx283_cur."!cursor_pos"(rx283_pos)
-    .const 'Sub' $P295 = "96_1278500527.62277" 
-    capture_lex $P295
-    $P10 = rx283_cur.$P295()
-    unless $P10, rx283_fail
-    rx283_cur."!mark_push"(0, -1, 0, $P10)
+  # rx subrule $P281 subtype=capture negate=
+    rx269_cur."!cursor_pos"(rx269_pos)
+    .const 'Sub' $P281 = "96_1279564387.65485" 
+    capture_lex $P281
+    $P10 = rx269_cur.$P281()
+    unless $P10, rx269_fail
+    rx269_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("textqq")
-    rx283_pos = $P10."pos"()
-    goto alt293_end
-  alt293_1:
+    rx269_pos = $P10."pos"()
+    goto alt279_end
+  alt279_1:
 .annotate 'line', 105
   # rx subcapture "x"
-    set_addr $I10, rxcap_298_fail
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+    set_addr $I10, rxcap_284_fail
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
   # rx charclass w
-    ge rx283_pos, rx283_eos, rx283_fail
-    sub $I10, rx283_pos, rx283_off
-    is_cclass $I11, 8192, rx283_tgt, $I10
-    unless $I11, rx283_fail
-    inc rx283_pos
-    set_addr $I10, rxcap_298_fail
-    ($I12, $I11) = rx283_cur."!mark_peek"($I10)
-    rx283_cur."!cursor_pos"($I11)
-    ($P10) = rx283_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx283_pos, "")
-    rx283_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx269_pos, rx269_eos, rx269_fail
+    sub $I10, rx269_pos, rx269_off
+    is_cclass $I11, 8192, rx269_tgt, $I10
+    unless $I11, rx269_fail
+    inc rx269_pos
+    set_addr $I10, rxcap_284_fail
+    ($I12, $I11) = rx269_cur."!mark_peek"($I10)
+    rx269_cur."!cursor_pos"($I11)
+    ($P10) = rx269_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx269_pos, "")
+    rx269_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("x")
-    goto rxcap_298_done
-  rxcap_298_fail:
-    goto rx283_fail
-  rxcap_298_done:
-    rx283_cur."!cursor_pos"(rx283_pos)
-    find_lex $P299, unicode:"$\x{a2}"
-    $P300 = $P299."MATCH"()
-    store_lex "$/", $P300
-    .const 'Sub' $P302 = "97_1278500527.62277" 
-    capture_lex $P302
-    $P312 = $P302()
-  alt293_end:
+    goto rxcap_284_done
+  rxcap_284_fail:
+    goto rx269_fail
+  rxcap_284_done:
+    rx269_cur."!cursor_pos"(rx269_pos)
+    find_lex $P285, unicode:"$\x{a2}"
+    $P286 = $P285."MATCH"()
+    store_lex "$/", $P286
+    .const 'Sub' $P288 = "97_1279564387.65485" 
+    capture_lex $P288
+    $P298 = $P288()
+  alt279_end:
 .annotate 'line', 102
-    goto alt292_end
-  alt292_1:
+    goto alt278_end
+  alt278_1:
 .annotate 'line', 107
   # rx subcapture "textq"
-    set_addr $I10, rxcap_313_fail
-    rx283_cur."!mark_push"(0, rx283_pos, $I10)
+    set_addr $I10, rxcap_299_fail
+    rx269_cur."!mark_push"(0, rx269_pos, $I10)
   # rx charclass .
-    ge rx283_pos, rx283_eos, rx283_fail
-    inc rx283_pos
-    set_addr $I10, rxcap_313_fail
-    ($I12, $I11) = rx283_cur."!mark_peek"($I10)
-    rx283_cur."!cursor_pos"($I11)
-    ($P10) = rx283_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx283_pos, "")
-    rx283_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx269_pos, rx269_eos, rx269_fail
+    inc rx269_pos
+    set_addr $I10, rxcap_299_fail
+    ($I12, $I11) = rx269_cur."!mark_peek"($I10)
+    rx269_cur."!cursor_pos"($I11)
+    ($P10) = rx269_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx269_pos, "")
+    rx269_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("textq")
-    goto rxcap_313_done
-  rxcap_313_fail:
-    goto rx283_fail
-  rxcap_313_done:
-  alt292_end:
+    goto rxcap_299_done
+  rxcap_299_fail:
+    goto rx269_fail
+  rxcap_299_done:
+  alt278_end:
 .annotate 'line', 99
   # rx pass
-    rx283_cur."!cursor_pass"(rx283_pos, "quote_escape:sym<misc>")
-    rx283_cur."!cursor_debug"("PASS  ", "quote_escape:sym<misc>", " at pos=", rx283_pos)
-    .return (rx283_cur)
-  rx283_fail:
-.annotate 'line', 33
-    (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0)
-    lt rx283_pos, -1, rx283_done
-    eq rx283_pos, -1, rx283_fail
+    rx269_cur."!cursor_pass"(rx269_pos, "quote_escape:sym<misc>")
+    rx269_cur."!cursor_debug"("PASS  ", "quote_escape:sym<misc>", " at pos=", rx269_pos)
+    .return (rx269_cur)
+  rx269_restart:
+.annotate 'line', 33
+    rx269_cur."!cursor_debug"("NEXT ", "quote_escape:sym<misc>")
+  rx269_fail:
+    (rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0)
+    lt rx269_pos, -1, rx269_done
+    eq rx269_pos, -1, rx269_fail
     jump $I10
-  rx283_done:
-    rx283_cur."!cursor_fail"()
-    rx283_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<misc>")
-    .return (rx283_cur)
+  rx269_done:
+    rx269_cur."!cursor_fail"()
+    rx269_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<misc>")
+    .return (rx269_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1278500527.62277") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1279564387.65485") :method
 .annotate 'line', 33
-    new $P285, "ResizablePMCArray"
-    push $P285, ""
-    .return ($P285)
+    new $P271, "ResizablePMCArray"
+    push $P271, ""
+    .return ($P271)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block289"  :anon :subid("95_1278500527.62277") :outer("93_1278500527.62277")
+.sub "_block275"  :anon :subid("95_1279564387.65485") :outer("93_1279564387.65485")
 .annotate 'line', 100
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block294"  :anon :subid("96_1278500527.62277") :method :outer("93_1278500527.62277")
+.sub "_block280"  :anon :subid("96_1279564387.65485") :method :outer("93_1279564387.65485")
 .annotate 'line', 104
-    .local string rx296_tgt
-    .local int rx296_pos
-    .local int rx296_off
-    .local int rx296_eos
-    .local int rx296_rep
-    .local pmc rx296_cur
-    (rx296_cur, rx296_pos, rx296_tgt) = self."!cursor_start"()
-    rx296_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx296_cur
+    .local string rx282_tgt
+    .local int rx282_pos
+    .local int rx282_off
+    .local int rx282_eos
+    .local int rx282_rep
+    .local pmc rx282_cur
+    (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx282_cur
     .local pmc match
     .lex "$/", match
-    length rx296_eos, rx296_tgt
-    gt rx296_pos, rx296_eos, rx296_done
-    set rx296_off, 0
-    lt rx296_pos, 2, rx296_start
-    sub rx296_off, rx296_pos, 1
-    substr rx296_tgt, rx296_tgt, rx296_off
-  rx296_start:
+    length rx282_eos, rx282_tgt
+    gt rx282_pos, rx282_eos, rx282_done
+    set rx282_off, 0
+    lt rx282_pos, 2, rx282_start
+    sub rx282_off, rx282_pos, 1
+    substr rx282_tgt, rx282_tgt, rx282_off
+  rx282_start:
+    eq $I10, 1, rx282_restart
+    rx282_cur."!cursor_debug"("START ", "")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan297_done
-    goto rxscan297_scan
-  rxscan297_loop:
-    ($P10) = rx296_cur."from"()
+    ne $I10, -1, rxscan283_done
+    goto rxscan283_scan
+  rxscan283_loop:
+    ($P10) = rx282_cur."from"()
     inc $P10
-    set rx296_pos, $P10
-    ge rx296_pos, rx296_eos, rxscan297_done
-  rxscan297_scan:
-    set_addr $I10, rxscan297_loop
-    rx296_cur."!mark_push"(0, rx296_pos, $I10)
-  rxscan297_done:
+    set rx282_pos, $P10
+    ge rx282_pos, rx282_eos, rxscan283_done
+  rxscan283_scan:
+    set_addr $I10, rxscan283_loop
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
+  rxscan283_done:
   # rx charclass W
-    ge rx296_pos, rx296_eos, rx296_fail
-    sub $I10, rx296_pos, rx296_off
-    is_cclass $I11, 8192, rx296_tgt, $I10
-    if $I11, rx296_fail
-    inc rx296_pos
+    ge rx282_pos, rx282_eos, rx282_fail
+    sub $I10, rx282_pos, rx282_off
+    is_cclass $I11, 8192, rx282_tgt, $I10
+    if $I11, rx282_fail
+    inc rx282_pos
   # rx pass
-    rx296_cur."!cursor_pass"(rx296_pos, "")
-    rx296_cur."!cursor_debug"("PASS  ", "", " at pos=", rx296_pos)
-    .return (rx296_cur)
-  rx296_fail:
-    (rx296_rep, rx296_pos, $I10, $P10) = rx296_cur."!mark_fail"(0)
-    lt rx296_pos, -1, rx296_done
-    eq rx296_pos, -1, rx296_fail
+    rx282_cur."!cursor_pass"(rx282_pos, "")
+    rx282_cur."!cursor_debug"("PASS  ", "", " at pos=", rx282_pos)
+    .return (rx282_cur)
+  rx282_restart:
+    rx282_cur."!cursor_debug"("NEXT ", "")
+  rx282_fail:
+    (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
+    lt rx282_pos, -1, rx282_done
+    eq rx282_pos, -1, rx282_fail
     jump $I10
-  rx296_done:
-    rx296_cur."!cursor_fail"()
-    rx296_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx296_cur)
+  rx282_done:
+    rx282_cur."!cursor_fail"()
+    rx282_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block301"  :anon :subid("97_1278500527.62277") :outer("93_1278500527.62277")
+.sub "_block287"  :anon :subid("97_1279564387.65485") :outer("93_1279564387.65485")
 .annotate 'line', 105
-    find_lex $P303, "$/"
-    $P304 = $P303."CURSOR"()
-    new $P305, "String"
-    assign $P305, "Unrecognized backslash sequence: '\\"
-    find_lex $P306, "$/"
-    unless_null $P306, vivify_108
-    $P306 = root_new ['parrot';'Hash']
+    find_lex $P289, "$/"
+    $P290 = $P289."CURSOR"()
+    new $P291, "String"
+    assign $P291, "Unrecognized backslash sequence: '\\"
+    find_lex $P292, "$/"
+    unless_null $P292, vivify_108
+    $P292 = root_new ['parrot';'Hash']
   vivify_108:
-    set $P307, $P306["x"]
-    unless_null $P307, vivify_109
-    new $P307, "Undef"
+    set $P293, $P292["x"]
+    unless_null $P293, vivify_109
+    new $P293, "Undef"
   vivify_109:
-    $S308 = $P307."Str"()
-    concat $P309, $P305, $S308
-    concat $P310, $P309, "'"
-    $P311 = $P304."panic"($P310)
-    .return ($P311)
+    $S294 = $P293."Str"()
+    concat $P295, $P291, $S294
+    concat $P296, $P295, "'"
+    $P297 = $P290."panic"($P296)
+    .return ($P297)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("98_1278500527.62277") :method :outer("11_1278500527.62277")
-.annotate 'line', 33
-    .const 'Sub' $P324 = "100_1278500527.62277" 
-    capture_lex $P324
-    .local string rx315_tgt
-    .local int rx315_pos
-    .local int rx315_off
-    .local int rx315_eos
-    .local int rx315_rep
-    .local pmc rx315_cur
-    (rx315_cur, rx315_pos, rx315_tgt) = self."!cursor_start"()
-    rx315_cur."!cursor_debug"("START ", "charname")
-    .lex unicode:"$\x{a2}", rx315_cur
+.sub "charname"  :subid("98_1279564387.65485") :method :outer("11_1279564387.65485")
+.annotate 'line', 33
+    .const 'Sub' $P310 = "100_1279564387.65485" 
+    capture_lex $P310
+    .local string rx301_tgt
+    .local int rx301_pos
+    .local int rx301_off
+    .local int rx301_eos
+    .local int rx301_rep
+    .local pmc rx301_cur
+    (rx301_cur, rx301_pos, rx301_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx301_cur
     .local pmc match
     .lex "$/", match
-    length rx315_eos, rx315_tgt
-    gt rx315_pos, rx315_eos, rx315_done
-    set rx315_off, 0
-    lt rx315_pos, 2, rx315_start
-    sub rx315_off, rx315_pos, 1
-    substr rx315_tgt, rx315_tgt, rx315_off
-  rx315_start:
+    length rx301_eos, rx301_tgt
+    gt rx301_pos, rx301_eos, rx301_done
+    set rx301_off, 0
+    lt rx301_pos, 2, rx301_start
+    sub rx301_off, rx301_pos, 1
+    substr rx301_tgt, rx301_tgt, rx301_off
+  rx301_start:
+    eq $I10, 1, rx301_restart
+    rx301_cur."!cursor_debug"("START ", "charname")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan319_done
-    goto rxscan319_scan
-  rxscan319_loop:
-    ($P10) = rx315_cur."from"()
+    ne $I10, -1, rxscan305_done
+    goto rxscan305_scan
+  rxscan305_loop:
+    ($P10) = rx301_cur."from"()
     inc $P10
-    set rx315_pos, $P10
-    ge rx315_pos, rx315_eos, rxscan319_done
-  rxscan319_scan:
-    set_addr $I10, rxscan319_loop
-    rx315_cur."!mark_push"(0, rx315_pos, $I10)
-  rxscan319_done:
-  alt320_0:
+    set rx301_pos, $P10
+    ge rx301_pos, rx301_eos, rxscan305_done
+  rxscan305_scan:
+    set_addr $I10, rxscan305_loop
+    rx301_cur."!mark_push"(0, rx301_pos, $I10)
+  rxscan305_done:
+  alt306_0:
 .annotate 'line', 111
-    set_addr $I10, alt320_1
-    rx315_cur."!mark_push"(0, rx315_pos, $I10)
+    set_addr $I10, alt306_1
+    rx301_cur."!mark_push"(0, rx301_pos, $I10)
 .annotate 'line', 112
   # rx subrule "integer" subtype=capture negate=
-    rx315_cur."!cursor_pos"(rx315_pos)
-    $P10 = rx315_cur."integer"()
-    unless $P10, rx315_fail
-    rx315_cur."!mark_push"(0, -1, 0, $P10)
+    rx301_cur."!cursor_pos"(rx301_pos)
+    $P10 = rx301_cur."integer"()
+    unless $P10, rx301_fail
+    rx301_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("integer")
-    rx315_pos = $P10."pos"()
-    goto alt320_end
-  alt320_1:
+    rx301_pos = $P10."pos"()
+    goto alt306_end
+  alt306_1:
 .annotate 'line', 113
   # rx enumcharlist negate=0 
-    ge rx315_pos, rx315_eos, rx315_fail
-    sub $I10, rx315_pos, rx315_off
-    substr $S10, rx315_tgt, $I10, 1
+    ge rx301_pos, rx301_eos, rx301_fail
+    sub $I10, rx301_pos, rx301_off
+    substr $S10, rx301_tgt, $I10, 1
     index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
-    lt $I11, 0, rx315_fail
-    inc rx315_pos
-  # rx rxquantf321 ** 0..*
-    set_addr $I10, rxquantf321_loop
-    rx315_cur."!mark_push"(0, rx315_pos, $I10)
-    goto rxquantf321_done
-  rxquantf321_loop:
+    lt $I11, 0, rx301_fail
+    inc rx301_pos
+  # rx rxquantf307 ** 0..*
+    set_addr $I10, rxquantf307_loop
+    rx301_cur."!mark_push"(0, rx301_pos, $I10)
+    goto rxquantf307_done
+  rxquantf307_loop:
   # rx enumcharlist negate=1 
-    ge rx315_pos, rx315_eos, rx315_fail
-    sub $I10, rx315_pos, rx315_off
-    substr $S10, rx315_tgt, $I10, 1
+    ge rx301_pos, rx301_eos, rx301_fail
+    sub $I10, rx301_pos, rx301_off
+    substr $S10, rx301_tgt, $I10, 1
     index $I11, "],#", $S10
-    ge $I11, 0, rx315_fail
-    inc rx315_pos
-    set_addr $I10, rxquantf321_loop
-    rx315_cur."!mark_push"($I322, rx315_pos, $I10)
-  rxquantf321_done:
+    ge $I11, 0, rx301_fail
+    inc rx301_pos
+    set_addr $I10, rxquantf307_loop
+    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I10)
+  rxquantf307_done:
   # rx enumcharlist negate=0 
-    ge rx315_pos, rx315_eos, rx315_fail
-    sub $I10, rx315_pos, rx315_off
-    substr $S10, rx315_tgt, $I10, 1
+    ge rx301_pos, rx301_eos, rx301_fail
+    sub $I10, rx301_pos, rx301_off
+    substr $S10, rx301_tgt, $I10, 1
     index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
-    lt $I11, 0, rx315_fail
-    inc rx315_pos
+    lt $I11, 0, rx301_fail
+    inc rx301_pos
 .annotate 'line', 114
   # rx subrule "before" subtype=zerowidth negate=
-    rx315_cur."!cursor_pos"(rx315_pos)
-    .const 'Sub' $P324 = "100_1278500527.62277" 
-    capture_lex $P324
-    $P10 = rx315_cur."before"($P324)
-    unless $P10, rx315_fail
-  alt320_end:
+    rx301_cur."!cursor_pos"(rx301_pos)
+    .const 'Sub' $P310 = "100_1279564387.65485" 
+    capture_lex $P310
+    $P10 = rx301_cur."before"($P310)
+    unless $P10, rx301_fail
+  alt306_end:
 .annotate 'line', 111
   # rx pass
-    rx315_cur."!cursor_pass"(rx315_pos, "charname")
-    rx315_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx315_pos)
-    .return (rx315_cur)
-  rx315_fail:
-.annotate 'line', 33
-    (rx315_rep, rx315_pos, $I10, $P10) = rx315_cur."!mark_fail"(0)
-    lt rx315_pos, -1, rx315_done
-    eq rx315_pos, -1, rx315_fail
+    rx301_cur."!cursor_pass"(rx301_pos, "charname")
+    rx301_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx301_pos)
+    .return (rx301_cur)
+  rx301_restart:
+.annotate 'line', 33
+    rx301_cur."!cursor_debug"("NEXT ", "charname")
+  rx301_fail:
+    (rx301_rep, rx301_pos, $I10, $P10) = rx301_cur."!mark_fail"(0)
+    lt rx301_pos, -1, rx301_done
+    eq rx301_pos, -1, rx301_fail
     jump $I10
-  rx315_done:
-    rx315_cur."!cursor_fail"()
-    rx315_cur."!cursor_debug"("FAIL  ", "charname")
-    .return (rx315_cur)
+  rx301_done:
+    rx301_cur."!cursor_fail"()
+    rx301_cur."!cursor_debug"("FAIL  ", "charname")
+    .return (rx301_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("99_1278500527.62277") :method
-.annotate 'line', 33
-    $P317 = self."!PREFIX__!subrule"("integer", "")
-    new $P318, "ResizablePMCArray"
-    push $P318, "Z"
-    push $P318, "Y"
-    push $P318, "X"
-    push $P318, "W"
-    push $P318, "V"
-    push $P318, "U"
-    push $P318, "T"
-    push $P318, "S"
-    push $P318, "R"
-    push $P318, "Q"
-    push $P318, "P"
-    push $P318, "O"
-    push $P318, "N"
-    push $P318, "M"
-    push $P318, "L"
-    push $P318, "K"
-    push $P318, "J"
-    push $P318, "I"
-    push $P318, "H"
-    push $P318, "G"
-    push $P318, "F"
-    push $P318, "E"
-    push $P318, "D"
-    push $P318, "C"
-    push $P318, "B"
-    push $P318, "A"
-    push $P318, "z"
-    push $P318, "y"
-    push $P318, "x"
-    push $P318, "w"
-    push $P318, "v"
-    push $P318, "u"
-    push $P318, "t"
-    push $P318, "s"
-    push $P318, "r"
-    push $P318, "q"
-    push $P318, "p"
-    push $P318, "o"
-    push $P318, "n"
-    push $P318, "m"
-    push $P318, "l"
-    push $P318, "k"
-    push $P318, "j"
-    push $P318, "i"
-    push $P318, "h"
-    push $P318, "g"
-    push $P318, "f"
-    push $P318, "e"
-    push $P318, "d"
-    push $P318, "c"
-    push $P318, "b"
-    push $P318, "a"
-    push $P318, $P317
-    .return ($P318)
+.sub "!PREFIX__charname"  :subid("99_1279564387.65485") :method
+.annotate 'line', 33
+    $P303 = self."!PREFIX__!subrule"("integer", "")
+    new $P304, "ResizablePMCArray"
+    push $P304, "Z"
+    push $P304, "Y"
+    push $P304, "X"
+    push $P304, "W"
+    push $P304, "V"
+    push $P304, "U"
+    push $P304, "T"
+    push $P304, "S"
+    push $P304, "R"
+    push $P304, "Q"
+    push $P304, "P"
+    push $P304, "O"
+    push $P304, "N"
+    push $P304, "M"
+    push $P304, "L"
+    push $P304, "K"
+    push $P304, "J"
+    push $P304, "I"
+    push $P304, "H"
+    push $P304, "G"
+    push $P304, "F"
+    push $P304, "E"
+    push $P304, "D"
+    push $P304, "C"
+    push $P304, "B"
+    push $P304, "A"
+    push $P304, "z"
+    push $P304, "y"
+    push $P304, "x"
+    push $P304, "w"
+    push $P304, "v"
+    push $P304, "u"
+    push $P304, "t"
+    push $P304, "s"
+    push $P304, "r"
+    push $P304, "q"
+    push $P304, "p"
+    push $P304, "o"
+    push $P304, "n"
+    push $P304, "m"
+    push $P304, "l"
+    push $P304, "k"
+    push $P304, "j"
+    push $P304, "i"
+    push $P304, "h"
+    push $P304, "g"
+    push $P304, "f"
+    push $P304, "e"
+    push $P304, "d"
+    push $P304, "c"
+    push $P304, "b"
+    push $P304, "a"
+    push $P304, $P303
+    .return ($P304)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block323"  :anon :subid("100_1278500527.62277") :method :outer("98_1278500527.62277")
+.sub "_block309"  :anon :subid("100_1279564387.65485") :method :outer("98_1279564387.65485")
 .annotate 'line', 114
-    .local string rx325_tgt
-    .local int rx325_pos
-    .local int rx325_off
-    .local int rx325_eos
-    .local int rx325_rep
-    .local pmc rx325_cur
-    (rx325_cur, rx325_pos, rx325_tgt) = self."!cursor_start"()
-    rx325_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx325_cur
+    .local string rx311_tgt
+    .local int rx311_pos
+    .local int rx311_off
+    .local int rx311_eos
+    .local int rx311_rep
+    .local pmc rx311_cur
+    (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx311_cur
     .local pmc match
     .lex "$/", match
-    length rx325_eos, rx325_tgt
-    gt rx325_pos, rx325_eos, rx325_done
-    set rx325_off, 0
-    lt rx325_pos, 2, rx325_start
-    sub rx325_off, rx325_pos, 1
-    substr rx325_tgt, rx325_tgt, rx325_off
-  rx325_start:
+    length rx311_eos, rx311_tgt
+    gt rx311_pos, rx311_eos, rx311_done
+    set rx311_off, 0
+    lt rx311_pos, 2, rx311_start
+    sub rx311_off, rx311_pos, 1
+    substr rx311_tgt, rx311_tgt, rx311_off
+  rx311_start:
+    eq $I10, 1, rx311_restart
+    rx311_cur."!cursor_debug"("START ", "")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan326_done
-    goto rxscan326_scan
-  rxscan326_loop:
-    ($P10) = rx325_cur."from"()
+    ne $I10, -1, rxscan312_done
+    goto rxscan312_scan
+  rxscan312_loop:
+    ($P10) = rx311_cur."from"()
     inc $P10
-    set rx325_pos, $P10
-    ge rx325_pos, rx325_eos, rxscan326_done
-  rxscan326_scan:
-    set_addr $I10, rxscan326_loop
-    rx325_cur."!mark_push"(0, rx325_pos, $I10)
-  rxscan326_done:
+    set rx311_pos, $P10
+    ge rx311_pos, rx311_eos, rxscan312_done
+  rxscan312_scan:
+    set_addr $I10, rxscan312_loop
+    rx311_cur."!mark_push"(0, rx311_pos, $I10)
+  rxscan312_done:
   # rx charclass_q s r 0..-1
-    sub $I10, rx325_pos, rx325_off
-    find_not_cclass $I11, 32, rx325_tgt, $I10, rx325_eos
-    add rx325_pos, rx325_off, $I11
+    sub $I10, rx311_pos, rx311_off
+    find_not_cclass $I11, 32, rx311_tgt, $I10, rx311_eos
+    add rx311_pos, rx311_off, $I11
   # rx enumcharlist negate=0 
-    ge rx325_pos, rx325_eos, rx325_fail
-    sub $I10, rx325_pos, rx325_off
-    substr $S10, rx325_tgt, $I10, 1
+    ge rx311_pos, rx311_eos, rx311_fail
+    sub $I10, rx311_pos, rx311_off
+    substr $S10, rx311_tgt, $I10, 1
     index $I11, "],#", $S10
-    lt $I11, 0, rx325_fail
-    inc rx325_pos
+    lt $I11, 0, rx311_fail
+    inc rx311_pos
   # rx pass
-    rx325_cur."!cursor_pass"(rx325_pos, "")
-    rx325_cur."!cursor_debug"("PASS  ", "", " at pos=", rx325_pos)
-    .return (rx325_cur)
-  rx325_fail:
-    (rx325_rep, rx325_pos, $I10, $P10) = rx325_cur."!mark_fail"(0)
-    lt rx325_pos, -1, rx325_done
-    eq rx325_pos, -1, rx325_fail
+    rx311_cur."!cursor_pass"(rx311_pos, "")
+    rx311_cur."!cursor_debug"("PASS  ", "", " at pos=", rx311_pos)
+    .return (rx311_cur)
+  rx311_restart:
+    rx311_cur."!cursor_debug"("NEXT ", "")
+  rx311_fail:
+    (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
+    lt rx311_pos, -1, rx311_done
+    eq rx311_pos, -1, rx311_fail
     jump $I10
-  rx325_done:
-    rx325_cur."!cursor_fail"()
-    rx325_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx325_cur)
+  rx311_done:
+    rx311_cur."!cursor_fail"()
+    rx311_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx311_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("101_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "charnames"  :subid("101_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx328_tgt
-    .local int rx328_pos
-    .local int rx328_off
-    .local int rx328_eos
-    .local int rx328_rep
-    .local pmc rx328_cur
-    (rx328_cur, rx328_pos, rx328_tgt) = self."!cursor_start"()
-    rx328_cur."!cursor_debug"("START ", "charnames")
-    rx328_cur."!cursor_caparray"("charname")
-    .lex unicode:"$\x{a2}", rx328_cur
+    .local string rx314_tgt
+    .local int rx314_pos
+    .local int rx314_off
+    .local int rx314_eos
+    .local int rx314_rep
+    .local pmc rx314_cur
+    (rx314_cur, rx314_pos, rx314_tgt, $I10) = self."!cursor_start"()
+    rx314_cur."!cursor_caparray"("charname")
+    .lex unicode:"$\x{a2}", rx314_cur
     .local pmc match
     .lex "$/", match
-    length rx328_eos, rx328_tgt
-    gt rx328_pos, rx328_eos, rx328_done
-    set rx328_off, 0
-    lt rx328_pos, 2, rx328_start
-    sub rx328_off, rx328_pos, 1
-    substr rx328_tgt, rx328_tgt, rx328_off
-  rx328_start:
+    length rx314_eos, rx314_tgt
+    gt rx314_pos, rx314_eos, rx314_done
+    set rx314_off, 0
+    lt rx314_pos, 2, rx314_start
+    sub rx314_off, rx314_pos, 1
+    substr rx314_tgt, rx314_tgt, rx314_off
+  rx314_start:
+    eq $I10, 1, rx314_restart
+    rx314_cur."!cursor_debug"("START ", "charnames")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan331_done
-    goto rxscan331_scan
-  rxscan331_loop:
-    ($P10) = rx328_cur."from"()
+    ne $I10, -1, rxscan317_done
+    goto rxscan317_scan
+  rxscan317_loop:
+    ($P10) = rx314_cur."from"()
     inc $P10
-    set rx328_pos, $P10
-    ge rx328_pos, rx328_eos, rxscan331_done
-  rxscan331_scan:
-    set_addr $I10, rxscan331_loop
-    rx328_cur."!mark_push"(0, rx328_pos, $I10)
-  rxscan331_done:
+    set rx314_pos, $P10
+    ge rx314_pos, rx314_eos, rxscan317_done
+  rxscan317_scan:
+    set_addr $I10, rxscan317_loop
+    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+  rxscan317_done:
 .annotate 'line', 116
-  # rx rxquantr332 ** 1..*
-    set_addr $I333, rxquantr332_done
-    rx328_cur."!mark_push"(0, -1, $I333)
-  rxquantr332_loop:
+  # rx rxquantr318 ** 1..*
+    set_addr $I10, rxquantr318_done
+    rx314_cur."!mark_push"(0, -1, $I10)
+  rxquantr318_loop:
   # rx subrule "ws" subtype=method negate=
-    rx328_cur."!cursor_pos"(rx328_pos)
-    $P10 = rx328_cur."ws"()
-    unless $P10, rx328_fail
-    rx328_pos = $P10."pos"()
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
   # rx subrule "charname" subtype=capture negate=
-    rx328_cur."!cursor_pos"(rx328_pos)
-    $P10 = rx328_cur."charname"()
-    unless $P10, rx328_fail
-    rx328_cur."!mark_push"(0, -1, 0, $P10)
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."charname"()
+    unless $P10, rx314_fail
+    rx314_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charname")
-    rx328_pos = $P10."pos"()
+    rx314_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx328_cur."!cursor_pos"(rx328_pos)
-    $P10 = rx328_cur."ws"()
-    unless $P10, rx328_fail
-    rx328_pos = $P10."pos"()
-    (rx328_rep) = rx328_cur."!mark_commit"($I333)
-    rx328_cur."!mark_push"(rx328_rep, rx328_pos, $I333)
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
+    set_addr $I10, rxquantr318_done
+    (rx314_rep) = rx314_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr318_done
+    rx314_cur."!mark_push"(rx314_rep, rx314_pos, $I10)
   # rx literal  ","
-    add $I11, rx328_pos, 1
-    gt $I11, rx328_eos, rx328_fail
-    sub $I11, rx328_pos, rx328_off
-    substr $S10, rx328_tgt, $I11, 1
-    ne $S10, ",", rx328_fail
-    add rx328_pos, 1
-    goto rxquantr332_loop
-  rxquantr332_done:
+    add $I11, rx314_pos, 1
+    gt $I11, rx314_eos, rx314_fail
+    sub $I11, rx314_pos, rx314_off
+    substr $S10, rx314_tgt, $I11, 1
+    ne $S10, ",", rx314_fail
+    add rx314_pos, 1
+    goto rxquantr318_loop
+  rxquantr318_done:
   # rx pass
-    rx328_cur."!cursor_pass"(rx328_pos, "charnames")
-    rx328_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx328_pos)
-    .return (rx328_cur)
-  rx328_fail:
-.annotate 'line', 33
-    (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0)
-    lt rx328_pos, -1, rx328_done
-    eq rx328_pos, -1, rx328_fail
+    rx314_cur."!cursor_pass"(rx314_pos, "charnames")
+    rx314_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx314_pos)
+    .return (rx314_cur)
+  rx314_restart:
+.annotate 'line', 33
+    rx314_cur."!cursor_debug"("NEXT ", "charnames")
+  rx314_fail:
+    (rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0)
+    lt rx314_pos, -1, rx314_done
+    eq rx314_pos, -1, rx314_fail
     jump $I10
-  rx328_done:
-    rx328_cur."!cursor_fail"()
-    rx328_cur."!cursor_debug"("FAIL  ", "charnames")
-    .return (rx328_cur)
+  rx314_done:
+    rx314_cur."!cursor_fail"()
+    rx314_cur."!cursor_debug"("FAIL  ", "charnames")
+    .return (rx314_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("102_1278500527.62277") :method
+.sub "!PREFIX__charnames"  :subid("102_1279564387.65485") :method
 .annotate 'line', 33
-    new $P330, "ResizablePMCArray"
-    push $P330, ""
-    .return ($P330)
+    new $P316, "ResizablePMCArray"
+    push $P316, ""
+    .return ($P316)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("103_1278500527.62277") :method :outer("11_1278500527.62277")
+.sub "charspec"  :subid("103_1279564387.65485") :method :outer("11_1279564387.65485")
 .annotate 'line', 33
-    .local string rx335_tgt
-    .local int rx335_pos
-    .local int rx335_off
-    .local int rx335_eos
-    .local int rx335_rep
-    .local pmc rx335_cur
-    (rx335_cur, rx335_pos, rx335_tgt) = self."!cursor_start"()
-    rx335_cur."!cursor_debug"("START ", "charspec")
-    .lex unicode:"$\x{a2}", rx335_cur
+    .local string rx320_tgt
+    .local int rx320_pos
+    .local int rx320_off
+    .local int rx320_eos
+    .local int rx320_rep
+    .local pmc rx320_cur
+    (rx320_cur, rx320_pos, rx320_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx320_cur
     .local pmc match
     .lex "$/", match
-    length rx335_eos, rx335_tgt
-    gt rx335_pos, rx335_eos, rx335_done
-    set rx335_off, 0
-    lt rx335_pos, 2, rx335_start
-    sub rx335_off, rx335_pos, 1
-    substr rx335_tgt, rx335_tgt, rx335_off
-  rx335_start:
+    length rx320_eos, rx320_tgt
+    gt rx320_pos, rx320_eos, rx320_done
+    set rx320_off, 0
+    lt rx320_pos, 2, rx320_start
+    sub rx320_off, rx320_pos, 1
+    substr rx320_tgt, rx320_tgt, rx320_off
+  rx320_start:
+    eq $I10, 1, rx320_restart
+    rx320_cur."!cursor_debug"("START ", "charspec")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan340_done
-    goto rxscan340_scan
-  rxscan340_loop:
-    ($P10) = rx335_cur."from"()
+    ne $I10, -1, rxscan325_done
+    goto rxscan325_scan
+  rxscan325_loop:
+    ($P10) = rx320_cur."from"()
     inc $P10
-    set rx335_pos, $P10
-    ge rx335_pos, rx335_eos, rxscan340_done
-  rxscan340_scan:
-    set_addr $I10, rxscan340_loop
-    rx335_cur."!mark_push"(0, rx335_pos, $I10)
-  rxscan340_done:
-  alt341_0:
+    set rx320_pos, $P10
+    ge rx320_pos, rx320_eos, rxscan325_done
+  rxscan325_scan:
+    set_addr $I10, rxscan325_loop
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
+  rxscan325_done:
+  alt326_0:
 .annotate 'line', 118
-    set_addr $I10, alt341_1
-    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+    set_addr $I10, alt326_1
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
 .annotate 'line', 119
   # rx literal  "["
-    add $I11, rx335_pos, 1
-    gt $I11, rx335_eos, rx335_fail
-    sub $I11, rx335_pos, rx335_off
-    substr $S10, rx335_tgt, $I11, 1
-    ne $S10, "[", rx335_fail
-    add rx335_pos, 1
+    add $I11, rx320_pos, 1
+    gt $I11, rx320_eos, rx320_fail
+    sub $I11, rx320_pos, rx320_off
+    substr $S10, rx320_tgt, $I11, 1
+    ne $S10, "[", rx320_fail
+    add rx320_pos, 1
   # rx subrule "charnames" subtype=capture negate=
-    rx335_cur."!cursor_pos"(rx335_pos)
-    $P10 = rx335_cur."charnames"()
-    unless $P10, rx335_fail
-    rx335_cur."!mark_push"(0, -1, 0, $P10)
+    rx320_cur."!cursor_pos"(rx320_pos)
+    $P10 = rx320_cur."charnames"()
+    unless $P10, rx320_fail
+    rx320_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charnames")
-    rx335_pos = $P10."pos"()
+    rx320_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx335_pos, 1
-    gt $I11, rx335_eos, rx335_fail
-    sub $I11, rx335_pos, rx335_off
-    substr $S10, rx335_tgt, $I11, 1
-    ne $S10, "]", rx335_fail
-    add rx335_pos, 1
-    goto alt341_end
-  alt341_1:
-    set_addr $I10, alt341_2
-    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+    add $I11, rx320_pos, 1
+    gt $I11, rx320_eos, rx320_fail
+    sub $I11, rx320_pos, rx320_off
+    substr $S10, rx320_tgt, $I11, 1
+    ne $S10, "]", rx320_fail
+    add rx320_pos, 1
+    goto alt326_end
+  alt326_1:
+    set_addr $I10, alt326_2
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
 .annotate 'line', 120
   # rx charclass_q d r 1..-1
-    sub $I10, rx335_pos, rx335_off
-    find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
+    sub $I10, rx320_pos, rx320_off
+    find_not_cclass $I11, 8, rx320_tgt, $I10, rx320_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx335_fail
-    add rx335_pos, rx335_off, $I11
-  # rx rxquantr342 ** 0..*
-    set_addr $I343, rxquantr342_done
-    rx335_cur."!mark_push"(0, rx335_pos, $I343)
-  rxquantr342_loop:
+    lt $I11, $I12, rx320_fail
+    add rx320_pos, rx320_off, $I11
+  # rx rxquantr327 ** 0..*
+    set_addr $I10, rxquantr327_done
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
+  rxquantr327_loop:
   # rx literal  "_"
-    add $I11, rx335_pos, 1
-    gt $I11, rx335_eos, rx335_fail
-    sub $I11, rx335_pos, rx335_off
-    substr $S10, rx335_tgt, $I11, 1
-    ne $S10, "_", rx335_fail
-    add rx335_pos, 1
+    add $I11, rx320_pos, 1
+    gt $I11, rx320_eos, rx320_fail
+    sub $I11, rx320_pos, rx320_off
+    substr $S10, rx320_tgt, $I11, 1
+    ne $S10, "_", rx320_fail
+    add rx320_pos, 1
   # rx charclass_q d r 1..-1
-    sub $I10, rx335_pos, rx335_off
-    find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
+    sub $I10, rx320_pos, rx320_off
+    find_not_cclass $I11, 8, rx320_tgt, $I10, rx320_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx335_fail
-    add rx335_pos, rx335_off, $I11
-    (rx335_rep) = rx335_cur."!mark_commit"($I343)
-    rx335_cur."!mark_push"(rx335_rep, rx335_pos, $I343)
-    goto rxquantr342_loop
-  rxquantr342_done:
-    goto alt341_end
-  alt341_2:
-    set_addr $I10, alt341_3
-    rx335_cur."!mark_push"(0, rx335_pos, $I10)
+    lt $I11, $I12, rx320_fail
+    add rx320_pos, rx320_off, $I11
+    set_addr $I10, rxquantr327_done
+    (rx320_rep) = rx320_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr327_done
+    rx320_cur."!mark_push"(rx320_rep, rx320_pos, $I10)
+    goto rxquantr327_loop
+  rxquantr327_done:
+    goto alt326_end
+  alt326_2:
+    set_addr $I10, alt326_3
+    rx320_cur."!mark_push"(0, rx320_pos, $I10)
 .annotate 'line', 121
   # rx enumcharlist negate=0 
-    ge rx335_pos, rx335_eos, rx335_fail
-    sub $I10, rx335_pos, rx335_off
-    substr $S10, rx335_tgt, $I10, 1
+    ge rx320_pos, rx320_eos, rx320_fail
+    sub $I10, rx320_pos, rx320_off
+    substr $S10, rx320_tgt, $I10, 1
     index $I11, "?@ABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
-    lt $I11, 0, rx335_fail
-    inc rx335_pos
-    goto alt341_end
-  alt341_3:
+    lt $I11, 0, rx320_fail
+    inc rx320_pos
+    goto alt326_end
+  alt326_3:
 .annotate 'line', 122
   # rx subrule "panic" subtype=method negate=
-    rx335_cur."!cursor_pos"(rx335_pos)
-    $P10 = rx335_cur."panic"("Unrecognized \\c character")
-    unless $P10, rx335_fail
-    rx335_pos = $P10."pos"()
-  alt341_end:
+    rx320_cur."!cursor_pos"(rx320_pos)
+    $P10 = rx320_cur."panic"("Unrecognized \\c character")
+    unless $P10, rx320_fail
+    rx320_pos = $P10."pos"()
+  alt326_end:
 .annotate 'line', 117
   # rx pass
-    rx335_cur."!cursor_pass"(rx335_pos, "charspec")
-    rx335_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx335_pos)
-    .return (rx335_cur)
-  rx335_fail:
-.annotate 'line', 33
-    (rx335_rep, rx335_pos, $I10, $P10) = rx335_cur."!mark_fail"(0)
-    lt rx335_pos, -1, rx335_done
-    eq rx335_pos, -1, rx335_fail
+    rx320_cur."!cursor_pass"(rx320_pos, "charspec")
+    rx320_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx320_pos)
+    .return (rx320_cur)
+  rx320_restart:
+.annotate 'line', 33
+    rx320_cur."!cursor_debug"("NEXT ", "charspec")
+  rx320_fail:
+    (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
+    lt rx320_pos, -1, rx320_done
+    eq rx320_pos, -1, rx320_fail
     jump $I10
-  rx335_done:
-    rx335_cur."!cursor_fail"()
-    rx335_cur."!cursor_debug"("FAIL  ", "charspec")
-    .return (rx335_cur)
+  rx320_done:
+    rx320_cur."!cursor_fail"()
+    rx320_cur."!cursor_debug"("FAIL  ", "charspec")
+    .return (rx320_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("104_1278500527.62277") :method
-.annotate 'line', 33
-    $P337 = self."!PREFIX__!subrule"("panic", "")
-    $P338 = self."!PREFIX__!subrule"("charnames", "[")
-    new $P339, "ResizablePMCArray"
-    push $P339, $P337
-    push $P339, "Z"
-    push $P339, "Y"
-    push $P339, "X"
-    push $P339, "W"
-    push $P339, "V"
-    push $P339, "U"
-    push $P339, "T"
-    push $P339, "S"
-    push $P339, "R"
-    push $P339, "Q"
-    push $P339, "P"
-    push $P339, "O"
-    push $P339, "N"
-    push $P339, "M"
-    push $P339, "L"
-    push $P339, "K"
-    push $P339, "J"
-    push $P339, "I"
-    push $P339, "H"
-    push $P339, "G"
-    push $P339, "F"
-    push $P339, "E"
-    push $P339, "D"
-    push $P339, "C"
-    push $P339, "B"
-    push $P339, "A"
-    push $P339, "@"
-    push $P339, "?"
-    push $P339, ""
-    push $P339, $P338
-    .return ($P339)
+.sub "!PREFIX__charspec"  :subid("104_1279564387.65485") :method
+.annotate 'line', 33
+    $P322 = self."!PREFIX__!subrule"("panic", "")
+    $P323 = self."!PREFIX__!subrule"("charnames", "[")
+    new $P324, "ResizablePMCArray"
+    push $P324, $P322
+    push $P324, "Z"
+    push $P324, "Y"
+    push $P324, "X"
+    push $P324, "W"
+    push $P324, "V"
+    push $P324, "U"
+    push $P324, "T"
+    push $P324, "S"
+    push $P324, "R"
+    push $P324, "Q"
+    push $P324, "P"
+    push $P324, "O"
+    push $P324, "N"
+    push $P324, "M"
+    push $P324, "L"
+    push $P324, "K"
+    push $P324, "J"
+    push $P324, "I"
+    push $P324, "H"
+    push $P324, "G"
+    push $P324, "F"
+    push $P324, "E"
+    push $P324, "D"
+    push $P324, "C"
+    push $P324, "B"
+    push $P324, "A"
+    push $P324, "@"
+    push $P324, "?"
+    push $P324, ""
+    push $P324, $P323
+    .return ($P324)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block344" :load :anon :subid("105_1278500527.62277")
+.sub "_block328" :load :anon :subid("105_1279564387.65485")
 .annotate 'line', 5
-    .const 'Sub' $P346 = "11_1278500527.62277" 
-    $P347 = $P346()
-    .return ($P347)
+    .const 'Sub' $P330 = "11_1279564387.65485" 
+    $P331 = $P330()
+    .return ($P331)
 .end
 
 
 .namespace []
-.sub "_block349" :load :anon :subid("106_1278500527.62277")
+.sub "_block333" :load :anon :subid("106_1279564387.65485")
 .annotate 'line', 1
-    .const 'Sub' $P351 = "10_1278500527.62277" 
-    $P352 = $P351()
-    .return ($P352)
+    .const 'Sub' $P335 = "10_1279564387.65485" 
+    $P336 = $P335()
+    .return ($P336)
 .end
 
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1278500528.84129")
+.sub "_block11"  :anon :subid("10_1279564388.86214")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -4913,15 +5099,15 @@
     $P627 = $P14()
 .annotate 'line', 1
     .return ($P627)
-    .const 'Sub' $P629 = "55_1278500528.84129" 
+    .const 'Sub' $P629 = "55_1279564388.86214" 
     .return ($P629)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post56") :outer("10_1278500528.84129")
+.sub "" :load :init :subid("post56") :outer("10_1279564388.86214")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1278500528.84129" 
+    .const 'Sub' $P12 = "10_1279564388.86214" 
     .local pmc block
     set block, $P12
     $P632 = get_root_global ["parrot"], "P6metaclass"
@@ -4930,75 +5116,75 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1278500528.84129") :outer("10_1278500528.84129")
+.sub "_block13"  :subid("11_1279564388.86214") :outer("10_1279564388.86214")
 .annotate 'line', 3
-    .const 'Sub' $P605 = "53_1278500528.84129" 
+    .const 'Sub' $P605 = "53_1279564388.86214" 
     capture_lex $P605
-    .const 'Sub' $P580 = "51_1278500528.84129" 
+    .const 'Sub' $P580 = "51_1279564388.86214" 
     capture_lex $P580
-    .const 'Sub' $P550 = "50_1278500528.84129" 
+    .const 'Sub' $P550 = "50_1279564388.86214" 
     capture_lex $P550
-    .const 'Sub' $P531 = "49_1278500528.84129" 
+    .const 'Sub' $P531 = "49_1279564388.86214" 
     capture_lex $P531
-    .const 'Sub' $P524 = "48_1278500528.84129" 
+    .const 'Sub' $P524 = "48_1279564388.86214" 
     capture_lex $P524
-    .const 'Sub' $P514 = "47_1278500528.84129" 
+    .const 'Sub' $P514 = "47_1279564388.86214" 
     capture_lex $P514
-    .const 'Sub' $P497 = "46_1278500528.84129" 
+    .const 'Sub' $P497 = "46_1279564388.86214" 
     capture_lex $P497
-    .const 'Sub' $P480 = "45_1278500528.84129" 
+    .const 'Sub' $P480 = "45_1279564388.86214" 
     capture_lex $P480
-    .const 'Sub' $P473 = "44_1278500528.84129" 
+    .const 'Sub' $P473 = "44_1279564388.86214" 
     capture_lex $P473
-    .const 'Sub' $P466 = "43_1278500528.84129" 
+    .const 'Sub' $P466 = "43_1279564388.86214" 
     capture_lex $P466
-    .const 'Sub' $P459 = "42_1278500528.84129" 
+    .const 'Sub' $P459 = "42_1279564388.86214" 
     capture_lex $P459
-    .const 'Sub' $P452 = "41_1278500528.84129" 
+    .const 'Sub' $P452 = "41_1279564388.86214" 
     capture_lex $P452
-    .const 'Sub' $P445 = "40_1278500528.84129" 
+    .const 'Sub' $P445 = "40_1279564388.86214" 
     capture_lex $P445
-    .const 'Sub' $P438 = "39_1278500528.84129" 
+    .const 'Sub' $P438 = "39_1279564388.86214" 
     capture_lex $P438
-    .const 'Sub' $P428 = "38_1278500528.84129" 
+    .const 'Sub' $P428 = "38_1279564388.86214" 
     capture_lex $P428
-    .const 'Sub' $P421 = "37_1278500528.84129" 
+    .const 'Sub' $P421 = "37_1279564388.86214" 
     capture_lex $P421
-    .const 'Sub' $P405 = "36_1278500528.84129" 
+    .const 'Sub' $P405 = "36_1279564388.86214" 
     capture_lex $P405
-    .const 'Sub' $P330 = "34_1278500528.84129" 
+    .const 'Sub' $P330 = "34_1279564388.86214" 
     capture_lex $P330
-    .const 'Sub' $P267 = "31_1278500528.84129" 
+    .const 'Sub' $P267 = "31_1279564388.86214" 
     capture_lex $P267
-    .const 'Sub' $P258 = "30_1278500528.84129" 
+    .const 'Sub' $P258 = "30_1279564388.86214" 
     capture_lex $P258
-    .const 'Sub' $P249 = "29_1278500528.84129" 
+    .const 'Sub' $P249 = "29_1279564388.86214" 
     capture_lex $P249
-    .const 'Sub' $P240 = "28_1278500528.84129" 
+    .const 'Sub' $P240 = "28_1279564388.86214" 
     capture_lex $P240
-    .const 'Sub' $P231 = "27_1278500528.84129" 
+    .const 'Sub' $P231 = "27_1279564388.86214" 
     capture_lex $P231
-    .const 'Sub' $P222 = "26_1278500528.84129" 
+    .const 'Sub' $P222 = "26_1279564388.86214" 
     capture_lex $P222
-    .const 'Sub' $P212 = "25_1278500528.84129" 
+    .const 'Sub' $P212 = "25_1279564388.86214" 
     capture_lex $P212
-    .const 'Sub' $P202 = "24_1278500528.84129" 
+    .const 'Sub' $P202 = "24_1279564388.86214" 
     capture_lex $P202
-    .const 'Sub' $P194 = "23_1278500528.84129" 
+    .const 'Sub' $P194 = "23_1279564388.86214" 
     capture_lex $P194
-    .const 'Sub' $P184 = "22_1278500528.84129" 
+    .const 'Sub' $P184 = "22_1279564388.86214" 
     capture_lex $P184
-    .const 'Sub' $P174 = "21_1278500528.84129" 
+    .const 'Sub' $P174 = "21_1279564388.86214" 
     capture_lex $P174
-    .const 'Sub' $P73 = "18_1278500528.84129" 
+    .const 'Sub' $P73 = "18_1279564388.86214" 
     capture_lex $P73
-    .const 'Sub' $P35 = "15_1278500528.84129" 
+    .const 'Sub' $P35 = "15_1279564388.86214" 
     capture_lex $P35
-    .const 'Sub' $P28 = "14_1278500528.84129" 
+    .const 'Sub' $P28 = "14_1279564388.86214" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1278500528.84129" 
+    .const 'Sub' $P22 = "13_1279564388.86214" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1278500528.84129" 
+    .const 'Sub' $P15 = "12_1279564388.86214" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -5007,18 +5193,18 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 225
-    .const 'Sub' $P605 = "53_1278500528.84129" 
+    .const 'Sub' $P605 = "53_1279564388.86214" 
     newclosure $P622, $P605
 .annotate 'line', 3
     .return ($P622)
-    .const 'Sub' $P624 = "54_1278500528.84129" 
+    .const 'Sub' $P624 = "54_1279564388.86214" 
     .return ($P624)
 .end
 
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "string_to_int"  :subid("12_1278500528.84129") :outer("11_1278500528.84129")
+.sub "string_to_int"  :subid("12_1279564388.86214") :outer("11_1279564388.86214")
     .param pmc param_18
     .param pmc param_19
 .annotate 'line', 3
@@ -5072,7 +5258,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "ints_to_string"  :subid("13_1278500528.84129") :outer("11_1278500528.84129")
+.sub "ints_to_string"  :subid("13_1279564388.86214") :outer("11_1279564388.86214")
     .param pmc param_25
 .annotate 'line', 37
     new $P24, 'ExceptionHandler'
@@ -5114,7 +5300,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "CTXSAVE"  :subid("14_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "CTXSAVE"  :subid("14_1279564388.86214") :method :outer("11_1279564388.86214")
 .annotate 'line', 62
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
@@ -5144,10 +5330,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_38
 .annotate 'line', 76
-    .const 'Sub' $P48 = "16_1278500528.84129" 
+    .const 'Sub' $P48 = "16_1279564388.86214" 
     capture_lex $P48
     new $P37, 'ExceptionHandler'
     set_addr $P37, control_36
@@ -5182,7 +5368,7 @@
     set $P43, $I46
     goto if_44_end
   if_44:
-    .const 'Sub' $P48 = "16_1278500528.84129" 
+    .const 'Sub' $P48 = "16_1279564388.86214" 
     capture_lex $P48
     $P71 = $P48()
     set $P43, $P71
@@ -5199,9 +5385,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block47"  :anon :subid("16_1278500528.84129") :outer("15_1278500528.84129")
+.sub "_block47"  :anon :subid("16_1279564388.86214") :outer("15_1279564388.86214")
 .annotate 'line', 78
-    .const 'Sub' $P62 = "17_1278500528.84129" 
+    .const 'Sub' $P62 = "17_1279564388.86214" 
     capture_lex $P62
 .annotate 'line', 79
     $P49 = root_new ['parrot';'ResizablePMCArray']
@@ -5231,7 +5417,7 @@
     unless $P56, loop68_done
     shift $P60, $P56
   loop68_redo:
-    .const 'Sub' $P62 = "17_1278500528.84129" 
+    .const 'Sub' $P62 = "17_1279564388.86214" 
     capture_lex $P62
     $P62($P60)
   loop68_next:
@@ -5251,7 +5437,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block61"  :anon :subid("17_1278500528.84129") :outer("16_1278500528.84129")
+.sub "_block61"  :anon :subid("17_1279564388.86214") :outer("16_1279564388.86214")
     .param pmc param_63
 .annotate 'line', 82
     .lex "$_", param_63
@@ -5267,14 +5453,14 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "EXPR"  :subid("18_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "EXPR"  :subid("18_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_76
     .param pmc param_77 :optional
     .param int has_param_77 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P156 = "20_1278500528.84129" 
+    .const 'Sub' $P156 = "20_1279564388.86214" 
     capture_lex $P156
-    .const 'Sub' $P123 = "19_1278500528.84129" 
+    .const 'Sub' $P123 = "19_1279564388.86214" 
     capture_lex $P123
     new $P75, 'ExceptionHandler'
     set_addr $P75, control_74
@@ -5409,7 +5595,7 @@
     find_lex $P120, "$past"
     $P121 = $P120."name"()
     if $P121, unless_119_end
-    .const 'Sub' $P123 = "19_1278500528.84129" 
+    .const 'Sub' $P123 = "19_1279564388.86214" 
     capture_lex $P123
     $P123()
   unless_119_end:
@@ -5433,7 +5619,7 @@
     unless $P150, loop167_done
     shift $P154, $P150
   loop167_redo:
-    .const 'Sub' $P156 = "20_1278500528.84129" 
+    .const 'Sub' $P156 = "20_1279564388.86214" 
     capture_lex $P156
     $P156($P154)
   loop167_next:
@@ -5478,7 +5664,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block122"  :anon :subid("19_1278500528.84129") :outer("18_1278500528.84129")
+.sub "_block122"  :anon :subid("19_1279564388.86214") :outer("18_1279564388.86214")
 .annotate 'line', 98
     new $P124, "Undef"
     .lex "$name", $P124
@@ -5528,7 +5714,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block155"  :anon :subid("20_1278500528.84129") :outer("18_1278500528.84129")
+.sub "_block155"  :anon :subid("20_1279564388.86214") :outer("18_1279564388.86214")
     .param pmc param_157
 .annotate 'line', 109
     .lex "$_", param_157
@@ -5552,7 +5738,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<circumfix>"  :subid("21_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "term:sym<circumfix>"  :subid("21_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_177
 .annotate 'line', 114
     new $P176, 'ExceptionHandler'
@@ -5583,7 +5769,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("22_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "termish"  :subid("22_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_187
 .annotate 'line', 116
     new $P186, 'ExceptionHandler'
@@ -5614,7 +5800,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm"  :subid("23_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "nullterm"  :subid("23_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_197
 .annotate 'line', 117
     new $P196, 'ExceptionHandler'
@@ -5637,7 +5823,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm_alt"  :subid("24_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "nullterm_alt"  :subid("24_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_205
 .annotate 'line', 118
     new $P204, 'ExceptionHandler'
@@ -5668,7 +5854,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "integer"  :subid("25_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "integer"  :subid("25_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_215
 .annotate 'line', 120
     new $P214, 'ExceptionHandler'
@@ -5699,7 +5885,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "dec_number"  :subid("26_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "dec_number"  :subid("26_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_225
 .annotate 'line', 122
     new $P224, 'ExceptionHandler'
@@ -5723,7 +5909,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "decint"  :subid("27_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "decint"  :subid("27_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_234
 .annotate 'line', 124
     new $P233, 'ExceptionHandler'
@@ -5747,7 +5933,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "hexint"  :subid("28_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "hexint"  :subid("28_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_243
 .annotate 'line', 125
     new $P242, 'ExceptionHandler'
@@ -5771,7 +5957,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "octint"  :subid("29_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "octint"  :subid("29_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_252
 .annotate 'line', 126
     new $P251, 'ExceptionHandler'
@@ -5795,7 +5981,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "binint"  :subid("30_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "binint"  :subid("30_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_261
 .annotate 'line', 127
     new $P260, 'ExceptionHandler'
@@ -5819,10 +6005,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_EXPR"  :subid("31_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_EXPR"  :subid("31_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_270
 .annotate 'line', 129
-    .const 'Sub' $P286 = "32_1278500528.84129" 
+    .const 'Sub' $P286 = "32_1279564388.86214" 
     capture_lex $P286
     new $P269, 'ExceptionHandler'
     set_addr $P269, control_268
@@ -5854,7 +6040,7 @@
     $P282 = $P280."ACCEPTS"($P281)
     if $P282, if_279
 .annotate 'line', 135
-    .const 'Sub' $P286 = "32_1278500528.84129" 
+    .const 'Sub' $P286 = "32_1279564388.86214" 
     capture_lex $P286
     $P286()
     goto if_279_end
@@ -5894,9 +6080,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block285"  :anon :subid("32_1278500528.84129") :outer("31_1278500528.84129")
+.sub "_block285"  :anon :subid("32_1279564388.86214") :outer("31_1279564388.86214")
 .annotate 'line', 135
-    .const 'Sub' $P305 = "33_1278500528.84129" 
+    .const 'Sub' $P305 = "33_1279564388.86214" 
     capture_lex $P305
 .annotate 'line', 136
     $P287 = root_new ['parrot';'ResizablePMCArray']
@@ -5947,7 +6133,7 @@
     unless $P300, loop310_done
     shift $P303, $P300
   loop310_redo:
-    .const 'Sub' $P305 = "33_1278500528.84129" 
+    .const 'Sub' $P305 = "33_1279564388.86214" 
     capture_lex $P305
     $P305($P303)
   loop310_next:
@@ -5970,7 +6156,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block304"  :anon :subid("33_1278500528.84129") :outer("32_1278500528.84129")
+.sub "_block304"  :anon :subid("33_1279564388.86214") :outer("32_1279564388.86214")
     .param pmc param_306
 .annotate 'line', 139
     .lex "$_", param_306
@@ -5983,10 +6169,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_delimited"  :subid("34_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_delimited"  :subid("34_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_333
 .annotate 'line', 152
-    .const 'Sub' $P345 = "35_1278500528.84129" 
+    .const 'Sub' $P345 = "35_1279564388.86214" 
     capture_lex $P345
     new $P332, 'ExceptionHandler'
     set_addr $P332, control_331
@@ -6029,7 +6215,7 @@
     unless $P339, loop377_done
     shift $P343, $P339
   loop377_redo:
-    .const 'Sub' $P345 = "35_1278500528.84129" 
+    .const 'Sub' $P345 = "35_1279564388.86214" 
     capture_lex $P345
     $P345($P343)
   loop377_next:
@@ -6107,7 +6293,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block344"  :anon :subid("35_1278500528.84129") :outer("34_1278500528.84129")
+.sub "_block344"  :anon :subid("35_1279564388.86214") :outer("34_1279564388.86214")
     .param pmc param_347
 .annotate 'line', 156
     new $P346, "Undef"
@@ -6177,7 +6363,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_atom"  :subid("36_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_atom"  :subid("36_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_408
 .annotate 'line', 177
     new $P407, 'ExceptionHandler'
@@ -6227,7 +6413,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<backslash>"  :subid("37_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<backslash>"  :subid("37_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_424
 .annotate 'line', 181
     new $P423, 'ExceptionHandler'
@@ -6249,7 +6435,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<stopper>"  :subid("38_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<stopper>"  :subid("38_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_431
 .annotate 'line', 182
     new $P430, 'ExceptionHandler'
@@ -6280,7 +6466,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<bs>"  :subid("39_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<bs>"  :subid("39_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_441
 .annotate 'line', 184
     new $P440, 'ExceptionHandler'
@@ -6302,7 +6488,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<nl>"  :subid("40_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<nl>"  :subid("40_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_448
 .annotate 'line', 185
     new $P447, 'ExceptionHandler'
@@ -6324,7 +6510,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<cr>"  :subid("41_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<cr>"  :subid("41_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_455
 .annotate 'line', 186
     new $P454, 'ExceptionHandler'
@@ -6346,7 +6532,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<tab>"  :subid("42_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<tab>"  :subid("42_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_462
 .annotate 'line', 187
     new $P461, 'ExceptionHandler'
@@ -6368,7 +6554,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<ff>"  :subid("43_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<ff>"  :subid("43_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_469
 .annotate 'line', 188
     new $P468, 'ExceptionHandler'
@@ -6390,7 +6576,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("44_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<esc>"  :subid("44_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_476
 .annotate 'line', 189
     new $P475, 'ExceptionHandler'
@@ -6412,7 +6598,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<hex>"  :subid("45_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<hex>"  :subid("45_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_483
 .annotate 'line', 191
     new $P482, 'ExceptionHandler'
@@ -6471,7 +6657,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<oct>"  :subid("46_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<oct>"  :subid("46_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_500
 .annotate 'line', 195
     new $P499, 'ExceptionHandler'
@@ -6530,7 +6716,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<chr>"  :subid("47_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<chr>"  :subid("47_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_517
 .annotate 'line', 199
     new $P516, 'ExceptionHandler'
@@ -6563,7 +6749,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<0>"  :subid("48_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<0>"  :subid("48_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_527
 .annotate 'line', 203
     new $P526, 'ExceptionHandler'
@@ -6587,7 +6773,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<misc>"  :subid("49_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "quote_escape:sym<misc>"  :subid("49_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_534
 .annotate 'line', 207
     new $P533, 'ExceptionHandler'
@@ -6646,7 +6832,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charname"  :subid("50_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "charname"  :subid("50_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_553
 .annotate 'line', 211
     new $P552, 'ExceptionHandler'
@@ -6720,10 +6906,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charnames"  :subid("51_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "charnames"  :subid("51_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_583
 .annotate 'line', 219
-    .const 'Sub' $P592 = "52_1278500528.84129" 
+    .const 'Sub' $P592 = "52_1279564388.86214" 
     capture_lex $P592
     new $P582, 'ExceptionHandler'
     set_addr $P582, control_581
@@ -6757,7 +6943,7 @@
     unless $P586, loop598_done
     shift $P590, $P586
   loop598_redo:
-    .const 'Sub' $P592 = "52_1278500528.84129" 
+    .const 'Sub' $P592 = "52_1279564388.86214" 
     capture_lex $P592
     $P592($P590)
   loop598_next:
@@ -6786,7 +6972,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block591"  :anon :subid("52_1278500528.84129") :outer("51_1278500528.84129")
+.sub "_block591"  :anon :subid("52_1279564388.86214") :outer("51_1279564388.86214")
     .param pmc param_593
 .annotate 'line', 221
     .lex "$_", param_593
@@ -6801,7 +6987,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charspec"  :subid("53_1278500528.84129") :method :outer("11_1278500528.84129")
+.sub "charspec"  :subid("53_1279564388.86214") :method :outer("11_1279564388.86214")
     .param pmc param_608
 .annotate 'line', 225
     new $P607, 'ExceptionHandler'
@@ -6851,18 +7037,18 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block623" :load :anon :subid("54_1278500528.84129")
+.sub "_block623" :load :anon :subid("54_1279564388.86214")
 .annotate 'line', 3
-    .const 'Sub' $P625 = "11_1278500528.84129" 
+    .const 'Sub' $P625 = "11_1279564388.86214" 
     $P626 = $P625()
     .return ($P626)
 .end
 
 
 .namespace []
-.sub "_block628" :load :anon :subid("55_1278500528.84129")
+.sub "_block628" :load :anon :subid("55_1279564388.86214")
 .annotate 'line', 1
-    .const 'Sub' $P630 = "10_1278500528.84129" 
+    .const 'Sub' $P630 = "10_1279564388.86214" 
     $P631 = $P630()
     .return ($P631)
 .end
@@ -6870,7 +7056,7 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1278500529.62668")
+.sub "_block11"  :anon :subid("10_1279564389.64843")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -6887,15 +7073,15 @@
     $P497 = $P14()
 .annotate 'line', 1
     .return ($P497)
-    .const 'Sub' $P499 = "36_1278500529.62668" 
+    .const 'Sub' $P499 = "36_1279564389.64843" 
     .return ($P499)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post37") :outer("10_1278500529.62668")
+.sub "" :load :init :subid("post37") :outer("10_1279564389.64843")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1278500529.62668" 
+    .const 'Sub' $P12 = "10_1279564389.64843" 
     .local pmc block
     set block, $P12
 .annotate 'line', 2
@@ -6909,36 +7095,36 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1278500529.62668") :outer("10_1278500529.62668")
+.sub "_block13"  :subid("11_1279564389.64843") :outer("10_1279564389.64843")
 .annotate 'line', 6
-    .const 'Sub' $P489 = "35_1278500529.62668" 
+    .const 'Sub' $P489 = "35_1279564389.64843" 
     capture_lex $P489
-    .const 'Sub' $P447 = "33_1278500529.62668" 
+    .const 'Sub' $P447 = "33_1279564389.64843" 
     capture_lex $P447
-    .const 'Sub' $P298 = "26_1278500529.62668" 
+    .const 'Sub' $P298 = "26_1279564389.64843" 
     capture_lex $P298
-    .const 'Sub' $P283 = "25_1278500529.62668" 
+    .const 'Sub' $P283 = "25_1279564389.64843" 
     capture_lex $P283
-    .const 'Sub' $P188 = "20_1278500529.62668" 
+    .const 'Sub' $P188 = "20_1279564389.64843" 
     capture_lex $P188
-    .const 'Sub' $P153 = "18_1278500529.62668" 
+    .const 'Sub' $P153 = "18_1279564389.64843" 
     capture_lex $P153
-    .const 'Sub' $P138 = "17_1278500529.62668" 
+    .const 'Sub' $P138 = "17_1279564389.64843" 
     capture_lex $P138
-    .const 'Sub' $P122 = "16_1278500529.62668" 
+    .const 'Sub' $P122 = "16_1279564389.64843" 
     capture_lex $P122
-    .const 'Sub' $P33 = "13_1278500529.62668" 
+    .const 'Sub' $P33 = "13_1279564389.64843" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1278500529.62668" 
+    .const 'Sub' $P15 = "12_1279564389.64843" 
     capture_lex $P15
 .annotate 'line', 14
-    .const 'Sub' $P15 = "12_1278500529.62668" 
+    .const 'Sub' $P15 = "12_1279564389.64843" 
     newclosure $P31, $P15
     .lex "value_type", $P31
 .annotate 'line', 10
     find_lex $P32, "value_type"
 .annotate 'line', 165
-    .const 'Sub' $P489 = "35_1278500529.62668" 
+    .const 'Sub' $P489 = "35_1279564389.64843" 
     newclosure $P495, $P489
 .annotate 'line', 6
     .return ($P495)
@@ -6946,7 +7132,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post38") :outer("11_1278500529.62668")
+.sub "" :load :init :subid("post38") :outer("11_1279564389.64843")
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
@@ -6959,7 +7145,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "value_type"  :subid("12_1278500529.62668") :outer("11_1278500529.62668")
+.sub "value_type"  :subid("12_1279564389.64843") :outer("11_1279564389.64843")
     .param pmc param_18
 .annotate 'line', 14
     new $P17, 'ExceptionHandler'
@@ -7004,15 +7190,15 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_exports"  :subid("13_1278500529.62668") :method :outer("11_1278500529.62668")
+.sub "get_exports"  :subid("13_1279564389.64843") :method :outer("11_1279564389.64843")
     .param pmc param_36
     .param pmc param_39 :slurpy
     .param pmc param_37 :optional :named("tagset")
     .param int has_param_37 :opt_flag
 .annotate 'line', 20
-    .const 'Sub' $P105 = "15_1278500529.62668" 
+    .const 'Sub' $P105 = "15_1279564389.64843" 
     capture_lex $P105
-    .const 'Sub' $P84 = "14_1278500529.62668" 
+    .const 'Sub' $P84 = "14_1279564389.64843" 
     capture_lex $P84
     new $P35, 'ExceptionHandler'
     set_addr $P35, control_34
@@ -7118,7 +7304,7 @@
     unless $P100, loop117_done
     shift $P103, $P100
   loop117_redo:
-    .const 'Sub' $P105 = "15_1278500529.62668" 
+    .const 'Sub' $P105 = "15_1279564389.64843" 
     capture_lex $P105
     $P105($P103)
   loop117_next:
@@ -7148,7 +7334,7 @@
     unless $P79, loop97_done
     shift $P82, $P79
   loop97_redo:
-    .const 'Sub' $P84 = "14_1278500529.62668" 
+    .const 'Sub' $P84 = "14_1279564389.64843" 
     capture_lex $P84
     $P84($P82)
   loop97_next:
@@ -7176,7 +7362,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block104"  :anon :subid("15_1278500529.62668") :outer("13_1278500529.62668")
+.sub "_block104"  :anon :subid("15_1279564389.64843") :outer("13_1279564389.64843")
     .param pmc param_107
 .annotate 'line', 40
     new $P106, "Undef"
@@ -7208,7 +7394,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block83"  :anon :subid("14_1278500529.62668") :outer("13_1278500529.62668")
+.sub "_block83"  :anon :subid("14_1279564389.64843") :outer("13_1279564389.64843")
     .param pmc param_86
 .annotate 'line', 34
     new $P85, "Undef"
@@ -7248,7 +7434,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_module"  :subid("16_1278500529.62668") :method :outer("11_1278500529.62668")
+.sub "get_module"  :subid("16_1279564389.64843") :method :outer("11_1279564389.64843")
     .param pmc param_125
 .annotate 'line', 47
     new $P124, 'ExceptionHandler'
@@ -7289,7 +7475,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "language"  :subid("17_1278500529.62668") :method :outer("11_1278500529.62668")
+.sub "language"  :subid("17_1279564389.64843") :method :outer("11_1279564389.64843")
     .param pmc param_141 :optional
     .param int has_param_141 :opt_flag
 .annotate 'line', 53
@@ -7334,10 +7520,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "load_module"  :subid("18_1278500529.62668") :method :outer("11_1278500529.62668")
+.sub "load_module"  :subid("18_1279564389.64843") :method :outer("11_1279564389.64843")
     .param pmc param_156
 .annotate 'line', 61
-    .const 'Sub' $P166 = "19_1278500529.62668" 
+    .const 'Sub' $P166 = "19_1279564389.64843" 
     capture_lex $P166
     new $P155, 'ExceptionHandler'
     set_addr $P155, control_154
@@ -7364,7 +7550,7 @@
     assign $P164, 0
     store_lex "$loaded", $P164
 .annotate 'line', 64
-    .const 'Sub' $P166 = "19_1278500529.62668" 
+    .const 'Sub' $P166 = "19_1279564389.64843" 
     capture_lex $P166
     $P166()
 .annotate 'line', 65
@@ -7394,7 +7580,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block165"  :anon :subid("19_1278500529.62668") :outer("18_1278500529.62668")
+.sub "_block165"  :anon :subid("19_1279564389.64843") :outer("18_1279564389.64843")
 .annotate 'line', 64
     new $P173, 'ExceptionHandler'
     set_addr $P173, control_172
@@ -7428,11 +7614,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "import"  :subid("20_1278500529.62668") :method :outer("11_1278500529.62668")
+.sub "import"  :subid("20_1279564389.64843") :method :outer("11_1279564389.64843")
     .param pmc param_191
     .param pmc param_192
 .annotate 'line', 69
-    .const 'Sub' $P198 = "21_1278500529.62668" 
+    .const 'Sub' $P198 = "21_1279564389.64843" 
     capture_lex $P198
     new $P190, 'ExceptionHandler'
     set_addr $P190, control_189
@@ -7454,7 +7640,7 @@
     unless $P193, loop279_done
     shift $P196, $P193
   loop279_redo:
-    .const 'Sub' $P198 = "21_1278500529.62668" 
+    .const 'Sub' $P198 = "21_1279564389.64843" 
     capture_lex $P198
     $P198($P196)
   loop279_next:
@@ -7480,14 +7666,14 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block197"  :anon :subid("21_1278500529.62668") :outer("20_1278500529.62668")
+.sub "_block197"  :anon :subid("21_1279564389.64843") :outer("20_1279564389.64843")
     .param pmc param_201
 .annotate 'line', 70
-    .const 'Sub' $P268 = "24_1278500529.62668" 
+    .const 'Sub' $P268 = "24_1279564389.64843" 
     capture_lex $P268
-    .const 'Sub' $P248 = "23_1278500529.62668" 
+    .const 'Sub' $P248 = "23_1279564389.64843" 
     capture_lex $P248
-    .const 'Sub' $P219 = "22_1278500529.62668" 
+    .const 'Sub' $P219 = "22_1279564389.64843" 
     capture_lex $P219
 .annotate 'line', 71
     new $P199, "Undef"
@@ -7535,7 +7721,7 @@
     unless $P263, loop276_done
     shift $P266, $P263
   loop276_redo:
-    .const 'Sub' $P268 = "24_1278500529.62668" 
+    .const 'Sub' $P268 = "24_1279564389.64843" 
     capture_lex $P268
     $P268($P266)
   loop276_next:
@@ -7567,7 +7753,7 @@
     unless $P243, loop260_done
     shift $P246, $P243
   loop260_redo:
-    .const 'Sub' $P248 = "23_1278500529.62668" 
+    .const 'Sub' $P248 = "23_1279564389.64843" 
     capture_lex $P248
     $P248($P246)
   loop260_next:
@@ -7601,7 +7787,7 @@
     unless $P214, loop232_done
     shift $P217, $P214
   loop232_redo:
-    .const 'Sub' $P219 = "22_1278500529.62668" 
+    .const 'Sub' $P219 = "22_1279564389.64843" 
     capture_lex $P219
     $P219($P217)
   loop232_next:
@@ -7624,7 +7810,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block267"  :anon :subid("24_1278500529.62668") :outer("21_1278500529.62668")
+.sub "_block267"  :anon :subid("24_1279564389.64843") :outer("21_1279564389.64843")
     .param pmc param_269
 .annotate 'line', 80
     .lex "$_", param_269
@@ -7644,7 +7830,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block247"  :anon :subid("23_1278500529.62668") :outer("21_1278500529.62668")
+.sub "_block247"  :anon :subid("23_1279564389.64843") :outer("21_1279564389.64843")
     .param pmc param_249
 .annotate 'line', 77
     .lex "$_", param_249
@@ -7664,7 +7850,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block218"  :anon :subid("22_1278500529.62668") :outer("21_1278500529.62668")
+.sub "_block218"  :anon :subid("22_1279564389.64843") :outer("21_1279564389.64843")
     .param pmc param_220
 .annotate 'line', 74
     .lex "$_", param_220
@@ -7686,7 +7872,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "autoprint"  :subid("25_1278500529.62668") :method :outer("11_1278500529.62668")
+.sub "autoprint"  :subid("25_1279564389.64843") :method :outer("11_1279564389.64843")
     .param pmc param_286
 .annotate 'line', 85
     new $P285, 'ExceptionHandler'
@@ -7730,10 +7916,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "interactive"  :subid("26_1278500529.62668") :method :outer("11_1278500529.62668")
+.sub "interactive"  :subid("26_1279564389.64843") :method :outer("11_1279564389.64843")
     .param pmc param_301 :slurpy :named
 .annotate 'line', 90
-    .const 'Sub' $P333 = "27_1278500529.62668" 
+    .const 'Sub' $P333 = "27_1279564389.64843" 
     capture_lex $P333
     new $P300, 'ExceptionHandler'
     set_addr $P300, control_299
@@ -7820,7 +8006,7 @@
     assign $P331, 1
     unless $P331, loop443_done
   loop443_redo:
-    .const 'Sub' $P333 = "27_1278500529.62668" 
+    .const 'Sub' $P333 = "27_1279564389.64843" 
     capture_lex $P333
     $P333()
   loop443_next:
@@ -7845,9 +8031,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block332"  :anon :subid("27_1278500529.62668") :outer("26_1278500529.62668")
+.sub "_block332"  :anon :subid("27_1279564389.64843") :outer("26_1279564389.64843")
 .annotate 'line', 102
-    .const 'Sub' $P365 = "28_1278500529.62668" 
+    .const 'Sub' $P365 = "28_1279564389.64843" 
     capture_lex $P365
 .annotate 'line', 105
     new $P334, "Undef"
@@ -7915,7 +8101,7 @@
     set $P361, $P363
     goto if_362_end
   if_362:
-    .const 'Sub' $P365 = "28_1278500529.62668" 
+    .const 'Sub' $P365 = "28_1279564389.64843" 
     capture_lex $P365
     $P442 = $P365()
     set $P361, $P442
@@ -7927,11 +8113,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block364"  :anon :subid("28_1278500529.62668") :outer("27_1278500529.62668")
+.sub "_block364"  :anon :subid("28_1279564389.64843") :outer("27_1279564389.64843")
 .annotate 'line', 115
-    .const 'Sub' $P398 = "31_1278500529.62668" 
+    .const 'Sub' $P398 = "31_1279564389.64843" 
     capture_lex $P398
-    .const 'Sub' $P371 = "29_1278500529.62668" 
+    .const 'Sub' $P371 = "29_1279564389.64843" 
     capture_lex $P371
 .annotate 'line', 117
     new $P366, "Undef"
@@ -7942,7 +8128,7 @@
     store_lex "$code", $P368
     find_lex $P369, "$output"
 .annotate 'line', 118
-    .const 'Sub' $P371 = "29_1278500529.62668" 
+    .const 'Sub' $P371 = "29_1279564389.64843" 
     capture_lex $P371
     $P371()
 .annotate 'line', 125
@@ -7955,7 +8141,7 @@
   vivify_67:
     defined $I396, $P395
     unless $I396, if_394_end
-    .const 'Sub' $P398 = "31_1278500529.62668" 
+    .const 'Sub' $P398 = "31_1279564389.64843" 
     capture_lex $P398
     $P398()
   if_394_end:
@@ -8009,9 +8195,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block370"  :anon :subid("29_1278500529.62668") :outer("28_1278500529.62668")
+.sub "_block370"  :anon :subid("29_1279564389.64843") :outer("28_1279564389.64843")
 .annotate 'line', 118
-    .const 'Sub' $P383 = "30_1278500529.62668" 
+    .const 'Sub' $P383 = "30_1279564389.64843" 
     capture_lex $P383
     new $P379, 'ExceptionHandler'
     set_addr $P379, control_378
@@ -8031,7 +8217,7 @@
 .annotate 'line', 120
     .local pmc exception 
     .get_results (exception) 
-    .const 'Sub' $P383 = "30_1278500529.62668" 
+    .const 'Sub' $P383 = "30_1279564389.64843" 
     newclosure $P391, $P383
     $P391(exception)
     new $P392, 'Integer'
@@ -8051,7 +8237,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block382"  :anon :subid("30_1278500529.62668") :outer("29_1278500529.62668")
+.sub "_block382"  :anon :subid("30_1279564389.64843") :outer("29_1279564389.64843")
     .param pmc param_384
 .annotate 'line', 120
     .lex "$_", param_384
@@ -8074,9 +8260,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block397"  :anon :subid("31_1278500529.62668") :outer("28_1278500529.62668")
+.sub "_block397"  :anon :subid("31_1279564389.64843") :outer("28_1279564389.64843")
 .annotate 'line', 125
-    .const 'Sub' $P409 = "32_1278500529.62668" 
+    .const 'Sub' $P409 = "32_1279564389.64843" 
     capture_lex $P409
 .annotate 'line', 126
     get_global $P399, "$interactive_ctx"
@@ -8113,7 +8299,7 @@
     unless $P403, loop416_done
     shift $P407, $P403
   loop416_redo:
-    .const 'Sub' $P409 = "32_1278500529.62668" 
+    .const 'Sub' $P409 = "32_1279564389.64843" 
     capture_lex $P409
     $P409($P407)
   loop416_next:
@@ -8136,7 +8322,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block408"  :anon :subid("32_1278500529.62668") :outer("31_1278500529.62668")
+.sub "_block408"  :anon :subid("32_1279564389.64843") :outer("31_1279564389.64843")
     .param pmc param_410
 .annotate 'line', 128
     .lex "$_", param_410
@@ -8158,12 +8344,12 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "eval"  :subid("33_1278500529.62668") :method :outer("11_1278500529.62668")
+.sub "eval"  :subid("33_1279564389.64843") :method :outer("11_1279564389.64843")
     .param pmc param_450
     .param pmc param_451 :slurpy
     .param pmc param_452 :slurpy :named
 .annotate 'line', 146
-    .const 'Sub' $P471 = "34_1278500529.62668" 
+    .const 'Sub' $P471 = "34_1279564389.64843" 
     capture_lex $P471
     new $P449, 'ExceptionHandler'
     set_addr $P449, control_448
@@ -8210,7 +8396,7 @@
     set $P460, $I469
   if_461_end:
     unless $P460, if_459_end
-    .const 'Sub' $P471 = "34_1278500529.62668" 
+    .const 'Sub' $P471 = "34_1279564389.64843" 
     capture_lex $P471
     $P471()
   if_459_end:
@@ -8227,7 +8413,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block470"  :anon :subid("34_1278500529.62668") :outer("33_1278500529.62668")
+.sub "_block470"  :anon :subid("34_1279564389.64843") :outer("33_1279564389.64843")
 .annotate 'line', 152
     new $P472, "Undef"
     .lex "$outer_ctx", $P472
@@ -8281,7 +8467,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "ctxsave"  :subid("35_1278500529.62668") :method :outer("11_1278500529.62668")
+.sub "ctxsave"  :subid("35_1279564389.64843") :method :outer("11_1279564389.64843")
 .annotate 'line', 165
     new $P491, 'ExceptionHandler'
     set_addr $P491, control_490
@@ -8309,9 +8495,9 @@
 
 
 .namespace []
-.sub "_block498" :load :anon :subid("36_1278500529.62668")
+.sub "_block498" :load :anon :subid("36_1279564389.64843")
 .annotate 'line', 1
-    .const 'Sub' $P500 = "10_1278500529.62668" 
+    .const 'Sub' $P500 = "10_1279564389.64843" 
     $P501 = $P500()
     .return ($P501)
 .end

Modified: branches/gsoc_threads/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/gsoc_threads/ext/nqp-rx/src/stage0/NQP-s0.pir	Tue Jul 20 01:19:43 2010	(r48117)
+++ branches/gsoc_threads/ext/nqp-rx/src/stage0/NQP-s0.pir	Tue Jul 20 01:40:46 2010	(r48118)
@@ -15,7 +15,7 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1278500537.15927")
+.sub "_block11"  :anon :subid("10_1279564397.22945")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
@@ -29,341 +29,341 @@
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
-    $P1456 = $P14()
+    $P1423 = $P14()
 .annotate 'line', 1
-    .return ($P1456)
-    .const 'Sub' $P1458 = "371_1278500537.15927" 
-    .return ($P1458)
+    .return ($P1423)
+    .const 'Sub' $P1425 = "371_1279564397.22945" 
+    .return ($P1425)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post372") :outer("10_1278500537.15927")
+.sub "" :load :init :subid("post372") :outer("10_1279564397.22945")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1278500537.15927" 
+    .const 'Sub' $P12 = "10_1279564397.22945" 
     .local pmc block
     set block, $P12
-    $P1461 = get_root_global ["parrot"], "P6metaclass"
-    $P1461."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+    $P1428 = get_root_global ["parrot"], "P6metaclass"
+    $P1428."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1278500537.15927") :outer("10_1278500537.15927")
+.sub "_block13"  :subid("11_1279564397.22945") :outer("10_1279564397.22945")
 .annotate 'line', 4
-    get_hll_global $P1372, ["NQP";"Regex"], "_block1371" 
-    capture_lex $P1372
-    .const 'Sub' $P1358 = "348_1278500537.15927" 
-    capture_lex $P1358
-    .const 'Sub' $P1352 = "346_1278500537.15927" 
-    capture_lex $P1352
-    .const 'Sub' $P1346 = "344_1278500537.15927" 
-    capture_lex $P1346
-    .const 'Sub' $P1340 = "342_1278500537.15927" 
+    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
     capture_lex $P1340
-    .const 'Sub' $P1334 = "340_1278500537.15927" 
-    capture_lex $P1334
-    .const 'Sub' $P1328 = "338_1278500537.15927" 
-    capture_lex $P1328
-    .const 'Sub' $P1321 = "336_1278500537.15927" 
-    capture_lex $P1321
-    .const 'Sub' $P1314 = "334_1278500537.15927" 
+    .const 'Sub' $P1326 = "348_1279564397.22945" 
+    capture_lex $P1326
+    .const 'Sub' $P1320 = "346_1279564397.22945" 
+    capture_lex $P1320
+    .const 'Sub' $P1314 = "344_1279564397.22945" 
     capture_lex $P1314
-    .const 'Sub' $P1307 = "332_1278500537.15927" 
-    capture_lex $P1307
-    .const 'Sub' $P1300 = "330_1278500537.15927" 
-    capture_lex $P1300
-    .const 'Sub' $P1294 = "328_1278500537.15927" 
-    capture_lex $P1294
-    .const 'Sub' $P1287 = "326_1278500537.15927" 
-    capture_lex $P1287
-    .const 'Sub' $P1280 = "324_1278500537.15927" 
-    capture_lex $P1280
-    .const 'Sub' $P1273 = "322_1278500537.15927" 
-    capture_lex $P1273
-    .const 'Sub' $P1266 = "320_1278500537.15927" 
-    capture_lex $P1266
-    .const 'Sub' $P1259 = "318_1278500537.15927" 
-    capture_lex $P1259
-    .const 'Sub' $P1252 = "316_1278500537.15927" 
-    capture_lex $P1252
-    .const 'Sub' $P1245 = "314_1278500537.15927" 
-    capture_lex $P1245
-    .const 'Sub' $P1238 = "312_1278500537.15927" 
-    capture_lex $P1238
-    .const 'Sub' $P1231 = "310_1278500537.15927" 
-    capture_lex $P1231
-    .const 'Sub' $P1224 = "308_1278500537.15927" 
-    capture_lex $P1224
-    .const 'Sub' $P1217 = "306_1278500537.15927" 
-    capture_lex $P1217
-    .const 'Sub' $P1210 = "304_1278500537.15927" 
-    capture_lex $P1210
-    .const 'Sub' $P1203 = "302_1278500537.15927" 
-    capture_lex $P1203
-    .const 'Sub' $P1196 = "300_1278500537.15927" 
-    capture_lex $P1196
-    .const 'Sub' $P1189 = "298_1278500537.15927" 
-    capture_lex $P1189
-    .const 'Sub' $P1182 = "296_1278500537.15927" 
-    capture_lex $P1182
-    .const 'Sub' $P1175 = "294_1278500537.15927" 
-    capture_lex $P1175
-    .const 'Sub' $P1168 = "292_1278500537.15927" 
-    capture_lex $P1168
-    .const 'Sub' $P1161 = "290_1278500537.15927" 
-    capture_lex $P1161
-    .const 'Sub' $P1154 = "288_1278500537.15927" 
-    capture_lex $P1154
-    .const 'Sub' $P1147 = "286_1278500537.15927" 
-    capture_lex $P1147
-    .const 'Sub' $P1140 = "284_1278500537.15927" 
-    capture_lex $P1140
-    .const 'Sub' $P1133 = "282_1278500537.15927" 
-    capture_lex $P1133
-    .const 'Sub' $P1126 = "280_1278500537.15927" 
-    capture_lex $P1126
-    .const 'Sub' $P1119 = "278_1278500537.15927" 
-    capture_lex $P1119
-    .const 'Sub' $P1112 = "276_1278500537.15927" 
-    capture_lex $P1112
-    .const 'Sub' $P1105 = "274_1278500537.15927" 
-    capture_lex $P1105
-    .const 'Sub' $P1098 = "272_1278500537.15927" 
-    capture_lex $P1098
-    .const 'Sub' $P1091 = "270_1278500537.15927" 
-    capture_lex $P1091
-    .const 'Sub' $P1085 = "268_1278500537.15927" 
-    capture_lex $P1085
-    .const 'Sub' $P1078 = "266_1278500537.15927" 
-    capture_lex $P1078
-    .const 'Sub' $P1071 = "264_1278500537.15927" 
-    capture_lex $P1071
-    .const 'Sub' $P1064 = "262_1278500537.15927" 
-    capture_lex $P1064
-    .const 'Sub' $P1057 = "260_1278500537.15927" 
-    capture_lex $P1057
-    .const 'Sub' $P1050 = "258_1278500537.15927" 
-    capture_lex $P1050
-    .const 'Sub' $P1043 = "256_1278500537.15927" 
-    capture_lex $P1043
-    .const 'Sub' $P1036 = "254_1278500537.15927" 
-    capture_lex $P1036
-    .const 'Sub' $P1030 = "252_1278500537.15927" 
-    capture_lex $P1030
-    .const 'Sub' $P1024 = "250_1278500537.15927" 
-    capture_lex $P1024
-    .const 'Sub' $P1019 = "248_1278500537.15927" 
-    capture_lex $P1019
-    .const 'Sub' $P1013 = "246_1278500537.15927" 
-    capture_lex $P1013
-    .const 'Sub' $P1007 = "244_1278500537.15927" 
-    capture_lex $P1007
-    .const 'Sub' $P1002 = "242_1278500537.15927" 
-    capture_lex $P1002
-    .const 'Sub' $P997 = "240_1278500537.15927" 
-    capture_lex $P997
-    .const 'Sub' $P989 = "238_1278500537.15927" 
-    capture_lex $P989
-    .const 'Sub' $P981 = "236_1278500537.15927" 
+    .const 'Sub' $P1308 = "342_1279564397.22945" 
+    capture_lex $P1308
+    .const 'Sub' $P1302 = "340_1279564397.22945" 
+    capture_lex $P1302
+    .const 'Sub' $P1296 = "338_1279564397.22945" 
+    capture_lex $P1296
+    .const 'Sub' $P1289 = "336_1279564397.22945" 
+    capture_lex $P1289
+    .const 'Sub' $P1282 = "334_1279564397.22945" 
+    capture_lex $P1282
+    .const 'Sub' $P1275 = "332_1279564397.22945" 
+    capture_lex $P1275
+    .const 'Sub' $P1268 = "330_1279564397.22945" 
+    capture_lex $P1268
+    .const 'Sub' $P1262 = "328_1279564397.22945" 
+    capture_lex $P1262
+    .const 'Sub' $P1255 = "326_1279564397.22945" 
+    capture_lex $P1255
+    .const 'Sub' $P1248 = "324_1279564397.22945" 
+    capture_lex $P1248
+    .const 'Sub' $P1241 = "322_1279564397.22945" 
+    capture_lex $P1241
+    .const 'Sub' $P1234 = "320_1279564397.22945" 
+    capture_lex $P1234
+    .const 'Sub' $P1227 = "318_1279564397.22945" 
+    capture_lex $P1227
+    .const 'Sub' $P1220 = "316_1279564397.22945" 
+    capture_lex $P1220
+    .const 'Sub' $P1213 = "314_1279564397.22945" 
+    capture_lex $P1213
+    .const 'Sub' $P1206 = "312_1279564397.22945" 
+    capture_lex $P1206
+    .const 'Sub' $P1199 = "310_1279564397.22945" 
+    capture_lex $P1199
+    .const 'Sub' $P1192 = "308_1279564397.22945" 
+    capture_lex $P1192
+    .const 'Sub' $P1185 = "306_1279564397.22945" 
+    capture_lex $P1185
+    .const 'Sub' $P1178 = "304_1279564397.22945" 
+    capture_lex $P1178
+    .const 'Sub' $P1171 = "302_1279564397.22945" 
+    capture_lex $P1171
+    .const 'Sub' $P1164 = "300_1279564397.22945" 
+    capture_lex $P1164
+    .const 'Sub' $P1157 = "298_1279564397.22945" 
+    capture_lex $P1157
+    .const 'Sub' $P1150 = "296_1279564397.22945" 
+    capture_lex $P1150
+    .const 'Sub' $P1143 = "294_1279564397.22945" 
+    capture_lex $P1143
+    .const 'Sub' $P1136 = "292_1279564397.22945" 
+    capture_lex $P1136
+    .const 'Sub' $P1129 = "290_1279564397.22945" 
+    capture_lex $P1129
+    .const 'Sub' $P1122 = "288_1279564397.22945" 
+    capture_lex $P1122
+    .const 'Sub' $P1115 = "286_1279564397.22945" 
+    capture_lex $P1115
+    .const 'Sub' $P1108 = "284_1279564397.22945" 
+    capture_lex $P1108
+    .const 'Sub' $P1101 = "282_1279564397.22945" 
+    capture_lex $P1101
+    .const 'Sub' $P1094 = "280_1279564397.22945" 
+    capture_lex $P1094
+    .const 'Sub' $P1087 = "278_1279564397.22945" 
+    capture_lex $P1087
+    .const 'Sub' $P1080 = "276_1279564397.22945" 
+    capture_lex $P1080
+    .const 'Sub' $P1073 = "274_1279564397.22945" 
+    capture_lex $P1073
+    .const 'Sub' $P1066 = "272_1279564397.22945" 
+    capture_lex $P1066
+    .const 'Sub' $P1059 = "270_1279564397.22945" 
+    capture_lex $P1059
+    .const 'Sub' $P1053 = "268_1279564397.22945" 
+    capture_lex $P1053
+    .const 'Sub' $P1046 = "266_1279564397.22945" 
+    capture_lex $P1046
+    .const 'Sub' $P1039 = "264_1279564397.22945" 
+    capture_lex $P1039
+    .const 'Sub' $P1032 = "262_1279564397.22945" 
+    capture_lex $P1032
+    .const 'Sub' $P1025 = "260_1279564397.22945" 
+    capture_lex $P1025
+    .const 'Sub' $P1018 = "258_1279564397.22945" 
+    capture_lex $P1018
+    .const 'Sub' $P1011 = "256_1279564397.22945" 
+    capture_lex $P1011
+    .const 'Sub' $P1004 = "254_1279564397.22945" 
+    capture_lex $P1004
+    .const 'Sub' $P998 = "252_1279564397.22945" 
+    capture_lex $P998
+    .const 'Sub' $P992 = "250_1279564397.22945" 
+    capture_lex $P992
+    .const 'Sub' $P987 = "248_1279564397.22945" 
+    capture_lex $P987
+    .const 'Sub' $P981 = "246_1279564397.22945" 
     capture_lex $P981
-    .const 'Sub' $P976 = "234_1278500537.15927" 
-    capture_lex $P976
-    .const 'Sub' $P971 = "232_1278500537.15927" 
-    capture_lex $P971
-    .const 'Sub' $P966 = "230_1278500537.15927" 
-    capture_lex $P966
-    .const 'Sub' $P958 = "228_1278500537.15927" 
-    capture_lex $P958
-    .const 'Sub' $P950 = "226_1278500537.15927" 
-    capture_lex $P950
-    .const 'Sub' $P945 = "224_1278500537.15927" 
-    capture_lex $P945
-    .const 'Sub' $P940 = "222_1278500537.15927" 
-    capture_lex $P940
-    .const 'Sub' $P935 = "220_1278500537.15927" 
-    capture_lex $P935
-    .const 'Sub' $P929 = "218_1278500537.15927" 
-    capture_lex $P929
-    .const 'Sub' $P923 = "216_1278500537.15927" 
-    capture_lex $P923
-    .const 'Sub' $P917 = "214_1278500537.15927" 
+    .const 'Sub' $P975 = "244_1279564397.22945" 
+    capture_lex $P975
+    .const 'Sub' $P970 = "242_1279564397.22945" 
+    capture_lex $P970
+    .const 'Sub' $P965 = "240_1279564397.22945" 
+    capture_lex $P965
+    .const 'Sub' $P957 = "238_1279564397.22945" 
+    capture_lex $P957
+    .const 'Sub' $P948 = "236_1279564397.22945" 
+    capture_lex $P948
+    .const 'Sub' $P943 = "234_1279564397.22945" 
+    capture_lex $P943
+    .const 'Sub' $P938 = "232_1279564397.22945" 
+    capture_lex $P938
+    .const 'Sub' $P933 = "230_1279564397.22945" 
+    capture_lex $P933
+    .const 'Sub' $P925 = "228_1279564397.22945" 
+    capture_lex $P925
+    .const 'Sub' $P917 = "226_1279564397.22945" 
     capture_lex $P917
-    .const 'Sub' $P911 = "212_1278500537.15927" 
-    capture_lex $P911
-    .const 'Sub' $P905 = "210_1278500537.15927" 
-    capture_lex $P905
-    .const 'Sub' $P900 = "208_1278500537.15927" 
-    capture_lex $P900
-    .const 'Sub' $P895 = "206_1278500537.15927" 
-    capture_lex $P895
-    .const 'Sub' $P882 = "202_1278500537.15927" 
-    capture_lex $P882
-    .const 'Sub' $P874 = "200_1278500537.15927" 
-    capture_lex $P874
-    .const 'Sub' $P868 = "198_1278500537.15927" 
-    capture_lex $P868
-    .const 'Sub' $P861 = "196_1278500537.15927" 
-    capture_lex $P861
-    .const 'Sub' $P855 = "194_1278500537.15927" 
-    capture_lex $P855
-    .const 'Sub' $P847 = "192_1278500537.15927" 
-    capture_lex $P847
-    .const 'Sub' $P839 = "190_1278500537.15927" 
-    capture_lex $P839
-    .const 'Sub' $P833 = "188_1278500537.15927" 
-    capture_lex $P833
-    .const 'Sub' $P827 = "186_1278500537.15927" 
-    capture_lex $P827
-    .const 'Sub' $P812 = "182_1278500537.15927" 
-    capture_lex $P812
-    .const 'Sub' $P774 = "180_1278500537.15927" 
-    capture_lex $P774
-    .const 'Sub' $P765 = "178_1278500537.15927" 
-    capture_lex $P765
-    .const 'Sub' $P759 = "176_1278500537.15927" 
-    capture_lex $P759
-    .const 'Sub' $P749 = "174_1278500537.15927" 
-    capture_lex $P749
-    .const 'Sub' $P735 = "172_1278500537.15927" 
+    .const 'Sub' $P912 = "224_1279564397.22945" 
+    capture_lex $P912
+    .const 'Sub' $P907 = "222_1279564397.22945" 
+    capture_lex $P907
+    .const 'Sub' $P902 = "220_1279564397.22945" 
+    capture_lex $P902
+    .const 'Sub' $P896 = "218_1279564397.22945" 
+    capture_lex $P896
+    .const 'Sub' $P890 = "216_1279564397.22945" 
+    capture_lex $P890
+    .const 'Sub' $P884 = "214_1279564397.22945" 
+    capture_lex $P884
+    .const 'Sub' $P878 = "212_1279564397.22945" 
+    capture_lex $P878
+    .const 'Sub' $P872 = "210_1279564397.22945" 
+    capture_lex $P872
+    .const 'Sub' $P867 = "208_1279564397.22945" 
+    capture_lex $P867
+    .const 'Sub' $P862 = "206_1279564397.22945" 
+    capture_lex $P862
+    .const 'Sub' $P850 = "202_1279564397.22945" 
+    capture_lex $P850
+    .const 'Sub' $P842 = "200_1279564397.22945" 
+    capture_lex $P842
+    .const 'Sub' $P836 = "198_1279564397.22945" 
+    capture_lex $P836
+    .const 'Sub' $P829 = "196_1279564397.22945" 
+    capture_lex $P829
+    .const 'Sub' $P823 = "194_1279564397.22945" 
+    capture_lex $P823
+    .const 'Sub' $P815 = "192_1279564397.22945" 
+    capture_lex $P815
+    .const 'Sub' $P807 = "190_1279564397.22945" 
+    capture_lex $P807
+    .const 'Sub' $P801 = "188_1279564397.22945" 
+    capture_lex $P801
+    .const 'Sub' $P795 = "186_1279564397.22945" 
+    capture_lex $P795
+    .const 'Sub' $P781 = "182_1279564397.22945" 
+    capture_lex $P781
+    .const 'Sub' $P744 = "180_1279564397.22945" 
+    capture_lex $P744
+    .const 'Sub' $P735 = "178_1279564397.22945" 
     capture_lex $P735
-    .const 'Sub' $P726 = "170_1278500537.15927" 
-    capture_lex $P726
-    .const 'Sub' $P718 = "168_1278500537.15927" 
-    capture_lex $P718
-    .const 'Sub' $P708 = "166_1278500537.15927" 
-    capture_lex $P708
-    .const 'Sub' $P684 = "162_1278500537.15927" 
-    capture_lex $P684
-    .const 'Sub' $P659 = "160_1278500537.15927" 
-    capture_lex $P659
-    .const 'Sub' $P652 = "158_1278500537.15927" 
-    capture_lex $P652
-    .const 'Sub' $P645 = "156_1278500537.15927" 
-    capture_lex $P645
-    .const 'Sub' $P635 = "152_1278500537.15927" 
-    capture_lex $P635
-    .const 'Sub' $P627 = "150_1278500537.15927" 
+    .const 'Sub' $P729 = "176_1279564397.22945" 
+    capture_lex $P729
+    .const 'Sub' $P719 = "174_1279564397.22945" 
+    capture_lex $P719
+    .const 'Sub' $P706 = "172_1279564397.22945" 
+    capture_lex $P706
+    .const 'Sub' $P699 = "170_1279564397.22945" 
+    capture_lex $P699
+    .const 'Sub' $P691 = "168_1279564397.22945" 
+    capture_lex $P691
+    .const 'Sub' $P681 = "166_1279564397.22945" 
+    capture_lex $P681
+    .const 'Sub' $P657 = "162_1279564397.22945" 
+    capture_lex $P657
+    .const 'Sub' $P634 = "160_1279564397.22945" 
+    capture_lex $P634
+    .const 'Sub' $P627 = "158_1279564397.22945" 
     capture_lex $P627
-    .const 'Sub' $P621 = "148_1278500537.15927" 
-    capture_lex $P621
-    .const 'Sub' $P608 = "146_1278500537.15927" 
-    capture_lex $P608
-    .const 'Sub' $P601 = "144_1278500537.15927" 
-    capture_lex $P601
-    .const 'Sub' $P594 = "142_1278500537.15927" 
-    capture_lex $P594
-    .const 'Sub' $P587 = "140_1278500537.15927" 
-    capture_lex $P587
-    .const 'Sub' $P559 = "136_1278500537.15927" 
-    capture_lex $P559
-    .const 'Sub' $P550 = "134_1278500537.15927" 
-    capture_lex $P550
-    .const 'Sub' $P543 = "132_1278500537.15927" 
-    capture_lex $P543
-    .const 'Sub' $P534 = "128_1278500537.15927" 
-    capture_lex $P534
-    .const 'Sub' $P529 = "126_1278500537.15927" 
-    capture_lex $P529
-    .const 'Sub' $P517 = "124_1278500537.15927" 
-    capture_lex $P517
-    .const 'Sub' $P505 = "122_1278500537.15927" 
+    .const 'Sub' $P620 = "156_1279564397.22945" 
+    capture_lex $P620
+    .const 'Sub' $P610 = "152_1279564397.22945" 
+    capture_lex $P610
+    .const 'Sub' $P602 = "150_1279564397.22945" 
+    capture_lex $P602
+    .const 'Sub' $P596 = "148_1279564397.22945" 
+    capture_lex $P596
+    .const 'Sub' $P583 = "146_1279564397.22945" 
+    capture_lex $P583
+    .const 'Sub' $P576 = "144_1279564397.22945" 
+    capture_lex $P576
+    .const 'Sub' $P569 = "142_1279564397.22945" 
+    capture_lex $P569
+    .const 'Sub' $P562 = "140_1279564397.22945" 
+    capture_lex $P562
+    .const 'Sub' $P535 = "136_1279564397.22945" 
+    capture_lex $P535
+    .const 'Sub' $P526 = "134_1279564397.22945" 
+    capture_lex $P526
+    .const 'Sub' $P519 = "132_1279564397.22945" 
+    capture_lex $P519
+    .const 'Sub' $P510 = "128_1279564397.22945" 
+    capture_lex $P510
+    .const 'Sub' $P505 = "126_1279564397.22945" 
     capture_lex $P505
-    .const 'Sub' $P497 = "120_1278500537.15927" 
-    capture_lex $P497
-    .const 'Sub' $P492 = "118_1278500537.15927" 
-    capture_lex $P492
-    .const 'Sub' $P486 = "116_1278500537.15927" 
-    capture_lex $P486
-    .const 'Sub' $P480 = "114_1278500537.15927" 
-    capture_lex $P480
-    .const 'Sub' $P470 = "111_1278500537.15927" 
-    capture_lex $P470
-    .const 'Sub' $P464 = "109_1278500537.15927" 
-    capture_lex $P464
-    .const 'Sub' $P458 = "107_1278500537.15927" 
-    capture_lex $P458
-    .const 'Sub' $P452 = "105_1278500537.15927" 
-    capture_lex $P452
-    .const 'Sub' $P446 = "103_1278500537.15927" 
-    capture_lex $P446
-    .const 'Sub' $P440 = "101_1278500537.15927" 
-    capture_lex $P440
-    .const 'Sub' $P434 = "99_1278500537.15927" 
-    capture_lex $P434
-    .const 'Sub' $P425 = "97_1278500537.15927" 
-    capture_lex $P425
-    .const 'Sub' $P416 = "95_1278500537.15927" 
-    capture_lex $P416
-    .const 'Sub' $P407 = "93_1278500537.15927" 
-    capture_lex $P407
-    .const 'Sub' $P394 = "89_1278500537.15927" 
-    capture_lex $P394
-    .const 'Sub' $P385 = "87_1278500537.15927" 
-    capture_lex $P385
-    .const 'Sub' $P375 = "83_1278500537.15927" 
-    capture_lex $P375
-    .const 'Sub' $P368 = "81_1278500537.15927" 
-    capture_lex $P368
-    .const 'Sub' $P361 = "79_1278500537.15927" 
-    capture_lex $P361
-    .const 'Sub' $P349 = "75_1278500537.15927" 
-    capture_lex $P349
-    .const 'Sub' $P341 = "73_1278500537.15927" 
-    capture_lex $P341
-    .const 'Sub' $P333 = "71_1278500537.15927" 
-    capture_lex $P333
-    .const 'Sub' $P313 = "69_1278500537.15927" 
-    capture_lex $P313
-    .const 'Sub' $P304 = "67_1278500537.15927" 
-    capture_lex $P304
-    .const 'Sub' $P286 = "64_1278500537.15927" 
-    capture_lex $P286
-    .const 'Sub' $P266 = "62_1278500537.15927" 
-    capture_lex $P266
-    .const 'Sub' $P257 = "58_1278500537.15927" 
-    capture_lex $P257
-    .const 'Sub' $P252 = "56_1278500537.15927" 
-    capture_lex $P252
-    .const 'Sub' $P243 = "52_1278500537.15927" 
-    capture_lex $P243
-    .const 'Sub' $P238 = "50_1278500537.15927" 
-    capture_lex $P238
-    .const 'Sub' $P233 = "48_1278500537.15927" 
-    capture_lex $P233
-    .const 'Sub' $P225 = "46_1278500537.15927" 
-    capture_lex $P225
-    .const 'Sub' $P218 = "44_1278500537.15927" 
-    capture_lex $P218
-    .const 'Sub' $P212 = "42_1278500537.15927" 
+    .const 'Sub' $P493 = "124_1279564397.22945" 
+    capture_lex $P493
+    .const 'Sub' $P481 = "122_1279564397.22945" 
+    capture_lex $P481
+    .const 'Sub' $P474 = "120_1279564397.22945" 
+    capture_lex $P474
+    .const 'Sub' $P469 = "118_1279564397.22945" 
+    capture_lex $P469
+    .const 'Sub' $P463 = "116_1279564397.22945" 
+    capture_lex $P463
+    .const 'Sub' $P457 = "114_1279564397.22945" 
+    capture_lex $P457
+    .const 'Sub' $P447 = "111_1279564397.22945" 
+    capture_lex $P447
+    .const 'Sub' $P441 = "109_1279564397.22945" 
+    capture_lex $P441
+    .const 'Sub' $P435 = "107_1279564397.22945" 
+    capture_lex $P435
+    .const 'Sub' $P429 = "105_1279564397.22945" 
+    capture_lex $P429
+    .const 'Sub' $P423 = "103_1279564397.22945" 
+    capture_lex $P423
+    .const 'Sub' $P417 = "101_1279564397.22945" 
+    capture_lex $P417
+    .const 'Sub' $P411 = "99_1279564397.22945" 
+    capture_lex $P411
+    .const 'Sub' $P402 = "97_1279564397.22945" 
+    capture_lex $P402
+    .const 'Sub' $P393 = "95_1279564397.22945" 
+    capture_lex $P393
+    .const 'Sub' $P384 = "93_1279564397.22945" 
+    capture_lex $P384
+    .const 'Sub' $P371 = "89_1279564397.22945" 
+    capture_lex $P371
+    .const 'Sub' $P362 = "87_1279564397.22945" 
+    capture_lex $P362
+    .const 'Sub' $P352 = "83_1279564397.22945" 
+    capture_lex $P352
+    .const 'Sub' $P345 = "81_1279564397.22945" 
+    capture_lex $P345
+    .const 'Sub' $P338 = "79_1279564397.22945" 
+    capture_lex $P338
+    .const 'Sub' $P326 = "75_1279564397.22945" 
+    capture_lex $P326
+    .const 'Sub' $P318 = "73_1279564397.22945" 
+    capture_lex $P318
+    .const 'Sub' $P310 = "71_1279564397.22945" 
+    capture_lex $P310
+    .const 'Sub' $P290 = "69_1279564397.22945" 
+    capture_lex $P290
+    .const 'Sub' $P281 = "67_1279564397.22945" 
+    capture_lex $P281
+    .const 'Sub' $P263 = "64_1279564397.22945" 
+    capture_lex $P263
+    .const 'Sub' $P245 = "62_1279564397.22945" 
+    capture_lex $P245
+    .const 'Sub' $P236 = "58_1279564397.22945" 
+    capture_lex $P236
+    .const 'Sub' $P231 = "56_1279564397.22945" 
+    capture_lex $P231
+    .const 'Sub' $P222 = "52_1279564397.22945" 
+    capture_lex $P222
+    .const 'Sub' $P217 = "50_1279564397.22945" 
+    capture_lex $P217
+    .const 'Sub' $P212 = "48_1279564397.22945" 
     capture_lex $P212
-    .const 'Sub' $P204 = "40_1278500537.15927" 
-    capture_lex $P204
-    .const 'Sub' $P198 = "38_1278500537.15927" 
-    capture_lex $P198
-    .const 'Sub' $P192 = "36_1278500537.15927" 
-    capture_lex $P192
-    .const 'Sub' $P176 = "33_1278500537.15927" 
+    .const 'Sub' $P203 = "46_1279564397.22945" 
+    capture_lex $P203
+    .const 'Sub' $P196 = "44_1279564397.22945" 
+    capture_lex $P196
+    .const 'Sub' $P190 = "42_1279564397.22945" 
+    capture_lex $P190
+    .const 'Sub' $P182 = "40_1279564397.22945" 
+    capture_lex $P182
+    .const 'Sub' $P176 = "38_1279564397.22945" 
     capture_lex $P176
-    .const 'Sub' $P161 = "31_1278500537.15927" 
-    capture_lex $P161
-    .const 'Sub' $P154 = "29_1278500537.15927" 
-    capture_lex $P154
-    .const 'Sub' $P104 = "26_1278500537.15927" 
-    capture_lex $P104
-    .const 'Sub' $P86 = "23_1278500537.15927" 
-    capture_lex $P86
-    .const 'Sub' $P72 = "21_1278500537.15927" 
-    capture_lex $P72
-    .const 'Sub' $P58 = "19_1278500537.15927" 
-    capture_lex $P58
-    .const 'Sub' $P50 = "17_1278500537.15927" 
-    capture_lex $P50
-    .const 'Sub' $P43 = "15_1278500537.15927" 
-    capture_lex $P43
-    .const 'Sub' $P35 = "13_1278500537.15927" 
+    .const 'Sub' $P170 = "36_1279564397.22945" 
+    capture_lex $P170
+    .const 'Sub' $P155 = "33_1279564397.22945" 
+    capture_lex $P155
+    .const 'Sub' $P141 = "31_1279564397.22945" 
+    capture_lex $P141
+    .const 'Sub' $P134 = "29_1279564397.22945" 
+    capture_lex $P134
+    .const 'Sub' $P95 = "26_1279564397.22945" 
+    capture_lex $P95
+    .const 'Sub' $P80 = "23_1279564397.22945" 
+    capture_lex $P80
+    .const 'Sub' $P69 = "21_1279564397.22945" 
+    capture_lex $P69
+    .const 'Sub' $P57 = "19_1279564397.22945" 
+    capture_lex $P57
+    .const 'Sub' $P49 = "17_1279564397.22945" 
+    capture_lex $P49
+    .const 'Sub' $P42 = "15_1279564397.22945" 
+    capture_lex $P42
+    .const 'Sub' $P35 = "13_1279564397.22945" 
     capture_lex $P35
-    .const 'Sub' $P15 = "12_1278500537.15927" 
+    .const 'Sub' $P15 = "12_1279564397.22945" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -372,76 +372,76 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 567
-    get_hll_global $P1372, ["NQP";"Regex"], "_block1371" 
-    capture_lex $P1372
-    $P1435 = $P1372()
+    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
+    capture_lex $P1340
+    $P1402 = $P1340()
 .annotate 'line', 4
-    .return ($P1435)
-    .const 'Sub' $P1437 = "370_1278500537.15927" 
-    .return ($P1437)
+    .return ($P1402)
+    .const 'Sub' $P1404 = "370_1279564397.22945" 
+    .return ($P1404)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post373") :outer("11_1278500537.15927")
+.sub "" :load :init :subid("post373") :outer("11_1279564397.22945")
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 448
-    get_hll_global $P1440, ["NQP"], "Grammar"
-    $P1440."O"(":prec<y=>, :assoc<unary>", "%methodop")
+    get_hll_global $P1407, ["NQP"], "Grammar"
+    $P1407."O"(":prec<y=>, :assoc<unary>", "%methodop")
 .annotate 'line', 449
-    get_hll_global $P1441, ["NQP"], "Grammar"
-    $P1441."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
+    get_hll_global $P1408, ["NQP"], "Grammar"
+    $P1408."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
 .annotate 'line', 450
-    get_hll_global $P1442, ["NQP"], "Grammar"
-    $P1442."O"(":prec<w=>, :assoc<left>", "%exponentiation")
+    get_hll_global $P1409, ["NQP"], "Grammar"
+    $P1409."O"(":prec<w=>, :assoc<left>", "%exponentiation")
 .annotate 'line', 451
-    get_hll_global $P1443, ["NQP"], "Grammar"
-    $P1443."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
+    get_hll_global $P1410, ["NQP"], "Grammar"
+    $P1410."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
 .annotate 'line', 452
-    get_hll_global $P1444, ["NQP"], "Grammar"
-    $P1444."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+    get_hll_global $P1411, ["NQP"], "Grammar"
+    $P1411."O"(":prec<u=>, :assoc<left>", "%multiplicative")
 .annotate 'line', 453
-    get_hll_global $P1445, ["NQP"], "Grammar"
-    $P1445."O"(":prec<t=>, :assoc<left>", "%additive")
+    get_hll_global $P1412, ["NQP"], "Grammar"
+    $P1412."O"(":prec<t=>, :assoc<left>", "%additive")
 .annotate 'line', 454
-    get_hll_global $P1446, ["NQP"], "Grammar"
-    $P1446."O"(":prec<r=>, :assoc<left>", "%concatenation")
+    get_hll_global $P1413, ["NQP"], "Grammar"
+    $P1413."O"(":prec<r=>, :assoc<left>", "%concatenation")
 .annotate 'line', 455
-    get_hll_global $P1447, ["NQP"], "Grammar"
-    $P1447."O"(":prec<m=>, :assoc<left>", "%relational")
+    get_hll_global $P1414, ["NQP"], "Grammar"
+    $P1414."O"(":prec<m=>, :assoc<left>", "%relational")
 .annotate 'line', 456
-    get_hll_global $P1448, ["NQP"], "Grammar"
-    $P1448."O"(":prec<l=>, :assoc<left>", "%tight_and")
+    get_hll_global $P1415, ["NQP"], "Grammar"
+    $P1415."O"(":prec<l=>, :assoc<left>", "%tight_and")
 .annotate 'line', 457
-    get_hll_global $P1449, ["NQP"], "Grammar"
-    $P1449."O"(":prec<k=>, :assoc<left>", "%tight_or")
+    get_hll_global $P1416, ["NQP"], "Grammar"
+    $P1416."O"(":prec<k=>, :assoc<left>", "%tight_or")
 .annotate 'line', 458
-    get_hll_global $P1450, ["NQP"], "Grammar"
-    $P1450."O"(":prec<j=>, :assoc<right>", "%conditional")
+    get_hll_global $P1417, ["NQP"], "Grammar"
+    $P1417."O"(":prec<j=>, :assoc<right>", "%conditional")
 .annotate 'line', 459
-    get_hll_global $P1451, ["NQP"], "Grammar"
-    $P1451."O"(":prec<i=>, :assoc<right>", "%assignment")
+    get_hll_global $P1418, ["NQP"], "Grammar"
+    $P1418."O"(":prec<i=>, :assoc<right>", "%assignment")
 .annotate 'line', 460
-    get_hll_global $P1452, ["NQP"], "Grammar"
-    $P1452."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+    get_hll_global $P1419, ["NQP"], "Grammar"
+    $P1419."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
 .annotate 'line', 461
-    get_hll_global $P1453, ["NQP"], "Grammar"
-    $P1453."O"(":prec<f=>, :assoc<list>", "%list_infix")
+    get_hll_global $P1420, ["NQP"], "Grammar"
+    $P1420."O"(":prec<f=>, :assoc<list>", "%list_infix")
 .annotate 'line', 462
-    get_hll_global $P1454, ["NQP"], "Grammar"
-    $P1454."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+    get_hll_global $P1421, ["NQP"], "Grammar"
+    $P1421."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
 .annotate 'line', 447
-    $P1455 = get_root_global ["parrot"], "P6metaclass"
-    $P1455."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+    $P1422 = get_root_global ["parrot"], "P6metaclass"
+    $P1422."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("12_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "TOP"  :subid("12_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
@@ -531,7 +531,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "identifier"  :subid("13_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
     .local string rx36_tgt
     .local int rx36_pos
@@ -539,8 +539,7 @@
     .local int rx36_eos
     .local int rx36_rep
     .local pmc rx36_cur
-    (rx36_cur, rx36_pos, rx36_tgt) = self."!cursor_start"()
-    rx36_cur."!cursor_debug"("START ", "identifier")
+    (rx36_cur, rx36_pos, rx36_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx36_cur
     .local pmc match
     .lex "$/", match
@@ -551,6 +550,8 @@
     sub rx36_off, rx36_pos, 1
     substr rx36_tgt, rx36_tgt, rx36_off
   rx36_start:
+    eq $I10, 1, rx36_restart
+    rx36_cur."!cursor_debug"("START ", "identifier")
     $I10 = self.'from'()
     ne $I10, -1, rxscan40_done
     goto rxscan40_scan
@@ -570,8 +571,8 @@
     unless $P10, rx36_fail
     rx36_pos = $P10."pos"()
   # rx rxquantr41 ** 0..*
-    set_addr $I42, rxquantr41_done
-    rx36_cur."!mark_push"(0, rx36_pos, $I42)
+    set_addr $I10, rxquantr41_done
+    rx36_cur."!mark_push"(0, rx36_pos, $I10)
   rxquantr41_loop:
   # rx enumcharlist negate=0 
     ge rx36_pos, rx36_eos, rx36_fail
@@ -585,16 +586,20 @@
     $P10 = rx36_cur."ident"()
     unless $P10, rx36_fail
     rx36_pos = $P10."pos"()
-    (rx36_rep) = rx36_cur."!mark_commit"($I42)
-    rx36_cur."!mark_push"(rx36_rep, rx36_pos, $I42)
+    set_addr $I10, rxquantr41_done
+    (rx36_rep) = rx36_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr41_done
+    rx36_cur."!mark_push"(rx36_rep, rx36_pos, $I10)
     goto rxquantr41_loop
   rxquantr41_done:
   # rx pass
     rx36_cur."!cursor_pass"(rx36_pos, "identifier")
     rx36_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx36_pos)
     .return (rx36_cur)
-  rx36_fail:
+  rx36_restart:
 .annotate 'line', 4
+    rx36_cur."!cursor_debug"("NEXT ", "identifier")
+  rx36_fail:
     (rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0)
     lt rx36_pos, -1, rx36_done
     eq rx36_pos, -1, rx36_fail
@@ -608,7 +613,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1278500537.15927") :method
+.sub "!PREFIX__identifier"  :subid("14_1279564397.22945") :method
 .annotate 'line', 4
     $P38 = self."!PREFIX__!subrule"("ident", "")
     new $P39, "ResizablePMCArray"
@@ -618,1488 +623,1861 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "name"  :subid("15_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx44_tgt
-    .local int rx44_pos
-    .local int rx44_off
-    .local int rx44_eos
-    .local int rx44_rep
-    .local pmc rx44_cur
-    (rx44_cur, rx44_pos, rx44_tgt) = self."!cursor_start"()
-    rx44_cur."!cursor_debug"("START ", "name")
-    rx44_cur."!cursor_caparray"("identifier")
-    .lex unicode:"$\x{a2}", rx44_cur
-    .local pmc match
-    .lex "$/", match
-    length rx44_eos, rx44_tgt
-    gt rx44_pos, rx44_eos, rx44_done
-    set rx44_off, 0
-    lt rx44_pos, 2, rx44_start
-    sub rx44_off, rx44_pos, 1
-    substr rx44_tgt, rx44_tgt, rx44_off
-  rx44_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan47_done
-    goto rxscan47_scan
-  rxscan47_loop:
-    ($P10) = rx44_cur."from"()
-    inc $P10
-    set rx44_pos, $P10
-    ge rx44_pos, rx44_eos, rxscan47_done
-  rxscan47_scan:
-    set_addr $I10, rxscan47_loop
-    rx44_cur."!mark_push"(0, rx44_pos, $I10)
-  rxscan47_done:
+    .local string rx43_tgt
+    .local int rx43_pos
+    .local int rx43_off
+    .local int rx43_eos
+    .local int rx43_rep
+    .local pmc rx43_cur
+    (rx43_cur, rx43_pos, rx43_tgt, $I10) = self."!cursor_start"()
+    rx43_cur."!cursor_caparray"("identifier")
+    .lex unicode:"$\x{a2}", rx43_cur
+    .local pmc match
+    .lex "$/", match
+    length rx43_eos, rx43_tgt
+    gt rx43_pos, rx43_eos, rx43_done
+    set rx43_off, 0
+    lt rx43_pos, 2, rx43_start
+    sub rx43_off, rx43_pos, 1
+    substr rx43_tgt, rx43_tgt, rx43_off
+  rx43_start:
+    eq $I10, 1, rx43_restart
+    rx43_cur."!cursor_debug"("START ", "name")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan46_done
+    goto rxscan46_scan
+  rxscan46_loop:
+    ($P10) = rx43_cur."from"()
+    inc $P10
+    set rx43_pos, $P10
+    ge rx43_pos, rx43_eos, rxscan46_done
+  rxscan46_scan:
+    set_addr $I10, rxscan46_loop
+    rx43_cur."!mark_push"(0, rx43_pos, $I10)
+  rxscan46_done:
 .annotate 'line', 19
-  # rx rxquantr48 ** 1..*
-    set_addr $I49, rxquantr48_done
-    rx44_cur."!mark_push"(0, -1, $I49)
-  rxquantr48_loop:
+  # rx rxquantr47 ** 1..*
+    set_addr $I10, rxquantr47_done
+    rx43_cur."!mark_push"(0, -1, $I10)
+  rxquantr47_loop:
   # rx subrule "identifier" subtype=capture negate=
-    rx44_cur."!cursor_pos"(rx44_pos)
-    $P10 = rx44_cur."identifier"()
-    unless $P10, rx44_fail
-    rx44_cur."!mark_push"(0, -1, 0, $P10)
+    rx43_cur."!cursor_pos"(rx43_pos)
+    $P10 = rx43_cur."identifier"()
+    unless $P10, rx43_fail
+    goto rxsubrule48_pass
+  rxsubrule48_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx43_fail
+  rxsubrule48_pass:
+    set_addr $I10, rxsubrule48_back
+    rx43_cur."!mark_push"(0, rx43_pos, $I10, $P10)
     $P10."!cursor_names"("identifier")
-    rx44_pos = $P10."pos"()
-    (rx44_rep) = rx44_cur."!mark_commit"($I49)
-    rx44_cur."!mark_push"(rx44_rep, rx44_pos, $I49)
+    rx43_pos = $P10."pos"()
+    set_addr $I10, rxquantr47_done
+    (rx43_rep) = rx43_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr47_done
+    rx43_cur."!mark_push"(rx43_rep, rx43_pos, $I10)
   # rx literal  "::"
-    add $I11, rx44_pos, 2
-    gt $I11, rx44_eos, rx44_fail
-    sub $I11, rx44_pos, rx44_off
-    substr $S10, rx44_tgt, $I11, 2
-    ne $S10, "::", rx44_fail
-    add rx44_pos, 2
-    goto rxquantr48_loop
-  rxquantr48_done:
-  # rx pass
-    rx44_cur."!cursor_pass"(rx44_pos, "name")
-    rx44_cur."!cursor_debug"("PASS  ", "name", " at pos=", rx44_pos)
-    .return (rx44_cur)
-  rx44_fail:
-.annotate 'line', 4
-    (rx44_rep, rx44_pos, $I10, $P10) = rx44_cur."!mark_fail"(0)
-    lt rx44_pos, -1, rx44_done
-    eq rx44_pos, -1, rx44_fail
-    jump $I10
-  rx44_done:
-    rx44_cur."!cursor_fail"()
-    rx44_cur."!cursor_debug"("FAIL  ", "name")
-    .return (rx44_cur)
+    add $I11, rx43_pos, 2
+    gt $I11, rx43_eos, rx43_fail
+    sub $I11, rx43_pos, rx43_off
+    substr $S10, rx43_tgt, $I11, 2
+    ne $S10, "::", rx43_fail
+    add rx43_pos, 2
+    goto rxquantr47_loop
+  rxquantr47_done:
+  # rx pass
+    rx43_cur."!cursor_pass"(rx43_pos, "name")
+    rx43_cur."!cursor_debug"("PASS  ", "name", " at pos=", rx43_pos)
+    .return (rx43_cur)
+  rx43_restart:
+.annotate 'line', 4
+    rx43_cur."!cursor_debug"("NEXT ", "name")
+  rx43_fail:
+    (rx43_rep, rx43_pos, $I10, $P10) = rx43_cur."!mark_fail"(0)
+    lt rx43_pos, -1, rx43_done
+    eq rx43_pos, -1, rx43_fail
+    jump $I10
+  rx43_done:
+    rx43_cur."!cursor_fail"()
+    rx43_cur."!cursor_debug"("FAIL  ", "name")
+    .return (rx43_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1278500537.15927") :method
-.annotate 'line', 4
-    new $P46, "ResizablePMCArray"
-    push $P46, ""
-    .return ($P46)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx51_tgt
-    .local int rx51_pos
-    .local int rx51_off
-    .local int rx51_eos
-    .local int rx51_rep
-    .local pmc rx51_cur
-    (rx51_cur, rx51_pos, rx51_tgt) = self."!cursor_start"()
-    rx51_cur."!cursor_debug"("START ", "deflongname")
-    rx51_cur."!cursor_caparray"("colonpair")
-    .lex unicode:"$\x{a2}", rx51_cur
-    .local pmc match
-    .lex "$/", match
-    length rx51_eos, rx51_tgt
-    gt rx51_pos, rx51_eos, rx51_done
-    set rx51_off, 0
-    lt rx51_pos, 2, rx51_start
-    sub rx51_off, rx51_pos, 1
-    substr rx51_tgt, rx51_tgt, rx51_off
-  rx51_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan55_done
-    goto rxscan55_scan
-  rxscan55_loop:
-    ($P10) = rx51_cur."from"()
-    inc $P10
-    set rx51_pos, $P10
-    ge rx51_pos, rx51_eos, rxscan55_done
-  rxscan55_scan:
-    set_addr $I10, rxscan55_loop
-    rx51_cur."!mark_push"(0, rx51_pos, $I10)
-  rxscan55_done:
+.sub "!PREFIX__name"  :subid("16_1279564397.22945") :method
+.annotate 'line', 4
+    new $P45, "ResizablePMCArray"
+    push $P45, ""
+    .return ($P45)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "deflongname"  :subid("17_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx50_tgt
+    .local int rx50_pos
+    .local int rx50_off
+    .local int rx50_eos
+    .local int rx50_rep
+    .local pmc rx50_cur
+    (rx50_cur, rx50_pos, rx50_tgt, $I10) = self."!cursor_start"()
+    rx50_cur."!cursor_caparray"("colonpair")
+    .lex unicode:"$\x{a2}", rx50_cur
+    .local pmc match
+    .lex "$/", match
+    length rx50_eos, rx50_tgt
+    gt rx50_pos, rx50_eos, rx50_done
+    set rx50_off, 0
+    lt rx50_pos, 2, rx50_start
+    sub rx50_off, rx50_pos, 1
+    substr rx50_tgt, rx50_tgt, rx50_off
+  rx50_start:
+    eq $I10, 1, rx50_restart
+    rx50_cur."!cursor_debug"("START ", "deflongname")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan54_done
+    goto rxscan54_scan
+  rxscan54_loop:
+    ($P10) = rx50_cur."from"()
+    inc $P10
+    set rx50_pos, $P10
+    ge rx50_pos, rx50_eos, rxscan54_done
+  rxscan54_scan:
+    set_addr $I10, rxscan54_loop
+    rx50_cur."!mark_push"(0, rx50_pos, $I10)
+  rxscan54_done:
 .annotate 'line', 22
   # rx subrule "identifier" subtype=capture negate=
-    rx51_cur."!cursor_pos"(rx51_pos)
-    $P10 = rx51_cur."identifier"()
-    unless $P10, rx51_fail
-    rx51_cur."!mark_push"(0, -1, 0, $P10)
+    rx50_cur."!cursor_pos"(rx50_pos)
+    $P10 = rx50_cur."identifier"()
+    unless $P10, rx50_fail
+    rx50_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx51_pos = $P10."pos"()
-  # rx rxquantr56 ** 0..1
-    set_addr $I57, rxquantr56_done
-    rx51_cur."!mark_push"(0, rx51_pos, $I57)
-  rxquantr56_loop:
+    rx50_pos = $P10."pos"()
+  # rx rxquantr55 ** 0..1
+    set_addr $I10, rxquantr55_done
+    rx50_cur."!mark_push"(0, rx50_pos, $I10)
+  rxquantr55_loop:
   # rx subrule "colonpair" subtype=capture negate=
-    rx51_cur."!cursor_pos"(rx51_pos)
-    $P10 = rx51_cur."colonpair"()
-    unless $P10, rx51_fail
-    rx51_cur."!mark_push"(0, -1, 0, $P10)
+    rx50_cur."!cursor_pos"(rx50_pos)
+    $P10 = rx50_cur."colonpair"()
+    unless $P10, rx50_fail
+    goto rxsubrule56_pass
+  rxsubrule56_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx50_fail
+  rxsubrule56_pass:
+    set_addr $I10, rxsubrule56_back
+    rx50_cur."!mark_push"(0, rx50_pos, $I10, $P10)
     $P10."!cursor_names"("colonpair")
-    rx51_pos = $P10."pos"()
-    (rx51_rep) = rx51_cur."!mark_commit"($I57)
-  rxquantr56_done:
+    rx50_pos = $P10."pos"()
+    set_addr $I10, rxquantr55_done
+    (rx50_rep) = rx50_cur."!mark_commit"($I10)
+  rxquantr55_done:
 .annotate 'line', 21
   # rx pass
-    rx51_cur."!cursor_pass"(rx51_pos, "deflongname")
-    rx51_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx51_pos)
-    .return (rx51_cur)
-  rx51_fail:
+    rx50_cur."!cursor_pass"(rx50_pos, "deflongname")
+    rx50_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx50_pos)
+    .return (rx50_cur)
+  rx50_restart:
 .annotate 'line', 4
-    (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0)
-    lt rx51_pos, -1, rx51_done
-    eq rx51_pos, -1, rx51_fail
+    rx50_cur."!cursor_debug"("NEXT ", "deflongname")
+  rx50_fail:
+    (rx50_rep, rx50_pos, $I10, $P10) = rx50_cur."!mark_fail"(0)
+    lt rx50_pos, -1, rx50_done
+    eq rx50_pos, -1, rx50_fail
     jump $I10
-  rx51_done:
-    rx51_cur."!cursor_fail"()
-    rx51_cur."!cursor_debug"("FAIL  ", "deflongname")
-    .return (rx51_cur)
+  rx50_done:
+    rx50_cur."!cursor_fail"()
+    rx50_cur."!cursor_debug"("FAIL  ", "deflongname")
+    .return (rx50_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1278500537.15927") :method
+.sub "!PREFIX__deflongname"  :subid("18_1279564397.22945") :method
 .annotate 'line', 4
-    $P53 = self."!PREFIX__!subrule"("identifier", "")
-    new $P54, "ResizablePMCArray"
-    push $P54, $P53
-    .return ($P54)
+    $P52 = self."!PREFIX__!subrule"("identifier", "")
+    new $P53, "ResizablePMCArray"
+    push $P53, $P52
+    .return ($P53)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "ENDSTMT"  :subid("19_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx59_tgt
-    .local int rx59_pos
-    .local int rx59_off
-    .local int rx59_eos
-    .local int rx59_rep
-    .local pmc rx59_cur
-    (rx59_cur, rx59_pos, rx59_tgt) = self."!cursor_start"()
-    rx59_cur."!cursor_debug"("START ", "ENDSTMT")
-    .lex unicode:"$\x{a2}", rx59_cur
+    .local string rx58_tgt
+    .local int rx58_pos
+    .local int rx58_off
+    .local int rx58_eos
+    .local int rx58_rep
+    .local pmc rx58_cur
+    (rx58_cur, rx58_pos, rx58_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx58_cur
     .local pmc match
     .lex "$/", match
-    length rx59_eos, rx59_tgt
-    gt rx59_pos, rx59_eos, rx59_done
-    set rx59_off, 0
-    lt rx59_pos, 2, rx59_start
-    sub rx59_off, rx59_pos, 1
-    substr rx59_tgt, rx59_tgt, rx59_off
-  rx59_start:
+    length rx58_eos, rx58_tgt
+    gt rx58_pos, rx58_eos, rx58_done
+    set rx58_off, 0
+    lt rx58_pos, 2, rx58_start
+    sub rx58_off, rx58_pos, 1
+    substr rx58_tgt, rx58_tgt, rx58_off
+  rx58_start:
+    eq $I10, 1, rx58_restart
+    rx58_cur."!cursor_debug"("START ", "ENDSTMT")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan62_done
-    goto rxscan62_scan
-  rxscan62_loop:
-    ($P10) = rx59_cur."from"()
+    ne $I10, -1, rxscan61_done
+    goto rxscan61_scan
+  rxscan61_loop:
+    ($P10) = rx58_cur."from"()
     inc $P10
-    set rx59_pos, $P10
-    ge rx59_pos, rx59_eos, rxscan62_done
-  rxscan62_scan:
-    set_addr $I10, rxscan62_loop
-    rx59_cur."!mark_push"(0, rx59_pos, $I10)
-  rxscan62_done:
+    set rx58_pos, $P10
+    ge rx58_pos, rx58_eos, rxscan61_done
+  rxscan61_scan:
+    set_addr $I10, rxscan61_loop
+    rx58_cur."!mark_push"(0, rx58_pos, $I10)
+  rxscan61_done:
 .annotate 'line', 29
-  # rx rxquantr63 ** 0..1
-    set_addr $I71, rxquantr63_done
-    rx59_cur."!mark_push"(0, rx59_pos, $I71)
-  rxquantr63_loop:
-  alt64_0:
+  # rx rxquantr62 ** 0..1
+    set_addr $I10, rxquantr62_done
+    rx58_cur."!mark_push"(0, rx58_pos, $I10)
+  rxquantr62_loop:
+  alt63_0:
 .annotate 'line', 26
-    set_addr $I10, alt64_1
-    rx59_cur."!mark_push"(0, rx59_pos, $I10)
+    set_addr $I10, alt63_1
+    rx58_cur."!mark_push"(0, rx58_pos, $I10)
 .annotate 'line', 27
-  # rx rxquantr65 ** 0..*
-    set_addr $I66, rxquantr65_done
-    rx59_cur."!mark_push"(0, rx59_pos, $I66)
-  rxquantr65_loop:
+  # rx rxquantr64 ** 0..*
+    set_addr $I10, rxquantr64_done
+    rx58_cur."!mark_push"(0, rx58_pos, $I10)
+  rxquantr64_loop:
   # rx enumcharlist negate=0 
-    ge rx59_pos, rx59_eos, rx59_fail
-    sub $I10, rx59_pos, rx59_off
-    substr $S10, rx59_tgt, $I10, 1
+    ge rx58_pos, rx58_eos, rx58_fail
+    sub $I10, rx58_pos, rx58_off
+    substr $S10, rx58_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx59_fail
-    inc rx59_pos
-    (rx59_rep) = rx59_cur."!mark_commit"($I66)
-    rx59_cur."!mark_push"(rx59_rep, rx59_pos, $I66)
-    goto rxquantr65_loop
-  rxquantr65_done:
+    lt $I11, 0, rx58_fail
+    inc rx58_pos
+    set_addr $I10, rxquantr64_done
+    (rx58_rep) = rx58_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr64_done
+    rx58_cur."!mark_push"(rx58_rep, rx58_pos, $I10)
+    goto rxquantr64_loop
+  rxquantr64_done:
   # rxanchor eol
-    sub $I10, rx59_pos, rx59_off
-    is_cclass $I11, 4096, rx59_tgt, $I10
-    if $I11, rxanchor67_done
-    ne rx59_pos, rx59_eos, rx59_fail
-    eq rx59_pos, 0, rxanchor67_done
+    sub $I10, rx58_pos, rx58_off
+    is_cclass $I11, 4096, rx58_tgt, $I10
+    if $I11, rxanchor65_done
+    ne rx58_pos, rx58_eos, rx58_fail
+    eq rx58_pos, 0, rxanchor65_done
     dec $I10
-    is_cclass $I11, 4096, rx59_tgt, $I10
-    if $I11, rx59_fail
-  rxanchor67_done:
-  # rx subrule "ws" subtype=method negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."ws"()
-    unless $P10, rx59_fail
-    rx59_pos = $P10."pos"()
+    is_cclass $I11, 4096, rx58_tgt, $I10
+    if $I11, rx58_fail
+  rxanchor65_done:
+  # rx subrule "ws" subtype=method negate=
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."ws"()
+    unless $P10, rx58_fail
+    rx58_pos = $P10."pos"()
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."MARKER"("endstmt")
-    unless $P10, rx59_fail
-    goto alt64_end
-  alt64_1:
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."MARKER"("endstmt")
+    unless $P10, rx58_fail
+    goto alt63_end
+  alt63_1:
 .annotate 'line', 28
-  # rx rxquantr68 ** 0..1
-    set_addr $I69, rxquantr68_done
-    rx59_cur."!mark_push"(0, rx59_pos, $I69)
-  rxquantr68_loop:
+  # rx rxquantr66 ** 0..1
+    set_addr $I10, rxquantr66_done
+    rx58_cur."!mark_push"(0, rx58_pos, $I10)
+  rxquantr66_loop:
   # rx subrule "unv" subtype=method negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."unv"()
-    unless $P10, rx59_fail
-    rx59_pos = $P10."pos"()
-    (rx59_rep) = rx59_cur."!mark_commit"($I69)
-  rxquantr68_done:
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."unv"()
+    unless $P10, rx58_fail
+    goto rxsubrule67_pass
+  rxsubrule67_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx58_fail
+  rxsubrule67_pass:
+    set_addr $I10, rxsubrule67_back
+    rx58_cur."!mark_push"(0, rx58_pos, $I10, $P10)
+    rx58_pos = $P10."pos"()
+    set_addr $I10, rxquantr66_done
+    (rx58_rep) = rx58_cur."!mark_commit"($I10)
+  rxquantr66_done:
   # rxanchor eol
-    sub $I10, rx59_pos, rx59_off
-    is_cclass $I11, 4096, rx59_tgt, $I10
-    if $I11, rxanchor70_done
-    ne rx59_pos, rx59_eos, rx59_fail
-    eq rx59_pos, 0, rxanchor70_done
+    sub $I10, rx58_pos, rx58_off
+    is_cclass $I11, 4096, rx58_tgt, $I10
+    if $I11, rxanchor68_done
+    ne rx58_pos, rx58_eos, rx58_fail
+    eq rx58_pos, 0, rxanchor68_done
     dec $I10
-    is_cclass $I11, 4096, rx59_tgt, $I10
-    if $I11, rx59_fail
-  rxanchor70_done:
-  # rx subrule "ws" subtype=method negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."ws"()
-    unless $P10, rx59_fail
-    rx59_pos = $P10."pos"()
+    is_cclass $I11, 4096, rx58_tgt, $I10
+    if $I11, rx58_fail
+  rxanchor68_done:
+  # rx subrule "ws" subtype=method negate=
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."ws"()
+    unless $P10, rx58_fail
+    rx58_pos = $P10."pos"()
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx59_cur."!cursor_pos"(rx59_pos)
-    $P10 = rx59_cur."MARKER"("endstmt")
-    unless $P10, rx59_fail
-  alt64_end:
+    rx58_cur."!cursor_pos"(rx58_pos)
+    $P10 = rx58_cur."MARKER"("endstmt")
+    unless $P10, rx58_fail
+  alt63_end:
 .annotate 'line', 29
-    (rx59_rep) = rx59_cur."!mark_commit"($I71)
-  rxquantr63_done:
+    set_addr $I10, rxquantr62_done
+    (rx58_rep) = rx58_cur."!mark_commit"($I10)
+  rxquantr62_done:
 .annotate 'line', 25
   # rx pass
-    rx59_cur."!cursor_pass"(rx59_pos, "ENDSTMT")
-    rx59_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx59_pos)
-    .return (rx59_cur)
-  rx59_fail:
+    rx58_cur."!cursor_pass"(rx58_pos, "ENDSTMT")
+    rx58_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx58_pos)
+    .return (rx58_cur)
+  rx58_restart:
 .annotate 'line', 4
-    (rx59_rep, rx59_pos, $I10, $P10) = rx59_cur."!mark_fail"(0)
-    lt rx59_pos, -1, rx59_done
-    eq rx59_pos, -1, rx59_fail
+    rx58_cur."!cursor_debug"("NEXT ", "ENDSTMT")
+  rx58_fail:
+    (rx58_rep, rx58_pos, $I10, $P10) = rx58_cur."!mark_fail"(0)
+    lt rx58_pos, -1, rx58_done
+    eq rx58_pos, -1, rx58_fail
     jump $I10
-  rx59_done:
-    rx59_cur."!cursor_fail"()
-    rx59_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
-    .return (rx59_cur)
+  rx58_done:
+    rx58_cur."!cursor_fail"()
+    rx58_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
+    .return (rx58_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1278500537.15927") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1279564397.22945") :method
 .annotate 'line', 4
-    new $P61, "ResizablePMCArray"
-    push $P61, ""
-    .return ($P61)
+    new $P60, "ResizablePMCArray"
+    push $P60, ""
+    .return ($P60)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "ws"  :subid("21_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx73_tgt
-    .local int rx73_pos
-    .local int rx73_off
-    .local int rx73_eos
-    .local int rx73_rep
-    .local pmc rx73_cur
-    (rx73_cur, rx73_pos, rx73_tgt) = self."!cursor_start"()
-    rx73_cur."!cursor_debug"("START ", "ws")
-    .lex unicode:"$\x{a2}", rx73_cur
-    .local pmc match
-    .lex "$/", match
-    length rx73_eos, rx73_tgt
-    gt rx73_pos, rx73_eos, rx73_done
-    set rx73_off, 0
-    lt rx73_pos, 2, rx73_start
-    sub rx73_off, rx73_pos, 1
-    substr rx73_tgt, rx73_tgt, rx73_off
-  rx73_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan76_done
-    goto rxscan76_scan
-  rxscan76_loop:
-    ($P10) = rx73_cur."from"()
-    inc $P10
-    set rx73_pos, $P10
-    ge rx73_pos, rx73_eos, rxscan76_done
-  rxscan76_scan:
-    set_addr $I10, rxscan76_loop
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
-  rxscan76_done:
-  alt77_0:
+    .local string rx70_tgt
+    .local int rx70_pos
+    .local int rx70_off
+    .local int rx70_eos
+    .local int rx70_rep
+    .local pmc rx70_cur
+    (rx70_cur, rx70_pos, rx70_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx70_cur
+    .local pmc match
+    .lex "$/", match
+    length rx70_eos, rx70_tgt
+    gt rx70_pos, rx70_eos, rx70_done
+    set rx70_off, 0
+    lt rx70_pos, 2, rx70_start
+    sub rx70_off, rx70_pos, 1
+    substr rx70_tgt, rx70_tgt, rx70_off
+  rx70_start:
+    eq $I10, 1, rx70_restart
+    rx70_cur."!cursor_debug"("START ", "ws")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan73_done
+    goto rxscan73_scan
+  rxscan73_loop:
+    ($P10) = rx70_cur."from"()
+    inc $P10
+    set rx70_pos, $P10
+    ge rx70_pos, rx70_eos, rxscan73_done
+  rxscan73_scan:
+    set_addr $I10, rxscan73_loop
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
+  rxscan73_done:
+  alt74_0:
 .annotate 'line', 32
-    set_addr $I10, alt77_1
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
+    set_addr $I10, alt74_1
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
 .annotate 'line', 33
   # rx subrule "MARKED" subtype=zerowidth negate=
-    rx73_cur."!cursor_pos"(rx73_pos)
-    $P10 = rx73_cur."MARKED"("ws")
-    unless $P10, rx73_fail
-    goto alt77_end
-  alt77_1:
+    rx70_cur."!cursor_pos"(rx70_pos)
+    $P10 = rx70_cur."MARKED"("ws")
+    unless $P10, rx70_fail
+    goto alt74_end
+  alt74_1:
 .annotate 'line', 34
   # rx subrule "ww" subtype=zerowidth negate=1
-    rx73_cur."!cursor_pos"(rx73_pos)
-    $P10 = rx73_cur."ww"()
-    if $P10, rx73_fail
+    rx70_cur."!cursor_pos"(rx70_pos)
+    $P10 = rx70_cur."ww"()
+    if $P10, rx70_fail
 .annotate 'line', 39
-  # rx rxquantr78 ** 0..*
-    set_addr $I85, rxquantr78_done
-    rx73_cur."!mark_push"(0, rx73_pos, $I85)
-  rxquantr78_loop:
-  alt79_0:
+  # rx rxquantr75 ** 0..*
+    set_addr $I10, rxquantr75_done
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
+  rxquantr75_loop:
+  alt76_0:
 .annotate 'line', 35
-    set_addr $I10, alt79_1
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
-  # rx rxquantr80 ** 1..*
-    set_addr $I81, rxquantr80_done
-    rx73_cur."!mark_push"(0, -1, $I81)
-  rxquantr80_loop:
+    set_addr $I10, alt76_1
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
+  # rx rxquantr77 ** 1..*
+    set_addr $I10, rxquantr77_done
+    rx70_cur."!mark_push"(0, -1, $I10)
+  rxquantr77_loop:
   # rx enumcharlist negate=0 
-    ge rx73_pos, rx73_eos, rx73_fail
-    sub $I10, rx73_pos, rx73_off
-    substr $S10, rx73_tgt, $I10, 1
+    ge rx70_pos, rx70_eos, rx70_fail
+    sub $I10, rx70_pos, rx70_off
+    substr $S10, rx70_tgt, $I10, 1
     index $I11, unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", $S10
-    lt $I11, 0, rx73_fail
-    inc rx73_pos
-    (rx73_rep) = rx73_cur."!mark_commit"($I81)
-    rx73_cur."!mark_push"(rx73_rep, rx73_pos, $I81)
-    goto rxquantr80_loop
-  rxquantr80_done:
-    goto alt79_end
-  alt79_1:
-    set_addr $I10, alt79_2
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
+    lt $I11, 0, rx70_fail
+    inc rx70_pos
+    set_addr $I10, rxquantr77_done
+    (rx70_rep) = rx70_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr77_done
+    rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
+    goto rxquantr77_loop
+  rxquantr77_done:
+    goto alt76_end
+  alt76_1:
+    set_addr $I10, alt76_2
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
 .annotate 'line', 36
   # rx literal  "#"
-    add $I11, rx73_pos, 1
-    gt $I11, rx73_eos, rx73_fail
-    sub $I11, rx73_pos, rx73_off
-    substr $S10, rx73_tgt, $I11, 1
-    ne $S10, "#", rx73_fail
-    add rx73_pos, 1
+    add $I11, rx70_pos, 1
+    gt $I11, rx70_eos, rx70_fail
+    sub $I11, rx70_pos, rx70_off
+    substr $S10, rx70_tgt, $I11, 1
+    ne $S10, "#", rx70_fail
+    add rx70_pos, 1
   # rx charclass_q N r 0..-1
-    sub $I10, rx73_pos, rx73_off
-    find_cclass $I11, 4096, rx73_tgt, $I10, rx73_eos
-    add rx73_pos, rx73_off, $I11
-    goto alt79_end
-  alt79_2:
-    set_addr $I10, alt79_3
-    rx73_cur."!mark_push"(0, rx73_pos, $I10)
+    sub $I10, rx70_pos, rx70_off
+    find_cclass $I11, 4096, rx70_tgt, $I10, rx70_eos
+    add rx70_pos, rx70_off, $I11
+    goto alt76_end
+  alt76_2:
+    set_addr $I10, alt76_3
+    rx70_cur."!mark_push"(0, rx70_pos, $I10)
 .annotate 'line', 37
   # rxanchor bol
-    eq rx73_pos, 0, rxanchor82_done
-    ge rx73_pos, rx73_eos, rx73_fail
-    sub $I10, rx73_pos, rx73_off
+    eq rx70_pos, 0, rxanchor78_done
+    ge rx70_pos, rx70_eos, rx70_fail
+    sub $I10, rx70_pos, rx70_off
     dec $I10
-    is_cclass $I11, 4096, rx73_tgt, $I10
-    unless $I11, rx73_fail
-  rxanchor82_done:
+    is_cclass $I11, 4096, rx70_tgt, $I10
+    unless $I11, rx70_fail
+  rxanchor78_done:
   # rx subrule "pod_comment" subtype=method negate=
-    rx73_cur."!cursor_pos"(rx73_pos)
-    $P10 = rx73_cur."pod_comment"()
-    unless $P10, rx73_fail
-    rx73_pos = $P10."pos"()
-    goto alt79_end
-  alt79_3:
+    rx70_cur."!cursor_pos"(rx70_pos)
+    $P10 = rx70_cur."pod_comment"()
+    unless $P10, rx70_fail
+    rx70_pos = $P10."pos"()
+    goto alt76_end
+  alt76_3:
 .annotate 'line', 38
-  # rx rxquantr83 ** 1..*
-    set_addr $I84, rxquantr83_done
-    rx73_cur."!mark_push"(0, -1, $I84)
-  rxquantr83_loop:
+  # rx rxquantr79 ** 1..*
+    set_addr $I10, rxquantr79_done
+    rx70_cur."!mark_push"(0, -1, $I10)
+  rxquantr79_loop:
   # rx enumcharlist negate=0 
-    ge rx73_pos, rx73_eos, rx73_fail
-    sub $I10, rx73_pos, rx73_off
-    substr $S10, rx73_tgt, $I10, 1
+    ge rx70_pos, rx70_eos, rx70_fail
+    sub $I10, rx70_pos, rx70_off
+    substr $S10, rx70_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx73_fail
-    inc rx73_pos
-    (rx73_rep) = rx73_cur."!mark_commit"($I84)
-    rx73_cur."!mark_push"(rx73_rep, rx73_pos, $I84)
-    goto rxquantr83_loop
-  rxquantr83_done:
-  alt79_end:
+    lt $I11, 0, rx70_fail
+    inc rx70_pos
+    set_addr $I10, rxquantr79_done
+    (rx70_rep) = rx70_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr79_done
+    rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
+    goto rxquantr79_loop
+  rxquantr79_done:
+  alt76_end:
 .annotate 'line', 39
-    (rx73_rep) = rx73_cur."!mark_commit"($I85)
-    rx73_cur."!mark_push"(rx73_rep, rx73_pos, $I85)
-    goto rxquantr78_loop
-  rxquantr78_done:
+    set_addr $I10, rxquantr75_done
+    (rx70_rep) = rx70_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr75_done
+    rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
+    goto rxquantr75_loop
+  rxquantr75_done:
 .annotate 'line', 40
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx73_cur."!cursor_pos"(rx73_pos)
-    $P10 = rx73_cur."MARKER"("ws")
-    unless $P10, rx73_fail
-  alt77_end:
+    rx70_cur."!cursor_pos"(rx70_pos)
+    $P10 = rx70_cur."MARKER"("ws")
+    unless $P10, rx70_fail
+  alt74_end:
 .annotate 'line', 32
   # rx pass
-    rx73_cur."!cursor_pass"(rx73_pos, "ws")
-    rx73_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx73_pos)
-    .return (rx73_cur)
-  rx73_fail:
+    rx70_cur."!cursor_pass"(rx70_pos, "ws")
+    rx70_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx70_pos)
+    .return (rx70_cur)
+  rx70_restart:
 .annotate 'line', 4
-    (rx73_rep, rx73_pos, $I10, $P10) = rx73_cur."!mark_fail"(0)
-    lt rx73_pos, -1, rx73_done
-    eq rx73_pos, -1, rx73_fail
+    rx70_cur."!cursor_debug"("NEXT ", "ws")
+  rx70_fail:
+    (rx70_rep, rx70_pos, $I10, $P10) = rx70_cur."!mark_fail"(0)
+    lt rx70_pos, -1, rx70_done
+    eq rx70_pos, -1, rx70_fail
     jump $I10
-  rx73_done:
-    rx73_cur."!cursor_fail"()
-    rx73_cur."!cursor_debug"("FAIL  ", "ws")
-    .return (rx73_cur)
+  rx70_done:
+    rx70_cur."!cursor_fail"()
+    rx70_cur."!cursor_debug"("FAIL  ", "ws")
+    .return (rx70_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1278500537.15927") :method
+.sub "!PREFIX__ws"  :subid("22_1279564397.22945") :method
 .annotate 'line', 4
-    new $P75, "ResizablePMCArray"
-    push $P75, ""
-    push $P75, ""
-    .return ($P75)
+    new $P72, "ResizablePMCArray"
+    push $P72, ""
+    push $P72, ""
+    .return ($P72)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "unv"  :subid("23_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .const 'Sub' $P94 = "25_1278500537.15927" 
-    capture_lex $P94
-    .local string rx87_tgt
-    .local int rx87_pos
-    .local int rx87_off
-    .local int rx87_eos
-    .local int rx87_rep
-    .local pmc rx87_cur
-    (rx87_cur, rx87_pos, rx87_tgt) = self."!cursor_start"()
-    rx87_cur."!cursor_debug"("START ", "unv")
-    .lex unicode:"$\x{a2}", rx87_cur
+    .const 'Sub' $P88 = "25_1279564397.22945" 
+    capture_lex $P88
+    .local string rx81_tgt
+    .local int rx81_pos
+    .local int rx81_off
+    .local int rx81_eos
+    .local int rx81_rep
+    .local pmc rx81_cur
+    (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx81_cur
     .local pmc match
     .lex "$/", match
-    length rx87_eos, rx87_tgt
-    gt rx87_pos, rx87_eos, rx87_done
-    set rx87_off, 0
-    lt rx87_pos, 2, rx87_start
-    sub rx87_off, rx87_pos, 1
-    substr rx87_tgt, rx87_tgt, rx87_off
-  rx87_start:
+    length rx81_eos, rx81_tgt
+    gt rx81_pos, rx81_eos, rx81_done
+    set rx81_off, 0
+    lt rx81_pos, 2, rx81_start
+    sub rx81_off, rx81_pos, 1
+    substr rx81_tgt, rx81_tgt, rx81_off
+  rx81_start:
+    eq $I10, 1, rx81_restart
+    rx81_cur."!cursor_debug"("START ", "unv")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan90_done
-    goto rxscan90_scan
-  rxscan90_loop:
-    ($P10) = rx87_cur."from"()
+    ne $I10, -1, rxscan84_done
+    goto rxscan84_scan
+  rxscan84_loop:
+    ($P10) = rx81_cur."from"()
     inc $P10
-    set rx87_pos, $P10
-    ge rx87_pos, rx87_eos, rxscan90_done
-  rxscan90_scan:
-    set_addr $I10, rxscan90_loop
-    rx87_cur."!mark_push"(0, rx87_pos, $I10)
-  rxscan90_done:
-  alt91_0:
+    set rx81_pos, $P10
+    ge rx81_pos, rx81_eos, rxscan84_done
+  rxscan84_scan:
+    set_addr $I10, rxscan84_loop
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
+  rxscan84_done:
+  alt85_0:
 .annotate 'line', 45
-    set_addr $I10, alt91_1
-    rx87_cur."!mark_push"(0, rx87_pos, $I10)
+    set_addr $I10, alt85_1
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
 .annotate 'line', 46
   # rxanchor bol
-    eq rx87_pos, 0, rxanchor92_done
-    ge rx87_pos, rx87_eos, rx87_fail
-    sub $I10, rx87_pos, rx87_off
+    eq rx81_pos, 0, rxanchor86_done
+    ge rx81_pos, rx81_eos, rx81_fail
+    sub $I10, rx81_pos, rx81_off
     dec $I10
-    is_cclass $I11, 4096, rx87_tgt, $I10
-    unless $I11, rx87_fail
-  rxanchor92_done:
+    is_cclass $I11, 4096, rx81_tgt, $I10
+    unless $I11, rx81_fail
+  rxanchor86_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx87_cur."!cursor_pos"(rx87_pos)
-    .const 'Sub' $P94 = "25_1278500537.15927" 
-    capture_lex $P94
-    $P10 = rx87_cur."before"($P94)
-    unless $P10, rx87_fail
+    rx81_cur."!cursor_pos"(rx81_pos)
+    .const 'Sub' $P88 = "25_1279564397.22945" 
+    capture_lex $P88
+    $P10 = rx81_cur."before"($P88)
+    unless $P10, rx81_fail
   # rx subrule "pod_comment" subtype=method negate=
-    rx87_cur."!cursor_pos"(rx87_pos)
-    $P10 = rx87_cur."pod_comment"()
-    unless $P10, rx87_fail
-    rx87_pos = $P10."pos"()
-    goto alt91_end
-  alt91_1:
-    set_addr $I10, alt91_2
-    rx87_cur."!mark_push"(0, rx87_pos, $I10)
+    rx81_cur."!cursor_pos"(rx81_pos)
+    $P10 = rx81_cur."pod_comment"()
+    unless $P10, rx81_fail
+    rx81_pos = $P10."pos"()
+    goto alt85_end
+  alt85_1:
+    set_addr $I10, alt85_2
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
 .annotate 'line', 47
-  # rx rxquantr100 ** 0..*
-    set_addr $I101, rxquantr100_done
-    rx87_cur."!mark_push"(0, rx87_pos, $I101)
-  rxquantr100_loop:
+  # rx rxquantr93 ** 0..*
+    set_addr $I10, rxquantr93_done
+    rx81_cur."!mark_push"(0, rx81_pos, $I10)
+  rxquantr93_loop:
   # rx enumcharlist negate=0 
-    ge rx87_pos, rx87_eos, rx87_fail
-    sub $I10, rx87_pos, rx87_off
-    substr $S10, rx87_tgt, $I10, 1
+    ge rx81_pos, rx81_eos, rx81_fail
+    sub $I10, rx81_pos, rx81_off
+    substr $S10, rx81_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx87_fail
-    inc rx87_pos
-    (rx87_rep) = rx87_cur."!mark_commit"($I101)
-    rx87_cur."!mark_push"(rx87_rep, rx87_pos, $I101)
-    goto rxquantr100_loop
-  rxquantr100_done:
+    lt $I11, 0, rx81_fail
+    inc rx81_pos
+    set_addr $I10, rxquantr93_done
+    (rx81_rep) = rx81_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr93_done
+    rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
+    goto rxquantr93_loop
+  rxquantr93_done:
   # rx literal  "#"
-    add $I11, rx87_pos, 1
-    gt $I11, rx87_eos, rx87_fail
-    sub $I11, rx87_pos, rx87_off
-    substr $S10, rx87_tgt, $I11, 1
-    ne $S10, "#", rx87_fail
-    add rx87_pos, 1
+    add $I11, rx81_pos, 1
+    gt $I11, rx81_eos, rx81_fail
+    sub $I11, rx81_pos, rx81_off
+    substr $S10, rx81_tgt, $I11, 1
+    ne $S10, "#", rx81_fail
+    add rx81_pos, 1
   # rx charclass_q N r 0..-1
-    sub $I10, rx87_pos, rx87_off
-    find_cclass $I11, 4096, rx87_tgt, $I10, rx87_eos
-    add rx87_pos, rx87_off, $I11
-    goto alt91_end
-  alt91_2:
+    sub $I10, rx81_pos, rx81_off
+    find_cclass $I11, 4096, rx81_tgt, $I10, rx81_eos
+    add rx81_pos, rx81_off, $I11
+    goto alt85_end
+  alt85_2:
 .annotate 'line', 48
-  # rx rxquantr102 ** 1..*
-    set_addr $I103, rxquantr102_done
-    rx87_cur."!mark_push"(0, -1, $I103)
-  rxquantr102_loop:
+  # rx rxquantr94 ** 1..*
+    set_addr $I10, rxquantr94_done
+    rx81_cur."!mark_push"(0, -1, $I10)
+  rxquantr94_loop:
   # rx enumcharlist negate=0 
-    ge rx87_pos, rx87_eos, rx87_fail
-    sub $I10, rx87_pos, rx87_off
-    substr $S10, rx87_tgt, $I10, 1
+    ge rx81_pos, rx81_eos, rx81_fail
+    sub $I10, rx81_pos, rx81_off
+    substr $S10, rx81_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx87_fail
-    inc rx87_pos
-    (rx87_rep) = rx87_cur."!mark_commit"($I103)
-    rx87_cur."!mark_push"(rx87_rep, rx87_pos, $I103)
-    goto rxquantr102_loop
-  rxquantr102_done:
-  alt91_end:
+    lt $I11, 0, rx81_fail
+    inc rx81_pos
+    set_addr $I10, rxquantr94_done
+    (rx81_rep) = rx81_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr94_done
+    rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
+    goto rxquantr94_loop
+  rxquantr94_done:
+  alt85_end:
 .annotate 'line', 43
   # rx pass
-    rx87_cur."!cursor_pass"(rx87_pos, "unv")
-    rx87_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx87_pos)
-    .return (rx87_cur)
-  rx87_fail:
+    rx81_cur."!cursor_pass"(rx81_pos, "unv")
+    rx81_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx81_pos)
+    .return (rx81_cur)
+  rx81_restart:
 .annotate 'line', 4
-    (rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0)
-    lt rx87_pos, -1, rx87_done
-    eq rx87_pos, -1, rx87_fail
+    rx81_cur."!cursor_debug"("NEXT ", "unv")
+  rx81_fail:
+    (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
+    lt rx81_pos, -1, rx81_done
+    eq rx81_pos, -1, rx81_fail
     jump $I10
-  rx87_done:
-    rx87_cur."!cursor_fail"()
-    rx87_cur."!cursor_debug"("FAIL  ", "unv")
-    .return (rx87_cur)
+  rx81_done:
+    rx81_cur."!cursor_fail"()
+    rx81_cur."!cursor_debug"("FAIL  ", "unv")
+    .return (rx81_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1278500537.15927") :method
+.sub "!PREFIX__unv"  :subid("24_1279564397.22945") :method
 .annotate 'line', 4
-    new $P89, "ResizablePMCArray"
-    push $P89, ""
-    push $P89, ""
-    push $P89, ""
-    .return ($P89)
+    new $P83, "ResizablePMCArray"
+    push $P83, ""
+    push $P83, ""
+    push $P83, ""
+    .return ($P83)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block93"  :anon :subid("25_1278500537.15927") :method :outer("23_1278500537.15927")
+.sub "_block87"  :anon :subid("25_1279564397.22945") :method :outer("23_1279564397.22945")
 .annotate 'line', 46
-    .local string rx95_tgt
-    .local int rx95_pos
-    .local int rx95_off
-    .local int rx95_eos
-    .local int rx95_rep
-    .local pmc rx95_cur
-    (rx95_cur, rx95_pos, rx95_tgt) = self."!cursor_start"()
-    rx95_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx95_cur
-    .local pmc match
-    .lex "$/", match
-    length rx95_eos, rx95_tgt
-    gt rx95_pos, rx95_eos, rx95_done
-    set rx95_off, 0
-    lt rx95_pos, 2, rx95_start
-    sub rx95_off, rx95_pos, 1
-    substr rx95_tgt, rx95_tgt, rx95_off
-  rx95_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan96_done
-    goto rxscan96_scan
-  rxscan96_loop:
-    ($P10) = rx95_cur."from"()
-    inc $P10
-    set rx95_pos, $P10
-    ge rx95_pos, rx95_eos, rxscan96_done
-  rxscan96_scan:
-    set_addr $I10, rxscan96_loop
-    rx95_cur."!mark_push"(0, rx95_pos, $I10)
-  rxscan96_done:
-  # rx rxquantr97 ** 0..*
-    set_addr $I98, rxquantr97_done
-    rx95_cur."!mark_push"(0, rx95_pos, $I98)
-  rxquantr97_loop:
+    .local string rx89_tgt
+    .local int rx89_pos
+    .local int rx89_off
+    .local int rx89_eos
+    .local int rx89_rep
+    .local pmc rx89_cur
+    (rx89_cur, rx89_pos, rx89_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx89_cur
+    .local pmc match
+    .lex "$/", match
+    length rx89_eos, rx89_tgt
+    gt rx89_pos, rx89_eos, rx89_done
+    set rx89_off, 0
+    lt rx89_pos, 2, rx89_start
+    sub rx89_off, rx89_pos, 1
+    substr rx89_tgt, rx89_tgt, rx89_off
+  rx89_start:
+    eq $I10, 1, rx89_restart
+    rx89_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan90_done
+    goto rxscan90_scan
+  rxscan90_loop:
+    ($P10) = rx89_cur."from"()
+    inc $P10
+    set rx89_pos, $P10
+    ge rx89_pos, rx89_eos, rxscan90_done
+  rxscan90_scan:
+    set_addr $I10, rxscan90_loop
+    rx89_cur."!mark_push"(0, rx89_pos, $I10)
+  rxscan90_done:
+  # rx rxquantr91 ** 0..*
+    set_addr $I10, rxquantr91_done
+    rx89_cur."!mark_push"(0, rx89_pos, $I10)
+  rxquantr91_loop:
   # rx enumcharlist negate=0 
-    ge rx95_pos, rx95_eos, rx95_fail
-    sub $I10, rx95_pos, rx95_off
-    substr $S10, rx95_tgt, $I10, 1
+    ge rx89_pos, rx89_eos, rx89_fail
+    sub $I10, rx89_pos, rx89_off
+    substr $S10, rx89_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx95_fail
-    inc rx95_pos
-    (rx95_rep) = rx95_cur."!mark_commit"($I98)
-    rx95_cur."!mark_push"(rx95_rep, rx95_pos, $I98)
-    goto rxquantr97_loop
-  rxquantr97_done:
+    lt $I11, 0, rx89_fail
+    inc rx89_pos
+    set_addr $I10, rxquantr91_done
+    (rx89_rep) = rx89_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr91_done
+    rx89_cur."!mark_push"(rx89_rep, rx89_pos, $I10)
+    goto rxquantr91_loop
+  rxquantr91_done:
   # rx literal  "="
-    add $I11, rx95_pos, 1
-    gt $I11, rx95_eos, rx95_fail
-    sub $I11, rx95_pos, rx95_off
-    substr $S10, rx95_tgt, $I11, 1
-    ne $S10, "=", rx95_fail
-    add rx95_pos, 1
-  alt99_0:
-    set_addr $I10, alt99_1
-    rx95_cur."!mark_push"(0, rx95_pos, $I10)
+    add $I11, rx89_pos, 1
+    gt $I11, rx89_eos, rx89_fail
+    sub $I11, rx89_pos, rx89_off
+    substr $S10, rx89_tgt, $I11, 1
+    ne $S10, "=", rx89_fail
+    add rx89_pos, 1
+  alt92_0:
+    set_addr $I10, alt92_1
+    rx89_cur."!mark_push"(0, rx89_pos, $I10)
   # rx charclass w
-    ge rx95_pos, rx95_eos, rx95_fail
-    sub $I10, rx95_pos, rx95_off
-    is_cclass $I11, 8192, rx95_tgt, $I10
-    unless $I11, rx95_fail
-    inc rx95_pos
-    goto alt99_end
-  alt99_1:
+    ge rx89_pos, rx89_eos, rx89_fail
+    sub $I10, rx89_pos, rx89_off
+    is_cclass $I11, 8192, rx89_tgt, $I10
+    unless $I11, rx89_fail
+    inc rx89_pos
+    goto alt92_end
+  alt92_1:
   # rx literal  "\\"
-    add $I11, rx95_pos, 1
-    gt $I11, rx95_eos, rx95_fail
-    sub $I11, rx95_pos, rx95_off
-    substr $S10, rx95_tgt, $I11, 1
-    ne $S10, "\\", rx95_fail
-    add rx95_pos, 1
-  alt99_end:
-  # rx pass
-    rx95_cur."!cursor_pass"(rx95_pos, "")
-    rx95_cur."!cursor_debug"("PASS  ", "", " at pos=", rx95_pos)
-    .return (rx95_cur)
-  rx95_fail:
-    (rx95_rep, rx95_pos, $I10, $P10) = rx95_cur."!mark_fail"(0)
-    lt rx95_pos, -1, rx95_done
-    eq rx95_pos, -1, rx95_fail
-    jump $I10
-  rx95_done:
-    rx95_cur."!cursor_fail"()
-    rx95_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx95_cur)
+    add $I11, rx89_pos, 1
+    gt $I11, rx89_eos, rx89_fail
+    sub $I11, rx89_pos, rx89_off
+    substr $S10, rx89_tgt, $I11, 1
+    ne $S10, "\\", rx89_fail
+    add rx89_pos, 1
+  alt92_end:
+  # rx pass
+    rx89_cur."!cursor_pass"(rx89_pos, "")
+    rx89_cur."!cursor_debug"("PASS  ", "", " at pos=", rx89_pos)
+    .return (rx89_cur)
+  rx89_restart:
+    rx89_cur."!cursor_debug"("NEXT ", "")
+  rx89_fail:
+    (rx89_rep, rx89_pos, $I10, $P10) = rx89_cur."!mark_fail"(0)
+    lt rx89_pos, -1, rx89_done
+    eq rx89_pos, -1, rx89_fail
+    jump $I10
+  rx89_done:
+    rx89_cur."!cursor_fail"()
+    rx89_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx89_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .const 'Sub' $P145 = "28_1278500537.15927" 
-    capture_lex $P145
-    .local string rx105_tgt
-    .local int rx105_pos
-    .local int rx105_off
-    .local int rx105_eos
-    .local int rx105_rep
-    .local pmc rx105_cur
-    (rx105_cur, rx105_pos, rx105_tgt) = self."!cursor_start"()
-    rx105_cur."!cursor_debug"("START ", "pod_comment")
-    .lex unicode:"$\x{a2}", rx105_cur
-    .local pmc match
-    .lex "$/", match
-    length rx105_eos, rx105_tgt
-    gt rx105_pos, rx105_eos, rx105_done
-    set rx105_off, 0
-    lt rx105_pos, 2, rx105_start
-    sub rx105_off, rx105_pos, 1
-    substr rx105_tgt, rx105_tgt, rx105_off
-  rx105_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan108_done
-    goto rxscan108_scan
-  rxscan108_loop:
-    ($P10) = rx105_cur."from"()
-    inc $P10
-    set rx105_pos, $P10
-    ge rx105_pos, rx105_eos, rxscan108_done
-  rxscan108_scan:
-    set_addr $I10, rxscan108_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-  rxscan108_done:
+.sub "pod_comment"  :subid("26_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .const 'Sub' $P127 = "28_1279564397.22945" 
+    capture_lex $P127
+    .local string rx96_tgt
+    .local int rx96_pos
+    .local int rx96_off
+    .local int rx96_eos
+    .local int rx96_rep
+    .local pmc rx96_cur
+    (rx96_cur, rx96_pos, rx96_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx96_cur
+    .local pmc match
+    .lex "$/", match
+    length rx96_eos, rx96_tgt
+    gt rx96_pos, rx96_eos, rx96_done
+    set rx96_off, 0
+    lt rx96_pos, 2, rx96_start
+    sub rx96_off, rx96_pos, 1
+    substr rx96_tgt, rx96_tgt, rx96_off
+  rx96_start:
+    eq $I10, 1, rx96_restart
+    rx96_cur."!cursor_debug"("START ", "pod_comment")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan99_done
+    goto rxscan99_scan
+  rxscan99_loop:
+    ($P10) = rx96_cur."from"()
+    inc $P10
+    set rx96_pos, $P10
+    ge rx96_pos, rx96_eos, rxscan99_done
+  rxscan99_scan:
+    set_addr $I10, rxscan99_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxscan99_done:
 .annotate 'line', 53
   # rxanchor bol
-    eq rx105_pos, 0, rxanchor109_done
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
+    eq rx96_pos, 0, rxanchor100_done
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
     dec $I10
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-  rxanchor109_done:
-  # rx rxquantr110 ** 0..*
-    set_addr $I111, rxquantr110_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I111)
-  rxquantr110_loop:
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+  rxanchor100_done:
+  # rx rxquantr101 ** 0..*
+    set_addr $I10, rxquantr101_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr101_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I111)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I111)
-    goto rxquantr110_loop
-  rxquantr110_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr101_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr101_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr101_loop
+  rxquantr101_done:
   # rx literal  "="
-    add $I11, rx105_pos, 1
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 1
-    ne $S10, "=", rx105_fail
-    add rx105_pos, 1
-  alt112_0:
+    add $I11, rx96_pos, 1
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 1
+    ne $S10, "=", rx96_fail
+    add rx96_pos, 1
+  alt102_0:
 .annotate 'line', 54
-    set_addr $I10, alt112_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt102_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
 .annotate 'line', 55
   # rx literal  "begin"
-    add $I11, rx105_pos, 5
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 5
-    ne $S10, "begin", rx105_fail
-    add rx105_pos, 5
-  # rx rxquantr113 ** 1..*
-    set_addr $I114, rxquantr113_done
-    rx105_cur."!mark_push"(0, -1, $I114)
-  rxquantr113_loop:
+    add $I11, rx96_pos, 5
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 5
+    ne $S10, "begin", rx96_fail
+    add rx96_pos, 5
+  # rx rxquantr103 ** 1..*
+    set_addr $I10, rxquantr103_done
+    rx96_cur."!mark_push"(0, -1, $I10)
+  rxquantr103_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I114)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I114)
-    goto rxquantr113_loop
-  rxquantr113_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr103_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr103_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr103_loop
+  rxquantr103_done:
   # rx literal  "END"
-    add $I11, rx105_pos, 3
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 3
-    ne $S10, "END", rx105_fail
-    add rx105_pos, 3
+    add $I11, rx96_pos, 3
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 3
+    ne $S10, "END", rx96_fail
+    add rx96_pos, 3
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
-  alt115_0:
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
+  alt104_0:
 .annotate 'line', 56
-    set_addr $I10, alt115_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-  # rx rxquantf116 ** 0..*
-    set_addr $I10, rxquantf116_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-    goto rxquantf116_done
-  rxquantf116_loop:
+    set_addr $I10, alt104_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  # rx rxquantf105 ** 0..*
+    set_addr $I10, rxquantf105_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+    goto rxquantf105_done
+  rxquantf105_loop:
   # rx charclass .
-    ge rx105_pos, rx105_eos, rx105_fail
-    inc rx105_pos
-    set_addr $I10, rxquantf116_loop
-    rx105_cur."!mark_push"($I117, rx105_pos, $I10)
-  rxquantf116_done:
+    ge rx96_pos, rx96_eos, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantf105_loop
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+  rxquantf105_done:
   # rx charclass nl
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-    substr $S10, rx105_tgt, $I10, 2
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+    substr $S10, rx96_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx105_pos, $I11
-    inc rx105_pos
-  # rx rxquantr118 ** 0..*
-    set_addr $I119, rxquantr118_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I119)
-  rxquantr118_loop:
+    add rx96_pos, $I11
+    inc rx96_pos
+  # rx rxquantr107 ** 0..*
+    set_addr $I10, rxquantr107_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr107_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I119)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I119)
-    goto rxquantr118_loop
-  rxquantr118_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr107_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr107_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr107_loop
+  rxquantr107_done:
   # rx literal  "=end"
-    add $I11, rx105_pos, 4
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 4
-    ne $S10, "=end", rx105_fail
-    add rx105_pos, 4
-  # rx rxquantr120 ** 1..*
-    set_addr $I121, rxquantr120_done
-    rx105_cur."!mark_push"(0, -1, $I121)
-  rxquantr120_loop:
+    add $I11, rx96_pos, 4
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 4
+    ne $S10, "=end", rx96_fail
+    add rx96_pos, 4
+  # rx rxquantr108 ** 1..*
+    set_addr $I10, rxquantr108_done
+    rx96_cur."!mark_push"(0, -1, $I10)
+  rxquantr108_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I121)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I121)
-    goto rxquantr120_loop
-  rxquantr120_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr108_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr108_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr108_loop
+  rxquantr108_done:
   # rx literal  "END"
-    add $I11, rx105_pos, 3
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 3
-    ne $S10, "END", rx105_fail
-    add rx105_pos, 3
+    add $I11, rx96_pos, 3
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 3
+    ne $S10, "END", rx96_fail
+    add rx96_pos, 3
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_cclass $I11, 4096, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-    goto alt115_end
-  alt115_1:
+    sub $I10, rx96_pos, rx96_off
+    find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+    add rx96_pos, rx96_off, $I11
+    goto alt104_end
+  alt104_1:
   # rx charclass_q . r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_not_cclass $I11, 65535, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-  alt115_end:
+    sub $I10, rx96_pos, rx96_off
+    find_not_cclass $I11, 65535, rx96_tgt, $I10, rx96_eos
+    add rx96_pos, rx96_off, $I11
+  alt104_end:
 .annotate 'line', 55
-    goto alt112_end
-  alt112_1:
-    set_addr $I10, alt112_2
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    goto alt102_end
+  alt102_1:
+    set_addr $I10, alt102_2
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
 .annotate 'line', 57
   # rx literal  "begin"
-    add $I11, rx105_pos, 5
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 5
-    ne $S10, "begin", rx105_fail
-    add rx105_pos, 5
-  # rx rxquantr122 ** 1..*
-    set_addr $I123, rxquantr122_done
-    rx105_cur."!mark_push"(0, -1, $I123)
-  rxquantr122_loop:
+    add $I11, rx96_pos, 5
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 5
+    ne $S10, "begin", rx96_fail
+    add rx96_pos, 5
+  # rx rxquantr109 ** 1..*
+    set_addr $I10, rxquantr109_done
+    rx96_cur."!mark_push"(0, -1, $I10)
+  rxquantr109_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I123)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I123)
-    goto rxquantr122_loop
-  rxquantr122_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr109_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr109_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr109_loop
+  rxquantr109_done:
   # rx subrule "identifier" subtype=capture negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."identifier"()
-    unless $P10, rx105_fail
-    rx105_cur."!mark_push"(0, -1, 0, $P10)
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."identifier"()
+    unless $P10, rx96_fail
+    rx96_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx105_pos = $P10."pos"()
-  alt124_0:
+    rx96_pos = $P10."pos"()
+  alt110_0:
 .annotate 'line', 58
-    set_addr $I10, alt124_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt110_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
 .annotate 'line', 59
-  # rx rxquantf125 ** 0..*
-    set_addr $I10, rxquantf125_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-    goto rxquantf125_done
-  rxquantf125_loop:
+  # rx rxquantf111 ** 0..*
+    set_addr $I10, rxquantf111_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+    goto rxquantf111_done
+  rxquantf111_loop:
   # rx charclass .
-    ge rx105_pos, rx105_eos, rx105_fail
-    inc rx105_pos
-    set_addr $I10, rxquantf125_loop
-    rx105_cur."!mark_push"($I126, rx105_pos, $I10)
-  rxquantf125_done:
+    ge rx96_pos, rx96_eos, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantf111_loop
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+  rxquantf111_done:
   # rx charclass nl
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-    substr $S10, rx105_tgt, $I10, 2
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+    substr $S10, rx96_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx105_pos, $I11
-    inc rx105_pos
-  # rx rxquantr127 ** 0..*
-    set_addr $I128, rxquantr127_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I128)
-  rxquantr127_loop:
+    add rx96_pos, $I11
+    inc rx96_pos
+  # rx rxquantr113 ** 0..*
+    set_addr $I10, rxquantr113_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr113_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I128)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I128)
-    goto rxquantr127_loop
-  rxquantr127_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr113_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr113_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr113_loop
+  rxquantr113_done:
   # rx literal  "=end"
-    add $I11, rx105_pos, 4
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 4
-    ne $S10, "=end", rx105_fail
-    add rx105_pos, 4
-  # rx rxquantr129 ** 1..*
-    set_addr $I130, rxquantr129_done
-    rx105_cur."!mark_push"(0, -1, $I130)
-  rxquantr129_loop:
+    add $I11, rx96_pos, 4
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 4
+    ne $S10, "=end", rx96_fail
+    add rx96_pos, 4
+  # rx rxquantr114 ** 1..*
+    set_addr $I10, rxquantr114_done
+    rx96_cur."!mark_push"(0, -1, $I10)
+  rxquantr114_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I130)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I130)
-    goto rxquantr129_loop
-  rxquantr129_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr114_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr114_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr114_loop
+  rxquantr114_done:
   # rx subrule "!BACKREF" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."!BACKREF"("identifier")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."!BACKREF"("identifier")
+    unless $P10, rx96_fail
+    rx96_pos = $P10."pos"()
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_cclass $I11, 4096, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-    goto alt124_end
-  alt124_1:
+    sub $I10, rx96_pos, rx96_off
+    find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+    add rx96_pos, rx96_off, $I11
+    goto alt110_end
+  alt110_1:
 .annotate 'line', 60
   # rx subrule "panic" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."panic"("=begin without matching =end")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
-  alt124_end:
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."panic"("=begin without matching =end")
+    unless $P10, rx96_fail
+    rx96_pos = $P10."pos"()
+  alt110_end:
 .annotate 'line', 57
-    goto alt112_end
-  alt112_2:
-    set_addr $I10, alt112_3
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    goto alt102_end
+  alt102_2:
+    set_addr $I10, alt102_3
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
 .annotate 'line', 62
   # rx literal  "begin"
-    add $I11, rx105_pos, 5
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 5
-    ne $S10, "begin", rx105_fail
-    add rx105_pos, 5
+    add $I11, rx96_pos, 5
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 5
+    ne $S10, "begin", rx96_fail
+    add rx96_pos, 5
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
-  # rx rxquantr132 ** 0..*
-    set_addr $I133, rxquantr132_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I133)
-  rxquantr132_loop:
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
+  # rx rxquantr116 ** 0..*
+    set_addr $I10, rxquantr116_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr116_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I133)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I133)
-    goto rxquantr132_loop
-  rxquantr132_done:
-  alt134_0:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr116_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr116_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr116_loop
+  rxquantr116_done:
+  alt117_0:
 .annotate 'line', 63
-    set_addr $I10, alt134_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt117_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
   # rxanchor eol
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    if $I11, rxanchor135_done
-    ne rx105_pos, rx105_eos, rx105_fail
-    eq rx105_pos, 0, rxanchor135_done
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    if $I11, rxanchor118_done
+    ne rx96_pos, rx96_eos, rx96_fail
+    eq rx96_pos, 0, rxanchor118_done
     dec $I10
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    if $I11, rx105_fail
-  rxanchor135_done:
-    goto alt134_end
-  alt134_1:
-    set_addr $I10, alt134_2
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    if $I11, rx96_fail
+  rxanchor118_done:
+    goto alt117_end
+  alt117_1:
+    set_addr $I10, alt117_2
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
   # rx literal  "#"
-    add $I11, rx105_pos, 1
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 1
-    ne $S10, "#", rx105_fail
-    add rx105_pos, 1
-    goto alt134_end
-  alt134_2:
+    add $I11, rx96_pos, 1
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 1
+    ne $S10, "#", rx96_fail
+    add rx96_pos, 1
+    goto alt117_end
+  alt117_2:
   # rx subrule "panic" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."panic"("Unrecognized token after =begin")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
-  alt134_end:
-  alt136_0:
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."panic"("Unrecognized token after =begin")
+    unless $P10, rx96_fail
+    rx96_pos = $P10."pos"()
+  alt117_end:
+  alt119_0:
 .annotate 'line', 64
-    set_addr $I10, alt136_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt119_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
 .annotate 'line', 65
-  # rx rxquantf137 ** 0..*
-    set_addr $I10, rxquantf137_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-    goto rxquantf137_done
-  rxquantf137_loop:
+  # rx rxquantf120 ** 0..*
+    set_addr $I10, rxquantf120_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+    goto rxquantf120_done
+  rxquantf120_loop:
   # rx charclass .
-    ge rx105_pos, rx105_eos, rx105_fail
-    inc rx105_pos
-    set_addr $I10, rxquantf137_loop
-    rx105_cur."!mark_push"($I138, rx105_pos, $I10)
-  rxquantf137_done:
+    ge rx96_pos, rx96_eos, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantf120_loop
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+  rxquantf120_done:
   # rx charclass nl
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-    substr $S10, rx105_tgt, $I10, 2
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+    substr $S10, rx96_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx105_pos, $I11
-    inc rx105_pos
-  # rx rxquantr139 ** 0..*
-    set_addr $I140, rxquantr139_done
-    rx105_cur."!mark_push"(0, rx105_pos, $I140)
-  rxquantr139_loop:
+    add rx96_pos, $I11
+    inc rx96_pos
+  # rx rxquantr122 ** 0..*
+    set_addr $I10, rxquantr122_done
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+  rxquantr122_loop:
   # rx enumcharlist negate=0 
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I10, 1
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx105_fail
-    inc rx105_pos
-    (rx105_rep) = rx105_cur."!mark_commit"($I140)
-    rx105_cur."!mark_push"(rx105_rep, rx105_pos, $I140)
-    goto rxquantr139_loop
-  rxquantr139_done:
+    lt $I11, 0, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantr122_done
+    (rx96_rep) = rx96_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr122_done
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+    goto rxquantr122_loop
+  rxquantr122_done:
   # rx literal  "=end"
-    add $I11, rx105_pos, 4
-    gt $I11, rx105_eos, rx105_fail
-    sub $I11, rx105_pos, rx105_off
-    substr $S10, rx105_tgt, $I11, 4
-    ne $S10, "=end", rx105_fail
-    add rx105_pos, 4
+    add $I11, rx96_pos, 4
+    gt $I11, rx96_eos, rx96_fail
+    sub $I11, rx96_pos, rx96_off
+    substr $S10, rx96_tgt, $I11, 4
+    ne $S10, "=end", rx96_fail
+    add rx96_pos, 4
   # rxanchor rwb
-    le rx105_pos, 0, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    if $I11, rx105_fail
+    le rx96_pos, 0, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    if $I11, rx96_fail
     dec $I10
-    is_cclass $I11, 8192, rx105_tgt, $I10
-    unless $I11, rx105_fail
+    is_cclass $I11, 8192, rx96_tgt, $I10
+    unless $I11, rx96_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_cclass $I11, 4096, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-    goto alt136_end
-  alt136_1:
+    sub $I10, rx96_pos, rx96_off
+    find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+    add rx96_pos, rx96_off, $I11
+    goto alt119_end
+  alt119_1:
 .annotate 'line', 66
   # rx subrule "panic" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."panic"("=begin without matching =end")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
-  alt136_end:
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."panic"("=begin without matching =end")
+    unless $P10, rx96_fail
+    rx96_pos = $P10."pos"()
+  alt119_end:
 .annotate 'line', 62
-    goto alt112_end
-  alt112_3:
-    set_addr $I10, alt112_4
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    goto alt102_end
+  alt102_3:
+    set_addr $I10, alt102_4
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
 .annotate 'line', 68
   # rx subrule "identifier" subtype=capture negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."identifier"()
-    unless $P10, rx105_fail
-    rx105_cur."!mark_push"(0, -1, 0, $P10)
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."identifier"()
+    unless $P10, rx96_fail
+    rx96_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx105_pos = $P10."pos"()
+    rx96_pos = $P10."pos"()
 .annotate 'line', 69
-  # rx rxquantf141 ** 0..*
-    set_addr $I10, rxquantf141_loop
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
-    goto rxquantf141_done
-  rxquantf141_loop:
+  # rx rxquantf123 ** 0..*
+    set_addr $I10, rxquantf123_loop
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
+    goto rxquantf123_done
+  rxquantf123_loop:
   # rx charclass .
-    ge rx105_pos, rx105_eos, rx105_fail
-    inc rx105_pos
-    set_addr $I10, rxquantf141_loop
-    rx105_cur."!mark_push"($I142, rx105_pos, $I10)
-  rxquantf141_done:
+    ge rx96_pos, rx96_eos, rx96_fail
+    inc rx96_pos
+    set_addr $I10, rxquantf123_loop
+    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
+  rxquantf123_done:
   # rxanchor bol
-    eq rx105_pos, 0, rxanchor143_done
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
+    eq rx96_pos, 0, rxanchor125_done
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
     dec $I10
-    is_cclass $I11, 4096, rx105_tgt, $I10
-    unless $I11, rx105_fail
-  rxanchor143_done:
+    is_cclass $I11, 4096, rx96_tgt, $I10
+    unless $I11, rx96_fail
+  rxanchor125_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    .const 'Sub' $P145 = "28_1278500537.15927" 
-    capture_lex $P145
-    $P10 = rx105_cur."before"($P145)
-    unless $P10, rx105_fail
+    rx96_cur."!cursor_pos"(rx96_pos)
+    .const 'Sub' $P127 = "28_1279564397.22945" 
+    capture_lex $P127
+    $P10 = rx96_cur."before"($P127)
+    unless $P10, rx96_fail
 .annotate 'line', 68
-    goto alt112_end
-  alt112_4:
-  alt153_0:
+    goto alt102_end
+  alt102_4:
+  alt133_0:
 .annotate 'line', 75
-    set_addr $I10, alt153_1
-    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    set_addr $I10, alt133_1
+    rx96_cur."!mark_push"(0, rx96_pos, $I10)
   # rx charclass s
-    ge rx105_pos, rx105_eos, rx105_fail
-    sub $I10, rx105_pos, rx105_off
-    is_cclass $I11, 32, rx105_tgt, $I10
-    unless $I11, rx105_fail
-    inc rx105_pos
-    goto alt153_end
-  alt153_1:
+    ge rx96_pos, rx96_eos, rx96_fail
+    sub $I10, rx96_pos, rx96_off
+    is_cclass $I11, 32, rx96_tgt, $I10
+    unless $I11, rx96_fail
+    inc rx96_pos
+    goto alt133_end
+  alt133_1:
   # rx subrule "panic" subtype=method negate=
-    rx105_cur."!cursor_pos"(rx105_pos)
-    $P10 = rx105_cur."panic"("Illegal pod directive")
-    unless $P10, rx105_fail
-    rx105_pos = $P10."pos"()
-  alt153_end:
+    rx96_cur."!cursor_pos"(rx96_pos)
+    $P10 = rx96_cur."panic"("Illegal pod directive")
+    unless $P10, rx96_fail
+    rx96_pos = $P10."pos"()
+  alt133_end:
 .annotate 'line', 76
   # rx charclass_q N r 0..-1
-    sub $I10, rx105_pos, rx105_off
-    find_cclass $I11, 4096, rx105_tgt, $I10, rx105_eos
-    add rx105_pos, rx105_off, $I11
-  alt112_end:
+    sub $I10, rx96_pos, rx96_off
+    find_cclass $I11, 4096, rx96_tgt, $I10, rx96_eos
+    add rx96_pos, rx96_off, $I11
+  alt102_end:
 .annotate 'line', 52
   # rx pass
-    rx105_cur."!cursor_pass"(rx105_pos, "pod_comment")
-    rx105_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx105_pos)
-    .return (rx105_cur)
-  rx105_fail:
+    rx96_cur."!cursor_pass"(rx96_pos, "pod_comment")
+    rx96_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx96_pos)
+    .return (rx96_cur)
+  rx96_restart:
 .annotate 'line', 4
-    (rx105_rep, rx105_pos, $I10, $P10) = rx105_cur."!mark_fail"(0)
-    lt rx105_pos, -1, rx105_done
-    eq rx105_pos, -1, rx105_fail
+    rx96_cur."!cursor_debug"("NEXT ", "pod_comment")
+  rx96_fail:
+    (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
+    lt rx96_pos, -1, rx96_done
+    eq rx96_pos, -1, rx96_fail
     jump $I10
-  rx105_done:
-    rx105_cur."!cursor_fail"()
-    rx105_cur."!cursor_debug"("FAIL  ", "pod_comment")
-    .return (rx105_cur)
+  rx96_done:
+    rx96_cur."!cursor_fail"()
+    rx96_cur."!cursor_debug"("FAIL  ", "pod_comment")
+    .return (rx96_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1278500537.15927") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1279564397.22945") :method
 .annotate 'line', 4
-    new $P107, "ResizablePMCArray"
-    push $P107, ""
-    .return ($P107)
+    new $P98, "ResizablePMCArray"
+    push $P98, ""
+    .return ($P98)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block144"  :anon :subid("28_1278500537.15927") :method :outer("26_1278500537.15927")
+.sub "_block126"  :anon :subid("28_1279564397.22945") :method :outer("26_1279564397.22945")
 .annotate 'line', 69
-    .local string rx146_tgt
-    .local int rx146_pos
-    .local int rx146_off
-    .local int rx146_eos
-    .local int rx146_rep
-    .local pmc rx146_cur
-    (rx146_cur, rx146_pos, rx146_tgt) = self."!cursor_start"()
-    rx146_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx146_cur
-    .local pmc match
-    .lex "$/", match
-    length rx146_eos, rx146_tgt
-    gt rx146_pos, rx146_eos, rx146_done
-    set rx146_off, 0
-    lt rx146_pos, 2, rx146_start
-    sub rx146_off, rx146_pos, 1
-    substr rx146_tgt, rx146_tgt, rx146_off
-  rx146_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan147_done
-    goto rxscan147_scan
-  rxscan147_loop:
-    ($P10) = rx146_cur."from"()
-    inc $P10
-    set rx146_pos, $P10
-    ge rx146_pos, rx146_eos, rxscan147_done
-  rxscan147_scan:
-    set_addr $I10, rxscan147_loop
-    rx146_cur."!mark_push"(0, rx146_pos, $I10)
-  rxscan147_done:
-  # rx rxquantr148 ** 0..*
-    set_addr $I149, rxquantr148_done
-    rx146_cur."!mark_push"(0, rx146_pos, $I149)
-  rxquantr148_loop:
+    .local string rx128_tgt
+    .local int rx128_pos
+    .local int rx128_off
+    .local int rx128_eos
+    .local int rx128_rep
+    .local pmc rx128_cur
+    (rx128_cur, rx128_pos, rx128_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx128_cur
+    .local pmc match
+    .lex "$/", match
+    length rx128_eos, rx128_tgt
+    gt rx128_pos, rx128_eos, rx128_done
+    set rx128_off, 0
+    lt rx128_pos, 2, rx128_start
+    sub rx128_off, rx128_pos, 1
+    substr rx128_tgt, rx128_tgt, rx128_off
+  rx128_start:
+    eq $I10, 1, rx128_restart
+    rx128_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan129_done
+    goto rxscan129_scan
+  rxscan129_loop:
+    ($P10) = rx128_cur."from"()
+    inc $P10
+    set rx128_pos, $P10
+    ge rx128_pos, rx128_eos, rxscan129_done
+  rxscan129_scan:
+    set_addr $I10, rxscan129_loop
+    rx128_cur."!mark_push"(0, rx128_pos, $I10)
+  rxscan129_done:
+  # rx rxquantr130 ** 0..*
+    set_addr $I10, rxquantr130_done
+    rx128_cur."!mark_push"(0, rx128_pos, $I10)
+  rxquantr130_loop:
   # rx enumcharlist negate=0 
-    ge rx146_pos, rx146_eos, rx146_fail
-    sub $I10, rx146_pos, rx146_off
-    substr $S10, rx146_tgt, $I10, 1
+    ge rx128_pos, rx128_eos, rx128_fail
+    sub $I10, rx128_pos, rx128_off
+    substr $S10, rx128_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx146_fail
-    inc rx146_pos
-    (rx146_rep) = rx146_cur."!mark_commit"($I149)
-    rx146_cur."!mark_push"(rx146_rep, rx146_pos, $I149)
-    goto rxquantr148_loop
-  rxquantr148_done:
-  alt150_0:
-    set_addr $I10, alt150_1
-    rx146_cur."!mark_push"(0, rx146_pos, $I10)
+    lt $I11, 0, rx128_fail
+    inc rx128_pos
+    set_addr $I10, rxquantr130_done
+    (rx128_rep) = rx128_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr130_done
+    rx128_cur."!mark_push"(rx128_rep, rx128_pos, $I10)
+    goto rxquantr130_loop
+  rxquantr130_done:
+  alt131_0:
+    set_addr $I10, alt131_1
+    rx128_cur."!mark_push"(0, rx128_pos, $I10)
 .annotate 'line', 70
   # rx literal  "="
-    add $I11, rx146_pos, 1
-    gt $I11, rx146_eos, rx146_fail
-    sub $I11, rx146_pos, rx146_off
-    substr $S10, rx146_tgt, $I11, 1
-    ne $S10, "=", rx146_fail
-    add rx146_pos, 1
+    add $I11, rx128_pos, 1
+    gt $I11, rx128_eos, rx128_fail
+    sub $I11, rx128_pos, rx128_off
+    substr $S10, rx128_tgt, $I11, 1
+    ne $S10, "=", rx128_fail
+    add rx128_pos, 1
 .annotate 'line', 72
-  # rx rxquantr151 ** 0..1
-    set_addr $I152, rxquantr151_done
-    rx146_cur."!mark_push"(0, rx146_pos, $I152)
-  rxquantr151_loop:
+  # rx rxquantr132 ** 0..1
+    set_addr $I10, rxquantr132_done
+    rx128_cur."!mark_push"(0, rx128_pos, $I10)
+  rxquantr132_loop:
 .annotate 'line', 71
   # rx literal  "cut"
-    add $I11, rx146_pos, 3
-    gt $I11, rx146_eos, rx146_fail
-    sub $I11, rx146_pos, rx146_off
-    substr $S10, rx146_tgt, $I11, 3
-    ne $S10, "cut", rx146_fail
-    add rx146_pos, 3
+    add $I11, rx128_pos, 3
+    gt $I11, rx128_eos, rx128_fail
+    sub $I11, rx128_pos, rx128_off
+    substr $S10, rx128_tgt, $I11, 3
+    ne $S10, "cut", rx128_fail
+    add rx128_pos, 3
   # rxanchor rwb
-    le rx146_pos, 0, rx146_fail
-    sub $I10, rx146_pos, rx146_off
-    is_cclass $I11, 8192, rx146_tgt, $I10
-    if $I11, rx146_fail
+    le rx128_pos, 0, rx128_fail
+    sub $I10, rx128_pos, rx128_off
+    is_cclass $I11, 8192, rx128_tgt, $I10
+    if $I11, rx128_fail
     dec $I10
-    is_cclass $I11, 8192, rx146_tgt, $I10
-    unless $I11, rx146_fail
+    is_cclass $I11, 8192, rx128_tgt, $I10
+    unless $I11, rx128_fail
 .annotate 'line', 72
   # rx subrule "panic" subtype=method negate=
-    rx146_cur."!cursor_pos"(rx146_pos)
-    $P10 = rx146_cur."panic"("Obsolete pod format, please use =begin/=end instead")
-    unless $P10, rx146_fail
-    rx146_pos = $P10."pos"()
-    (rx146_rep) = rx146_cur."!mark_commit"($I152)
-  rxquantr151_done:
+    rx128_cur."!cursor_pos"(rx128_pos)
+    $P10 = rx128_cur."panic"("Obsolete pod format, please use =begin/=end instead")
+    unless $P10, rx128_fail
+    rx128_pos = $P10."pos"()
+    set_addr $I10, rxquantr132_done
+    (rx128_rep) = rx128_cur."!mark_commit"($I10)
+  rxquantr132_done:
 .annotate 'line', 69
-    goto alt150_end
-  alt150_1:
+    goto alt131_end
+  alt131_1:
 .annotate 'line', 73
   # rx charclass nl
-    ge rx146_pos, rx146_eos, rx146_fail
-    sub $I10, rx146_pos, rx146_off
-    is_cclass $I11, 4096, rx146_tgt, $I10
-    unless $I11, rx146_fail
-    substr $S10, rx146_tgt, $I10, 2
+    ge rx128_pos, rx128_eos, rx128_fail
+    sub $I10, rx128_pos, rx128_off
+    is_cclass $I11, 4096, rx128_tgt, $I10
+    unless $I11, rx128_fail
+    substr $S10, rx128_tgt, $I10, 2
     iseq $I11, $S10, "\r\n"
-    add rx146_pos, $I11
-    inc rx146_pos
-  alt150_end:
+    add rx128_pos, $I11
+    inc rx128_pos
+  alt131_end:
 .annotate 'line', 69
   # rx pass
-    rx146_cur."!cursor_pass"(rx146_pos, "")
-    rx146_cur."!cursor_debug"("PASS  ", "", " at pos=", rx146_pos)
-    .return (rx146_cur)
-  rx146_fail:
-    (rx146_rep, rx146_pos, $I10, $P10) = rx146_cur."!mark_fail"(0)
-    lt rx146_pos, -1, rx146_done
-    eq rx146_pos, -1, rx146_fail
-    jump $I10
-  rx146_done:
-    rx146_cur."!cursor_fail"()
-    rx146_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx146_cur)
+    rx128_cur."!cursor_pass"(rx128_pos, "")
+    rx128_cur."!cursor_debug"("PASS  ", "", " at pos=", rx128_pos)
+    .return (rx128_cur)
+  rx128_restart:
+    rx128_cur."!cursor_debug"("NEXT ", "")
+  rx128_fail:
+    (rx128_rep, rx128_pos, $I10, $P10) = rx128_cur."!mark_fail"(0)
+    lt rx128_pos, -1, rx128_done
+    eq rx128_pos, -1, rx128_fail
+    jump $I10
+  rx128_done:
+    rx128_cur."!cursor_fail"()
+    rx128_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx128_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx155_tgt
-    .local int rx155_pos
-    .local int rx155_off
-    .local int rx155_eos
-    .local int rx155_rep
-    .local pmc rx155_cur
-    (rx155_cur, rx155_pos, rx155_tgt) = self."!cursor_start"()
-    rx155_cur."!cursor_debug"("START ", "comp_unit")
-    .lex unicode:"$\x{a2}", rx155_cur
-    .local pmc match
-    .lex "$/", match
-    length rx155_eos, rx155_tgt
-    gt rx155_pos, rx155_eos, rx155_done
-    set rx155_off, 0
-    lt rx155_pos, 2, rx155_start
-    sub rx155_off, rx155_pos, 1
-    substr rx155_tgt, rx155_tgt, rx155_off
-  rx155_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan159_done
-    goto rxscan159_scan
-  rxscan159_loop:
-    ($P10) = rx155_cur."from"()
-    inc $P10
-    set rx155_pos, $P10
-    ge rx155_pos, rx155_eos, rxscan159_done
-  rxscan159_scan:
-    set_addr $I10, rxscan159_loop
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
-  rxscan159_done:
+.sub "comp_unit"  :subid("29_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx135_tgt
+    .local int rx135_pos
+    .local int rx135_off
+    .local int rx135_eos
+    .local int rx135_rep
+    .local pmc rx135_cur
+    (rx135_cur, rx135_pos, rx135_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx135_cur
+    .local pmc match
+    .lex "$/", match
+    length rx135_eos, rx135_tgt
+    gt rx135_pos, rx135_eos, rx135_done
+    set rx135_off, 0
+    lt rx135_pos, 2, rx135_start
+    sub rx135_off, rx135_pos, 1
+    substr rx135_tgt, rx135_tgt, rx135_off
+  rx135_start:
+    eq $I10, 1, rx135_restart
+    rx135_cur."!cursor_debug"("START ", "comp_unit")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan139_done
+    goto rxscan139_scan
+  rxscan139_loop:
+    ($P10) = rx135_cur."from"()
+    inc $P10
+    set rx135_pos, $P10
+    ge rx135_pos, rx135_eos, rxscan139_done
+  rxscan139_scan:
+    set_addr $I10, rxscan139_loop
+    rx135_cur."!mark_push"(0, rx135_pos, $I10)
+  rxscan139_done:
 .annotate 'line', 84
   # rx subrule "newpad" subtype=method negate=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."newpad"()
-    unless $P10, rx155_fail
-    rx155_pos = $P10."pos"()
+    rx135_cur."!cursor_pos"(rx135_pos)
+    $P10 = rx135_cur."newpad"()
+    unless $P10, rx135_fail
+    rx135_pos = $P10."pos"()
 .annotate 'line', 85
   # rx subrule "outerctx" subtype=method negate=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."outerctx"()
-    unless $P10, rx155_fail
-    rx155_pos = $P10."pos"()
+    rx135_cur."!cursor_pos"(rx135_pos)
+    $P10 = rx135_cur."outerctx"()
+    unless $P10, rx135_fail
+    rx135_pos = $P10."pos"()
 .annotate 'line', 86
   # rx subrule "statementlist" subtype=capture negate=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."statementlist"()
-    unless $P10, rx155_fail
-    rx155_cur."!mark_push"(0, -1, 0, $P10)
+    rx135_cur."!cursor_pos"(rx135_pos)
+    $P10 = rx135_cur."statementlist"()
+    unless $P10, rx135_fail
+    rx135_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statementlist")
-    rx155_pos = $P10."pos"()
-  alt160_0:
+    rx135_pos = $P10."pos"()
+  alt140_0:
 .annotate 'line', 87
-    set_addr $I10, alt160_1
-    rx155_cur."!mark_push"(0, rx155_pos, $I10)
+    set_addr $I10, alt140_1
+    rx135_cur."!mark_push"(0, rx135_pos, $I10)
   # rxanchor eos
-    ne rx155_pos, rx155_eos, rx155_fail
-    goto alt160_end
-  alt160_1:
+    ne rx135_pos, rx135_eos, rx135_fail
+    goto alt140_end
+  alt140_1:
   # rx subrule "panic" subtype=method negate=
-    rx155_cur."!cursor_pos"(rx155_pos)
-    $P10 = rx155_cur."panic"("Confused")
-    unless $P10, rx155_fail
-    rx155_pos = $P10."pos"()
-  alt160_end:
+    rx135_cur."!cursor_pos"(rx135_pos)
+    $P10 = rx135_cur."panic"("Confused")
+    unless $P10, rx135_fail
+    rx135_pos = $P10."pos"()
+  alt140_end:
 .annotate 'line', 83
   # rx pass
-    rx155_cur."!cursor_pass"(rx155_pos, "comp_unit")
-    rx155_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx155_pos)
-    .return (rx155_cur)
-  rx155_fail:
+    rx135_cur."!cursor_pass"(rx135_pos, "comp_unit")
+    rx135_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx135_pos)
+    .return (rx135_cur)
+  rx135_restart:
+.annotate 'line', 4
+    rx135_cur."!cursor_debug"("NEXT ", "comp_unit")
+  rx135_fail:
+    (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
+    lt rx135_pos, -1, rx135_done
+    eq rx135_pos, -1, rx135_fail
+    jump $I10
+  rx135_done:
+    rx135_cur."!cursor_fail"()
+    rx135_cur."!cursor_debug"("FAIL  ", "comp_unit")
+    .return (rx135_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__comp_unit"  :subid("30_1279564397.22945") :method
+.annotate 'line', 4
+    $P137 = self."!PREFIX__!subrule"("newpad", "")
+    new $P138, "ResizablePMCArray"
+    push $P138, $P137
+    .return ($P138)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "statementlist"  :subid("31_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx142_tgt
+    .local int rx142_pos
+    .local int rx142_off
+    .local int rx142_eos
+    .local int rx142_rep
+    .local pmc rx142_cur
+    (rx142_cur, rx142_pos, rx142_tgt, $I10) = self."!cursor_start"()
+    rx142_cur."!cursor_caparray"("statement")
+    .lex unicode:"$\x{a2}", rx142_cur
+    .local pmc match
+    .lex "$/", match
+    length rx142_eos, rx142_tgt
+    gt rx142_pos, rx142_eos, rx142_done
+    set rx142_off, 0
+    lt rx142_pos, 2, rx142_start
+    sub rx142_off, rx142_pos, 1
+    substr rx142_tgt, rx142_tgt, rx142_off
+  rx142_start:
+    eq $I10, 1, rx142_restart
+    rx142_cur."!cursor_debug"("START ", "statementlist")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan147_done
+    goto rxscan147_scan
+  rxscan147_loop:
+    ($P10) = rx142_cur."from"()
+    inc $P10
+    set rx142_pos, $P10
+    ge rx142_pos, rx142_eos, rxscan147_done
+  rxscan147_scan:
+    set_addr $I10, rxscan147_loop
+    rx142_cur."!mark_push"(0, rx142_pos, $I10)
+  rxscan147_done:
+  alt148_0:
+.annotate 'line', 90
+    set_addr $I10, alt148_1
+    rx142_cur."!mark_push"(0, rx142_pos, $I10)
+.annotate 'line', 91
+  # rx subrule "ws" subtype=method negate=
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+  # rxanchor eos
+    ne rx142_pos, rx142_eos, rx142_fail
+  # rx subrule "ws" subtype=method negate=
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+    goto alt148_end
+  alt148_1:
+.annotate 'line', 92
+  # rx subrule "ws" subtype=method negate=
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+  # rx rxquantr152 ** 0..*
+    set_addr $I10, rxquantr152_done
+    rx142_cur."!mark_push"(0, rx142_pos, $I10)
+  rxquantr152_loop:
+  # rx subrule "statement" subtype=capture negate=
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."statement"()
+    unless $P10, rx142_fail
+    rx142_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("statement")
+    rx142_pos = $P10."pos"()
+  # rx subrule "eat_terminator" subtype=method negate=
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."eat_terminator"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+    set_addr $I10, rxquantr152_done
+    (rx142_rep) = rx142_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr152_done
+    rx142_cur."!mark_push"(rx142_rep, rx142_pos, $I10)
+    goto rxquantr152_loop
+  rxquantr152_done:
+  # rx subrule "ws" subtype=method negate=
+    rx142_cur."!cursor_pos"(rx142_pos)
+    $P10 = rx142_cur."ws"()
+    unless $P10, rx142_fail
+    rx142_pos = $P10."pos"()
+  alt148_end:
+.annotate 'line', 90
+  # rx pass
+    rx142_cur."!cursor_pass"(rx142_pos, "statementlist")
+    rx142_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx142_pos)
+    .return (rx142_cur)
+  rx142_restart:
+.annotate 'line', 4
+    rx142_cur."!cursor_debug"("NEXT ", "statementlist")
+  rx142_fail:
+    (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
+    lt rx142_pos, -1, rx142_done
+    eq rx142_pos, -1, rx142_fail
+    jump $I10
+  rx142_done:
+    rx142_cur."!cursor_fail"()
+    rx142_cur."!cursor_debug"("FAIL  ", "statementlist")
+    .return (rx142_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__statementlist"  :subid("32_1279564397.22945") :method
+.annotate 'line', 4
+    $P144 = self."!PREFIX__!subrule"("ws", "")
+    $P145 = self."!PREFIX__!subrule"("ws", "")
+    new $P146, "ResizablePMCArray"
+    push $P146, $P144
+    push $P146, $P145
+    .return ($P146)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "statement"  :subid("33_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .const 'Sub' $P161 = "35_1279564397.22945" 
+    capture_lex $P161
+    .local string rx156_tgt
+    .local int rx156_pos
+    .local int rx156_off
+    .local int rx156_eos
+    .local int rx156_rep
+    .local pmc rx156_cur
+    (rx156_cur, rx156_pos, rx156_tgt, $I10) = self."!cursor_start"()
+    rx156_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+    .lex unicode:"$\x{a2}", rx156_cur
+    .local pmc match
+    .lex "$/", match
+    length rx156_eos, rx156_tgt
+    gt rx156_pos, rx156_eos, rx156_done
+    set rx156_off, 0
+    lt rx156_pos, 2, rx156_start
+    sub rx156_off, rx156_pos, 1
+    substr rx156_tgt, rx156_tgt, rx156_off
+  rx156_start:
+    eq $I10, 1, rx156_restart
+    rx156_cur."!cursor_debug"("START ", "statement")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan159_done
+    goto rxscan159_scan
+  rxscan159_loop:
+    ($P10) = rx156_cur."from"()
+    inc $P10
+    set rx156_pos, $P10
+    ge rx156_pos, rx156_eos, rxscan159_done
+  rxscan159_scan:
+    set_addr $I10, rxscan159_loop
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+  rxscan159_done:
+.annotate 'line', 96
+  # rx subrule "before" subtype=zerowidth negate=1
+    rx156_cur."!cursor_pos"(rx156_pos)
+    .const 'Sub' $P161 = "35_1279564397.22945" 
+    capture_lex $P161
+    $P10 = rx156_cur."before"($P161)
+    if $P10, rx156_fail
+  alt165_0:
+.annotate 'line', 97
+    set_addr $I10, alt165_1
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+.annotate 'line', 98
+  # rx subrule "statement_control" subtype=capture negate=
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."statement_control"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("statement_control")
+    rx156_pos = $P10."pos"()
+    goto alt165_end
+  alt165_1:
+.annotate 'line', 99
+  # rx subrule "EXPR" subtype=capture negate=
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."EXPR"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("EXPR")
+    rx156_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."ws"()
+    unless $P10, rx156_fail
+    rx156_pos = $P10."pos"()
+.annotate 'line', 104
+  # rx rxquantr166 ** 0..1
+    set_addr $I10, rxquantr166_done
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+  rxquantr166_loop:
+  alt167_0:
+.annotate 'line', 100
+    set_addr $I10, alt167_1
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+.annotate 'line', 101
+  # rx subrule "MARKED" subtype=zerowidth negate=
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."MARKED"("endstmt")
+    unless $P10, rx156_fail
+    goto alt167_end
+  alt167_1:
+    set_addr $I10, alt167_2
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+.annotate 'line', 102
+  # rx subrule "statement_mod_cond" subtype=capture negate=
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."statement_mod_cond"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("statement_mod_cond")
+    rx156_pos = $P10."pos"()
+  # rx rxquantr168 ** 0..1
+    set_addr $I10, rxquantr168_done
+    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+  rxquantr168_loop:
+  # rx subrule "statement_mod_loop" subtype=capture negate=
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."statement_mod_loop"()
+    unless $P10, rx156_fail
+    goto rxsubrule169_pass
+  rxsubrule169_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx156_fail
+  rxsubrule169_pass:
+    set_addr $I10, rxsubrule169_back
+    rx156_cur."!mark_push"(0, rx156_pos, $I10, $P10)
+    $P10."!cursor_names"("statement_mod_loop")
+    rx156_pos = $P10."pos"()
+    set_addr $I10, rxquantr168_done
+    (rx156_rep) = rx156_cur."!mark_commit"($I10)
+  rxquantr168_done:
+    goto alt167_end
+  alt167_2:
+.annotate 'line', 103
+  # rx subrule "statement_mod_loop" subtype=capture negate=
+    rx156_cur."!cursor_pos"(rx156_pos)
+    $P10 = rx156_cur."statement_mod_loop"()
+    unless $P10, rx156_fail
+    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("statement_mod_loop")
+    rx156_pos = $P10."pos"()
+  alt167_end:
+.annotate 'line', 104
+    set_addr $I10, rxquantr166_done
+    (rx156_rep) = rx156_cur."!mark_commit"($I10)
+  rxquantr166_done:
+  alt165_end:
+.annotate 'line', 95
+  # rx pass
+    rx156_cur."!cursor_pass"(rx156_pos, "statement")
+    rx156_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx156_pos)
+    .return (rx156_cur)
+  rx156_restart:
 .annotate 'line', 4
-    (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0)
-    lt rx155_pos, -1, rx155_done
-    eq rx155_pos, -1, rx155_fail
+    rx156_cur."!cursor_debug"("NEXT ", "statement")
+  rx156_fail:
+    (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
+    lt rx156_pos, -1, rx156_done
+    eq rx156_pos, -1, rx156_fail
     jump $I10
-  rx155_done:
-    rx155_cur."!cursor_fail"()
-    rx155_cur."!cursor_debug"("FAIL  ", "comp_unit")
-    .return (rx155_cur)
+  rx156_done:
+    rx156_cur."!cursor_fail"()
+    rx156_cur."!cursor_debug"("FAIL  ", "statement")
+    .return (rx156_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1278500537.15927") :method
+.sub "!PREFIX__statement"  :subid("34_1279564397.22945") :method
 .annotate 'line', 4
-    $P157 = self."!PREFIX__!subrule"("newpad", "")
     new $P158, "ResizablePMCArray"
-    push $P158, $P157
+    push $P158, ""
     .return ($P158)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
+.sub "_block160"  :anon :subid("35_1279564397.22945") :method :outer("33_1279564397.22945")
+.annotate 'line', 96
     .local string rx162_tgt
     .local int rx162_pos
     .local int rx162_off
     .local int rx162_eos
     .local int rx162_rep
     .local pmc rx162_cur
-    (rx162_cur, rx162_pos, rx162_tgt) = self."!cursor_start"()
-    rx162_cur."!cursor_debug"("START ", "statementlist")
-    rx162_cur."!cursor_caparray"("statement")
+    (rx162_cur, rx162_pos, rx162_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx162_cur
     .local pmc match
     .lex "$/", match
@@ -2110,119 +2488,167 @@
     sub rx162_off, rx162_pos, 1
     substr rx162_tgt, rx162_tgt, rx162_off
   rx162_start:
+    eq $I10, 1, rx162_restart
+    rx162_cur."!cursor_debug"("START ", "")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan167_done
-    goto rxscan167_scan
-  rxscan167_loop:
+    ne $I10, -1, rxscan163_done
+    goto rxscan163_scan
+  rxscan163_loop:
     ($P10) = rx162_cur."from"()
     inc $P10
     set rx162_pos, $P10
-    ge rx162_pos, rx162_eos, rxscan167_done
-  rxscan167_scan:
-    set_addr $I10, rxscan167_loop
+    ge rx162_pos, rx162_eos, rxscan163_done
+  rxscan163_scan:
+    set_addr $I10, rxscan163_loop
     rx162_cur."!mark_push"(0, rx162_pos, $I10)
-  rxscan167_done:
-  alt168_0:
-.annotate 'line', 90
-    set_addr $I10, alt168_1
+  rxscan163_done:
+  alt164_0:
+    set_addr $I10, alt164_1
     rx162_cur."!mark_push"(0, rx162_pos, $I10)
-.annotate 'line', 91
-  # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
+  # rx enumcharlist negate=0 
+    ge rx162_pos, rx162_eos, rx162_fail
+    sub $I10, rx162_pos, rx162_off
+    substr $S10, rx162_tgt, $I10, 1
+    index $I11, "])}", $S10
+    lt $I11, 0, rx162_fail
+    inc rx162_pos
+    goto alt164_end
+  alt164_1:
   # rxanchor eos
     ne rx162_pos, rx162_eos, rx162_fail
-  # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-    goto alt168_end
-  alt168_1:
-.annotate 'line', 92
-  # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-  # rx rxquantr172 ** 0..*
-    set_addr $I174, rxquantr172_done
-    rx162_cur."!mark_push"(0, rx162_pos, $I174)
-  rxquantr172_loop:
-  # rx subrule "statement" subtype=capture negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."statement"()
-    unless $P10, rx162_fail
-    rx162_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("statement")
-    rx162_pos = $P10."pos"()
-  # rx subrule "eat_terminator" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."eat_terminator"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-    (rx162_rep) = rx162_cur."!mark_commit"($I174)
-    rx162_cur."!mark_push"(rx162_rep, rx162_pos, $I174)
-    goto rxquantr172_loop
-  rxquantr172_done:
-  # rx subrule "ws" subtype=method negate=
-    rx162_cur."!cursor_pos"(rx162_pos)
-    $P10 = rx162_cur."ws"()
-    unless $P10, rx162_fail
-    rx162_pos = $P10."pos"()
-  alt168_end:
-.annotate 'line', 90
+  alt164_end:
   # rx pass
-    rx162_cur."!cursor_pass"(rx162_pos, "statementlist")
-    rx162_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx162_pos)
+    rx162_cur."!cursor_pass"(rx162_pos, "")
+    rx162_cur."!cursor_debug"("PASS  ", "", " at pos=", rx162_pos)
     .return (rx162_cur)
+  rx162_restart:
+    rx162_cur."!cursor_debug"("NEXT ", "")
   rx162_fail:
-.annotate 'line', 4
     (rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0)
     lt rx162_pos, -1, rx162_done
     eq rx162_pos, -1, rx162_fail
     jump $I10
   rx162_done:
     rx162_cur."!cursor_fail"()
-    rx162_cur."!cursor_debug"("FAIL  ", "statementlist")
+    rx162_cur."!cursor_debug"("FAIL  ", "")
     .return (rx162_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1278500537.15927") :method
+.sub "eat_terminator"  :subid("36_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx171_tgt
+    .local int rx171_pos
+    .local int rx171_off
+    .local int rx171_eos
+    .local int rx171_rep
+    .local pmc rx171_cur
+    (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx171_cur
+    .local pmc match
+    .lex "$/", match
+    length rx171_eos, rx171_tgt
+    gt rx171_pos, rx171_eos, rx171_done
+    set rx171_off, 0
+    lt rx171_pos, 2, rx171_start
+    sub rx171_off, rx171_pos, 1
+    substr rx171_tgt, rx171_tgt, rx171_off
+  rx171_start:
+    eq $I10, 1, rx171_restart
+    rx171_cur."!cursor_debug"("START ", "eat_terminator")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan174_done
+    goto rxscan174_scan
+  rxscan174_loop:
+    ($P10) = rx171_cur."from"()
+    inc $P10
+    set rx171_pos, $P10
+    ge rx171_pos, rx171_eos, rxscan174_done
+  rxscan174_scan:
+    set_addr $I10, rxscan174_loop
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+  rxscan174_done:
+  alt175_0:
+.annotate 'line', 108
+    set_addr $I10, alt175_1
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+.annotate 'line', 109
+  # rx literal  ";"
+    add $I11, rx171_pos, 1
+    gt $I11, rx171_eos, rx171_fail
+    sub $I11, rx171_pos, rx171_off
+    substr $S10, rx171_tgt, $I11, 1
+    ne $S10, ";", rx171_fail
+    add rx171_pos, 1
+    goto alt175_end
+  alt175_1:
+    set_addr $I10, alt175_2
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+.annotate 'line', 110
+  # rx subrule "MARKED" subtype=zerowidth negate=
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."MARKED"("endstmt")
+    unless $P10, rx171_fail
+    goto alt175_end
+  alt175_2:
+    set_addr $I10, alt175_3
+    rx171_cur."!mark_push"(0, rx171_pos, $I10)
+.annotate 'line', 111
+  # rx subrule "terminator" subtype=zerowidth negate=
+    rx171_cur."!cursor_pos"(rx171_pos)
+    $P10 = rx171_cur."terminator"()
+    unless $P10, rx171_fail
+    goto alt175_end
+  alt175_3:
+.annotate 'line', 112
+  # rxanchor eos
+    ne rx171_pos, rx171_eos, rx171_fail
+  alt175_end:
+.annotate 'line', 108
+  # rx pass
+    rx171_cur."!cursor_pass"(rx171_pos, "eat_terminator")
+    rx171_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx171_pos)
+    .return (rx171_cur)
+  rx171_restart:
+.annotate 'line', 4
+    rx171_cur."!cursor_debug"("NEXT ", "eat_terminator")
+  rx171_fail:
+    (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
+    lt rx171_pos, -1, rx171_done
+    eq rx171_pos, -1, rx171_fail
+    jump $I10
+  rx171_done:
+    rx171_cur."!cursor_fail"()
+    rx171_cur."!cursor_debug"("FAIL  ", "eat_terminator")
+    .return (rx171_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__eat_terminator"  :subid("37_1279564397.22945") :method
 .annotate 'line', 4
-    $P164 = self."!PREFIX__!subrule"("ws", "")
-    $P165 = self."!PREFIX__!subrule"("ws", "")
-    new $P166, "ResizablePMCArray"
-    push $P166, $P164
-    push $P166, $P165
-    .return ($P166)
+    new $P173, "ResizablePMCArray"
+    push $P173, ""
+    push $P173, ""
+    push $P173, ""
+    push $P173, ";"
+    .return ($P173)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "xblock"  :subid("38_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .const 'Sub' $P182 = "35_1278500537.15927" 
-    capture_lex $P182
     .local string rx177_tgt
     .local int rx177_pos
     .local int rx177_off
     .local int rx177_eos
     .local int rx177_rep
     .local pmc rx177_cur
-    (rx177_cur, rx177_pos, rx177_tgt) = self."!cursor_start"()
-    rx177_cur."!cursor_debug"("START ", "statement")
-    rx177_cur."!cursor_caparray"("statement_mod_cond", "statement_mod_loop")
+    (rx177_cur, rx177_pos, rx177_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx177_cur
     .local pmc match
     .lex "$/", match
@@ -2233,40 +2659,21 @@
     sub rx177_off, rx177_pos, 1
     substr rx177_tgt, rx177_tgt, rx177_off
   rx177_start:
+    eq $I10, 1, rx177_restart
+    rx177_cur."!cursor_debug"("START ", "xblock")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan180_done
-    goto rxscan180_scan
-  rxscan180_loop:
+    ne $I10, -1, rxscan181_done
+    goto rxscan181_scan
+  rxscan181_loop:
     ($P10) = rx177_cur."from"()
     inc $P10
     set rx177_pos, $P10
-    ge rx177_pos, rx177_eos, rxscan180_done
-  rxscan180_scan:
-    set_addr $I10, rxscan180_loop
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
-  rxscan180_done:
-.annotate 'line', 96
-  # rx subrule "before" subtype=zerowidth negate=1
-    rx177_cur."!cursor_pos"(rx177_pos)
-    .const 'Sub' $P182 = "35_1278500537.15927" 
-    capture_lex $P182
-    $P10 = rx177_cur."before"($P182)
-    if $P10, rx177_fail
-  alt186_0:
-.annotate 'line', 97
-    set_addr $I10, alt186_1
+    ge rx177_pos, rx177_eos, rxscan181_done
+  rxscan181_scan:
+    set_addr $I10, rxscan181_loop
     rx177_cur."!mark_push"(0, rx177_pos, $I10)
-.annotate 'line', 98
-  # rx subrule "statement_control" subtype=capture negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."statement_control"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("statement_control")
-    rx177_pos = $P10."pos"()
-    goto alt186_end
-  alt186_1:
-.annotate 'line', 99
+  rxscan181_done:
+.annotate 'line', 116
   # rx subrule "EXPR" subtype=capture negate=
     rx177_cur."!cursor_pos"(rx177_pos)
     $P10 = rx177_cur."EXPR"()
@@ -2279,99 +2686,54 @@
     $P10 = rx177_cur."ws"()
     unless $P10, rx177_fail
     rx177_pos = $P10."pos"()
-.annotate 'line', 104
-  # rx rxquantr187 ** 0..1
-    set_addr $I191, rxquantr187_done
-    rx177_cur."!mark_push"(0, rx177_pos, $I191)
-  rxquantr187_loop:
-  alt188_0:
-.annotate 'line', 100
-    set_addr $I10, alt188_1
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
-.annotate 'line', 101
-  # rx subrule "MARKED" subtype=zerowidth negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."MARKED"("endstmt")
-    unless $P10, rx177_fail
-    goto alt188_end
-  alt188_1:
-    set_addr $I10, alt188_2
-    rx177_cur."!mark_push"(0, rx177_pos, $I10)
-.annotate 'line', 102
-  # rx subrule "statement_mod_cond" subtype=capture negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."statement_mod_cond"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("statement_mod_cond")
-    rx177_pos = $P10."pos"()
-  # rx rxquantr189 ** 0..1
-    set_addr $I190, rxquantr189_done
-    rx177_cur."!mark_push"(0, rx177_pos, $I190)
-  rxquantr189_loop:
-  # rx subrule "statement_mod_loop" subtype=capture negate=
-    rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."statement_mod_loop"()
-    unless $P10, rx177_fail
-    rx177_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("statement_mod_loop")
-    rx177_pos = $P10."pos"()
-    (rx177_rep) = rx177_cur."!mark_commit"($I190)
-  rxquantr189_done:
-    goto alt188_end
-  alt188_2:
-.annotate 'line', 103
-  # rx subrule "statement_mod_loop" subtype=capture negate=
+  # rx subrule "pblock" subtype=capture negate=
     rx177_cur."!cursor_pos"(rx177_pos)
-    $P10 = rx177_cur."statement_mod_loop"()
+    $P10 = rx177_cur."pblock"()
     unless $P10, rx177_fail
     rx177_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("statement_mod_loop")
+    $P10."!cursor_names"("pblock")
     rx177_pos = $P10."pos"()
-  alt188_end:
-.annotate 'line', 104
-    (rx177_rep) = rx177_cur."!mark_commit"($I191)
-  rxquantr187_done:
-  alt186_end:
-.annotate 'line', 95
+.annotate 'line', 115
   # rx pass
-    rx177_cur."!cursor_pass"(rx177_pos, "statement")
-    rx177_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx177_pos)
+    rx177_cur."!cursor_pass"(rx177_pos, "xblock")
+    rx177_cur."!cursor_debug"("PASS  ", "xblock", " at pos=", rx177_pos)
     .return (rx177_cur)
-  rx177_fail:
+  rx177_restart:
 .annotate 'line', 4
+    rx177_cur."!cursor_debug"("NEXT ", "xblock")
+  rx177_fail:
     (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
     lt rx177_pos, -1, rx177_done
     eq rx177_pos, -1, rx177_fail
     jump $I10
   rx177_done:
     rx177_cur."!cursor_fail"()
-    rx177_cur."!cursor_debug"("FAIL  ", "statement")
+    rx177_cur."!cursor_debug"("FAIL  ", "xblock")
     .return (rx177_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1278500537.15927") :method
+.sub "!PREFIX__xblock"  :subid("39_1279564397.22945") :method
 .annotate 'line', 4
-    new $P179, "ResizablePMCArray"
-    push $P179, ""
-    .return ($P179)
+    $P179 = self."!PREFIX__!subrule"("EXPR", "")
+    new $P180, "ResizablePMCArray"
+    push $P180, $P179
+    .return ($P180)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block181"  :anon :subid("35_1278500537.15927") :method :outer("33_1278500537.15927")
-.annotate 'line', 96
+.sub "pblock"  :subid("40_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
     .local string rx183_tgt
     .local int rx183_pos
     .local int rx183_off
     .local int rx183_eos
     .local int rx183_rep
     .local pmc rx183_cur
-    (rx183_cur, rx183_pos, rx183_tgt) = self."!cursor_start"()
-    rx183_cur."!cursor_debug"("START ", "")
+    (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx183_cur
     .local pmc match
     .lex "$/", match
@@ -2382,6057 +2744,6403 @@
     sub rx183_off, rx183_pos, 1
     substr rx183_tgt, rx183_tgt, rx183_off
   rx183_start:
+    eq $I10, 1, rx183_restart
+    rx183_cur."!cursor_debug"("START ", "pblock")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan184_done
-    goto rxscan184_scan
-  rxscan184_loop:
+    ne $I10, -1, rxscan188_done
+    goto rxscan188_scan
+  rxscan188_loop:
     ($P10) = rx183_cur."from"()
     inc $P10
     set rx183_pos, $P10
-    ge rx183_pos, rx183_eos, rxscan184_done
-  rxscan184_scan:
-    set_addr $I10, rxscan184_loop
+    ge rx183_pos, rx183_eos, rxscan188_done
+  rxscan188_scan:
+    set_addr $I10, rxscan188_loop
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
-  rxscan184_done:
-  alt185_0:
-    set_addr $I10, alt185_1
+  rxscan188_done:
+  alt189_0:
+.annotate 'line', 119
+    set_addr $I10, alt189_1
     rx183_cur."!mark_push"(0, rx183_pos, $I10)
-  # rx enumcharlist negate=0 
-    ge rx183_pos, rx183_eos, rx183_fail
-    sub $I10, rx183_pos, rx183_off
-    substr $S10, rx183_tgt, $I10, 1
-    index $I11, "])}", $S10
-    lt $I11, 0, rx183_fail
-    inc rx183_pos
-    goto alt185_end
-  alt185_1:
-  # rxanchor eos
-    ne rx183_pos, rx183_eos, rx183_fail
-  alt185_end:
-  # rx pass
-    rx183_cur."!cursor_pass"(rx183_pos, "")
-    rx183_cur."!cursor_debug"("PASS  ", "", " at pos=", rx183_pos)
-    .return (rx183_cur)
-  rx183_fail:
-    (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
-    lt rx183_pos, -1, rx183_done
-    eq rx183_pos, -1, rx183_fail
-    jump $I10
-  rx183_done:
-    rx183_cur."!cursor_fail"()
-    rx183_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx183_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx193_tgt
-    .local int rx193_pos
-    .local int rx193_off
-    .local int rx193_eos
-    .local int rx193_rep
-    .local pmc rx193_cur
-    (rx193_cur, rx193_pos, rx193_tgt) = self."!cursor_start"()
-    rx193_cur."!cursor_debug"("START ", "eat_terminator")
-    .lex unicode:"$\x{a2}", rx193_cur
-    .local pmc match
-    .lex "$/", match
-    length rx193_eos, rx193_tgt
-    gt rx193_pos, rx193_eos, rx193_done
-    set rx193_off, 0
-    lt rx193_pos, 2, rx193_start
-    sub rx193_off, rx193_pos, 1
-    substr rx193_tgt, rx193_tgt, rx193_off
-  rx193_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan196_done
-    goto rxscan196_scan
-  rxscan196_loop:
-    ($P10) = rx193_cur."from"()
-    inc $P10
-    set rx193_pos, $P10
-    ge rx193_pos, rx193_eos, rxscan196_done
-  rxscan196_scan:
-    set_addr $I10, rxscan196_loop
-    rx193_cur."!mark_push"(0, rx193_pos, $I10)
-  rxscan196_done:
-  alt197_0:
-.annotate 'line', 108
-    set_addr $I10, alt197_1
-    rx193_cur."!mark_push"(0, rx193_pos, $I10)
-.annotate 'line', 109
-  # rx literal  ";"
-    add $I11, rx193_pos, 1
-    gt $I11, rx193_eos, rx193_fail
-    sub $I11, rx193_pos, rx193_off
-    substr $S10, rx193_tgt, $I11, 1
-    ne $S10, ";", rx193_fail
-    add rx193_pos, 1
-    goto alt197_end
-  alt197_1:
-    set_addr $I10, alt197_2
-    rx193_cur."!mark_push"(0, rx193_pos, $I10)
-.annotate 'line', 110
-  # rx subrule "MARKED" subtype=zerowidth negate=
-    rx193_cur."!cursor_pos"(rx193_pos)
-    $P10 = rx193_cur."MARKED"("endstmt")
-    unless $P10, rx193_fail
-    goto alt197_end
-  alt197_2:
-    set_addr $I10, alt197_3
-    rx193_cur."!mark_push"(0, rx193_pos, $I10)
-.annotate 'line', 111
-  # rx subrule "terminator" subtype=zerowidth negate=
-    rx193_cur."!cursor_pos"(rx193_pos)
-    $P10 = rx193_cur."terminator"()
-    unless $P10, rx193_fail
-    goto alt197_end
-  alt197_3:
-.annotate 'line', 112
-  # rxanchor eos
-    ne rx193_pos, rx193_eos, rx193_fail
-  alt197_end:
-.annotate 'line', 108
-  # rx pass
-    rx193_cur."!cursor_pass"(rx193_pos, "eat_terminator")
-    rx193_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx193_pos)
-    .return (rx193_cur)
-  rx193_fail:
-.annotate 'line', 4
-    (rx193_rep, rx193_pos, $I10, $P10) = rx193_cur."!mark_fail"(0)
-    lt rx193_pos, -1, rx193_done
-    eq rx193_pos, -1, rx193_fail
-    jump $I10
-  rx193_done:
-    rx193_cur."!cursor_fail"()
-    rx193_cur."!cursor_debug"("FAIL  ", "eat_terminator")
-    .return (rx193_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1278500537.15927") :method
-.annotate 'line', 4
-    new $P195, "ResizablePMCArray"
-    push $P195, ""
-    push $P195, ""
-    push $P195, ""
-    push $P195, ";"
-    .return ($P195)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx199_tgt
-    .local int rx199_pos
-    .local int rx199_off
-    .local int rx199_eos
-    .local int rx199_rep
-    .local pmc rx199_cur
-    (rx199_cur, rx199_pos, rx199_tgt) = self."!cursor_start"()
-    rx199_cur."!cursor_debug"("START ", "xblock")
-    .lex unicode:"$\x{a2}", rx199_cur
-    .local pmc match
-    .lex "$/", match
-    length rx199_eos, rx199_tgt
-    gt rx199_pos, rx199_eos, rx199_done
-    set rx199_off, 0
-    lt rx199_pos, 2, rx199_start
-    sub rx199_off, rx199_pos, 1
-    substr rx199_tgt, rx199_tgt, rx199_off
-  rx199_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan203_done
-    goto rxscan203_scan
-  rxscan203_loop:
-    ($P10) = rx199_cur."from"()
-    inc $P10
-    set rx199_pos, $P10
-    ge rx199_pos, rx199_eos, rxscan203_done
-  rxscan203_scan:
-    set_addr $I10, rxscan203_loop
-    rx199_cur."!mark_push"(0, rx199_pos, $I10)
-  rxscan203_done:
-.annotate 'line', 116
-  # rx subrule "EXPR" subtype=capture negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."EXPR"()
-    unless $P10, rx199_fail
-    rx199_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx199_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."ws"()
-    unless $P10, rx199_fail
-    rx199_pos = $P10."pos"()
-  # rx subrule "pblock" subtype=capture negate=
-    rx199_cur."!cursor_pos"(rx199_pos)
-    $P10 = rx199_cur."pblock"()
-    unless $P10, rx199_fail
-    rx199_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("pblock")
-    rx199_pos = $P10."pos"()
-.annotate 'line', 115
-  # rx pass
-    rx199_cur."!cursor_pass"(rx199_pos, "xblock")
-    rx199_cur."!cursor_debug"("PASS  ", "xblock", " at pos=", rx199_pos)
-    .return (rx199_cur)
-  rx199_fail:
-.annotate 'line', 4
-    (rx199_rep, rx199_pos, $I10, $P10) = rx199_cur."!mark_fail"(0)
-    lt rx199_pos, -1, rx199_done
-    eq rx199_pos, -1, rx199_fail
-    jump $I10
-  rx199_done:
-    rx199_cur."!cursor_fail"()
-    rx199_cur."!cursor_debug"("FAIL  ", "xblock")
-    .return (rx199_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1278500537.15927") :method
-.annotate 'line', 4
-    $P201 = self."!PREFIX__!subrule"("EXPR", "")
-    new $P202, "ResizablePMCArray"
-    push $P202, $P201
-    .return ($P202)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx205_tgt
-    .local int rx205_pos
-    .local int rx205_off
-    .local int rx205_eos
-    .local int rx205_rep
-    .local pmc rx205_cur
-    (rx205_cur, rx205_pos, rx205_tgt) = self."!cursor_start"()
-    rx205_cur."!cursor_debug"("START ", "pblock")
-    .lex unicode:"$\x{a2}", rx205_cur
-    .local pmc match
-    .lex "$/", match
-    length rx205_eos, rx205_tgt
-    gt rx205_pos, rx205_eos, rx205_done
-    set rx205_off, 0
-    lt rx205_pos, 2, rx205_start
-    sub rx205_off, rx205_pos, 1
-    substr rx205_tgt, rx205_tgt, rx205_off
-  rx205_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan210_done
-    goto rxscan210_scan
-  rxscan210_loop:
-    ($P10) = rx205_cur."from"()
-    inc $P10
-    set rx205_pos, $P10
-    ge rx205_pos, rx205_eos, rxscan210_done
-  rxscan210_scan:
-    set_addr $I10, rxscan210_loop
-    rx205_cur."!mark_push"(0, rx205_pos, $I10)
-  rxscan210_done:
-  alt211_0:
-.annotate 'line', 119
-    set_addr $I10, alt211_1
-    rx205_cur."!mark_push"(0, rx205_pos, $I10)
 .annotate 'line', 120
   # rx subrule "lambda" subtype=method negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."lambda"()
-    unless $P10, rx205_fail
-    rx205_pos = $P10."pos"()
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."lambda"()
+    unless $P10, rx183_fail
+    rx183_pos = $P10."pos"()
 .annotate 'line', 121
   # rx subrule "newpad" subtype=method negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."newpad"()
-    unless $P10, rx205_fail
-    rx205_pos = $P10."pos"()
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."newpad"()
+    unless $P10, rx183_fail
+    rx183_pos = $P10."pos"()
 .annotate 'line', 122
   # rx subrule "signature" subtype=capture negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."signature"()
-    unless $P10, rx205_fail
-    rx205_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."signature"()
+    unless $P10, rx183_fail
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx205_pos = $P10."pos"()
+    rx183_pos = $P10."pos"()
 .annotate 'line', 123
   # rx subrule "blockoid" subtype=capture negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."blockoid"()
-    unless $P10, rx205_fail
-    rx205_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."blockoid"()
+    unless $P10, rx183_fail
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx205_pos = $P10."pos"()
+    rx183_pos = $P10."pos"()
 .annotate 'line', 120
-    goto alt211_end
-  alt211_1:
-    set_addr $I10, alt211_2
-    rx205_cur."!mark_push"(0, rx205_pos, $I10)
+    goto alt189_end
+  alt189_1:
+    set_addr $I10, alt189_2
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
 .annotate 'line', 124
   # rx enumcharlist negate=0 zerowidth
-    ge rx205_pos, rx205_eos, rx205_fail
-    sub $I10, rx205_pos, rx205_off
-    substr $S10, rx205_tgt, $I10, 1
+    ge rx183_pos, rx183_eos, rx183_fail
+    sub $I10, rx183_pos, rx183_off
+    substr $S10, rx183_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx205_fail
+    lt $I11, 0, rx183_fail
 .annotate 'line', 125
   # rx subrule "newpad" subtype=method negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."newpad"()
-    unless $P10, rx205_fail
-    rx205_pos = $P10."pos"()
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."newpad"()
+    unless $P10, rx183_fail
+    rx183_pos = $P10."pos"()
 .annotate 'line', 126
   # rx subrule "blockoid" subtype=capture negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."blockoid"()
-    unless $P10, rx205_fail
-    rx205_cur."!mark_push"(0, -1, 0, $P10)
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."blockoid"()
+    unless $P10, rx183_fail
+    rx183_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx205_pos = $P10."pos"()
+    rx183_pos = $P10."pos"()
 .annotate 'line', 124
-    goto alt211_end
-  alt211_2:
+    goto alt189_end
+  alt189_2:
 .annotate 'line', 127
   # rx subrule "panic" subtype=method negate=
-    rx205_cur."!cursor_pos"(rx205_pos)
-    $P10 = rx205_cur."panic"("Missing block")
-    unless $P10, rx205_fail
-    rx205_pos = $P10."pos"()
-  alt211_end:
+    rx183_cur."!cursor_pos"(rx183_pos)
+    $P10 = rx183_cur."panic"("Missing block")
+    unless $P10, rx183_fail
+    rx183_pos = $P10."pos"()
+  alt189_end:
 .annotate 'line', 119
   # rx pass
-    rx205_cur."!cursor_pass"(rx205_pos, "pblock")
-    rx205_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx205_pos)
-    .return (rx205_cur)
-  rx205_fail:
+    rx183_cur."!cursor_pass"(rx183_pos, "pblock")
+    rx183_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx183_pos)
+    .return (rx183_cur)
+  rx183_restart:
 .annotate 'line', 4
-    (rx205_rep, rx205_pos, $I10, $P10) = rx205_cur."!mark_fail"(0)
-    lt rx205_pos, -1, rx205_done
-    eq rx205_pos, -1, rx205_fail
+    rx183_cur."!cursor_debug"("NEXT ", "pblock")
+  rx183_fail:
+    (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
+    lt rx183_pos, -1, rx183_done
+    eq rx183_pos, -1, rx183_fail
     jump $I10
-  rx205_done:
-    rx205_cur."!cursor_fail"()
-    rx205_cur."!cursor_debug"("FAIL  ", "pblock")
-    .return (rx205_cur)
+  rx183_done:
+    rx183_cur."!cursor_fail"()
+    rx183_cur."!cursor_debug"("FAIL  ", "pblock")
+    .return (rx183_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1278500537.15927") :method
+.sub "!PREFIX__pblock"  :subid("41_1279564397.22945") :method
 .annotate 'line', 4
-    $P207 = self."!PREFIX__!subrule"("panic", "")
-    $P208 = self."!PREFIX__!subrule"("lambda", "")
-    new $P209, "ResizablePMCArray"
-    push $P209, $P207
-    push $P209, "{"
-    push $P209, $P208
-    .return ($P209)
+    $P185 = self."!PREFIX__!subrule"("panic", "")
+    $P186 = self."!PREFIX__!subrule"("lambda", "")
+    new $P187, "ResizablePMCArray"
+    push $P187, $P185
+    push $P187, "{"
+    push $P187, $P186
+    .return ($P187)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx213_tgt
-    .local int rx213_pos
-    .local int rx213_off
-    .local int rx213_eos
-    .local int rx213_rep
-    .local pmc rx213_cur
-    (rx213_cur, rx213_pos, rx213_tgt) = self."!cursor_start"()
-    rx213_cur."!cursor_debug"("START ", "lambda")
-    .lex unicode:"$\x{a2}", rx213_cur
-    .local pmc match
-    .lex "$/", match
-    length rx213_eos, rx213_tgt
-    gt rx213_pos, rx213_eos, rx213_done
-    set rx213_off, 0
-    lt rx213_pos, 2, rx213_start
-    sub rx213_off, rx213_pos, 1
-    substr rx213_tgt, rx213_tgt, rx213_off
-  rx213_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan216_done
-    goto rxscan216_scan
-  rxscan216_loop:
-    ($P10) = rx213_cur."from"()
-    inc $P10
-    set rx213_pos, $P10
-    ge rx213_pos, rx213_eos, rxscan216_done
-  rxscan216_scan:
-    set_addr $I10, rxscan216_loop
-    rx213_cur."!mark_push"(0, rx213_pos, $I10)
-  rxscan216_done:
-  alt217_0:
+.sub "lambda"  :subid("42_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx191_tgt
+    .local int rx191_pos
+    .local int rx191_off
+    .local int rx191_eos
+    .local int rx191_rep
+    .local pmc rx191_cur
+    (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx191_cur
+    .local pmc match
+    .lex "$/", match
+    length rx191_eos, rx191_tgt
+    gt rx191_pos, rx191_eos, rx191_done
+    set rx191_off, 0
+    lt rx191_pos, 2, rx191_start
+    sub rx191_off, rx191_pos, 1
+    substr rx191_tgt, rx191_tgt, rx191_off
+  rx191_start:
+    eq $I10, 1, rx191_restart
+    rx191_cur."!cursor_debug"("START ", "lambda")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan194_done
+    goto rxscan194_scan
+  rxscan194_loop:
+    ($P10) = rx191_cur."from"()
+    inc $P10
+    set rx191_pos, $P10
+    ge rx191_pos, rx191_eos, rxscan194_done
+  rxscan194_scan:
+    set_addr $I10, rxscan194_loop
+    rx191_cur."!mark_push"(0, rx191_pos, $I10)
+  rxscan194_done:
+  alt195_0:
 .annotate 'line', 130
-    set_addr $I10, alt217_1
-    rx213_cur."!mark_push"(0, rx213_pos, $I10)
+    set_addr $I10, alt195_1
+    rx191_cur."!mark_push"(0, rx191_pos, $I10)
   # rx literal  "->"
-    add $I11, rx213_pos, 2
-    gt $I11, rx213_eos, rx213_fail
-    sub $I11, rx213_pos, rx213_off
-    substr $S10, rx213_tgt, $I11, 2
-    ne $S10, "->", rx213_fail
-    add rx213_pos, 2
-    goto alt217_end
-  alt217_1:
+    add $I11, rx191_pos, 2
+    gt $I11, rx191_eos, rx191_fail
+    sub $I11, rx191_pos, rx191_off
+    substr $S10, rx191_tgt, $I11, 2
+    ne $S10, "->", rx191_fail
+    add rx191_pos, 2
+    goto alt195_end
+  alt195_1:
   # rx literal  "<->"
-    add $I11, rx213_pos, 3
-    gt $I11, rx213_eos, rx213_fail
-    sub $I11, rx213_pos, rx213_off
-    substr $S10, rx213_tgt, $I11, 3
-    ne $S10, "<->", rx213_fail
-    add rx213_pos, 3
-  alt217_end:
-  # rx pass
-    rx213_cur."!cursor_pass"(rx213_pos, "lambda")
-    rx213_cur."!cursor_debug"("PASS  ", "lambda", " at pos=", rx213_pos)
-    .return (rx213_cur)
-  rx213_fail:
-.annotate 'line', 4
-    (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
-    lt rx213_pos, -1, rx213_done
-    eq rx213_pos, -1, rx213_fail
-    jump $I10
-  rx213_done:
-    rx213_cur."!cursor_fail"()
-    rx213_cur."!cursor_debug"("FAIL  ", "lambda")
-    .return (rx213_cur)
+    add $I11, rx191_pos, 3
+    gt $I11, rx191_eos, rx191_fail
+    sub $I11, rx191_pos, rx191_off
+    substr $S10, rx191_tgt, $I11, 3
+    ne $S10, "<->", rx191_fail
+    add rx191_pos, 3
+  alt195_end:
+  # rx pass
+    rx191_cur."!cursor_pass"(rx191_pos, "lambda")
+    rx191_cur."!cursor_debug"("PASS  ", "lambda", " at pos=", rx191_pos)
+    .return (rx191_cur)
+  rx191_restart:
+.annotate 'line', 4
+    rx191_cur."!cursor_debug"("NEXT ", "lambda")
+  rx191_fail:
+    (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
+    lt rx191_pos, -1, rx191_done
+    eq rx191_pos, -1, rx191_fail
+    jump $I10
+  rx191_done:
+    rx191_cur."!cursor_fail"()
+    rx191_cur."!cursor_debug"("FAIL  ", "lambda")
+    .return (rx191_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1278500537.15927") :method
-.annotate 'line', 4
-    new $P215, "ResizablePMCArray"
-    push $P215, "<->"
-    push $P215, "->"
-    .return ($P215)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx219_tgt
-    .local int rx219_pos
-    .local int rx219_off
-    .local int rx219_eos
-    .local int rx219_rep
-    .local pmc rx219_cur
-    (rx219_cur, rx219_pos, rx219_tgt) = self."!cursor_start"()
-    rx219_cur."!cursor_debug"("START ", "block")
-    .lex unicode:"$\x{a2}", rx219_cur
-    .local pmc match
-    .lex "$/", match
-    length rx219_eos, rx219_tgt
-    gt rx219_pos, rx219_eos, rx219_done
-    set rx219_off, 0
-    lt rx219_pos, 2, rx219_start
-    sub rx219_off, rx219_pos, 1
-    substr rx219_tgt, rx219_tgt, rx219_off
-  rx219_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan223_done
-    goto rxscan223_scan
-  rxscan223_loop:
-    ($P10) = rx219_cur."from"()
-    inc $P10
-    set rx219_pos, $P10
-    ge rx219_pos, rx219_eos, rxscan223_done
-  rxscan223_scan:
-    set_addr $I10, rxscan223_loop
-    rx219_cur."!mark_push"(0, rx219_pos, $I10)
-  rxscan223_done:
-  alt224_0:
+.sub "!PREFIX__lambda"  :subid("43_1279564397.22945") :method
+.annotate 'line', 4
+    new $P193, "ResizablePMCArray"
+    push $P193, "<->"
+    push $P193, "->"
+    .return ($P193)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "block"  :subid("44_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx197_tgt
+    .local int rx197_pos
+    .local int rx197_off
+    .local int rx197_eos
+    .local int rx197_rep
+    .local pmc rx197_cur
+    (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx197_cur
+    .local pmc match
+    .lex "$/", match
+    length rx197_eos, rx197_tgt
+    gt rx197_pos, rx197_eos, rx197_done
+    set rx197_off, 0
+    lt rx197_pos, 2, rx197_start
+    sub rx197_off, rx197_pos, 1
+    substr rx197_tgt, rx197_tgt, rx197_off
+  rx197_start:
+    eq $I10, 1, rx197_restart
+    rx197_cur."!cursor_debug"("START ", "block")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan201_done
+    goto rxscan201_scan
+  rxscan201_loop:
+    ($P10) = rx197_cur."from"()
+    inc $P10
+    set rx197_pos, $P10
+    ge rx197_pos, rx197_eos, rxscan201_done
+  rxscan201_scan:
+    set_addr $I10, rxscan201_loop
+    rx197_cur."!mark_push"(0, rx197_pos, $I10)
+  rxscan201_done:
+  alt202_0:
 .annotate 'line', 133
-    set_addr $I10, alt224_1
-    rx219_cur."!mark_push"(0, rx219_pos, $I10)
+    set_addr $I10, alt202_1
+    rx197_cur."!mark_push"(0, rx197_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx219_pos, rx219_eos, rx219_fail
-    sub $I10, rx219_pos, rx219_off
-    substr $S10, rx219_tgt, $I10, 1
+    ge rx197_pos, rx197_eos, rx197_fail
+    sub $I10, rx197_pos, rx197_off
+    substr $S10, rx197_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx219_fail
-    goto alt224_end
-  alt224_1:
+    lt $I11, 0, rx197_fail
+    goto alt202_end
+  alt202_1:
   # rx subrule "panic" subtype=method negate=
-    rx219_cur."!cursor_pos"(rx219_pos)
-    $P10 = rx219_cur."panic"("Missing block")
-    unless $P10, rx219_fail
-    rx219_pos = $P10."pos"()
-  alt224_end:
+    rx197_cur."!cursor_pos"(rx197_pos)
+    $P10 = rx197_cur."panic"("Missing block")
+    unless $P10, rx197_fail
+    rx197_pos = $P10."pos"()
+  alt202_end:
 .annotate 'line', 134
   # rx subrule "newpad" subtype=method negate=
-    rx219_cur."!cursor_pos"(rx219_pos)
-    $P10 = rx219_cur."newpad"()
-    unless $P10, rx219_fail
-    rx219_pos = $P10."pos"()
+    rx197_cur."!cursor_pos"(rx197_pos)
+    $P10 = rx197_cur."newpad"()
+    unless $P10, rx197_fail
+    rx197_pos = $P10."pos"()
 .annotate 'line', 135
   # rx subrule "blockoid" subtype=capture negate=
-    rx219_cur."!cursor_pos"(rx219_pos)
-    $P10 = rx219_cur."blockoid"()
-    unless $P10, rx219_fail
-    rx219_cur."!mark_push"(0, -1, 0, $P10)
+    rx197_cur."!cursor_pos"(rx197_pos)
+    $P10 = rx197_cur."blockoid"()
+    unless $P10, rx197_fail
+    rx197_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx219_pos = $P10."pos"()
+    rx197_pos = $P10."pos"()
 .annotate 'line', 132
   # rx pass
-    rx219_cur."!cursor_pass"(rx219_pos, "block")
-    rx219_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx219_pos)
-    .return (rx219_cur)
-  rx219_fail:
+    rx197_cur."!cursor_pass"(rx197_pos, "block")
+    rx197_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx197_pos)
+    .return (rx197_cur)
+  rx197_restart:
 .annotate 'line', 4
-    (rx219_rep, rx219_pos, $I10, $P10) = rx219_cur."!mark_fail"(0)
-    lt rx219_pos, -1, rx219_done
-    eq rx219_pos, -1, rx219_fail
+    rx197_cur."!cursor_debug"("NEXT ", "block")
+  rx197_fail:
+    (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
+    lt rx197_pos, -1, rx197_done
+    eq rx197_pos, -1, rx197_fail
     jump $I10
-  rx219_done:
-    rx219_cur."!cursor_fail"()
-    rx219_cur."!cursor_debug"("FAIL  ", "block")
-    .return (rx219_cur)
+  rx197_done:
+    rx197_cur."!cursor_fail"()
+    rx197_cur."!cursor_debug"("FAIL  ", "block")
+    .return (rx197_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1278500537.15927") :method
+.sub "!PREFIX__block"  :subid("45_1279564397.22945") :method
 .annotate 'line', 4
-    $P221 = self."!PREFIX__!subrule"("panic", "")
-    new $P222, "ResizablePMCArray"
-    push $P222, $P221
-    push $P222, "{"
-    .return ($P222)
+    $P199 = self."!PREFIX__!subrule"("panic", "")
+    new $P200, "ResizablePMCArray"
+    push $P200, $P199
+    push $P200, "{"
+    .return ($P200)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "blockoid"  :subid("46_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx226_tgt
-    .local int rx226_pos
-    .local int rx226_off
-    .local int rx226_eos
-    .local int rx226_rep
-    .local pmc rx226_cur
-    (rx226_cur, rx226_pos, rx226_tgt) = self."!cursor_start"()
-    rx226_cur."!cursor_debug"("START ", "blockoid")
-    .lex unicode:"$\x{a2}", rx226_cur
+    .local string rx204_tgt
+    .local int rx204_pos
+    .local int rx204_off
+    .local int rx204_eos
+    .local int rx204_rep
+    .local pmc rx204_cur
+    (rx204_cur, rx204_pos, rx204_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx204_cur
     .local pmc match
     .lex "$/", match
-    length rx226_eos, rx226_tgt
-    gt rx226_pos, rx226_eos, rx226_done
-    set rx226_off, 0
-    lt rx226_pos, 2, rx226_start
-    sub rx226_off, rx226_pos, 1
-    substr rx226_tgt, rx226_tgt, rx226_off
-  rx226_start:
+    length rx204_eos, rx204_tgt
+    gt rx204_pos, rx204_eos, rx204_done
+    set rx204_off, 0
+    lt rx204_pos, 2, rx204_start
+    sub rx204_off, rx204_pos, 1
+    substr rx204_tgt, rx204_tgt, rx204_off
+  rx204_start:
+    eq $I10, 1, rx204_restart
+    rx204_cur."!cursor_debug"("START ", "blockoid")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan230_done
-    goto rxscan230_scan
-  rxscan230_loop:
-    ($P10) = rx226_cur."from"()
+    ne $I10, -1, rxscan208_done
+    goto rxscan208_scan
+  rxscan208_loop:
+    ($P10) = rx204_cur."from"()
     inc $P10
-    set rx226_pos, $P10
-    ge rx226_pos, rx226_eos, rxscan230_done
-  rxscan230_scan:
-    set_addr $I10, rxscan230_loop
-    rx226_cur."!mark_push"(0, rx226_pos, $I10)
-  rxscan230_done:
+    set rx204_pos, $P10
+    ge rx204_pos, rx204_eos, rxscan208_done
+  rxscan208_scan:
+    set_addr $I10, rxscan208_loop
+    rx204_cur."!mark_push"(0, rx204_pos, $I10)
+  rxscan208_done:
 .annotate 'line', 139
   # rx subrule "finishpad" subtype=method negate=
-    rx226_cur."!cursor_pos"(rx226_pos)
-    $P10 = rx226_cur."finishpad"()
-    unless $P10, rx226_fail
-    rx226_pos = $P10."pos"()
+    rx204_cur."!cursor_pos"(rx204_pos)
+    $P10 = rx204_cur."finishpad"()
+    unless $P10, rx204_fail
+    rx204_pos = $P10."pos"()
 .annotate 'line', 140
   # rx literal  "{"
-    add $I11, rx226_pos, 1
-    gt $I11, rx226_eos, rx226_fail
-    sub $I11, rx226_pos, rx226_off
-    substr $S10, rx226_tgt, $I11, 1
-    ne $S10, "{", rx226_fail
-    add rx226_pos, 1
+    add $I11, rx204_pos, 1
+    gt $I11, rx204_eos, rx204_fail
+    sub $I11, rx204_pos, rx204_off
+    substr $S10, rx204_tgt, $I11, 1
+    ne $S10, "{", rx204_fail
+    add rx204_pos, 1
   # rx subrule "statementlist" subtype=capture negate=
-    rx226_cur."!cursor_pos"(rx226_pos)
-    $P10 = rx226_cur."statementlist"()
-    unless $P10, rx226_fail
-    rx226_cur."!mark_push"(0, -1, 0, $P10)
+    rx204_cur."!cursor_pos"(rx204_pos)
+    $P10 = rx204_cur."statementlist"()
+    unless $P10, rx204_fail
+    rx204_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statementlist")
-    rx226_pos = $P10."pos"()
-  alt231_0:
-    set_addr $I10, alt231_1
-    rx226_cur."!mark_push"(0, rx226_pos, $I10)
+    rx204_pos = $P10."pos"()
+  alt209_0:
+    set_addr $I10, alt209_1
+    rx204_cur."!mark_push"(0, rx204_pos, $I10)
   # rx literal  "}"
-    add $I11, rx226_pos, 1
-    gt $I11, rx226_eos, rx226_fail
-    sub $I11, rx226_pos, rx226_off
-    substr $S10, rx226_tgt, $I11, 1
-    ne $S10, "}", rx226_fail
-    add rx226_pos, 1
-    goto alt231_end
-  alt231_1:
+    add $I11, rx204_pos, 1
+    gt $I11, rx204_eos, rx204_fail
+    sub $I11, rx204_pos, rx204_off
+    substr $S10, rx204_tgt, $I11, 1
+    ne $S10, "}", rx204_fail
+    add rx204_pos, 1
+    goto alt209_end
+  alt209_1:
   # rx subrule "FAILGOAL" subtype=method negate=
-    rx226_cur."!cursor_pos"(rx226_pos)
-    $P10 = rx226_cur."FAILGOAL"("'}'")
-    unless $P10, rx226_fail
-    rx226_pos = $P10."pos"()
-  alt231_end:
+    rx204_cur."!cursor_pos"(rx204_pos)
+    $P10 = rx204_cur."FAILGOAL"("'}'")
+    unless $P10, rx204_fail
+    goto rxsubrule211_pass
+  rxsubrule211_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx204_fail
+  rxsubrule211_pass:
+    set_addr $I10, rxsubrule211_back
+    rx204_cur."!mark_push"(0, rx204_pos, $I10, $P10)
+    rx204_pos = $P10."pos"()
+  alt209_end:
 .annotate 'line', 141
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx226_cur."!cursor_pos"(rx226_pos)
-    $P10 = rx226_cur."ENDSTMT"()
-    unless $P10, rx226_fail
+    rx204_cur."!cursor_pos"(rx204_pos)
+    $P10 = rx204_cur."ENDSTMT"()
+    unless $P10, rx204_fail
 .annotate 'line', 138
   # rx pass
-    rx226_cur."!cursor_pass"(rx226_pos, "blockoid")
-    rx226_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx226_pos)
-    .return (rx226_cur)
-  rx226_fail:
+    rx204_cur."!cursor_pass"(rx204_pos, "blockoid")
+    rx204_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx204_pos)
+    .return (rx204_cur)
+  rx204_restart:
 .annotate 'line', 4
-    (rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0)
-    lt rx226_pos, -1, rx226_done
-    eq rx226_pos, -1, rx226_fail
+    rx204_cur."!cursor_debug"("NEXT ", "blockoid")
+  rx204_fail:
+    (rx204_rep, rx204_pos, $I10, $P10) = rx204_cur."!mark_fail"(0)
+    lt rx204_pos, -1, rx204_done
+    eq rx204_pos, -1, rx204_fail
     jump $I10
-  rx226_done:
-    rx226_cur."!cursor_fail"()
-    rx226_cur."!cursor_debug"("FAIL  ", "blockoid")
-    .return (rx226_cur)
+  rx204_done:
+    rx204_cur."!cursor_fail"()
+    rx204_cur."!cursor_debug"("FAIL  ", "blockoid")
+    .return (rx204_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1278500537.15927") :method
+.sub "!PREFIX__blockoid"  :subid("47_1279564397.22945") :method
 .annotate 'line', 4
-    $P228 = self."!PREFIX__!subrule"("finishpad", "")
-    new $P229, "ResizablePMCArray"
-    push $P229, $P228
-    .return ($P229)
+    $P206 = self."!PREFIX__!subrule"("finishpad", "")
+    new $P207, "ResizablePMCArray"
+    push $P207, $P206
+    .return ($P207)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "newpad"  :subid("48_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx234_tgt
-    .local int rx234_pos
-    .local int rx234_off
-    .local int rx234_eos
-    .local int rx234_rep
-    .local pmc rx234_cur
-    (rx234_cur, rx234_pos, rx234_tgt) = self."!cursor_start"()
-    rx234_cur."!cursor_debug"("START ", "newpad")
-    .lex unicode:"$\x{a2}", rx234_cur
+    .local string rx213_tgt
+    .local int rx213_pos
+    .local int rx213_off
+    .local int rx213_eos
+    .local int rx213_rep
+    .local pmc rx213_cur
+    (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx213_cur
     .local pmc match
     .lex "$/", match
-    length rx234_eos, rx234_tgt
-    gt rx234_pos, rx234_eos, rx234_done
-    set rx234_off, 0
-    lt rx234_pos, 2, rx234_start
-    sub rx234_off, rx234_pos, 1
-    substr rx234_tgt, rx234_tgt, rx234_off
-  rx234_start:
+    length rx213_eos, rx213_tgt
+    gt rx213_pos, rx213_eos, rx213_done
+    set rx213_off, 0
+    lt rx213_pos, 2, rx213_start
+    sub rx213_off, rx213_pos, 1
+    substr rx213_tgt, rx213_tgt, rx213_off
+  rx213_start:
+    eq $I10, 1, rx213_restart
+    rx213_cur."!cursor_debug"("START ", "newpad")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan237_done
-    goto rxscan237_scan
-  rxscan237_loop:
-    ($P10) = rx234_cur."from"()
+    ne $I10, -1, rxscan216_done
+    goto rxscan216_scan
+  rxscan216_loop:
+    ($P10) = rx213_cur."from"()
     inc $P10
-    set rx234_pos, $P10
-    ge rx234_pos, rx234_eos, rxscan237_done
-  rxscan237_scan:
-    set_addr $I10, rxscan237_loop
-    rx234_cur."!mark_push"(0, rx234_pos, $I10)
-  rxscan237_done:
+    set rx213_pos, $P10
+    ge rx213_pos, rx213_eos, rxscan216_done
+  rxscan216_scan:
+    set_addr $I10, rxscan216_loop
+    rx213_cur."!mark_push"(0, rx213_pos, $I10)
+  rxscan216_done:
 .annotate 'line', 144
   # rx pass
-    rx234_cur."!cursor_pass"(rx234_pos, "newpad")
-    rx234_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx234_pos)
-    .return (rx234_cur)
-  rx234_fail:
+    rx213_cur."!cursor_pass"(rx213_pos, "newpad")
+    rx213_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx213_pos)
+    .return (rx213_cur)
+  rx213_restart:
 .annotate 'line', 4
-    (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0)
-    lt rx234_pos, -1, rx234_done
-    eq rx234_pos, -1, rx234_fail
+    rx213_cur."!cursor_debug"("NEXT ", "newpad")
+  rx213_fail:
+    (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
+    lt rx213_pos, -1, rx213_done
+    eq rx213_pos, -1, rx213_fail
     jump $I10
-  rx234_done:
-    rx234_cur."!cursor_fail"()
-    rx234_cur."!cursor_debug"("FAIL  ", "newpad")
-    .return (rx234_cur)
+  rx213_done:
+    rx213_cur."!cursor_fail"()
+    rx213_cur."!cursor_debug"("FAIL  ", "newpad")
+    .return (rx213_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1278500537.15927") :method
+.sub "!PREFIX__newpad"  :subid("49_1279564397.22945") :method
 .annotate 'line', 4
-    new $P236, "ResizablePMCArray"
-    push $P236, ""
-    .return ($P236)
+    new $P215, "ResizablePMCArray"
+    push $P215, ""
+    .return ($P215)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "outerctx"  :subid("50_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "outerctx"  :subid("50_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx239_tgt
-    .local int rx239_pos
-    .local int rx239_off
-    .local int rx239_eos
-    .local int rx239_rep
-    .local pmc rx239_cur
-    (rx239_cur, rx239_pos, rx239_tgt) = self."!cursor_start"()
-    rx239_cur."!cursor_debug"("START ", "outerctx")
-    .lex unicode:"$\x{a2}", rx239_cur
-    .local pmc match
-    .lex "$/", match
-    length rx239_eos, rx239_tgt
-    gt rx239_pos, rx239_eos, rx239_done
-    set rx239_off, 0
-    lt rx239_pos, 2, rx239_start
-    sub rx239_off, rx239_pos, 1
-    substr rx239_tgt, rx239_tgt, rx239_off
-  rx239_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan242_done
-    goto rxscan242_scan
-  rxscan242_loop:
-    ($P10) = rx239_cur."from"()
-    inc $P10
-    set rx239_pos, $P10
-    ge rx239_pos, rx239_eos, rxscan242_done
-  rxscan242_scan:
-    set_addr $I10, rxscan242_loop
-    rx239_cur."!mark_push"(0, rx239_pos, $I10)
-  rxscan242_done:
+    .local string rx218_tgt
+    .local int rx218_pos
+    .local int rx218_off
+    .local int rx218_eos
+    .local int rx218_rep
+    .local pmc rx218_cur
+    (rx218_cur, rx218_pos, rx218_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx218_cur
+    .local pmc match
+    .lex "$/", match
+    length rx218_eos, rx218_tgt
+    gt rx218_pos, rx218_eos, rx218_done
+    set rx218_off, 0
+    lt rx218_pos, 2, rx218_start
+    sub rx218_off, rx218_pos, 1
+    substr rx218_tgt, rx218_tgt, rx218_off
+  rx218_start:
+    eq $I10, 1, rx218_restart
+    rx218_cur."!cursor_debug"("START ", "outerctx")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan221_done
+    goto rxscan221_scan
+  rxscan221_loop:
+    ($P10) = rx218_cur."from"()
+    inc $P10
+    set rx218_pos, $P10
+    ge rx218_pos, rx218_eos, rxscan221_done
+  rxscan221_scan:
+    set_addr $I10, rxscan221_loop
+    rx218_cur."!mark_push"(0, rx218_pos, $I10)
+  rxscan221_done:
 .annotate 'line', 145
   # rx pass
-    rx239_cur."!cursor_pass"(rx239_pos, "outerctx")
-    rx239_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx239_pos)
-    .return (rx239_cur)
-  rx239_fail:
+    rx218_cur."!cursor_pass"(rx218_pos, "outerctx")
+    rx218_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx218_pos)
+    .return (rx218_cur)
+  rx218_restart:
 .annotate 'line', 4
-    (rx239_rep, rx239_pos, $I10, $P10) = rx239_cur."!mark_fail"(0)
-    lt rx239_pos, -1, rx239_done
-    eq rx239_pos, -1, rx239_fail
+    rx218_cur."!cursor_debug"("NEXT ", "outerctx")
+  rx218_fail:
+    (rx218_rep, rx218_pos, $I10, $P10) = rx218_cur."!mark_fail"(0)
+    lt rx218_pos, -1, rx218_done
+    eq rx218_pos, -1, rx218_fail
     jump $I10
-  rx239_done:
-    rx239_cur."!cursor_fail"()
-    rx239_cur."!cursor_debug"("FAIL  ", "outerctx")
-    .return (rx239_cur)
+  rx218_done:
+    rx218_cur."!cursor_fail"()
+    rx218_cur."!cursor_debug"("FAIL  ", "outerctx")
+    .return (rx218_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx"  :subid("51_1278500537.15927") :method
+.sub "!PREFIX__outerctx"  :subid("51_1279564397.22945") :method
 .annotate 'line', 4
-    new $P241, "ResizablePMCArray"
-    push $P241, ""
-    .return ($P241)
+    new $P220, "ResizablePMCArray"
+    push $P220, ""
+    .return ($P220)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("52_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "finishpad"  :subid("52_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx244_tgt
-    .local int rx244_pos
-    .local int rx244_off
-    .local int rx244_eos
-    .local int rx244_rep
-    .local pmc rx244_cur
-    (rx244_cur, rx244_pos, rx244_tgt) = self."!cursor_start"()
-    rx244_cur."!cursor_debug"("START ", "finishpad")
-    .lex unicode:"$\x{a2}", rx244_cur
+    .local string rx223_tgt
+    .local int rx223_pos
+    .local int rx223_off
+    .local int rx223_eos
+    .local int rx223_rep
+    .local pmc rx223_cur
+    (rx223_cur, rx223_pos, rx223_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx223_cur
     .local pmc match
     .lex "$/", match
-    length rx244_eos, rx244_tgt
-    gt rx244_pos, rx244_eos, rx244_done
-    set rx244_off, 0
-    lt rx244_pos, 2, rx244_start
-    sub rx244_off, rx244_pos, 1
-    substr rx244_tgt, rx244_tgt, rx244_off
-  rx244_start:
+    length rx223_eos, rx223_tgt
+    gt rx223_pos, rx223_eos, rx223_done
+    set rx223_off, 0
+    lt rx223_pos, 2, rx223_start
+    sub rx223_off, rx223_pos, 1
+    substr rx223_tgt, rx223_tgt, rx223_off
+  rx223_start:
+    eq $I10, 1, rx223_restart
+    rx223_cur."!cursor_debug"("START ", "finishpad")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan247_done
-    goto rxscan247_scan
-  rxscan247_loop:
-    ($P10) = rx244_cur."from"()
+    ne $I10, -1, rxscan226_done
+    goto rxscan226_scan
+  rxscan226_loop:
+    ($P10) = rx223_cur."from"()
     inc $P10
-    set rx244_pos, $P10
-    ge rx244_pos, rx244_eos, rxscan247_done
-  rxscan247_scan:
-    set_addr $I10, rxscan247_loop
-    rx244_cur."!mark_push"(0, rx244_pos, $I10)
-  rxscan247_done:
+    set rx223_pos, $P10
+    ge rx223_pos, rx223_eos, rxscan226_done
+  rxscan226_scan:
+    set_addr $I10, rxscan226_loop
+    rx223_cur."!mark_push"(0, rx223_pos, $I10)
+  rxscan226_done:
 .annotate 'line', 146
   # rx pass
-    rx244_cur."!cursor_pass"(rx244_pos, "finishpad")
-    rx244_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx244_pos)
-    .return (rx244_cur)
-  rx244_fail:
+    rx223_cur."!cursor_pass"(rx223_pos, "finishpad")
+    rx223_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx223_pos)
+    .return (rx223_cur)
+  rx223_restart:
 .annotate 'line', 4
-    (rx244_rep, rx244_pos, $I10, $P10) = rx244_cur."!mark_fail"(0)
-    lt rx244_pos, -1, rx244_done
-    eq rx244_pos, -1, rx244_fail
+    rx223_cur."!cursor_debug"("NEXT ", "finishpad")
+  rx223_fail:
+    (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0)
+    lt rx223_pos, -1, rx223_done
+    eq rx223_pos, -1, rx223_fail
     jump $I10
-  rx244_done:
-    rx244_cur."!cursor_fail"()
-    rx244_cur."!cursor_debug"("FAIL  ", "finishpad")
-    .return (rx244_cur)
+  rx223_done:
+    rx223_cur."!cursor_fail"()
+    rx223_cur."!cursor_debug"("FAIL  ", "finishpad")
+    .return (rx223_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("53_1278500537.15927") :method
+.sub "!PREFIX__finishpad"  :subid("53_1279564397.22945") :method
 .annotate 'line', 4
-    new $P246, "ResizablePMCArray"
-    push $P246, ""
-    .return ($P246)
+    new $P225, "ResizablePMCArray"
+    push $P225, ""
+    .return ($P225)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("54_1278500537.15927") :method
+.sub "terminator"  :subid("54_1279564397.22945") :method
 .annotate 'line', 148
-    $P249 = self."!protoregex"("terminator")
-    .return ($P249)
+    $P228 = self."!protoregex"("terminator")
+    .return ($P228)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("55_1278500537.15927") :method
+.sub "!PREFIX__terminator"  :subid("55_1279564397.22945") :method
 .annotate 'line', 148
-    $P251 = self."!PREFIX__!protoregex"("terminator")
-    .return ($P251)
+    $P230 = self."!PREFIX__!protoregex"("terminator")
+    .return ($P230)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("56_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "terminator:sym<;>"  :subid("56_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx253_tgt
-    .local int rx253_pos
-    .local int rx253_off
-    .local int rx253_eos
-    .local int rx253_rep
-    .local pmc rx253_cur
-    (rx253_cur, rx253_pos, rx253_tgt) = self."!cursor_start"()
-    rx253_cur."!cursor_debug"("START ", "terminator:sym<;>")
-    .lex unicode:"$\x{a2}", rx253_cur
-    .local pmc match
-    .lex "$/", match
-    length rx253_eos, rx253_tgt
-    gt rx253_pos, rx253_eos, rx253_done
-    set rx253_off, 0
-    lt rx253_pos, 2, rx253_start
-    sub rx253_off, rx253_pos, 1
-    substr rx253_tgt, rx253_tgt, rx253_off
-  rx253_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan256_done
-    goto rxscan256_scan
-  rxscan256_loop:
-    ($P10) = rx253_cur."from"()
-    inc $P10
-    set rx253_pos, $P10
-    ge rx253_pos, rx253_eos, rxscan256_done
-  rxscan256_scan:
-    set_addr $I10, rxscan256_loop
-    rx253_cur."!mark_push"(0, rx253_pos, $I10)
-  rxscan256_done:
+    .local string rx232_tgt
+    .local int rx232_pos
+    .local int rx232_off
+    .local int rx232_eos
+    .local int rx232_rep
+    .local pmc rx232_cur
+    (rx232_cur, rx232_pos, rx232_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx232_cur
+    .local pmc match
+    .lex "$/", match
+    length rx232_eos, rx232_tgt
+    gt rx232_pos, rx232_eos, rx232_done
+    set rx232_off, 0
+    lt rx232_pos, 2, rx232_start
+    sub rx232_off, rx232_pos, 1
+    substr rx232_tgt, rx232_tgt, rx232_off
+  rx232_start:
+    eq $I10, 1, rx232_restart
+    rx232_cur."!cursor_debug"("START ", "terminator:sym<;>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan235_done
+    goto rxscan235_scan
+  rxscan235_loop:
+    ($P10) = rx232_cur."from"()
+    inc $P10
+    set rx232_pos, $P10
+    ge rx232_pos, rx232_eos, rxscan235_done
+  rxscan235_scan:
+    set_addr $I10, rxscan235_loop
+    rx232_cur."!mark_push"(0, rx232_pos, $I10)
+  rxscan235_done:
 .annotate 'line', 150
   # rx enumcharlist negate=0 zerowidth
-    ge rx253_pos, rx253_eos, rx253_fail
-    sub $I10, rx253_pos, rx253_off
-    substr $S10, rx253_tgt, $I10, 1
+    ge rx232_pos, rx232_eos, rx232_fail
+    sub $I10, rx232_pos, rx232_off
+    substr $S10, rx232_tgt, $I10, 1
     index $I11, ";", $S10
-    lt $I11, 0, rx253_fail
+    lt $I11, 0, rx232_fail
   # rx pass
-    rx253_cur."!cursor_pass"(rx253_pos, "terminator:sym<;>")
-    rx253_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx253_pos)
-    .return (rx253_cur)
-  rx253_fail:
+    rx232_cur."!cursor_pass"(rx232_pos, "terminator:sym<;>")
+    rx232_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx232_pos)
+    .return (rx232_cur)
+  rx232_restart:
 .annotate 'line', 4
-    (rx253_rep, rx253_pos, $I10, $P10) = rx253_cur."!mark_fail"(0)
-    lt rx253_pos, -1, rx253_done
-    eq rx253_pos, -1, rx253_fail
+    rx232_cur."!cursor_debug"("NEXT ", "terminator:sym<;>")
+  rx232_fail:
+    (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
+    lt rx232_pos, -1, rx232_done
+    eq rx232_pos, -1, rx232_fail
     jump $I10
-  rx253_done:
-    rx253_cur."!cursor_fail"()
-    rx253_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
-    .return (rx253_cur)
+  rx232_done:
+    rx232_cur."!cursor_fail"()
+    rx232_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
+    .return (rx232_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("57_1278500537.15927") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("57_1279564397.22945") :method
 .annotate 'line', 4
-    new $P255, "ResizablePMCArray"
-    push $P255, ";"
-    .return ($P255)
+    new $P234, "ResizablePMCArray"
+    push $P234, ";"
+    .return ($P234)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("58_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "terminator:sym<}>"  :subid("58_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx258_tgt
-    .local int rx258_pos
-    .local int rx258_off
-    .local int rx258_eos
-    .local int rx258_rep
-    .local pmc rx258_cur
-    (rx258_cur, rx258_pos, rx258_tgt) = self."!cursor_start"()
-    rx258_cur."!cursor_debug"("START ", "terminator:sym<}>")
-    .lex unicode:"$\x{a2}", rx258_cur
+    .local string rx237_tgt
+    .local int rx237_pos
+    .local int rx237_off
+    .local int rx237_eos
+    .local int rx237_rep
+    .local pmc rx237_cur
+    (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx237_cur
     .local pmc match
     .lex "$/", match
-    length rx258_eos, rx258_tgt
-    gt rx258_pos, rx258_eos, rx258_done
-    set rx258_off, 0
-    lt rx258_pos, 2, rx258_start
-    sub rx258_off, rx258_pos, 1
-    substr rx258_tgt, rx258_tgt, rx258_off
-  rx258_start:
+    length rx237_eos, rx237_tgt
+    gt rx237_pos, rx237_eos, rx237_done
+    set rx237_off, 0
+    lt rx237_pos, 2, rx237_start
+    sub rx237_off, rx237_pos, 1
+    substr rx237_tgt, rx237_tgt, rx237_off
+  rx237_start:
+    eq $I10, 1, rx237_restart
+    rx237_cur."!cursor_debug"("START ", "terminator:sym<}>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan261_done
-    goto rxscan261_scan
-  rxscan261_loop:
-    ($P10) = rx258_cur."from"()
+    ne $I10, -1, rxscan240_done
+    goto rxscan240_scan
+  rxscan240_loop:
+    ($P10) = rx237_cur."from"()
     inc $P10
-    set rx258_pos, $P10
-    ge rx258_pos, rx258_eos, rxscan261_done
-  rxscan261_scan:
-    set_addr $I10, rxscan261_loop
-    rx258_cur."!mark_push"(0, rx258_pos, $I10)
-  rxscan261_done:
+    set rx237_pos, $P10
+    ge rx237_pos, rx237_eos, rxscan240_done
+  rxscan240_scan:
+    set_addr $I10, rxscan240_loop
+    rx237_cur."!mark_push"(0, rx237_pos, $I10)
+  rxscan240_done:
 .annotate 'line', 151
   # rx enumcharlist negate=0 zerowidth
-    ge rx258_pos, rx258_eos, rx258_fail
-    sub $I10, rx258_pos, rx258_off
-    substr $S10, rx258_tgt, $I10, 1
+    ge rx237_pos, rx237_eos, rx237_fail
+    sub $I10, rx237_pos, rx237_off
+    substr $S10, rx237_tgt, $I10, 1
     index $I11, "}", $S10
-    lt $I11, 0, rx258_fail
+    lt $I11, 0, rx237_fail
   # rx pass
-    rx258_cur."!cursor_pass"(rx258_pos, "terminator:sym<}>")
-    rx258_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx258_pos)
-    .return (rx258_cur)
-  rx258_fail:
+    rx237_cur."!cursor_pass"(rx237_pos, "terminator:sym<}>")
+    rx237_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx237_pos)
+    .return (rx237_cur)
+  rx237_restart:
 .annotate 'line', 4
-    (rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0)
-    lt rx258_pos, -1, rx258_done
-    eq rx258_pos, -1, rx258_fail
+    rx237_cur."!cursor_debug"("NEXT ", "terminator:sym<}>")
+  rx237_fail:
+    (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
+    lt rx237_pos, -1, rx237_done
+    eq rx237_pos, -1, rx237_fail
     jump $I10
-  rx258_done:
-    rx258_cur."!cursor_fail"()
-    rx258_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
-    .return (rx258_cur)
+  rx237_done:
+    rx237_cur."!cursor_fail"()
+    rx237_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
+    .return (rx237_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("59_1278500537.15927") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("59_1279564397.22945") :method
 .annotate 'line', 4
-    new $P260, "ResizablePMCArray"
-    push $P260, "}"
-    .return ($P260)
+    new $P239, "ResizablePMCArray"
+    push $P239, "}"
+    .return ($P239)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("60_1278500537.15927") :method
+.sub "statement_control"  :subid("60_1279564397.22945") :method
 .annotate 'line', 155
-    $P263 = self."!protoregex"("statement_control")
-    .return ($P263)
+    $P242 = self."!protoregex"("statement_control")
+    .return ($P242)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("61_1278500537.15927") :method
+.sub "!PREFIX__statement_control"  :subid("61_1279564397.22945") :method
 .annotate 'line', 155
-    $P265 = self."!PREFIX__!protoregex"("statement_control")
-    .return ($P265)
+    $P244 = self."!PREFIX__!protoregex"("statement_control")
+    .return ($P244)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("62_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_control:sym<if>"  :subid("62_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx267_tgt
-    .local int rx267_pos
-    .local int rx267_off
-    .local int rx267_eos
-    .local int rx267_rep
-    .local pmc rx267_cur
-    (rx267_cur, rx267_pos, rx267_tgt) = self."!cursor_start"()
-    rx267_cur."!cursor_debug"("START ", "statement_control:sym<if>")
-    rx267_cur."!cursor_caparray"("else", "xblock")
-    .lex unicode:"$\x{a2}", rx267_cur
-    .local pmc match
-    .lex "$/", match
-    length rx267_eos, rx267_tgt
-    gt rx267_pos, rx267_eos, rx267_done
-    set rx267_off, 0
-    lt rx267_pos, 2, rx267_start
-    sub rx267_off, rx267_pos, 1
-    substr rx267_tgt, rx267_tgt, rx267_off
-  rx267_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan270_done
-    goto rxscan270_scan
-  rxscan270_loop:
-    ($P10) = rx267_cur."from"()
-    inc $P10
-    set rx267_pos, $P10
-    ge rx267_pos, rx267_eos, rxscan270_done
-  rxscan270_scan:
-    set_addr $I10, rxscan270_loop
-    rx267_cur."!mark_push"(0, rx267_pos, $I10)
-  rxscan270_done:
+    .local string rx246_tgt
+    .local int rx246_pos
+    .local int rx246_off
+    .local int rx246_eos
+    .local int rx246_rep
+    .local pmc rx246_cur
+    (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+    rx246_cur."!cursor_caparray"("xblock", "else")
+    .lex unicode:"$\x{a2}", rx246_cur
+    .local pmc match
+    .lex "$/", match
+    length rx246_eos, rx246_tgt
+    gt rx246_pos, rx246_eos, rx246_done
+    set rx246_off, 0
+    lt rx246_pos, 2, rx246_start
+    sub rx246_off, rx246_pos, 1
+    substr rx246_tgt, rx246_tgt, rx246_off
+  rx246_start:
+    eq $I10, 1, rx246_restart
+    rx246_cur."!cursor_debug"("START ", "statement_control:sym<if>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan249_done
+    goto rxscan249_scan
+  rxscan249_loop:
+    ($P10) = rx246_cur."from"()
+    inc $P10
+    set rx246_pos, $P10
+    ge rx246_pos, rx246_eos, rxscan249_done
+  rxscan249_scan:
+    set_addr $I10, rxscan249_loop
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
+  rxscan249_done:
 .annotate 'line', 158
   # rx subcapture "sym"
-    set_addr $I10, rxcap_271_fail
-    rx267_cur."!mark_push"(0, rx267_pos, $I10)
+    set_addr $I10, rxcap_250_fail
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
   # rx literal  "if"
-    add $I11, rx267_pos, 2
-    gt $I11, rx267_eos, rx267_fail
-    sub $I11, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I11, 2
-    ne $S10, "if", rx267_fail
-    add rx267_pos, 2
-    set_addr $I10, rxcap_271_fail
-    ($I12, $I11) = rx267_cur."!mark_peek"($I10)
-    rx267_cur."!cursor_pos"($I11)
-    ($P10) = rx267_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx267_pos, "")
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx246_pos, 2
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 2
+    ne $S10, "if", rx246_fail
+    add rx246_pos, 2
+    set_addr $I10, rxcap_250_fail
+    ($I12, $I11) = rx246_cur."!mark_peek"($I10)
+    rx246_cur."!cursor_pos"($I11)
+    ($P10) = rx246_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx246_pos, "")
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_271_done
-  rxcap_271_fail:
-    goto rx267_fail
-  rxcap_271_done:
+    goto rxcap_250_done
+  rxcap_250_fail:
+    goto rx246_fail
+  rxcap_250_done:
   # rx charclass s
-    ge rx267_pos, rx267_eos, rx267_fail
-    sub $I10, rx267_pos, rx267_off
-    is_cclass $I11, 32, rx267_tgt, $I10
-    unless $I11, rx267_fail
-    inc rx267_pos
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    ge rx246_pos, rx246_eos, rx246_fail
+    sub $I10, rx246_pos, rx246_off
+    is_cclass $I11, 32, rx246_tgt, $I10
+    unless $I11, rx246_fail
+    inc rx246_pos
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
 .annotate 'line', 159
   # rx subrule "xblock" subtype=capture negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."xblock"()
-    unless $P10, rx267_fail
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."xblock"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx267_pos = $P10."pos"()
+    rx246_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
 .annotate 'line', 160
-  # rx rxquantr274 ** 0..*
-    set_addr $I278, rxquantr274_done
-    rx267_cur."!mark_push"(0, rx267_pos, $I278)
-  rxquantr274_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+  # rx rxquantr253 ** 0..*
+    set_addr $I10, rxquantr253_done
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
+  rxquantr253_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
   # rx literal  "elsif"
-    add $I11, rx267_pos, 5
-    gt $I11, rx267_eos, rx267_fail
-    sub $I11, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I11, 5
-    ne $S10, "elsif", rx267_fail
-    add rx267_pos, 5
+    add $I11, rx246_pos, 5
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 5
+    ne $S10, "elsif", rx246_fail
+    add rx246_pos, 5
   # rx charclass s
-    ge rx267_pos, rx267_eos, rx267_fail
-    sub $I10, rx267_pos, rx267_off
-    is_cclass $I11, 32, rx267_tgt, $I10
-    unless $I11, rx267_fail
-    inc rx267_pos
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    ge rx246_pos, rx246_eos, rx246_fail
+    sub $I10, rx246_pos, rx246_off
+    is_cclass $I11, 32, rx246_tgt, $I10
+    unless $I11, rx246_fail
+    inc rx246_pos
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
   # rx subrule "xblock" subtype=capture negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."xblock"()
-    unless $P10, rx267_fail
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."xblock"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx267_pos = $P10."pos"()
+    rx246_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
-    (rx267_rep) = rx267_cur."!mark_commit"($I278)
-    rx267_cur."!mark_push"(rx267_rep, rx267_pos, $I278)
-    goto rxquantr274_loop
-  rxquantr274_done:
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
+    set_addr $I10, rxquantr253_done
+    (rx246_rep) = rx246_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr253_done
+    rx246_cur."!mark_push"(rx246_rep, rx246_pos, $I10)
+    goto rxquantr253_loop
+  rxquantr253_done:
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
 .annotate 'line', 161
-  # rx rxquantr280 ** 0..1
-    set_addr $I284, rxquantr280_done
-    rx267_cur."!mark_push"(0, rx267_pos, $I284)
-  rxquantr280_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+  # rx rxquantr258 ** 0..1
+    set_addr $I10, rxquantr258_done
+    rx246_cur."!mark_push"(0, rx246_pos, $I10)
+  rxquantr258_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
   # rx literal  "else"
-    add $I11, rx267_pos, 4
-    gt $I11, rx267_eos, rx267_fail
-    sub $I11, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I11, 4
-    ne $S10, "else", rx267_fail
-    add rx267_pos, 4
+    add $I11, rx246_pos, 4
+    gt $I11, rx246_eos, rx246_fail
+    sub $I11, rx246_pos, rx246_off
+    substr $S10, rx246_tgt, $I11, 4
+    ne $S10, "else", rx246_fail
+    add rx246_pos, 4
   # rx charclass s
-    ge rx267_pos, rx267_eos, rx267_fail
-    sub $I10, rx267_pos, rx267_off
-    is_cclass $I11, 32, rx267_tgt, $I10
-    unless $I11, rx267_fail
-    inc rx267_pos
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    ge rx246_pos, rx246_eos, rx246_fail
+    sub $I10, rx246_pos, rx246_off
+    is_cclass $I11, 32, rx246_tgt, $I10
+    unless $I11, rx246_fail
+    inc rx246_pos
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."pblock"()
-    unless $P10, rx267_fail
-    rx267_cur."!mark_push"(0, -1, 0, $P10)
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."pblock"()
+    unless $P10, rx246_fail
+    rx246_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("else")
-    rx267_pos = $P10."pos"()
+    rx246_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
-    (rx267_rep) = rx267_cur."!mark_commit"($I284)
-  rxquantr280_done:
-  # rx subrule "ws" subtype=method negate=
-    rx267_cur."!cursor_pos"(rx267_pos)
-    $P10 = rx267_cur."ws"()
-    unless $P10, rx267_fail
-    rx267_pos = $P10."pos"()
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
+    set_addr $I10, rxquantr258_done
+    (rx246_rep) = rx246_cur."!mark_commit"($I10)
+  rxquantr258_done:
+  # rx subrule "ws" subtype=method negate=
+    rx246_cur."!cursor_pos"(rx246_pos)
+    $P10 = rx246_cur."ws"()
+    unless $P10, rx246_fail
+    rx246_pos = $P10."pos"()
 .annotate 'line', 157
   # rx pass
-    rx267_cur."!cursor_pass"(rx267_pos, "statement_control:sym<if>")
-    rx267_cur."!cursor_debug"("PASS  ", "statement_control:sym<if>", " at pos=", rx267_pos)
-    .return (rx267_cur)
-  rx267_fail:
+    rx246_cur."!cursor_pass"(rx246_pos, "statement_control:sym<if>")
+    rx246_cur."!cursor_debug"("PASS  ", "statement_control:sym<if>", " at pos=", rx246_pos)
+    .return (rx246_cur)
+  rx246_restart:
 .annotate 'line', 4
-    (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
-    lt rx267_pos, -1, rx267_done
-    eq rx267_pos, -1, rx267_fail
+    rx246_cur."!cursor_debug"("NEXT ", "statement_control:sym<if>")
+  rx246_fail:
+    (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
+    lt rx246_pos, -1, rx246_done
+    eq rx246_pos, -1, rx246_fail
     jump $I10
-  rx267_done:
-    rx267_cur."!cursor_fail"()
-    rx267_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
-    .return (rx267_cur)
+  rx246_done:
+    rx246_cur."!cursor_fail"()
+    rx246_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
+    .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1278500537.15927") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1279564397.22945") :method
 .annotate 'line', 4
-    new $P269, "ResizablePMCArray"
-    push $P269, "if"
-    .return ($P269)
+    new $P248, "ResizablePMCArray"
+    push $P248, "if"
+    .return ($P248)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("64_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_control:sym<unless>"  :subid("64_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .const 'Sub' $P297 = "66_1278500537.15927" 
-    capture_lex $P297
-    .local string rx287_tgt
-    .local int rx287_pos
-    .local int rx287_off
-    .local int rx287_eos
-    .local int rx287_rep
-    .local pmc rx287_cur
-    (rx287_cur, rx287_pos, rx287_tgt) = self."!cursor_start"()
-    rx287_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
-    .lex unicode:"$\x{a2}", rx287_cur
+    .const 'Sub' $P274 = "66_1279564397.22945" 
+    capture_lex $P274
+    .local string rx264_tgt
+    .local int rx264_pos
+    .local int rx264_off
+    .local int rx264_eos
+    .local int rx264_rep
+    .local pmc rx264_cur
+    (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx264_cur
     .local pmc match
     .lex "$/", match
-    length rx287_eos, rx287_tgt
-    gt rx287_pos, rx287_eos, rx287_done
-    set rx287_off, 0
-    lt rx287_pos, 2, rx287_start
-    sub rx287_off, rx287_pos, 1
-    substr rx287_tgt, rx287_tgt, rx287_off
-  rx287_start:
+    length rx264_eos, rx264_tgt
+    gt rx264_pos, rx264_eos, rx264_done
+    set rx264_off, 0
+    lt rx264_pos, 2, rx264_start
+    sub rx264_off, rx264_pos, 1
+    substr rx264_tgt, rx264_tgt, rx264_off
+  rx264_start:
+    eq $I10, 1, rx264_restart
+    rx264_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan290_done
-    goto rxscan290_scan
-  rxscan290_loop:
-    ($P10) = rx287_cur."from"()
+    ne $I10, -1, rxscan267_done
+    goto rxscan267_scan
+  rxscan267_loop:
+    ($P10) = rx264_cur."from"()
     inc $P10
-    set rx287_pos, $P10
-    ge rx287_pos, rx287_eos, rxscan290_done
-  rxscan290_scan:
-    set_addr $I10, rxscan290_loop
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
-  rxscan290_done:
+    set rx264_pos, $P10
+    ge rx264_pos, rx264_eos, rxscan267_done
+  rxscan267_scan:
+    set_addr $I10, rxscan267_loop
+    rx264_cur."!mark_push"(0, rx264_pos, $I10)
+  rxscan267_done:
 .annotate 'line', 165
   # rx subcapture "sym"
-    set_addr $I10, rxcap_291_fail
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
+    set_addr $I10, rxcap_268_fail
+    rx264_cur."!mark_push"(0, rx264_pos, $I10)
   # rx literal  "unless"
-    add $I11, rx287_pos, 6
-    gt $I11, rx287_eos, rx287_fail
-    sub $I11, rx287_pos, rx287_off
-    substr $S10, rx287_tgt, $I11, 6
-    ne $S10, "unless", rx287_fail
-    add rx287_pos, 6
-    set_addr $I10, rxcap_291_fail
-    ($I12, $I11) = rx287_cur."!mark_peek"($I10)
-    rx287_cur."!cursor_pos"($I11)
-    ($P10) = rx287_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx287_pos, "")
-    rx287_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx264_pos, 6
+    gt $I11, rx264_eos, rx264_fail
+    sub $I11, rx264_pos, rx264_off
+    substr $S10, rx264_tgt, $I11, 6
+    ne $S10, "unless", rx264_fail
+    add rx264_pos, 6
+    set_addr $I10, rxcap_268_fail
+    ($I12, $I11) = rx264_cur."!mark_peek"($I10)
+    rx264_cur."!cursor_pos"($I11)
+    ($P10) = rx264_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx264_pos, "")
+    rx264_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_291_done
-  rxcap_291_fail:
-    goto rx287_fail
-  rxcap_291_done:
+    goto rxcap_268_done
+  rxcap_268_fail:
+    goto rx264_fail
+  rxcap_268_done:
   # rx charclass s
-    ge rx287_pos, rx287_eos, rx287_fail
-    sub $I10, rx287_pos, rx287_off
-    is_cclass $I11, 32, rx287_tgt, $I10
-    unless $I11, rx287_fail
-    inc rx287_pos
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
+    ge rx264_pos, rx264_eos, rx264_fail
+    sub $I10, rx264_pos, rx264_off
+    is_cclass $I11, 32, rx264_tgt, $I10
+    unless $I11, rx264_fail
+    inc rx264_pos
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
 .annotate 'line', 166
   # rx subrule "xblock" subtype=capture negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."xblock"()
-    unless $P10, rx287_fail
-    rx287_cur."!mark_push"(0, -1, 0, $P10)
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."xblock"()
+    unless $P10, rx264_fail
+    rx264_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx287_pos = $P10."pos"()
+    rx264_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
-  alt294_0:
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
+  alt271_0:
 .annotate 'line', 167
-    set_addr $I10, alt294_1
-    rx287_cur."!mark_push"(0, rx287_pos, $I10)
+    set_addr $I10, alt271_1
+    rx264_cur."!mark_push"(0, rx264_pos, $I10)
   # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
-    rx287_cur."!cursor_pos"(rx287_pos)
-    .const 'Sub' $P297 = "66_1278500537.15927" 
-    capture_lex $P297
-    $P10 = rx287_cur."before"($P297)
-    if $P10, rx287_fail
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
-    goto alt294_end
-  alt294_1:
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
+    rx264_cur."!cursor_pos"(rx264_pos)
+    .const 'Sub' $P274 = "66_1279564397.22945" 
+    capture_lex $P274
+    $P10 = rx264_cur."before"($P274)
+    if $P10, rx264_fail
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
+    goto alt271_end
+  alt271_1:
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
-  alt294_end:
-  # rx subrule "ws" subtype=method negate=
-    rx287_cur."!cursor_pos"(rx287_pos)
-    $P10 = rx287_cur."ws"()
-    unless $P10, rx287_fail
-    rx287_pos = $P10."pos"()
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
+  alt271_end:
+  # rx subrule "ws" subtype=method negate=
+    rx264_cur."!cursor_pos"(rx264_pos)
+    $P10 = rx264_cur."ws"()
+    unless $P10, rx264_fail
+    rx264_pos = $P10."pos"()
 .annotate 'line', 164
   # rx pass
-    rx287_cur."!cursor_pass"(rx287_pos, "statement_control:sym<unless>")
-    rx287_cur."!cursor_debug"("PASS  ", "statement_control:sym<unless>", " at pos=", rx287_pos)
-    .return (rx287_cur)
-  rx287_fail:
+    rx264_cur."!cursor_pass"(rx264_pos, "statement_control:sym<unless>")
+    rx264_cur."!cursor_debug"("PASS  ", "statement_control:sym<unless>", " at pos=", rx264_pos)
+    .return (rx264_cur)
+  rx264_restart:
 .annotate 'line', 4
-    (rx287_rep, rx287_pos, $I10, $P10) = rx287_cur."!mark_fail"(0)
-    lt rx287_pos, -1, rx287_done
-    eq rx287_pos, -1, rx287_fail
+    rx264_cur."!cursor_debug"("NEXT ", "statement_control:sym<unless>")
+  rx264_fail:
+    (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
+    lt rx264_pos, -1, rx264_done
+    eq rx264_pos, -1, rx264_fail
     jump $I10
-  rx287_done:
-    rx287_cur."!cursor_fail"()
-    rx287_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
-    .return (rx287_cur)
+  rx264_done:
+    rx264_cur."!cursor_fail"()
+    rx264_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
+    .return (rx264_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1278500537.15927") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1279564397.22945") :method
 .annotate 'line', 4
-    new $P289, "ResizablePMCArray"
-    push $P289, "unless"
-    .return ($P289)
+    new $P266, "ResizablePMCArray"
+    push $P266, "unless"
+    .return ($P266)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block296"  :anon :subid("66_1278500537.15927") :method :outer("64_1278500537.15927")
+.sub "_block273"  :anon :subid("66_1279564397.22945") :method :outer("64_1279564397.22945")
 .annotate 'line', 167
-    .local string rx298_tgt
-    .local int rx298_pos
-    .local int rx298_off
-    .local int rx298_eos
-    .local int rx298_rep
-    .local pmc rx298_cur
-    (rx298_cur, rx298_pos, rx298_tgt) = self."!cursor_start"()
-    rx298_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx298_cur
-    .local pmc match
-    .lex "$/", match
-    length rx298_eos, rx298_tgt
-    gt rx298_pos, rx298_eos, rx298_done
-    set rx298_off, 0
-    lt rx298_pos, 2, rx298_start
-    sub rx298_off, rx298_pos, 1
-    substr rx298_tgt, rx298_tgt, rx298_off
-  rx298_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan299_done
-    goto rxscan299_scan
-  rxscan299_loop:
-    ($P10) = rx298_cur."from"()
-    inc $P10
-    set rx298_pos, $P10
-    ge rx298_pos, rx298_eos, rxscan299_done
-  rxscan299_scan:
-    set_addr $I10, rxscan299_loop
-    rx298_cur."!mark_push"(0, rx298_pos, $I10)
-  rxscan299_done:
+    .local string rx275_tgt
+    .local int rx275_pos
+    .local int rx275_off
+    .local int rx275_eos
+    .local int rx275_rep
+    .local pmc rx275_cur
+    (rx275_cur, rx275_pos, rx275_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx275_cur
+    .local pmc match
+    .lex "$/", match
+    length rx275_eos, rx275_tgt
+    gt rx275_pos, rx275_eos, rx275_done
+    set rx275_off, 0
+    lt rx275_pos, 2, rx275_start
+    sub rx275_off, rx275_pos, 1
+    substr rx275_tgt, rx275_tgt, rx275_off
+  rx275_start:
+    eq $I10, 1, rx275_restart
+    rx275_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan276_done
+    goto rxscan276_scan
+  rxscan276_loop:
+    ($P10) = rx275_cur."from"()
+    inc $P10
+    set rx275_pos, $P10
+    ge rx275_pos, rx275_eos, rxscan276_done
+  rxscan276_scan:
+    set_addr $I10, rxscan276_loop
+    rx275_cur."!mark_push"(0, rx275_pos, $I10)
+  rxscan276_done:
   # rx literal  "else"
-    add $I11, rx298_pos, 4
-    gt $I11, rx298_eos, rx298_fail
-    sub $I11, rx298_pos, rx298_off
-    substr $S10, rx298_tgt, $I11, 4
-    ne $S10, "else", rx298_fail
-    add rx298_pos, 4
-  # rx pass
-    rx298_cur."!cursor_pass"(rx298_pos, "")
-    rx298_cur."!cursor_debug"("PASS  ", "", " at pos=", rx298_pos)
-    .return (rx298_cur)
-  rx298_fail:
-    (rx298_rep, rx298_pos, $I10, $P10) = rx298_cur."!mark_fail"(0)
-    lt rx298_pos, -1, rx298_done
-    eq rx298_pos, -1, rx298_fail
-    jump $I10
-  rx298_done:
-    rx298_cur."!cursor_fail"()
-    rx298_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx298_cur)
+    add $I11, rx275_pos, 4
+    gt $I11, rx275_eos, rx275_fail
+    sub $I11, rx275_pos, rx275_off
+    substr $S10, rx275_tgt, $I11, 4
+    ne $S10, "else", rx275_fail
+    add rx275_pos, 4
+  # rx pass
+    rx275_cur."!cursor_pass"(rx275_pos, "")
+    rx275_cur."!cursor_debug"("PASS  ", "", " at pos=", rx275_pos)
+    .return (rx275_cur)
+  rx275_restart:
+    rx275_cur."!cursor_debug"("NEXT ", "")
+  rx275_fail:
+    (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
+    lt rx275_pos, -1, rx275_done
+    eq rx275_pos, -1, rx275_fail
+    jump $I10
+  rx275_done:
+    rx275_cur."!cursor_fail"()
+    rx275_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx275_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("67_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx305_tgt
-    .local int rx305_pos
-    .local int rx305_off
-    .local int rx305_eos
-    .local int rx305_rep
-    .local pmc rx305_cur
-    (rx305_cur, rx305_pos, rx305_tgt) = self."!cursor_start"()
-    rx305_cur."!cursor_debug"("START ", "statement_control:sym<while>")
-    .lex unicode:"$\x{a2}", rx305_cur
-    .local pmc match
-    .lex "$/", match
-    length rx305_eos, rx305_tgt
-    gt rx305_pos, rx305_eos, rx305_done
-    set rx305_off, 0
-    lt rx305_pos, 2, rx305_start
-    sub rx305_off, rx305_pos, 1
-    substr rx305_tgt, rx305_tgt, rx305_off
-  rx305_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan308_done
-    goto rxscan308_scan
-  rxscan308_loop:
-    ($P10) = rx305_cur."from"()
-    inc $P10
-    set rx305_pos, $P10
-    ge rx305_pos, rx305_eos, rxscan308_done
-  rxscan308_scan:
-    set_addr $I10, rxscan308_loop
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
-  rxscan308_done:
+.sub "statement_control:sym<while>"  :subid("67_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx282_tgt
+    .local int rx282_pos
+    .local int rx282_off
+    .local int rx282_eos
+    .local int rx282_rep
+    .local pmc rx282_cur
+    (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx282_cur
+    .local pmc match
+    .lex "$/", match
+    length rx282_eos, rx282_tgt
+    gt rx282_pos, rx282_eos, rx282_done
+    set rx282_off, 0
+    lt rx282_pos, 2, rx282_start
+    sub rx282_off, rx282_pos, 1
+    substr rx282_tgt, rx282_tgt, rx282_off
+  rx282_start:
+    eq $I10, 1, rx282_restart
+    rx282_cur."!cursor_debug"("START ", "statement_control:sym<while>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan285_done
+    goto rxscan285_scan
+  rxscan285_loop:
+    ($P10) = rx282_cur."from"()
+    inc $P10
+    set rx282_pos, $P10
+    ge rx282_pos, rx282_eos, rxscan285_done
+  rxscan285_scan:
+    set_addr $I10, rxscan285_loop
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
+  rxscan285_done:
 .annotate 'line', 171
   # rx subcapture "sym"
-    set_addr $I10, rxcap_310_fail
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
-  alt309_0:
-    set_addr $I10, alt309_1
-    rx305_cur."!mark_push"(0, rx305_pos, $I10)
+    set_addr $I10, rxcap_287_fail
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
+  alt286_0:
+    set_addr $I10, alt286_1
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
   # rx literal  "while"
-    add $I11, rx305_pos, 5
-    gt $I11, rx305_eos, rx305_fail
-    sub $I11, rx305_pos, rx305_off
-    substr $S10, rx305_tgt, $I11, 5
-    ne $S10, "while", rx305_fail
-    add rx305_pos, 5
-    goto alt309_end
-  alt309_1:
+    add $I11, rx282_pos, 5
+    gt $I11, rx282_eos, rx282_fail
+    sub $I11, rx282_pos, rx282_off
+    substr $S10, rx282_tgt, $I11, 5
+    ne $S10, "while", rx282_fail
+    add rx282_pos, 5
+    goto alt286_end
+  alt286_1:
   # rx literal  "until"
-    add $I11, rx305_pos, 5
-    gt $I11, rx305_eos, rx305_fail
-    sub $I11, rx305_pos, rx305_off
-    substr $S10, rx305_tgt, $I11, 5
-    ne $S10, "until", rx305_fail
-    add rx305_pos, 5
-  alt309_end:
-    set_addr $I10, rxcap_310_fail
-    ($I12, $I11) = rx305_cur."!mark_peek"($I10)
-    rx305_cur."!cursor_pos"($I11)
-    ($P10) = rx305_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx305_pos, "")
-    rx305_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx282_pos, 5
+    gt $I11, rx282_eos, rx282_fail
+    sub $I11, rx282_pos, rx282_off
+    substr $S10, rx282_tgt, $I11, 5
+    ne $S10, "until", rx282_fail
+    add rx282_pos, 5
+  alt286_end:
+    set_addr $I10, rxcap_287_fail
+    ($I12, $I11) = rx282_cur."!mark_peek"($I10)
+    rx282_cur."!cursor_pos"($I11)
+    ($P10) = rx282_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx282_pos, "")
+    rx282_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_310_done
-  rxcap_310_fail:
-    goto rx305_fail
-  rxcap_310_done:
+    goto rxcap_287_done
+  rxcap_287_fail:
+    goto rx282_fail
+  rxcap_287_done:
   # rx charclass s
-    ge rx305_pos, rx305_eos, rx305_fail
-    sub $I10, rx305_pos, rx305_off
-    is_cclass $I11, 32, rx305_tgt, $I10
-    unless $I11, rx305_fail
-    inc rx305_pos
-  # rx subrule "ws" subtype=method negate=
-    rx305_cur."!cursor_pos"(rx305_pos)
-    $P10 = rx305_cur."ws"()
-    unless $P10, rx305_fail
-    rx305_pos = $P10."pos"()
+    ge rx282_pos, rx282_eos, rx282_fail
+    sub $I10, rx282_pos, rx282_off
+    is_cclass $I11, 32, rx282_tgt, $I10
+    unless $I11, rx282_fail
+    inc rx282_pos
+  # rx subrule "ws" subtype=method negate=
+    rx282_cur."!cursor_pos"(rx282_pos)
+    $P10 = rx282_cur."ws"()
+    unless $P10, rx282_fail
+    rx282_pos = $P10."pos"()
 .annotate 'line', 172
   # rx subrule "xblock" subtype=capture negate=
-    rx305_cur."!cursor_pos"(rx305_pos)
-    $P10 = rx305_cur."xblock"()
-    unless $P10, rx305_fail
-    rx305_cur."!mark_push"(0, -1, 0, $P10)
+    rx282_cur."!cursor_pos"(rx282_pos)
+    $P10 = rx282_cur."xblock"()
+    unless $P10, rx282_fail
+    rx282_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx305_pos = $P10."pos"()
+    rx282_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx305_cur."!cursor_pos"(rx305_pos)
-    $P10 = rx305_cur."ws"()
-    unless $P10, rx305_fail
-    rx305_pos = $P10."pos"()
+    rx282_cur."!cursor_pos"(rx282_pos)
+    $P10 = rx282_cur."ws"()
+    unless $P10, rx282_fail
+    rx282_pos = $P10."pos"()
 .annotate 'line', 170
   # rx pass
-    rx305_cur."!cursor_pass"(rx305_pos, "statement_control:sym<while>")
-    rx305_cur."!cursor_debug"("PASS  ", "statement_control:sym<while>", " at pos=", rx305_pos)
-    .return (rx305_cur)
-  rx305_fail:
+    rx282_cur."!cursor_pass"(rx282_pos, "statement_control:sym<while>")
+    rx282_cur."!cursor_debug"("PASS  ", "statement_control:sym<while>", " at pos=", rx282_pos)
+    .return (rx282_cur)
+  rx282_restart:
 .annotate 'line', 4
-    (rx305_rep, rx305_pos, $I10, $P10) = rx305_cur."!mark_fail"(0)
-    lt rx305_pos, -1, rx305_done
-    eq rx305_pos, -1, rx305_fail
+    rx282_cur."!cursor_debug"("NEXT ", "statement_control:sym<while>")
+  rx282_fail:
+    (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
+    lt rx282_pos, -1, rx282_done
+    eq rx282_pos, -1, rx282_fail
     jump $I10
-  rx305_done:
-    rx305_cur."!cursor_fail"()
-    rx305_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
-    .return (rx305_cur)
+  rx282_done:
+    rx282_cur."!cursor_fail"()
+    rx282_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
+    .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1278500537.15927") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1279564397.22945") :method
 .annotate 'line', 4
-    new $P307, "ResizablePMCArray"
-    push $P307, "until"
-    push $P307, "while"
-    .return ($P307)
+    new $P284, "ResizablePMCArray"
+    push $P284, "until"
+    push $P284, "while"
+    .return ($P284)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("69_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_control:sym<repeat>"  :subid("69_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx314_tgt
-    .local int rx314_pos
-    .local int rx314_off
-    .local int rx314_eos
-    .local int rx314_rep
-    .local pmc rx314_cur
-    (rx314_cur, rx314_pos, rx314_tgt) = self."!cursor_start"()
-    rx314_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
-    .lex unicode:"$\x{a2}", rx314_cur
+    .local string rx291_tgt
+    .local int rx291_pos
+    .local int rx291_off
+    .local int rx291_eos
+    .local int rx291_rep
+    .local pmc rx291_cur
+    (rx291_cur, rx291_pos, rx291_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx291_cur
     .local pmc match
     .lex "$/", match
-    length rx314_eos, rx314_tgt
-    gt rx314_pos, rx314_eos, rx314_done
-    set rx314_off, 0
-    lt rx314_pos, 2, rx314_start
-    sub rx314_off, rx314_pos, 1
-    substr rx314_tgt, rx314_tgt, rx314_off
-  rx314_start:
+    length rx291_eos, rx291_tgt
+    gt rx291_pos, rx291_eos, rx291_done
+    set rx291_off, 0
+    lt rx291_pos, 2, rx291_start
+    sub rx291_off, rx291_pos, 1
+    substr rx291_tgt, rx291_tgt, rx291_off
+  rx291_start:
+    eq $I10, 1, rx291_restart
+    rx291_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan317_done
-    goto rxscan317_scan
-  rxscan317_loop:
-    ($P10) = rx314_cur."from"()
+    ne $I10, -1, rxscan294_done
+    goto rxscan294_scan
+  rxscan294_loop:
+    ($P10) = rx291_cur."from"()
     inc $P10
-    set rx314_pos, $P10
-    ge rx314_pos, rx314_eos, rxscan317_done
-  rxscan317_scan:
-    set_addr $I10, rxscan317_loop
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
-  rxscan317_done:
+    set rx291_pos, $P10
+    ge rx291_pos, rx291_eos, rxscan294_done
+  rxscan294_scan:
+    set_addr $I10, rxscan294_loop
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
+  rxscan294_done:
 .annotate 'line', 176
   # rx subcapture "sym"
-    set_addr $I10, rxcap_318_fail
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+    set_addr $I10, rxcap_295_fail
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
   # rx literal  "repeat"
-    add $I11, rx314_pos, 6
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 6
-    ne $S10, "repeat", rx314_fail
-    add rx314_pos, 6
-    set_addr $I10, rxcap_318_fail
-    ($I12, $I11) = rx314_cur."!mark_peek"($I10)
-    rx314_cur."!cursor_pos"($I11)
-    ($P10) = rx314_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx314_pos, "")
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx291_pos, 6
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 6
+    ne $S10, "repeat", rx291_fail
+    add rx291_pos, 6
+    set_addr $I10, rxcap_295_fail
+    ($I12, $I11) = rx291_cur."!mark_peek"($I10)
+    rx291_cur."!cursor_pos"($I11)
+    ($P10) = rx291_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx291_pos, "")
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_318_done
-  rxcap_318_fail:
-    goto rx314_fail
-  rxcap_318_done:
+    goto rxcap_295_done
+  rxcap_295_fail:
+    goto rx291_fail
+  rxcap_295_done:
   # rx charclass s
-    ge rx314_pos, rx314_eos, rx314_fail
-    sub $I10, rx314_pos, rx314_off
-    is_cclass $I11, 32, rx314_tgt, $I10
-    unless $I11, rx314_fail
-    inc rx314_pos
-  # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
-  alt320_0:
+    ge rx291_pos, rx291_eos, rx291_fail
+    sub $I10, rx291_pos, rx291_off
+    is_cclass $I11, 32, rx291_tgt, $I10
+    unless $I11, rx291_fail
+    inc rx291_pos
+  # rx subrule "ws" subtype=method negate=
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
+  alt297_0:
 .annotate 'line', 177
-    set_addr $I10, alt320_1
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+    set_addr $I10, alt297_1
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
 .annotate 'line', 178
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subcapture "wu"
-    set_addr $I10, rxcap_323_fail
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
-  alt322_0:
-    set_addr $I10, alt322_1
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+    set_addr $I10, rxcap_300_fail
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
+  alt299_0:
+    set_addr $I10, alt299_1
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
   # rx literal  "while"
-    add $I11, rx314_pos, 5
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 5
-    ne $S10, "while", rx314_fail
-    add rx314_pos, 5
-    goto alt322_end
-  alt322_1:
+    add $I11, rx291_pos, 5
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 5
+    ne $S10, "while", rx291_fail
+    add rx291_pos, 5
+    goto alt299_end
+  alt299_1:
   # rx literal  "until"
-    add $I11, rx314_pos, 5
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 5
-    ne $S10, "until", rx314_fail
-    add rx314_pos, 5
-  alt322_end:
-    set_addr $I10, rxcap_323_fail
-    ($I12, $I11) = rx314_cur."!mark_peek"($I10)
-    rx314_cur."!cursor_pos"($I11)
-    ($P10) = rx314_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx314_pos, "")
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx291_pos, 5
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 5
+    ne $S10, "until", rx291_fail
+    add rx291_pos, 5
+  alt299_end:
+    set_addr $I10, rxcap_300_fail
+    ($I12, $I11) = rx291_cur."!mark_peek"($I10)
+    rx291_cur."!cursor_pos"($I11)
+    ($P10) = rx291_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx291_pos, "")
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("wu")
-    goto rxcap_323_done
-  rxcap_323_fail:
-    goto rx314_fail
-  rxcap_323_done:
+    goto rxcap_300_done
+  rxcap_300_fail:
+    goto rx291_fail
+  rxcap_300_done:
   # rx charclass s
-    ge rx314_pos, rx314_eos, rx314_fail
-    sub $I10, rx314_pos, rx314_off
-    is_cclass $I11, 32, rx314_tgt, $I10
-    unless $I11, rx314_fail
-    inc rx314_pos
-  # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    ge rx291_pos, rx291_eos, rx291_fail
+    sub $I10, rx291_pos, rx291_off
+    is_cclass $I11, 32, rx291_tgt, $I10
+    unless $I11, rx291_fail
+    inc rx291_pos
+  # rx subrule "ws" subtype=method negate=
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subrule "xblock" subtype=capture negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."xblock"()
-    unless $P10, rx314_fail
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."xblock"()
+    unless $P10, rx291_fail
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx314_pos = $P10."pos"()
+    rx291_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
-    goto alt320_end
-  alt320_1:
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
+    goto alt297_end
+  alt297_1:
 .annotate 'line', 179
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."pblock"()
-    unless $P10, rx314_fail
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."pblock"()
+    unless $P10, rx291_fail
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx314_pos = $P10."pos"()
+    rx291_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subcapture "wu"
-    set_addr $I10, rxcap_329_fail
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
-  alt328_0:
-    set_addr $I10, alt328_1
-    rx314_cur."!mark_push"(0, rx314_pos, $I10)
+    set_addr $I10, rxcap_306_fail
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
+  alt305_0:
+    set_addr $I10, alt305_1
+    rx291_cur."!mark_push"(0, rx291_pos, $I10)
   # rx literal  "while"
-    add $I11, rx314_pos, 5
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 5
-    ne $S10, "while", rx314_fail
-    add rx314_pos, 5
-    goto alt328_end
-  alt328_1:
+    add $I11, rx291_pos, 5
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 5
+    ne $S10, "while", rx291_fail
+    add rx291_pos, 5
+    goto alt305_end
+  alt305_1:
   # rx literal  "until"
-    add $I11, rx314_pos, 5
-    gt $I11, rx314_eos, rx314_fail
-    sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 5
-    ne $S10, "until", rx314_fail
-    add rx314_pos, 5
-  alt328_end:
-    set_addr $I10, rxcap_329_fail
-    ($I12, $I11) = rx314_cur."!mark_peek"($I10)
-    rx314_cur."!cursor_pos"($I11)
-    ($P10) = rx314_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx314_pos, "")
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx291_pos, 5
+    gt $I11, rx291_eos, rx291_fail
+    sub $I11, rx291_pos, rx291_off
+    substr $S10, rx291_tgt, $I11, 5
+    ne $S10, "until", rx291_fail
+    add rx291_pos, 5
+  alt305_end:
+    set_addr $I10, rxcap_306_fail
+    ($I12, $I11) = rx291_cur."!mark_peek"($I10)
+    rx291_cur."!cursor_pos"($I11)
+    ($P10) = rx291_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx291_pos, "")
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("wu")
-    goto rxcap_329_done
-  rxcap_329_fail:
-    goto rx314_fail
-  rxcap_329_done:
+    goto rxcap_306_done
+  rxcap_306_fail:
+    goto rx291_fail
+  rxcap_306_done:
   # rx charclass s
-    ge rx314_pos, rx314_eos, rx314_fail
-    sub $I10, rx314_pos, rx314_off
-    is_cclass $I11, 32, rx314_tgt, $I10
-    unless $I11, rx314_fail
-    inc rx314_pos
-  # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    ge rx291_pos, rx291_eos, rx291_fail
+    sub $I10, rx291_pos, rx291_off
+    is_cclass $I11, 32, rx291_tgt, $I10
+    unless $I11, rx291_fail
+    inc rx291_pos
+  # rx subrule "ws" subtype=method negate=
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."EXPR"()
-    unless $P10, rx314_fail
-    rx314_cur."!mark_push"(0, -1, 0, $P10)
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."EXPR"()
+    unless $P10, rx291_fail
+    rx291_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx314_pos = $P10."pos"()
+    rx291_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
-  alt320_end:
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
+  alt297_end:
 .annotate 'line', 180
   # rx subrule "ws" subtype=method negate=
-    rx314_cur."!cursor_pos"(rx314_pos)
-    $P10 = rx314_cur."ws"()
-    unless $P10, rx314_fail
-    rx314_pos = $P10."pos"()
+    rx291_cur."!cursor_pos"(rx291_pos)
+    $P10 = rx291_cur."ws"()
+    unless $P10, rx291_fail
+    rx291_pos = $P10."pos"()
 .annotate 'line', 175
   # rx pass
-    rx314_cur."!cursor_pass"(rx314_pos, "statement_control:sym<repeat>")
-    rx314_cur."!cursor_debug"("PASS  ", "statement_control:sym<repeat>", " at pos=", rx314_pos)
-    .return (rx314_cur)
-  rx314_fail:
+    rx291_cur."!cursor_pass"(rx291_pos, "statement_control:sym<repeat>")
+    rx291_cur."!cursor_debug"("PASS  ", "statement_control:sym<repeat>", " at pos=", rx291_pos)
+    .return (rx291_cur)
+  rx291_restart:
 .annotate 'line', 4
-    (rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0)
-    lt rx314_pos, -1, rx314_done
-    eq rx314_pos, -1, rx314_fail
+    rx291_cur."!cursor_debug"("NEXT ", "statement_control:sym<repeat>")
+  rx291_fail:
+    (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
+    lt rx291_pos, -1, rx291_done
+    eq rx291_pos, -1, rx291_fail
     jump $I10
-  rx314_done:
-    rx314_cur."!cursor_fail"()
-    rx314_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
-    .return (rx314_cur)
+  rx291_done:
+    rx291_cur."!cursor_fail"()
+    rx291_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
+    .return (rx291_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1278500537.15927") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1279564397.22945") :method
 .annotate 'line', 4
-    new $P316, "ResizablePMCArray"
-    push $P316, "repeat"
-    .return ($P316)
+    new $P293, "ResizablePMCArray"
+    push $P293, "repeat"
+    .return ($P293)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("71_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_control:sym<for>"  :subid("71_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx334_tgt
-    .local int rx334_pos
-    .local int rx334_off
-    .local int rx334_eos
-    .local int rx334_rep
-    .local pmc rx334_cur
-    (rx334_cur, rx334_pos, rx334_tgt) = self."!cursor_start"()
-    rx334_cur."!cursor_debug"("START ", "statement_control:sym<for>")
-    .lex unicode:"$\x{a2}", rx334_cur
+    .local string rx311_tgt
+    .local int rx311_pos
+    .local int rx311_off
+    .local int rx311_eos
+    .local int rx311_rep
+    .local pmc rx311_cur
+    (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx311_cur
     .local pmc match
     .lex "$/", match
-    length rx334_eos, rx334_tgt
-    gt rx334_pos, rx334_eos, rx334_done
-    set rx334_off, 0
-    lt rx334_pos, 2, rx334_start
-    sub rx334_off, rx334_pos, 1
-    substr rx334_tgt, rx334_tgt, rx334_off
-  rx334_start:
+    length rx311_eos, rx311_tgt
+    gt rx311_pos, rx311_eos, rx311_done
+    set rx311_off, 0
+    lt rx311_pos, 2, rx311_start
+    sub rx311_off, rx311_pos, 1
+    substr rx311_tgt, rx311_tgt, rx311_off
+  rx311_start:
+    eq $I10, 1, rx311_restart
+    rx311_cur."!cursor_debug"("START ", "statement_control:sym<for>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan337_done
-    goto rxscan337_scan
-  rxscan337_loop:
-    ($P10) = rx334_cur."from"()
+    ne $I10, -1, rxscan314_done
+    goto rxscan314_scan
+  rxscan314_loop:
+    ($P10) = rx311_cur."from"()
     inc $P10
-    set rx334_pos, $P10
-    ge rx334_pos, rx334_eos, rxscan337_done
-  rxscan337_scan:
-    set_addr $I10, rxscan337_loop
-    rx334_cur."!mark_push"(0, rx334_pos, $I10)
-  rxscan337_done:
+    set rx311_pos, $P10
+    ge rx311_pos, rx311_eos, rxscan314_done
+  rxscan314_scan:
+    set_addr $I10, rxscan314_loop
+    rx311_cur."!mark_push"(0, rx311_pos, $I10)
+  rxscan314_done:
 .annotate 'line', 184
   # rx subcapture "sym"
-    set_addr $I10, rxcap_338_fail
-    rx334_cur."!mark_push"(0, rx334_pos, $I10)
+    set_addr $I10, rxcap_315_fail
+    rx311_cur."!mark_push"(0, rx311_pos, $I10)
   # rx literal  "for"
-    add $I11, rx334_pos, 3
-    gt $I11, rx334_eos, rx334_fail
-    sub $I11, rx334_pos, rx334_off
-    substr $S10, rx334_tgt, $I11, 3
-    ne $S10, "for", rx334_fail
-    add rx334_pos, 3
-    set_addr $I10, rxcap_338_fail
-    ($I12, $I11) = rx334_cur."!mark_peek"($I10)
-    rx334_cur."!cursor_pos"($I11)
-    ($P10) = rx334_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx334_pos, "")
-    rx334_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx311_pos, 3
+    gt $I11, rx311_eos, rx311_fail
+    sub $I11, rx311_pos, rx311_off
+    substr $S10, rx311_tgt, $I11, 3
+    ne $S10, "for", rx311_fail
+    add rx311_pos, 3
+    set_addr $I10, rxcap_315_fail
+    ($I12, $I11) = rx311_cur."!mark_peek"($I10)
+    rx311_cur."!cursor_pos"($I11)
+    ($P10) = rx311_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx311_pos, "")
+    rx311_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_338_done
-  rxcap_338_fail:
-    goto rx334_fail
-  rxcap_338_done:
+    goto rxcap_315_done
+  rxcap_315_fail:
+    goto rx311_fail
+  rxcap_315_done:
   # rx charclass s
-    ge rx334_pos, rx334_eos, rx334_fail
-    sub $I10, rx334_pos, rx334_off
-    is_cclass $I11, 32, rx334_tgt, $I10
-    unless $I11, rx334_fail
-    inc rx334_pos
-  # rx subrule "ws" subtype=method negate=
-    rx334_cur."!cursor_pos"(rx334_pos)
-    $P10 = rx334_cur."ws"()
-    unless $P10, rx334_fail
-    rx334_pos = $P10."pos"()
+    ge rx311_pos, rx311_eos, rx311_fail
+    sub $I10, rx311_pos, rx311_off
+    is_cclass $I11, 32, rx311_tgt, $I10
+    unless $I11, rx311_fail
+    inc rx311_pos
+  # rx subrule "ws" subtype=method negate=
+    rx311_cur."!cursor_pos"(rx311_pos)
+    $P10 = rx311_cur."ws"()
+    unless $P10, rx311_fail
+    rx311_pos = $P10."pos"()
 .annotate 'line', 185
   # rx subrule "xblock" subtype=capture negate=
-    rx334_cur."!cursor_pos"(rx334_pos)
-    $P10 = rx334_cur."xblock"()
-    unless $P10, rx334_fail
-    rx334_cur."!mark_push"(0, -1, 0, $P10)
+    rx311_cur."!cursor_pos"(rx311_pos)
+    $P10 = rx311_cur."xblock"()
+    unless $P10, rx311_fail
+    rx311_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx334_pos = $P10."pos"()
+    rx311_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx334_cur."!cursor_pos"(rx334_pos)
-    $P10 = rx334_cur."ws"()
-    unless $P10, rx334_fail
-    rx334_pos = $P10."pos"()
+    rx311_cur."!cursor_pos"(rx311_pos)
+    $P10 = rx311_cur."ws"()
+    unless $P10, rx311_fail
+    rx311_pos = $P10."pos"()
 .annotate 'line', 183
   # rx pass
-    rx334_cur."!cursor_pass"(rx334_pos, "statement_control:sym<for>")
-    rx334_cur."!cursor_debug"("PASS  ", "statement_control:sym<for>", " at pos=", rx334_pos)
-    .return (rx334_cur)
-  rx334_fail:
+    rx311_cur."!cursor_pass"(rx311_pos, "statement_control:sym<for>")
+    rx311_cur."!cursor_debug"("PASS  ", "statement_control:sym<for>", " at pos=", rx311_pos)
+    .return (rx311_cur)
+  rx311_restart:
 .annotate 'line', 4
-    (rx334_rep, rx334_pos, $I10, $P10) = rx334_cur."!mark_fail"(0)
-    lt rx334_pos, -1, rx334_done
-    eq rx334_pos, -1, rx334_fail
+    rx311_cur."!cursor_debug"("NEXT ", "statement_control:sym<for>")
+  rx311_fail:
+    (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
+    lt rx311_pos, -1, rx311_done
+    eq rx311_pos, -1, rx311_fail
     jump $I10
-  rx334_done:
-    rx334_cur."!cursor_fail"()
-    rx334_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
-    .return (rx334_cur)
+  rx311_done:
+    rx311_cur."!cursor_fail"()
+    rx311_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
+    .return (rx311_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1278500537.15927") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1279564397.22945") :method
 .annotate 'line', 4
-    new $P336, "ResizablePMCArray"
-    push $P336, "for"
-    .return ($P336)
+    new $P313, "ResizablePMCArray"
+    push $P313, "for"
+    .return ($P313)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("73_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_control:sym<CATCH>"  :subid("73_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx342_tgt
-    .local int rx342_pos
-    .local int rx342_off
-    .local int rx342_eos
-    .local int rx342_rep
-    .local pmc rx342_cur
-    (rx342_cur, rx342_pos, rx342_tgt) = self."!cursor_start"()
-    rx342_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
-    .lex unicode:"$\x{a2}", rx342_cur
+    .local string rx319_tgt
+    .local int rx319_pos
+    .local int rx319_off
+    .local int rx319_eos
+    .local int rx319_rep
+    .local pmc rx319_cur
+    (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx319_cur
     .local pmc match
     .lex "$/", match
-    length rx342_eos, rx342_tgt
-    gt rx342_pos, rx342_eos, rx342_done
-    set rx342_off, 0
-    lt rx342_pos, 2, rx342_start
-    sub rx342_off, rx342_pos, 1
-    substr rx342_tgt, rx342_tgt, rx342_off
-  rx342_start:
+    length rx319_eos, rx319_tgt
+    gt rx319_pos, rx319_eos, rx319_done
+    set rx319_off, 0
+    lt rx319_pos, 2, rx319_start
+    sub rx319_off, rx319_pos, 1
+    substr rx319_tgt, rx319_tgt, rx319_off
+  rx319_start:
+    eq $I10, 1, rx319_restart
+    rx319_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan345_done
-    goto rxscan345_scan
-  rxscan345_loop:
-    ($P10) = rx342_cur."from"()
+    ne $I10, -1, rxscan322_done
+    goto rxscan322_scan
+  rxscan322_loop:
+    ($P10) = rx319_cur."from"()
     inc $P10
-    set rx342_pos, $P10
-    ge rx342_pos, rx342_eos, rxscan345_done
-  rxscan345_scan:
-    set_addr $I10, rxscan345_loop
-    rx342_cur."!mark_push"(0, rx342_pos, $I10)
-  rxscan345_done:
+    set rx319_pos, $P10
+    ge rx319_pos, rx319_eos, rxscan322_done
+  rxscan322_scan:
+    set_addr $I10, rxscan322_loop
+    rx319_cur."!mark_push"(0, rx319_pos, $I10)
+  rxscan322_done:
 .annotate 'line', 189
   # rx subcapture "sym"
-    set_addr $I10, rxcap_346_fail
-    rx342_cur."!mark_push"(0, rx342_pos, $I10)
+    set_addr $I10, rxcap_323_fail
+    rx319_cur."!mark_push"(0, rx319_pos, $I10)
   # rx literal  "CATCH"
-    add $I11, rx342_pos, 5
-    gt $I11, rx342_eos, rx342_fail
-    sub $I11, rx342_pos, rx342_off
-    substr $S10, rx342_tgt, $I11, 5
-    ne $S10, "CATCH", rx342_fail
-    add rx342_pos, 5
-    set_addr $I10, rxcap_346_fail
-    ($I12, $I11) = rx342_cur."!mark_peek"($I10)
-    rx342_cur."!cursor_pos"($I11)
-    ($P10) = rx342_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx342_pos, "")
-    rx342_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx319_pos, 5
+    gt $I11, rx319_eos, rx319_fail
+    sub $I11, rx319_pos, rx319_off
+    substr $S10, rx319_tgt, $I11, 5
+    ne $S10, "CATCH", rx319_fail
+    add rx319_pos, 5
+    set_addr $I10, rxcap_323_fail
+    ($I12, $I11) = rx319_cur."!mark_peek"($I10)
+    rx319_cur."!cursor_pos"($I11)
+    ($P10) = rx319_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx319_pos, "")
+    rx319_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_346_done
-  rxcap_346_fail:
-    goto rx342_fail
-  rxcap_346_done:
+    goto rxcap_323_done
+  rxcap_323_fail:
+    goto rx319_fail
+  rxcap_323_done:
   # rx charclass s
-    ge rx342_pos, rx342_eos, rx342_fail
-    sub $I10, rx342_pos, rx342_off
-    is_cclass $I11, 32, rx342_tgt, $I10
-    unless $I11, rx342_fail
-    inc rx342_pos
-  # rx subrule "ws" subtype=method negate=
-    rx342_cur."!cursor_pos"(rx342_pos)
-    $P10 = rx342_cur."ws"()
-    unless $P10, rx342_fail
-    rx342_pos = $P10."pos"()
+    ge rx319_pos, rx319_eos, rx319_fail
+    sub $I10, rx319_pos, rx319_off
+    is_cclass $I11, 32, rx319_tgt, $I10
+    unless $I11, rx319_fail
+    inc rx319_pos
+  # rx subrule "ws" subtype=method negate=
+    rx319_cur."!cursor_pos"(rx319_pos)
+    $P10 = rx319_cur."ws"()
+    unless $P10, rx319_fail
+    rx319_pos = $P10."pos"()
 .annotate 'line', 190
   # rx subrule "block" subtype=capture negate=
-    rx342_cur."!cursor_pos"(rx342_pos)
-    $P10 = rx342_cur."block"()
-    unless $P10, rx342_fail
-    rx342_cur."!mark_push"(0, -1, 0, $P10)
+    rx319_cur."!cursor_pos"(rx319_pos)
+    $P10 = rx319_cur."block"()
+    unless $P10, rx319_fail
+    rx319_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx342_pos = $P10."pos"()
+    rx319_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx342_cur."!cursor_pos"(rx342_pos)
-    $P10 = rx342_cur."ws"()
-    unless $P10, rx342_fail
-    rx342_pos = $P10."pos"()
+    rx319_cur."!cursor_pos"(rx319_pos)
+    $P10 = rx319_cur."ws"()
+    unless $P10, rx319_fail
+    rx319_pos = $P10."pos"()
 .annotate 'line', 188
   # rx pass
-    rx342_cur."!cursor_pass"(rx342_pos, "statement_control:sym<CATCH>")
-    rx342_cur."!cursor_debug"("PASS  ", "statement_control:sym<CATCH>", " at pos=", rx342_pos)
-    .return (rx342_cur)
-  rx342_fail:
+    rx319_cur."!cursor_pass"(rx319_pos, "statement_control:sym<CATCH>")
+    rx319_cur."!cursor_debug"("PASS  ", "statement_control:sym<CATCH>", " at pos=", rx319_pos)
+    .return (rx319_cur)
+  rx319_restart:
 .annotate 'line', 4
-    (rx342_rep, rx342_pos, $I10, $P10) = rx342_cur."!mark_fail"(0)
-    lt rx342_pos, -1, rx342_done
-    eq rx342_pos, -1, rx342_fail
+    rx319_cur."!cursor_debug"("NEXT ", "statement_control:sym<CATCH>")
+  rx319_fail:
+    (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
+    lt rx319_pos, -1, rx319_done
+    eq rx319_pos, -1, rx319_fail
     jump $I10
-  rx342_done:
-    rx342_cur."!cursor_fail"()
-    rx342_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
-    .return (rx342_cur)
+  rx319_done:
+    rx319_cur."!cursor_fail"()
+    rx319_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
+    .return (rx319_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1278500537.15927") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1279564397.22945") :method
 .annotate 'line', 4
-    new $P344, "ResizablePMCArray"
-    push $P344, "CATCH"
-    .return ($P344)
+    new $P321, "ResizablePMCArray"
+    push $P321, "CATCH"
+    .return ($P321)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("75_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_control:sym<CONTROL>"  :subid("75_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx350_tgt
-    .local int rx350_pos
-    .local int rx350_off
-    .local int rx350_eos
-    .local int rx350_rep
-    .local pmc rx350_cur
-    (rx350_cur, rx350_pos, rx350_tgt) = self."!cursor_start"()
-    rx350_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
-    .lex unicode:"$\x{a2}", rx350_cur
+    .local string rx327_tgt
+    .local int rx327_pos
+    .local int rx327_off
+    .local int rx327_eos
+    .local int rx327_rep
+    .local pmc rx327_cur
+    (rx327_cur, rx327_pos, rx327_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx327_cur
     .local pmc match
     .lex "$/", match
-    length rx350_eos, rx350_tgt
-    gt rx350_pos, rx350_eos, rx350_done
-    set rx350_off, 0
-    lt rx350_pos, 2, rx350_start
-    sub rx350_off, rx350_pos, 1
-    substr rx350_tgt, rx350_tgt, rx350_off
-  rx350_start:
+    length rx327_eos, rx327_tgt
+    gt rx327_pos, rx327_eos, rx327_done
+    set rx327_off, 0
+    lt rx327_pos, 2, rx327_start
+    sub rx327_off, rx327_pos, 1
+    substr rx327_tgt, rx327_tgt, rx327_off
+  rx327_start:
+    eq $I10, 1, rx327_restart
+    rx327_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan353_done
-    goto rxscan353_scan
-  rxscan353_loop:
-    ($P10) = rx350_cur."from"()
+    ne $I10, -1, rxscan330_done
+    goto rxscan330_scan
+  rxscan330_loop:
+    ($P10) = rx327_cur."from"()
     inc $P10
-    set rx350_pos, $P10
-    ge rx350_pos, rx350_eos, rxscan353_done
-  rxscan353_scan:
-    set_addr $I10, rxscan353_loop
-    rx350_cur."!mark_push"(0, rx350_pos, $I10)
-  rxscan353_done:
+    set rx327_pos, $P10
+    ge rx327_pos, rx327_eos, rxscan330_done
+  rxscan330_scan:
+    set_addr $I10, rxscan330_loop
+    rx327_cur."!mark_push"(0, rx327_pos, $I10)
+  rxscan330_done:
 .annotate 'line', 194
   # rx subcapture "sym"
-    set_addr $I10, rxcap_354_fail
-    rx350_cur."!mark_push"(0, rx350_pos, $I10)
+    set_addr $I10, rxcap_331_fail
+    rx327_cur."!mark_push"(0, rx327_pos, $I10)
   # rx literal  "CONTROL"
-    add $I11, rx350_pos, 7
-    gt $I11, rx350_eos, rx350_fail
-    sub $I11, rx350_pos, rx350_off
-    substr $S10, rx350_tgt, $I11, 7
-    ne $S10, "CONTROL", rx350_fail
-    add rx350_pos, 7
-    set_addr $I10, rxcap_354_fail
-    ($I12, $I11) = rx350_cur."!mark_peek"($I10)
-    rx350_cur."!cursor_pos"($I11)
-    ($P10) = rx350_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx350_pos, "")
-    rx350_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx327_pos, 7
+    gt $I11, rx327_eos, rx327_fail
+    sub $I11, rx327_pos, rx327_off
+    substr $S10, rx327_tgt, $I11, 7
+    ne $S10, "CONTROL", rx327_fail
+    add rx327_pos, 7
+    set_addr $I10, rxcap_331_fail
+    ($I12, $I11) = rx327_cur."!mark_peek"($I10)
+    rx327_cur."!cursor_pos"($I11)
+    ($P10) = rx327_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx327_pos, "")
+    rx327_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_354_done
-  rxcap_354_fail:
-    goto rx350_fail
-  rxcap_354_done:
+    goto rxcap_331_done
+  rxcap_331_fail:
+    goto rx327_fail
+  rxcap_331_done:
   # rx charclass s
-    ge rx350_pos, rx350_eos, rx350_fail
-    sub $I10, rx350_pos, rx350_off
-    is_cclass $I11, 32, rx350_tgt, $I10
-    unless $I11, rx350_fail
-    inc rx350_pos
-  # rx subrule "ws" subtype=method negate=
-    rx350_cur."!cursor_pos"(rx350_pos)
-    $P10 = rx350_cur."ws"()
-    unless $P10, rx350_fail
-    rx350_pos = $P10."pos"()
+    ge rx327_pos, rx327_eos, rx327_fail
+    sub $I10, rx327_pos, rx327_off
+    is_cclass $I11, 32, rx327_tgt, $I10
+    unless $I11, rx327_fail
+    inc rx327_pos
+  # rx subrule "ws" subtype=method negate=
+    rx327_cur."!cursor_pos"(rx327_pos)
+    $P10 = rx327_cur."ws"()
+    unless $P10, rx327_fail
+    rx327_pos = $P10."pos"()
 .annotate 'line', 195
   # rx subrule "block" subtype=capture negate=
-    rx350_cur."!cursor_pos"(rx350_pos)
-    $P10 = rx350_cur."block"()
-    unless $P10, rx350_fail
-    rx350_cur."!mark_push"(0, -1, 0, $P10)
+    rx327_cur."!cursor_pos"(rx327_pos)
+    $P10 = rx327_cur."block"()
+    unless $P10, rx327_fail
+    rx327_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx350_pos = $P10."pos"()
+    rx327_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx350_cur."!cursor_pos"(rx350_pos)
-    $P10 = rx350_cur."ws"()
-    unless $P10, rx350_fail
-    rx350_pos = $P10."pos"()
+    rx327_cur."!cursor_pos"(rx327_pos)
+    $P10 = rx327_cur."ws"()
+    unless $P10, rx327_fail
+    rx327_pos = $P10."pos"()
 .annotate 'line', 193
   # rx pass
-    rx350_cur."!cursor_pass"(rx350_pos, "statement_control:sym<CONTROL>")
-    rx350_cur."!cursor_debug"("PASS  ", "statement_control:sym<CONTROL>", " at pos=", rx350_pos)
-    .return (rx350_cur)
-  rx350_fail:
+    rx327_cur."!cursor_pass"(rx327_pos, "statement_control:sym<CONTROL>")
+    rx327_cur."!cursor_debug"("PASS  ", "statement_control:sym<CONTROL>", " at pos=", rx327_pos)
+    .return (rx327_cur)
+  rx327_restart:
 .annotate 'line', 4
-    (rx350_rep, rx350_pos, $I10, $P10) = rx350_cur."!mark_fail"(0)
-    lt rx350_pos, -1, rx350_done
-    eq rx350_pos, -1, rx350_fail
+    rx327_cur."!cursor_debug"("NEXT ", "statement_control:sym<CONTROL>")
+  rx327_fail:
+    (rx327_rep, rx327_pos, $I10, $P10) = rx327_cur."!mark_fail"(0)
+    lt rx327_pos, -1, rx327_done
+    eq rx327_pos, -1, rx327_fail
     jump $I10
-  rx350_done:
-    rx350_cur."!cursor_fail"()
-    rx350_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
-    .return (rx350_cur)
+  rx327_done:
+    rx327_cur."!cursor_fail"()
+    rx327_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
+    .return (rx327_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1278500537.15927") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1279564397.22945") :method
 .annotate 'line', 4
-    new $P352, "ResizablePMCArray"
-    push $P352, "CONTROL"
-    .return ($P352)
+    new $P329, "ResizablePMCArray"
+    push $P329, "CONTROL"
+    .return ($P329)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("77_1278500537.15927") :method
+.sub "statement_prefix"  :subid("77_1279564397.22945") :method
 .annotate 'line', 198
-    $P358 = self."!protoregex"("statement_prefix")
-    .return ($P358)
+    $P335 = self."!protoregex"("statement_prefix")
+    .return ($P335)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("78_1278500537.15927") :method
+.sub "!PREFIX__statement_prefix"  :subid("78_1279564397.22945") :method
 .annotate 'line', 198
-    $P360 = self."!PREFIX__!protoregex"("statement_prefix")
-    .return ($P360)
+    $P337 = self."!PREFIX__!protoregex"("statement_prefix")
+    .return ($P337)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("79_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_prefix:sym<INIT>"  :subid("79_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx362_tgt
-    .local int rx362_pos
-    .local int rx362_off
-    .local int rx362_eos
-    .local int rx362_rep
-    .local pmc rx362_cur
-    (rx362_cur, rx362_pos, rx362_tgt) = self."!cursor_start"()
-    rx362_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
-    .lex unicode:"$\x{a2}", rx362_cur
-    .local pmc match
-    .lex "$/", match
-    length rx362_eos, rx362_tgt
-    gt rx362_pos, rx362_eos, rx362_done
-    set rx362_off, 0
-    lt rx362_pos, 2, rx362_start
-    sub rx362_off, rx362_pos, 1
-    substr rx362_tgt, rx362_tgt, rx362_off
-  rx362_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan366_done
-    goto rxscan366_scan
-  rxscan366_loop:
-    ($P10) = rx362_cur."from"()
-    inc $P10
-    set rx362_pos, $P10
-    ge rx362_pos, rx362_eos, rxscan366_done
-  rxscan366_scan:
-    set_addr $I10, rxscan366_loop
-    rx362_cur."!mark_push"(0, rx362_pos, $I10)
-  rxscan366_done:
+    .local string rx339_tgt
+    .local int rx339_pos
+    .local int rx339_off
+    .local int rx339_eos
+    .local int rx339_rep
+    .local pmc rx339_cur
+    (rx339_cur, rx339_pos, rx339_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx339_cur
+    .local pmc match
+    .lex "$/", match
+    length rx339_eos, rx339_tgt
+    gt rx339_pos, rx339_eos, rx339_done
+    set rx339_off, 0
+    lt rx339_pos, 2, rx339_start
+    sub rx339_off, rx339_pos, 1
+    substr rx339_tgt, rx339_tgt, rx339_off
+  rx339_start:
+    eq $I10, 1, rx339_restart
+    rx339_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan343_done
+    goto rxscan343_scan
+  rxscan343_loop:
+    ($P10) = rx339_cur."from"()
+    inc $P10
+    set rx339_pos, $P10
+    ge rx339_pos, rx339_eos, rxscan343_done
+  rxscan343_scan:
+    set_addr $I10, rxscan343_loop
+    rx339_cur."!mark_push"(0, rx339_pos, $I10)
+  rxscan343_done:
 .annotate 'line', 199
   # rx subcapture "sym"
-    set_addr $I10, rxcap_367_fail
-    rx362_cur."!mark_push"(0, rx362_pos, $I10)
+    set_addr $I10, rxcap_344_fail
+    rx339_cur."!mark_push"(0, rx339_pos, $I10)
   # rx literal  "INIT"
-    add $I11, rx362_pos, 4
-    gt $I11, rx362_eos, rx362_fail
-    sub $I11, rx362_pos, rx362_off
-    substr $S10, rx362_tgt, $I11, 4
-    ne $S10, "INIT", rx362_fail
-    add rx362_pos, 4
-    set_addr $I10, rxcap_367_fail
-    ($I12, $I11) = rx362_cur."!mark_peek"($I10)
-    rx362_cur."!cursor_pos"($I11)
-    ($P10) = rx362_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx362_pos, "")
-    rx362_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx339_pos, 4
+    gt $I11, rx339_eos, rx339_fail
+    sub $I11, rx339_pos, rx339_off
+    substr $S10, rx339_tgt, $I11, 4
+    ne $S10, "INIT", rx339_fail
+    add rx339_pos, 4
+    set_addr $I10, rxcap_344_fail
+    ($I12, $I11) = rx339_cur."!mark_peek"($I10)
+    rx339_cur."!cursor_pos"($I11)
+    ($P10) = rx339_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx339_pos, "")
+    rx339_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_367_done
-  rxcap_367_fail:
-    goto rx362_fail
-  rxcap_367_done:
+    goto rxcap_344_done
+  rxcap_344_fail:
+    goto rx339_fail
+  rxcap_344_done:
   # rx subrule "blorst" subtype=capture negate=
-    rx362_cur."!cursor_pos"(rx362_pos)
-    $P10 = rx362_cur."blorst"()
-    unless $P10, rx362_fail
-    rx362_cur."!mark_push"(0, -1, 0, $P10)
+    rx339_cur."!cursor_pos"(rx339_pos)
+    $P10 = rx339_cur."blorst"()
+    unless $P10, rx339_fail
+    rx339_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blorst")
-    rx362_pos = $P10."pos"()
+    rx339_pos = $P10."pos"()
   # rx pass
-    rx362_cur."!cursor_pass"(rx362_pos, "statement_prefix:sym<INIT>")
-    rx362_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<INIT>", " at pos=", rx362_pos)
-    .return (rx362_cur)
-  rx362_fail:
+    rx339_cur."!cursor_pass"(rx339_pos, "statement_prefix:sym<INIT>")
+    rx339_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<INIT>", " at pos=", rx339_pos)
+    .return (rx339_cur)
+  rx339_restart:
 .annotate 'line', 4
-    (rx362_rep, rx362_pos, $I10, $P10) = rx362_cur."!mark_fail"(0)
-    lt rx362_pos, -1, rx362_done
-    eq rx362_pos, -1, rx362_fail
+    rx339_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<INIT>")
+  rx339_fail:
+    (rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0)
+    lt rx339_pos, -1, rx339_done
+    eq rx339_pos, -1, rx339_fail
     jump $I10
-  rx362_done:
-    rx362_cur."!cursor_fail"()
-    rx362_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
-    .return (rx362_cur)
+  rx339_done:
+    rx339_cur."!cursor_fail"()
+    rx339_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
+    .return (rx339_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1278500537.15927") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1279564397.22945") :method
 .annotate 'line', 4
-    $P364 = self."!PREFIX__!subrule"("blorst", "INIT")
-    new $P365, "ResizablePMCArray"
-    push $P365, $P364
-    .return ($P365)
+    $P341 = self."!PREFIX__!subrule"("blorst", "INIT")
+    new $P342, "ResizablePMCArray"
+    push $P342, $P341
+    .return ($P342)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("81_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_prefix:sym<try>"  :subid("81_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx369_tgt
-    .local int rx369_pos
-    .local int rx369_off
-    .local int rx369_eos
-    .local int rx369_rep
-    .local pmc rx369_cur
-    (rx369_cur, rx369_pos, rx369_tgt) = self."!cursor_start"()
-    rx369_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
-    .lex unicode:"$\x{a2}", rx369_cur
+    .local string rx346_tgt
+    .local int rx346_pos
+    .local int rx346_off
+    .local int rx346_eos
+    .local int rx346_rep
+    .local pmc rx346_cur
+    (rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx346_cur
     .local pmc match
     .lex "$/", match
-    length rx369_eos, rx369_tgt
-    gt rx369_pos, rx369_eos, rx369_done
-    set rx369_off, 0
-    lt rx369_pos, 2, rx369_start
-    sub rx369_off, rx369_pos, 1
-    substr rx369_tgt, rx369_tgt, rx369_off
-  rx369_start:
+    length rx346_eos, rx346_tgt
+    gt rx346_pos, rx346_eos, rx346_done
+    set rx346_off, 0
+    lt rx346_pos, 2, rx346_start
+    sub rx346_off, rx346_pos, 1
+    substr rx346_tgt, rx346_tgt, rx346_off
+  rx346_start:
+    eq $I10, 1, rx346_restart
+    rx346_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan373_done
-    goto rxscan373_scan
-  rxscan373_loop:
-    ($P10) = rx369_cur."from"()
+    ne $I10, -1, rxscan350_done
+    goto rxscan350_scan
+  rxscan350_loop:
+    ($P10) = rx346_cur."from"()
     inc $P10
-    set rx369_pos, $P10
-    ge rx369_pos, rx369_eos, rxscan373_done
-  rxscan373_scan:
-    set_addr $I10, rxscan373_loop
-    rx369_cur."!mark_push"(0, rx369_pos, $I10)
-  rxscan373_done:
+    set rx346_pos, $P10
+    ge rx346_pos, rx346_eos, rxscan350_done
+  rxscan350_scan:
+    set_addr $I10, rxscan350_loop
+    rx346_cur."!mark_push"(0, rx346_pos, $I10)
+  rxscan350_done:
 .annotate 'line', 202
   # rx subcapture "sym"
-    set_addr $I10, rxcap_374_fail
-    rx369_cur."!mark_push"(0, rx369_pos, $I10)
+    set_addr $I10, rxcap_351_fail
+    rx346_cur."!mark_push"(0, rx346_pos, $I10)
   # rx literal  "try"
-    add $I11, rx369_pos, 3
-    gt $I11, rx369_eos, rx369_fail
-    sub $I11, rx369_pos, rx369_off
-    substr $S10, rx369_tgt, $I11, 3
-    ne $S10, "try", rx369_fail
-    add rx369_pos, 3
-    set_addr $I10, rxcap_374_fail
-    ($I12, $I11) = rx369_cur."!mark_peek"($I10)
-    rx369_cur."!cursor_pos"($I11)
-    ($P10) = rx369_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx369_pos, "")
-    rx369_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx346_pos, 3
+    gt $I11, rx346_eos, rx346_fail
+    sub $I11, rx346_pos, rx346_off
+    substr $S10, rx346_tgt, $I11, 3
+    ne $S10, "try", rx346_fail
+    add rx346_pos, 3
+    set_addr $I10, rxcap_351_fail
+    ($I12, $I11) = rx346_cur."!mark_peek"($I10)
+    rx346_cur."!cursor_pos"($I11)
+    ($P10) = rx346_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx346_pos, "")
+    rx346_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_374_done
-  rxcap_374_fail:
-    goto rx369_fail
-  rxcap_374_done:
+    goto rxcap_351_done
+  rxcap_351_fail:
+    goto rx346_fail
+  rxcap_351_done:
 .annotate 'line', 203
   # rx subrule "blorst" subtype=capture negate=
-    rx369_cur."!cursor_pos"(rx369_pos)
-    $P10 = rx369_cur."blorst"()
-    unless $P10, rx369_fail
-    rx369_cur."!mark_push"(0, -1, 0, $P10)
+    rx346_cur."!cursor_pos"(rx346_pos)
+    $P10 = rx346_cur."blorst"()
+    unless $P10, rx346_fail
+    rx346_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blorst")
-    rx369_pos = $P10."pos"()
+    rx346_pos = $P10."pos"()
 .annotate 'line', 201
   # rx pass
-    rx369_cur."!cursor_pass"(rx369_pos, "statement_prefix:sym<try>")
-    rx369_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<try>", " at pos=", rx369_pos)
-    .return (rx369_cur)
-  rx369_fail:
+    rx346_cur."!cursor_pass"(rx346_pos, "statement_prefix:sym<try>")
+    rx346_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<try>", " at pos=", rx346_pos)
+    .return (rx346_cur)
+  rx346_restart:
 .annotate 'line', 4
-    (rx369_rep, rx369_pos, $I10, $P10) = rx369_cur."!mark_fail"(0)
-    lt rx369_pos, -1, rx369_done
-    eq rx369_pos, -1, rx369_fail
+    rx346_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<try>")
+  rx346_fail:
+    (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0)
+    lt rx346_pos, -1, rx346_done
+    eq rx346_pos, -1, rx346_fail
     jump $I10
-  rx369_done:
-    rx369_cur."!cursor_fail"()
-    rx369_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
-    .return (rx369_cur)
+  rx346_done:
+    rx346_cur."!cursor_fail"()
+    rx346_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
+    .return (rx346_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1278500537.15927") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1279564397.22945") :method
 .annotate 'line', 4
-    $P371 = self."!PREFIX__!subrule"("blorst", "try")
-    new $P372, "ResizablePMCArray"
-    push $P372, $P371
-    .return ($P372)
+    $P348 = self."!PREFIX__!subrule"("blorst", "try")
+    new $P349, "ResizablePMCArray"
+    push $P349, $P348
+    .return ($P349)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("83_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "blorst"  :subid("83_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx376_tgt
-    .local int rx376_pos
-    .local int rx376_off
-    .local int rx376_eos
-    .local int rx376_rep
-    .local pmc rx376_cur
-    (rx376_cur, rx376_pos, rx376_tgt) = self."!cursor_start"()
-    rx376_cur."!cursor_debug"("START ", "blorst")
-    .lex unicode:"$\x{a2}", rx376_cur
+    .local string rx353_tgt
+    .local int rx353_pos
+    .local int rx353_off
+    .local int rx353_eos
+    .local int rx353_rep
+    .local pmc rx353_cur
+    (rx353_cur, rx353_pos, rx353_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx353_cur
     .local pmc match
     .lex "$/", match
-    length rx376_eos, rx376_tgt
-    gt rx376_pos, rx376_eos, rx376_done
-    set rx376_off, 0
-    lt rx376_pos, 2, rx376_start
-    sub rx376_off, rx376_pos, 1
-    substr rx376_tgt, rx376_tgt, rx376_off
-  rx376_start:
+    length rx353_eos, rx353_tgt
+    gt rx353_pos, rx353_eos, rx353_done
+    set rx353_off, 0
+    lt rx353_pos, 2, rx353_start
+    sub rx353_off, rx353_pos, 1
+    substr rx353_tgt, rx353_tgt, rx353_off
+  rx353_start:
+    eq $I10, 1, rx353_restart
+    rx353_cur."!cursor_debug"("START ", "blorst")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan379_done
-    goto rxscan379_scan
-  rxscan379_loop:
-    ($P10) = rx376_cur."from"()
+    ne $I10, -1, rxscan356_done
+    goto rxscan356_scan
+  rxscan356_loop:
+    ($P10) = rx353_cur."from"()
     inc $P10
-    set rx376_pos, $P10
-    ge rx376_pos, rx376_eos, rxscan379_done
-  rxscan379_scan:
-    set_addr $I10, rxscan379_loop
-    rx376_cur."!mark_push"(0, rx376_pos, $I10)
-  rxscan379_done:
+    set rx353_pos, $P10
+    ge rx353_pos, rx353_eos, rxscan356_done
+  rxscan356_scan:
+    set_addr $I10, rxscan356_loop
+    rx353_cur."!mark_push"(0, rx353_pos, $I10)
+  rxscan356_done:
 .annotate 'line', 207
   # rx charclass s
-    ge rx376_pos, rx376_eos, rx376_fail
-    sub $I10, rx376_pos, rx376_off
-    is_cclass $I11, 32, rx376_tgt, $I10
-    unless $I11, rx376_fail
-    inc rx376_pos
-  # rx subrule "ws" subtype=method negate=
-    rx376_cur."!cursor_pos"(rx376_pos)
-    $P10 = rx376_cur."ws"()
-    unless $P10, rx376_fail
-    rx376_pos = $P10."pos"()
-  alt380_0:
-    set_addr $I10, alt380_1
-    rx376_cur."!mark_push"(0, rx376_pos, $I10)
+    ge rx353_pos, rx353_eos, rx353_fail
+    sub $I10, rx353_pos, rx353_off
+    is_cclass $I11, 32, rx353_tgt, $I10
+    unless $I11, rx353_fail
+    inc rx353_pos
+  # rx subrule "ws" subtype=method negate=
+    rx353_cur."!cursor_pos"(rx353_pos)
+    $P10 = rx353_cur."ws"()
+    unless $P10, rx353_fail
+    rx353_pos = $P10."pos"()
+  alt357_0:
+    set_addr $I10, alt357_1
+    rx353_cur."!mark_push"(0, rx353_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx376_pos, rx376_eos, rx376_fail
-    sub $I10, rx376_pos, rx376_off
-    substr $S10, rx376_tgt, $I10, 1
+    ge rx353_pos, rx353_eos, rx353_fail
+    sub $I10, rx353_pos, rx353_off
+    substr $S10, rx353_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx376_fail
+    lt $I11, 0, rx353_fail
   # rx subrule "block" subtype=capture negate=
-    rx376_cur."!cursor_pos"(rx376_pos)
-    $P10 = rx376_cur."block"()
-    unless $P10, rx376_fail
-    rx376_cur."!mark_push"(0, -1, 0, $P10)
+    rx353_cur."!cursor_pos"(rx353_pos)
+    $P10 = rx353_cur."block"()
+    unless $P10, rx353_fail
+    rx353_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx376_pos = $P10."pos"()
-    goto alt380_end
-  alt380_1:
+    rx353_pos = $P10."pos"()
+    goto alt357_end
+  alt357_1:
   # rx subrule "statement" subtype=capture negate=
-    rx376_cur."!cursor_pos"(rx376_pos)
-    $P10 = rx376_cur."statement"()
-    unless $P10, rx376_fail
-    rx376_cur."!mark_push"(0, -1, 0, $P10)
+    rx353_cur."!cursor_pos"(rx353_pos)
+    $P10 = rx353_cur."statement"()
+    unless $P10, rx353_fail
+    rx353_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx376_pos = $P10."pos"()
-  alt380_end:
+    rx353_pos = $P10."pos"()
+  alt357_end:
 .annotate 'line', 206
   # rx pass
-    rx376_cur."!cursor_pass"(rx376_pos, "blorst")
-    rx376_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx376_pos)
-    .return (rx376_cur)
-  rx376_fail:
+    rx353_cur."!cursor_pass"(rx353_pos, "blorst")
+    rx353_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx353_pos)
+    .return (rx353_cur)
+  rx353_restart:
 .annotate 'line', 4
-    (rx376_rep, rx376_pos, $I10, $P10) = rx376_cur."!mark_fail"(0)
-    lt rx376_pos, -1, rx376_done
-    eq rx376_pos, -1, rx376_fail
+    rx353_cur."!cursor_debug"("NEXT ", "blorst")
+  rx353_fail:
+    (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
+    lt rx353_pos, -1, rx353_done
+    eq rx353_pos, -1, rx353_fail
     jump $I10
-  rx376_done:
-    rx376_cur."!cursor_fail"()
-    rx376_cur."!cursor_debug"("FAIL  ", "blorst")
-    .return (rx376_cur)
+  rx353_done:
+    rx353_cur."!cursor_fail"()
+    rx353_cur."!cursor_debug"("FAIL  ", "blorst")
+    .return (rx353_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("84_1278500537.15927") :method
+.sub "!PREFIX__blorst"  :subid("84_1279564397.22945") :method
 .annotate 'line', 4
-    new $P378, "ResizablePMCArray"
-    push $P378, ""
-    .return ($P378)
+    new $P355, "ResizablePMCArray"
+    push $P355, ""
+    .return ($P355)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("85_1278500537.15927") :method
+.sub "statement_mod_cond"  :subid("85_1279564397.22945") :method
 .annotate 'line', 212
-    $P382 = self."!protoregex"("statement_mod_cond")
-    .return ($P382)
+    $P359 = self."!protoregex"("statement_mod_cond")
+    .return ($P359)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("86_1278500537.15927") :method
+.sub "!PREFIX__statement_mod_cond"  :subid("86_1279564397.22945") :method
 .annotate 'line', 212
-    $P384 = self."!PREFIX__!protoregex"("statement_mod_cond")
-    .return ($P384)
+    $P361 = self."!PREFIX__!protoregex"("statement_mod_cond")
+    .return ($P361)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("87_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_mod_cond:sym<if>"  :subid("87_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx386_tgt
-    .local int rx386_pos
-    .local int rx386_off
-    .local int rx386_eos
-    .local int rx386_rep
-    .local pmc rx386_cur
-    (rx386_cur, rx386_pos, rx386_tgt) = self."!cursor_start"()
-    rx386_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
-    .lex unicode:"$\x{a2}", rx386_cur
-    .local pmc match
-    .lex "$/", match
-    length rx386_eos, rx386_tgt
-    gt rx386_pos, rx386_eos, rx386_done
-    set rx386_off, 0
-    lt rx386_pos, 2, rx386_start
-    sub rx386_off, rx386_pos, 1
-    substr rx386_tgt, rx386_tgt, rx386_off
-  rx386_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan390_done
-    goto rxscan390_scan
-  rxscan390_loop:
-    ($P10) = rx386_cur."from"()
-    inc $P10
-    set rx386_pos, $P10
-    ge rx386_pos, rx386_eos, rxscan390_done
-  rxscan390_scan:
-    set_addr $I10, rxscan390_loop
-    rx386_cur."!mark_push"(0, rx386_pos, $I10)
-  rxscan390_done:
+    .local string rx363_tgt
+    .local int rx363_pos
+    .local int rx363_off
+    .local int rx363_eos
+    .local int rx363_rep
+    .local pmc rx363_cur
+    (rx363_cur, rx363_pos, rx363_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx363_cur
+    .local pmc match
+    .lex "$/", match
+    length rx363_eos, rx363_tgt
+    gt rx363_pos, rx363_eos, rx363_done
+    set rx363_off, 0
+    lt rx363_pos, 2, rx363_start
+    sub rx363_off, rx363_pos, 1
+    substr rx363_tgt, rx363_tgt, rx363_off
+  rx363_start:
+    eq $I10, 1, rx363_restart
+    rx363_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan367_done
+    goto rxscan367_scan
+  rxscan367_loop:
+    ($P10) = rx363_cur."from"()
+    inc $P10
+    set rx363_pos, $P10
+    ge rx363_pos, rx363_eos, rxscan367_done
+  rxscan367_scan:
+    set_addr $I10, rxscan367_loop
+    rx363_cur."!mark_push"(0, rx363_pos, $I10)
+  rxscan367_done:
 .annotate 'line', 214
   # rx subcapture "sym"
-    set_addr $I10, rxcap_391_fail
-    rx386_cur."!mark_push"(0, rx386_pos, $I10)
+    set_addr $I10, rxcap_368_fail
+    rx363_cur."!mark_push"(0, rx363_pos, $I10)
   # rx literal  "if"
-    add $I11, rx386_pos, 2
-    gt $I11, rx386_eos, rx386_fail
-    sub $I11, rx386_pos, rx386_off
-    substr $S10, rx386_tgt, $I11, 2
-    ne $S10, "if", rx386_fail
-    add rx386_pos, 2
-    set_addr $I10, rxcap_391_fail
-    ($I12, $I11) = rx386_cur."!mark_peek"($I10)
-    rx386_cur."!cursor_pos"($I11)
-    ($P10) = rx386_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx386_pos, "")
-    rx386_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx363_pos, 2
+    gt $I11, rx363_eos, rx363_fail
+    sub $I11, rx363_pos, rx363_off
+    substr $S10, rx363_tgt, $I11, 2
+    ne $S10, "if", rx363_fail
+    add rx363_pos, 2
+    set_addr $I10, rxcap_368_fail
+    ($I12, $I11) = rx363_cur."!mark_peek"($I10)
+    rx363_cur."!cursor_pos"($I11)
+    ($P10) = rx363_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx363_pos, "")
+    rx363_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_391_done
-  rxcap_391_fail:
-    goto rx386_fail
-  rxcap_391_done:
-  # rx subrule "ws" subtype=method negate=
-    rx386_cur."!cursor_pos"(rx386_pos)
-    $P10 = rx386_cur."ws"()
-    unless $P10, rx386_fail
-    rx386_pos = $P10."pos"()
+    goto rxcap_368_done
+  rxcap_368_fail:
+    goto rx363_fail
+  rxcap_368_done:
+  # rx subrule "ws" subtype=method negate=
+    rx363_cur."!cursor_pos"(rx363_pos)
+    $P10 = rx363_cur."ws"()
+    unless $P10, rx363_fail
+    rx363_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx386_cur."!cursor_pos"(rx386_pos)
-    $P10 = rx386_cur."EXPR"()
-    unless $P10, rx386_fail
-    rx386_cur."!mark_push"(0, -1, 0, $P10)
+    rx363_cur."!cursor_pos"(rx363_pos)
+    $P10 = rx363_cur."EXPR"()
+    unless $P10, rx363_fail
+    rx363_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx386_pos = $P10."pos"()
+    rx363_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx386_cur."!cursor_pos"(rx386_pos)
-    $P10 = rx386_cur."ws"()
-    unless $P10, rx386_fail
-    rx386_pos = $P10."pos"()
+    rx363_cur."!cursor_pos"(rx363_pos)
+    $P10 = rx363_cur."ws"()
+    unless $P10, rx363_fail
+    rx363_pos = $P10."pos"()
   # rx pass
-    rx386_cur."!cursor_pass"(rx386_pos, "statement_mod_cond:sym<if>")
-    rx386_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<if>", " at pos=", rx386_pos)
-    .return (rx386_cur)
-  rx386_fail:
+    rx363_cur."!cursor_pass"(rx363_pos, "statement_mod_cond:sym<if>")
+    rx363_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<if>", " at pos=", rx363_pos)
+    .return (rx363_cur)
+  rx363_restart:
 .annotate 'line', 4
-    (rx386_rep, rx386_pos, $I10, $P10) = rx386_cur."!mark_fail"(0)
-    lt rx386_pos, -1, rx386_done
-    eq rx386_pos, -1, rx386_fail
+    rx363_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<if>")
+  rx363_fail:
+    (rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0)
+    lt rx363_pos, -1, rx363_done
+    eq rx363_pos, -1, rx363_fail
     jump $I10
-  rx386_done:
-    rx386_cur."!cursor_fail"()
-    rx386_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
-    .return (rx386_cur)
+  rx363_done:
+    rx363_cur."!cursor_fail"()
+    rx363_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
+    .return (rx363_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1278500537.15927") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1279564397.22945") :method
 .annotate 'line', 4
-    $P388 = self."!PREFIX__!subrule"("ws", "if")
-    new $P389, "ResizablePMCArray"
-    push $P389, $P388
-    .return ($P389)
+    $P365 = self."!PREFIX__!subrule"("ws", "if")
+    new $P366, "ResizablePMCArray"
+    push $P366, $P365
+    .return ($P366)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("89_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_mod_cond:sym<unless>"  :subid("89_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx395_tgt
-    .local int rx395_pos
-    .local int rx395_off
-    .local int rx395_eos
-    .local int rx395_rep
-    .local pmc rx395_cur
-    (rx395_cur, rx395_pos, rx395_tgt) = self."!cursor_start"()
-    rx395_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
-    .lex unicode:"$\x{a2}", rx395_cur
+    .local string rx372_tgt
+    .local int rx372_pos
+    .local int rx372_off
+    .local int rx372_eos
+    .local int rx372_rep
+    .local pmc rx372_cur
+    (rx372_cur, rx372_pos, rx372_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx372_cur
     .local pmc match
     .lex "$/", match
-    length rx395_eos, rx395_tgt
-    gt rx395_pos, rx395_eos, rx395_done
-    set rx395_off, 0
-    lt rx395_pos, 2, rx395_start
-    sub rx395_off, rx395_pos, 1
-    substr rx395_tgt, rx395_tgt, rx395_off
-  rx395_start:
+    length rx372_eos, rx372_tgt
+    gt rx372_pos, rx372_eos, rx372_done
+    set rx372_off, 0
+    lt rx372_pos, 2, rx372_start
+    sub rx372_off, rx372_pos, 1
+    substr rx372_tgt, rx372_tgt, rx372_off
+  rx372_start:
+    eq $I10, 1, rx372_restart
+    rx372_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan399_done
-    goto rxscan399_scan
-  rxscan399_loop:
-    ($P10) = rx395_cur."from"()
+    ne $I10, -1, rxscan376_done
+    goto rxscan376_scan
+  rxscan376_loop:
+    ($P10) = rx372_cur."from"()
     inc $P10
-    set rx395_pos, $P10
-    ge rx395_pos, rx395_eos, rxscan399_done
-  rxscan399_scan:
-    set_addr $I10, rxscan399_loop
-    rx395_cur."!mark_push"(0, rx395_pos, $I10)
-  rxscan399_done:
+    set rx372_pos, $P10
+    ge rx372_pos, rx372_eos, rxscan376_done
+  rxscan376_scan:
+    set_addr $I10, rxscan376_loop
+    rx372_cur."!mark_push"(0, rx372_pos, $I10)
+  rxscan376_done:
 .annotate 'line', 215
   # rx subcapture "sym"
-    set_addr $I10, rxcap_400_fail
-    rx395_cur."!mark_push"(0, rx395_pos, $I10)
+    set_addr $I10, rxcap_377_fail
+    rx372_cur."!mark_push"(0, rx372_pos, $I10)
   # rx literal  "unless"
-    add $I11, rx395_pos, 6
-    gt $I11, rx395_eos, rx395_fail
-    sub $I11, rx395_pos, rx395_off
-    substr $S10, rx395_tgt, $I11, 6
-    ne $S10, "unless", rx395_fail
-    add rx395_pos, 6
-    set_addr $I10, rxcap_400_fail
-    ($I12, $I11) = rx395_cur."!mark_peek"($I10)
-    rx395_cur."!cursor_pos"($I11)
-    ($P10) = rx395_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx395_pos, "")
-    rx395_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx372_pos, 6
+    gt $I11, rx372_eos, rx372_fail
+    sub $I11, rx372_pos, rx372_off
+    substr $S10, rx372_tgt, $I11, 6
+    ne $S10, "unless", rx372_fail
+    add rx372_pos, 6
+    set_addr $I10, rxcap_377_fail
+    ($I12, $I11) = rx372_cur."!mark_peek"($I10)
+    rx372_cur."!cursor_pos"($I11)
+    ($P10) = rx372_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx372_pos, "")
+    rx372_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_400_done
-  rxcap_400_fail:
-    goto rx395_fail
-  rxcap_400_done:
-  # rx subrule "ws" subtype=method negate=
-    rx395_cur."!cursor_pos"(rx395_pos)
-    $P10 = rx395_cur."ws"()
-    unless $P10, rx395_fail
-    rx395_pos = $P10."pos"()
+    goto rxcap_377_done
+  rxcap_377_fail:
+    goto rx372_fail
+  rxcap_377_done:
+  # rx subrule "ws" subtype=method negate=
+    rx372_cur."!cursor_pos"(rx372_pos)
+    $P10 = rx372_cur."ws"()
+    unless $P10, rx372_fail
+    rx372_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx395_cur."!cursor_pos"(rx395_pos)
-    $P10 = rx395_cur."EXPR"()
-    unless $P10, rx395_fail
-    rx395_cur."!mark_push"(0, -1, 0, $P10)
+    rx372_cur."!cursor_pos"(rx372_pos)
+    $P10 = rx372_cur."EXPR"()
+    unless $P10, rx372_fail
+    rx372_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx395_pos = $P10."pos"()
+    rx372_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx395_cur."!cursor_pos"(rx395_pos)
-    $P10 = rx395_cur."ws"()
-    unless $P10, rx395_fail
-    rx395_pos = $P10."pos"()
+    rx372_cur."!cursor_pos"(rx372_pos)
+    $P10 = rx372_cur."ws"()
+    unless $P10, rx372_fail
+    rx372_pos = $P10."pos"()
   # rx pass
-    rx395_cur."!cursor_pass"(rx395_pos, "statement_mod_cond:sym<unless>")
-    rx395_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<unless>", " at pos=", rx395_pos)
-    .return (rx395_cur)
-  rx395_fail:
+    rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym<unless>")
+    rx372_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
+    .return (rx372_cur)
+  rx372_restart:
 .annotate 'line', 4
-    (rx395_rep, rx395_pos, $I10, $P10) = rx395_cur."!mark_fail"(0)
-    lt rx395_pos, -1, rx395_done
-    eq rx395_pos, -1, rx395_fail
+    rx372_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<unless>")
+  rx372_fail:
+    (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
+    lt rx372_pos, -1, rx372_done
+    eq rx372_pos, -1, rx372_fail
     jump $I10
-  rx395_done:
-    rx395_cur."!cursor_fail"()
-    rx395_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
-    .return (rx395_cur)
+  rx372_done:
+    rx372_cur."!cursor_fail"()
+    rx372_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
+    .return (rx372_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1278500537.15927") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1279564397.22945") :method
 .annotate 'line', 4
-    $P397 = self."!PREFIX__!subrule"("ws", "unless")
-    new $P398, "ResizablePMCArray"
-    push $P398, $P397
-    .return ($P398)
+    $P374 = self."!PREFIX__!subrule"("ws", "unless")
+    new $P375, "ResizablePMCArray"
+    push $P375, $P374
+    .return ($P375)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("91_1278500537.15927") :method
+.sub "statement_mod_loop"  :subid("91_1279564397.22945") :method
 .annotate 'line', 217
-    $P404 = self."!protoregex"("statement_mod_loop")
-    .return ($P404)
+    $P381 = self."!protoregex"("statement_mod_loop")
+    .return ($P381)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("92_1278500537.15927") :method
+.sub "!PREFIX__statement_mod_loop"  :subid("92_1279564397.22945") :method
 .annotate 'line', 217
-    $P406 = self."!PREFIX__!protoregex"("statement_mod_loop")
-    .return ($P406)
+    $P383 = self."!PREFIX__!protoregex"("statement_mod_loop")
+    .return ($P383)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("93_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_mod_loop:sym<while>"  :subid("93_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx408_tgt
-    .local int rx408_pos
-    .local int rx408_off
-    .local int rx408_eos
-    .local int rx408_rep
-    .local pmc rx408_cur
-    (rx408_cur, rx408_pos, rx408_tgt) = self."!cursor_start"()
-    rx408_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
-    .lex unicode:"$\x{a2}", rx408_cur
-    .local pmc match
-    .lex "$/", match
-    length rx408_eos, rx408_tgt
-    gt rx408_pos, rx408_eos, rx408_done
-    set rx408_off, 0
-    lt rx408_pos, 2, rx408_start
-    sub rx408_off, rx408_pos, 1
-    substr rx408_tgt, rx408_tgt, rx408_off
-  rx408_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan412_done
-    goto rxscan412_scan
-  rxscan412_loop:
-    ($P10) = rx408_cur."from"()
-    inc $P10
-    set rx408_pos, $P10
-    ge rx408_pos, rx408_eos, rxscan412_done
-  rxscan412_scan:
-    set_addr $I10, rxscan412_loop
-    rx408_cur."!mark_push"(0, rx408_pos, $I10)
-  rxscan412_done:
+    .local string rx385_tgt
+    .local int rx385_pos
+    .local int rx385_off
+    .local int rx385_eos
+    .local int rx385_rep
+    .local pmc rx385_cur
+    (rx385_cur, rx385_pos, rx385_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx385_cur
+    .local pmc match
+    .lex "$/", match
+    length rx385_eos, rx385_tgt
+    gt rx385_pos, rx385_eos, rx385_done
+    set rx385_off, 0
+    lt rx385_pos, 2, rx385_start
+    sub rx385_off, rx385_pos, 1
+    substr rx385_tgt, rx385_tgt, rx385_off
+  rx385_start:
+    eq $I10, 1, rx385_restart
+    rx385_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan389_done
+    goto rxscan389_scan
+  rxscan389_loop:
+    ($P10) = rx385_cur."from"()
+    inc $P10
+    set rx385_pos, $P10
+    ge rx385_pos, rx385_eos, rxscan389_done
+  rxscan389_scan:
+    set_addr $I10, rxscan389_loop
+    rx385_cur."!mark_push"(0, rx385_pos, $I10)
+  rxscan389_done:
 .annotate 'line', 219
   # rx subcapture "sym"
-    set_addr $I10, rxcap_413_fail
-    rx408_cur."!mark_push"(0, rx408_pos, $I10)
+    set_addr $I10, rxcap_390_fail
+    rx385_cur."!mark_push"(0, rx385_pos, $I10)
   # rx literal  "while"
-    add $I11, rx408_pos, 5
-    gt $I11, rx408_eos, rx408_fail
-    sub $I11, rx408_pos, rx408_off
-    substr $S10, rx408_tgt, $I11, 5
-    ne $S10, "while", rx408_fail
-    add rx408_pos, 5
-    set_addr $I10, rxcap_413_fail
-    ($I12, $I11) = rx408_cur."!mark_peek"($I10)
-    rx408_cur."!cursor_pos"($I11)
-    ($P10) = rx408_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx408_pos, "")
-    rx408_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx385_pos, 5
+    gt $I11, rx385_eos, rx385_fail
+    sub $I11, rx385_pos, rx385_off
+    substr $S10, rx385_tgt, $I11, 5
+    ne $S10, "while", rx385_fail
+    add rx385_pos, 5
+    set_addr $I10, rxcap_390_fail
+    ($I12, $I11) = rx385_cur."!mark_peek"($I10)
+    rx385_cur."!cursor_pos"($I11)
+    ($P10) = rx385_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx385_pos, "")
+    rx385_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_413_done
-  rxcap_413_fail:
-    goto rx408_fail
-  rxcap_413_done:
-  # rx subrule "ws" subtype=method negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."ws"()
-    unless $P10, rx408_fail
-    rx408_pos = $P10."pos"()
+    goto rxcap_390_done
+  rxcap_390_fail:
+    goto rx385_fail
+  rxcap_390_done:
+  # rx subrule "ws" subtype=method negate=
+    rx385_cur."!cursor_pos"(rx385_pos)
+    $P10 = rx385_cur."ws"()
+    unless $P10, rx385_fail
+    rx385_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."EXPR"()
-    unless $P10, rx408_fail
-    rx408_cur."!mark_push"(0, -1, 0, $P10)
+    rx385_cur."!cursor_pos"(rx385_pos)
+    $P10 = rx385_cur."EXPR"()
+    unless $P10, rx385_fail
+    rx385_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx408_pos = $P10."pos"()
+    rx385_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx408_cur."!cursor_pos"(rx408_pos)
-    $P10 = rx408_cur."ws"()
-    unless $P10, rx408_fail
-    rx408_pos = $P10."pos"()
+    rx385_cur."!cursor_pos"(rx385_pos)
+    $P10 = rx385_cur."ws"()
+    unless $P10, rx385_fail
+    rx385_pos = $P10."pos"()
   # rx pass
-    rx408_cur."!cursor_pass"(rx408_pos, "statement_mod_loop:sym<while>")
-    rx408_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<while>", " at pos=", rx408_pos)
-    .return (rx408_cur)
-  rx408_fail:
+    rx385_cur."!cursor_pass"(rx385_pos, "statement_mod_loop:sym<while>")
+    rx385_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<while>", " at pos=", rx385_pos)
+    .return (rx385_cur)
+  rx385_restart:
 .annotate 'line', 4
-    (rx408_rep, rx408_pos, $I10, $P10) = rx408_cur."!mark_fail"(0)
-    lt rx408_pos, -1, rx408_done
-    eq rx408_pos, -1, rx408_fail
+    rx385_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<while>")
+  rx385_fail:
+    (rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0)
+    lt rx385_pos, -1, rx385_done
+    eq rx385_pos, -1, rx385_fail
     jump $I10
-  rx408_done:
-    rx408_cur."!cursor_fail"()
-    rx408_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
-    .return (rx408_cur)
+  rx385_done:
+    rx385_cur."!cursor_fail"()
+    rx385_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
+    .return (rx385_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1278500537.15927") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1279564397.22945") :method
 .annotate 'line', 4
-    $P410 = self."!PREFIX__!subrule"("ws", "while")
-    new $P411, "ResizablePMCArray"
-    push $P411, $P410
-    .return ($P411)
+    $P387 = self."!PREFIX__!subrule"("ws", "while")
+    new $P388, "ResizablePMCArray"
+    push $P388, $P387
+    .return ($P388)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("95_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_mod_loop:sym<until>"  :subid("95_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx417_tgt
-    .local int rx417_pos
-    .local int rx417_off
-    .local int rx417_eos
-    .local int rx417_rep
-    .local pmc rx417_cur
-    (rx417_cur, rx417_pos, rx417_tgt) = self."!cursor_start"()
-    rx417_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
-    .lex unicode:"$\x{a2}", rx417_cur
+    .local string rx394_tgt
+    .local int rx394_pos
+    .local int rx394_off
+    .local int rx394_eos
+    .local int rx394_rep
+    .local pmc rx394_cur
+    (rx394_cur, rx394_pos, rx394_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx394_cur
     .local pmc match
     .lex "$/", match
-    length rx417_eos, rx417_tgt
-    gt rx417_pos, rx417_eos, rx417_done
-    set rx417_off, 0
-    lt rx417_pos, 2, rx417_start
-    sub rx417_off, rx417_pos, 1
-    substr rx417_tgt, rx417_tgt, rx417_off
-  rx417_start:
+    length rx394_eos, rx394_tgt
+    gt rx394_pos, rx394_eos, rx394_done
+    set rx394_off, 0
+    lt rx394_pos, 2, rx394_start
+    sub rx394_off, rx394_pos, 1
+    substr rx394_tgt, rx394_tgt, rx394_off
+  rx394_start:
+    eq $I10, 1, rx394_restart
+    rx394_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan421_done
-    goto rxscan421_scan
-  rxscan421_loop:
-    ($P10) = rx417_cur."from"()
+    ne $I10, -1, rxscan398_done
+    goto rxscan398_scan
+  rxscan398_loop:
+    ($P10) = rx394_cur."from"()
     inc $P10
-    set rx417_pos, $P10
-    ge rx417_pos, rx417_eos, rxscan421_done
-  rxscan421_scan:
-    set_addr $I10, rxscan421_loop
-    rx417_cur."!mark_push"(0, rx417_pos, $I10)
-  rxscan421_done:
+    set rx394_pos, $P10
+    ge rx394_pos, rx394_eos, rxscan398_done
+  rxscan398_scan:
+    set_addr $I10, rxscan398_loop
+    rx394_cur."!mark_push"(0, rx394_pos, $I10)
+  rxscan398_done:
 .annotate 'line', 220
   # rx subcapture "sym"
-    set_addr $I10, rxcap_422_fail
-    rx417_cur."!mark_push"(0, rx417_pos, $I10)
+    set_addr $I10, rxcap_399_fail
+    rx394_cur."!mark_push"(0, rx394_pos, $I10)
   # rx literal  "until"
-    add $I11, rx417_pos, 5
-    gt $I11, rx417_eos, rx417_fail
-    sub $I11, rx417_pos, rx417_off
-    substr $S10, rx417_tgt, $I11, 5
-    ne $S10, "until", rx417_fail
-    add rx417_pos, 5
-    set_addr $I10, rxcap_422_fail
-    ($I12, $I11) = rx417_cur."!mark_peek"($I10)
-    rx417_cur."!cursor_pos"($I11)
-    ($P10) = rx417_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx417_pos, "")
-    rx417_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx394_pos, 5
+    gt $I11, rx394_eos, rx394_fail
+    sub $I11, rx394_pos, rx394_off
+    substr $S10, rx394_tgt, $I11, 5
+    ne $S10, "until", rx394_fail
+    add rx394_pos, 5
+    set_addr $I10, rxcap_399_fail
+    ($I12, $I11) = rx394_cur."!mark_peek"($I10)
+    rx394_cur."!cursor_pos"($I11)
+    ($P10) = rx394_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx394_pos, "")
+    rx394_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_422_done
-  rxcap_422_fail:
-    goto rx417_fail
-  rxcap_422_done:
-  # rx subrule "ws" subtype=method negate=
-    rx417_cur."!cursor_pos"(rx417_pos)
-    $P10 = rx417_cur."ws"()
-    unless $P10, rx417_fail
-    rx417_pos = $P10."pos"()
+    goto rxcap_399_done
+  rxcap_399_fail:
+    goto rx394_fail
+  rxcap_399_done:
+  # rx subrule "ws" subtype=method negate=
+    rx394_cur."!cursor_pos"(rx394_pos)
+    $P10 = rx394_cur."ws"()
+    unless $P10, rx394_fail
+    rx394_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx417_cur."!cursor_pos"(rx417_pos)
-    $P10 = rx417_cur."EXPR"()
-    unless $P10, rx417_fail
-    rx417_cur."!mark_push"(0, -1, 0, $P10)
+    rx394_cur."!cursor_pos"(rx394_pos)
+    $P10 = rx394_cur."EXPR"()
+    unless $P10, rx394_fail
+    rx394_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx417_pos = $P10."pos"()
+    rx394_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx417_cur."!cursor_pos"(rx417_pos)
-    $P10 = rx417_cur."ws"()
-    unless $P10, rx417_fail
-    rx417_pos = $P10."pos"()
+    rx394_cur."!cursor_pos"(rx394_pos)
+    $P10 = rx394_cur."ws"()
+    unless $P10, rx394_fail
+    rx394_pos = $P10."pos"()
   # rx pass
-    rx417_cur."!cursor_pass"(rx417_pos, "statement_mod_loop:sym<until>")
-    rx417_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<until>", " at pos=", rx417_pos)
-    .return (rx417_cur)
-  rx417_fail:
+    rx394_cur."!cursor_pass"(rx394_pos, "statement_mod_loop:sym<until>")
+    rx394_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<until>", " at pos=", rx394_pos)
+    .return (rx394_cur)
+  rx394_restart:
 .annotate 'line', 4
-    (rx417_rep, rx417_pos, $I10, $P10) = rx417_cur."!mark_fail"(0)
-    lt rx417_pos, -1, rx417_done
-    eq rx417_pos, -1, rx417_fail
+    rx394_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<until>")
+  rx394_fail:
+    (rx394_rep, rx394_pos, $I10, $P10) = rx394_cur."!mark_fail"(0)
+    lt rx394_pos, -1, rx394_done
+    eq rx394_pos, -1, rx394_fail
     jump $I10
-  rx417_done:
-    rx417_cur."!cursor_fail"()
-    rx417_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
-    .return (rx417_cur)
+  rx394_done:
+    rx394_cur."!cursor_fail"()
+    rx394_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
+    .return (rx394_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1278500537.15927") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1279564397.22945") :method
 .annotate 'line', 4
-    $P419 = self."!PREFIX__!subrule"("ws", "until")
-    new $P420, "ResizablePMCArray"
-    push $P420, $P419
-    .return ($P420)
+    $P396 = self."!PREFIX__!subrule"("ws", "until")
+    new $P397, "ResizablePMCArray"
+    push $P397, $P396
+    .return ($P397)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<for>"  :subid("97_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "statement_mod_loop:sym<for>"  :subid("97_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx426_tgt
-    .local int rx426_pos
-    .local int rx426_off
-    .local int rx426_eos
-    .local int rx426_rep
-    .local pmc rx426_cur
-    (rx426_cur, rx426_pos, rx426_tgt) = self."!cursor_start"()
-    rx426_cur."!cursor_debug"("START ", "statement_mod_loop:sym<for>")
-    .lex unicode:"$\x{a2}", rx426_cur
+    .local string rx403_tgt
+    .local int rx403_pos
+    .local int rx403_off
+    .local int rx403_eos
+    .local int rx403_rep
+    .local pmc rx403_cur
+    (rx403_cur, rx403_pos, rx403_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx403_cur
     .local pmc match
     .lex "$/", match
-    length rx426_eos, rx426_tgt
-    gt rx426_pos, rx426_eos, rx426_done
-    set rx426_off, 0
-    lt rx426_pos, 2, rx426_start
-    sub rx426_off, rx426_pos, 1
-    substr rx426_tgt, rx426_tgt, rx426_off
-  rx426_start:
+    length rx403_eos, rx403_tgt
+    gt rx403_pos, rx403_eos, rx403_done
+    set rx403_off, 0
+    lt rx403_pos, 2, rx403_start
+    sub rx403_off, rx403_pos, 1
+    substr rx403_tgt, rx403_tgt, rx403_off
+  rx403_start:
+    eq $I10, 1, rx403_restart
+    rx403_cur."!cursor_debug"("START ", "statement_mod_loop:sym<for>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan430_done
-    goto rxscan430_scan
-  rxscan430_loop:
-    ($P10) = rx426_cur."from"()
+    ne $I10, -1, rxscan407_done
+    goto rxscan407_scan
+  rxscan407_loop:
+    ($P10) = rx403_cur."from"()
     inc $P10
-    set rx426_pos, $P10
-    ge rx426_pos, rx426_eos, rxscan430_done
-  rxscan430_scan:
-    set_addr $I10, rxscan430_loop
-    rx426_cur."!mark_push"(0, rx426_pos, $I10)
-  rxscan430_done:
+    set rx403_pos, $P10
+    ge rx403_pos, rx403_eos, rxscan407_done
+  rxscan407_scan:
+    set_addr $I10, rxscan407_loop
+    rx403_cur."!mark_push"(0, rx403_pos, $I10)
+  rxscan407_done:
 .annotate 'line', 221
   # rx subcapture "sym"
-    set_addr $I10, rxcap_431_fail
-    rx426_cur."!mark_push"(0, rx426_pos, $I10)
+    set_addr $I10, rxcap_408_fail
+    rx403_cur."!mark_push"(0, rx403_pos, $I10)
   # rx literal  "for"
-    add $I11, rx426_pos, 3
-    gt $I11, rx426_eos, rx426_fail
-    sub $I11, rx426_pos, rx426_off
-    substr $S10, rx426_tgt, $I11, 3
-    ne $S10, "for", rx426_fail
-    add rx426_pos, 3
-    set_addr $I10, rxcap_431_fail
-    ($I12, $I11) = rx426_cur."!mark_peek"($I10)
-    rx426_cur."!cursor_pos"($I11)
-    ($P10) = rx426_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx426_pos, "")
-    rx426_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx403_pos, 3
+    gt $I11, rx403_eos, rx403_fail
+    sub $I11, rx403_pos, rx403_off
+    substr $S10, rx403_tgt, $I11, 3
+    ne $S10, "for", rx403_fail
+    add rx403_pos, 3
+    set_addr $I10, rxcap_408_fail
+    ($I12, $I11) = rx403_cur."!mark_peek"($I10)
+    rx403_cur."!cursor_pos"($I11)
+    ($P10) = rx403_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx403_pos, "")
+    rx403_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_431_done
-  rxcap_431_fail:
-    goto rx426_fail
-  rxcap_431_done:
-  # rx subrule "ws" subtype=method negate=
-    rx426_cur."!cursor_pos"(rx426_pos)
-    $P10 = rx426_cur."ws"()
-    unless $P10, rx426_fail
-    rx426_pos = $P10."pos"()
+    goto rxcap_408_done
+  rxcap_408_fail:
+    goto rx403_fail
+  rxcap_408_done:
+  # rx subrule "ws" subtype=method negate=
+    rx403_cur."!cursor_pos"(rx403_pos)
+    $P10 = rx403_cur."ws"()
+    unless $P10, rx403_fail
+    rx403_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx426_cur."!cursor_pos"(rx426_pos)
-    $P10 = rx426_cur."EXPR"()
-    unless $P10, rx426_fail
-    rx426_cur."!mark_push"(0, -1, 0, $P10)
+    rx403_cur."!cursor_pos"(rx403_pos)
+    $P10 = rx403_cur."EXPR"()
+    unless $P10, rx403_fail
+    rx403_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx426_pos = $P10."pos"()
+    rx403_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx426_cur."!cursor_pos"(rx426_pos)
-    $P10 = rx426_cur."ws"()
-    unless $P10, rx426_fail
-    rx426_pos = $P10."pos"()
+    rx403_cur."!cursor_pos"(rx403_pos)
+    $P10 = rx403_cur."ws"()
+    unless $P10, rx403_fail
+    rx403_pos = $P10."pos"()
   # rx pass
-    rx426_cur."!cursor_pass"(rx426_pos, "statement_mod_loop:sym<for>")
-    rx426_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<for>", " at pos=", rx426_pos)
-    .return (rx426_cur)
-  rx426_fail:
+    rx403_cur."!cursor_pass"(rx403_pos, "statement_mod_loop:sym<for>")
+    rx403_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<for>", " at pos=", rx403_pos)
+    .return (rx403_cur)
+  rx403_restart:
 .annotate 'line', 4
-    (rx426_rep, rx426_pos, $I10, $P10) = rx426_cur."!mark_fail"(0)
-    lt rx426_pos, -1, rx426_done
-    eq rx426_pos, -1, rx426_fail
+    rx403_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<for>")
+  rx403_fail:
+    (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
+    lt rx403_pos, -1, rx403_done
+    eq rx403_pos, -1, rx403_fail
     jump $I10
-  rx426_done:
-    rx426_cur."!cursor_fail"()
-    rx426_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<for>")
-    .return (rx426_cur)
+  rx403_done:
+    rx403_cur."!cursor_fail"()
+    rx403_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<for>")
+    .return (rx403_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1278500537.15927") :method
+.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1279564397.22945") :method
 .annotate 'line', 4
-    $P428 = self."!PREFIX__!subrule"("ws", "for")
-    new $P429, "ResizablePMCArray"
-    push $P429, $P428
-    .return ($P429)
+    $P405 = self."!PREFIX__!subrule"("ws", "for")
+    new $P406, "ResizablePMCArray"
+    push $P406, $P405
+    .return ($P406)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("99_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<fatarrow>"  :subid("99_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx435_tgt
-    .local int rx435_pos
-    .local int rx435_off
-    .local int rx435_eos
-    .local int rx435_rep
-    .local pmc rx435_cur
-    (rx435_cur, rx435_pos, rx435_tgt) = self."!cursor_start"()
-    rx435_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
-    .lex unicode:"$\x{a2}", rx435_cur
-    .local pmc match
-    .lex "$/", match
-    length rx435_eos, rx435_tgt
-    gt rx435_pos, rx435_eos, rx435_done
-    set rx435_off, 0
-    lt rx435_pos, 2, rx435_start
-    sub rx435_off, rx435_pos, 1
-    substr rx435_tgt, rx435_tgt, rx435_off
-  rx435_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan439_done
-    goto rxscan439_scan
-  rxscan439_loop:
-    ($P10) = rx435_cur."from"()
-    inc $P10
-    set rx435_pos, $P10
-    ge rx435_pos, rx435_eos, rxscan439_done
-  rxscan439_scan:
-    set_addr $I10, rxscan439_loop
-    rx435_cur."!mark_push"(0, rx435_pos, $I10)
-  rxscan439_done:
+    .local string rx412_tgt
+    .local int rx412_pos
+    .local int rx412_off
+    .local int rx412_eos
+    .local int rx412_rep
+    .local pmc rx412_cur
+    (rx412_cur, rx412_pos, rx412_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx412_cur
+    .local pmc match
+    .lex "$/", match
+    length rx412_eos, rx412_tgt
+    gt rx412_pos, rx412_eos, rx412_done
+    set rx412_off, 0
+    lt rx412_pos, 2, rx412_start
+    sub rx412_off, rx412_pos, 1
+    substr rx412_tgt, rx412_tgt, rx412_off
+  rx412_start:
+    eq $I10, 1, rx412_restart
+    rx412_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan416_done
+    goto rxscan416_scan
+  rxscan416_loop:
+    ($P10) = rx412_cur."from"()
+    inc $P10
+    set rx412_pos, $P10
+    ge rx412_pos, rx412_eos, rxscan416_done
+  rxscan416_scan:
+    set_addr $I10, rxscan416_loop
+    rx412_cur."!mark_push"(0, rx412_pos, $I10)
+  rxscan416_done:
 .annotate 'line', 225
   # rx subrule "fatarrow" subtype=capture negate=
-    rx435_cur."!cursor_pos"(rx435_pos)
-    $P10 = rx435_cur."fatarrow"()
-    unless $P10, rx435_fail
-    rx435_cur."!mark_push"(0, -1, 0, $P10)
+    rx412_cur."!cursor_pos"(rx412_pos)
+    $P10 = rx412_cur."fatarrow"()
+    unless $P10, rx412_fail
+    rx412_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("fatarrow")
-    rx435_pos = $P10."pos"()
+    rx412_pos = $P10."pos"()
   # rx pass
-    rx435_cur."!cursor_pass"(rx435_pos, "term:sym<fatarrow>")
-    rx435_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx435_pos)
-    .return (rx435_cur)
-  rx435_fail:
+    rx412_cur."!cursor_pass"(rx412_pos, "term:sym<fatarrow>")
+    rx412_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx412_pos)
+    .return (rx412_cur)
+  rx412_restart:
 .annotate 'line', 4
-    (rx435_rep, rx435_pos, $I10, $P10) = rx435_cur."!mark_fail"(0)
-    lt rx435_pos, -1, rx435_done
-    eq rx435_pos, -1, rx435_fail
+    rx412_cur."!cursor_debug"("NEXT ", "term:sym<fatarrow>")
+  rx412_fail:
+    (rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0)
+    lt rx412_pos, -1, rx412_done
+    eq rx412_pos, -1, rx412_fail
     jump $I10
-  rx435_done:
-    rx435_cur."!cursor_fail"()
-    rx435_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
-    .return (rx435_cur)
+  rx412_done:
+    rx412_cur."!cursor_fail"()
+    rx412_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
+    .return (rx412_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1278500537.15927") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1279564397.22945") :method
 .annotate 'line', 4
-    $P437 = self."!PREFIX__!subrule"("fatarrow", "")
-    new $P438, "ResizablePMCArray"
-    push $P438, $P437
-    .return ($P438)
+    $P414 = self."!PREFIX__!subrule"("fatarrow", "")
+    new $P415, "ResizablePMCArray"
+    push $P415, $P414
+    .return ($P415)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("101_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<colonpair>"  :subid("101_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx441_tgt
-    .local int rx441_pos
-    .local int rx441_off
-    .local int rx441_eos
-    .local int rx441_rep
-    .local pmc rx441_cur
-    (rx441_cur, rx441_pos, rx441_tgt) = self."!cursor_start"()
-    rx441_cur."!cursor_debug"("START ", "term:sym<colonpair>")
-    .lex unicode:"$\x{a2}", rx441_cur
-    .local pmc match
-    .lex "$/", match
-    length rx441_eos, rx441_tgt
-    gt rx441_pos, rx441_eos, rx441_done
-    set rx441_off, 0
-    lt rx441_pos, 2, rx441_start
-    sub rx441_off, rx441_pos, 1
-    substr rx441_tgt, rx441_tgt, rx441_off
-  rx441_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan445_done
-    goto rxscan445_scan
-  rxscan445_loop:
-    ($P10) = rx441_cur."from"()
-    inc $P10
-    set rx441_pos, $P10
-    ge rx441_pos, rx441_eos, rxscan445_done
-  rxscan445_scan:
-    set_addr $I10, rxscan445_loop
-    rx441_cur."!mark_push"(0, rx441_pos, $I10)
-  rxscan445_done:
+    .local string rx418_tgt
+    .local int rx418_pos
+    .local int rx418_off
+    .local int rx418_eos
+    .local int rx418_rep
+    .local pmc rx418_cur
+    (rx418_cur, rx418_pos, rx418_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx418_cur
+    .local pmc match
+    .lex "$/", match
+    length rx418_eos, rx418_tgt
+    gt rx418_pos, rx418_eos, rx418_done
+    set rx418_off, 0
+    lt rx418_pos, 2, rx418_start
+    sub rx418_off, rx418_pos, 1
+    substr rx418_tgt, rx418_tgt, rx418_off
+  rx418_start:
+    eq $I10, 1, rx418_restart
+    rx418_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan422_done
+    goto rxscan422_scan
+  rxscan422_loop:
+    ($P10) = rx418_cur."from"()
+    inc $P10
+    set rx418_pos, $P10
+    ge rx418_pos, rx418_eos, rxscan422_done
+  rxscan422_scan:
+    set_addr $I10, rxscan422_loop
+    rx418_cur."!mark_push"(0, rx418_pos, $I10)
+  rxscan422_done:
 .annotate 'line', 226
   # rx subrule "colonpair" subtype=capture negate=
-    rx441_cur."!cursor_pos"(rx441_pos)
-    $P10 = rx441_cur."colonpair"()
-    unless $P10, rx441_fail
-    rx441_cur."!mark_push"(0, -1, 0, $P10)
+    rx418_cur."!cursor_pos"(rx418_pos)
+    $P10 = rx418_cur."colonpair"()
+    unless $P10, rx418_fail
+    rx418_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("colonpair")
-    rx441_pos = $P10."pos"()
+    rx418_pos = $P10."pos"()
   # rx pass
-    rx441_cur."!cursor_pass"(rx441_pos, "term:sym<colonpair>")
-    rx441_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx441_pos)
-    .return (rx441_cur)
-  rx441_fail:
+    rx418_cur."!cursor_pass"(rx418_pos, "term:sym<colonpair>")
+    rx418_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx418_pos)
+    .return (rx418_cur)
+  rx418_restart:
 .annotate 'line', 4
-    (rx441_rep, rx441_pos, $I10, $P10) = rx441_cur."!mark_fail"(0)
-    lt rx441_pos, -1, rx441_done
-    eq rx441_pos, -1, rx441_fail
+    rx418_cur."!cursor_debug"("NEXT ", "term:sym<colonpair>")
+  rx418_fail:
+    (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0)
+    lt rx418_pos, -1, rx418_done
+    eq rx418_pos, -1, rx418_fail
     jump $I10
-  rx441_done:
-    rx441_cur."!cursor_fail"()
-    rx441_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
-    .return (rx441_cur)
+  rx418_done:
+    rx418_cur."!cursor_fail"()
+    rx418_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
+    .return (rx418_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1278500537.15927") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1279564397.22945") :method
 .annotate 'line', 4
-    $P443 = self."!PREFIX__!subrule"("colonpair", "")
-    new $P444, "ResizablePMCArray"
-    push $P444, $P443
-    .return ($P444)
+    $P420 = self."!PREFIX__!subrule"("colonpair", "")
+    new $P421, "ResizablePMCArray"
+    push $P421, $P420
+    .return ($P421)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("103_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<variable>"  :subid("103_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx447_tgt
-    .local int rx447_pos
-    .local int rx447_off
-    .local int rx447_eos
-    .local int rx447_rep
-    .local pmc rx447_cur
-    (rx447_cur, rx447_pos, rx447_tgt) = self."!cursor_start"()
-    rx447_cur."!cursor_debug"("START ", "term:sym<variable>")
-    .lex unicode:"$\x{a2}", rx447_cur
+    .local string rx424_tgt
+    .local int rx424_pos
+    .local int rx424_off
+    .local int rx424_eos
+    .local int rx424_rep
+    .local pmc rx424_cur
+    (rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx424_cur
     .local pmc match
     .lex "$/", match
-    length rx447_eos, rx447_tgt
-    gt rx447_pos, rx447_eos, rx447_done
-    set rx447_off, 0
-    lt rx447_pos, 2, rx447_start
-    sub rx447_off, rx447_pos, 1
-    substr rx447_tgt, rx447_tgt, rx447_off
-  rx447_start:
+    length rx424_eos, rx424_tgt
+    gt rx424_pos, rx424_eos, rx424_done
+    set rx424_off, 0
+    lt rx424_pos, 2, rx424_start
+    sub rx424_off, rx424_pos, 1
+    substr rx424_tgt, rx424_tgt, rx424_off
+  rx424_start:
+    eq $I10, 1, rx424_restart
+    rx424_cur."!cursor_debug"("START ", "term:sym<variable>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan451_done
-    goto rxscan451_scan
-  rxscan451_loop:
-    ($P10) = rx447_cur."from"()
+    ne $I10, -1, rxscan428_done
+    goto rxscan428_scan
+  rxscan428_loop:
+    ($P10) = rx424_cur."from"()
     inc $P10
-    set rx447_pos, $P10
-    ge rx447_pos, rx447_eos, rxscan451_done
-  rxscan451_scan:
-    set_addr $I10, rxscan451_loop
-    rx447_cur."!mark_push"(0, rx447_pos, $I10)
-  rxscan451_done:
+    set rx424_pos, $P10
+    ge rx424_pos, rx424_eos, rxscan428_done
+  rxscan428_scan:
+    set_addr $I10, rxscan428_loop
+    rx424_cur."!mark_push"(0, rx424_pos, $I10)
+  rxscan428_done:
 .annotate 'line', 227
   # rx subrule "variable" subtype=capture negate=
-    rx447_cur."!cursor_pos"(rx447_pos)
-    $P10 = rx447_cur."variable"()
-    unless $P10, rx447_fail
-    rx447_cur."!mark_push"(0, -1, 0, $P10)
+    rx424_cur."!cursor_pos"(rx424_pos)
+    $P10 = rx424_cur."variable"()
+    unless $P10, rx424_fail
+    rx424_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable")
-    rx447_pos = $P10."pos"()
+    rx424_pos = $P10."pos"()
   # rx pass
-    rx447_cur."!cursor_pass"(rx447_pos, "term:sym<variable>")
-    rx447_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx447_pos)
-    .return (rx447_cur)
-  rx447_fail:
+    rx424_cur."!cursor_pass"(rx424_pos, "term:sym<variable>")
+    rx424_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx424_pos)
+    .return (rx424_cur)
+  rx424_restart:
 .annotate 'line', 4
-    (rx447_rep, rx447_pos, $I10, $P10) = rx447_cur."!mark_fail"(0)
-    lt rx447_pos, -1, rx447_done
-    eq rx447_pos, -1, rx447_fail
+    rx424_cur."!cursor_debug"("NEXT ", "term:sym<variable>")
+  rx424_fail:
+    (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
+    lt rx424_pos, -1, rx424_done
+    eq rx424_pos, -1, rx424_fail
     jump $I10
-  rx447_done:
-    rx447_cur."!cursor_fail"()
-    rx447_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
-    .return (rx447_cur)
+  rx424_done:
+    rx424_cur."!cursor_fail"()
+    rx424_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
+    .return (rx424_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("104_1278500537.15927") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("104_1279564397.22945") :method
 .annotate 'line', 4
-    $P449 = self."!PREFIX__!subrule"("variable", "")
-    new $P450, "ResizablePMCArray"
-    push $P450, $P449
-    .return ($P450)
+    $P426 = self."!PREFIX__!subrule"("variable", "")
+    new $P427, "ResizablePMCArray"
+    push $P427, $P426
+    .return ($P427)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("105_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<package_declarator>"  :subid("105_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx453_tgt
-    .local int rx453_pos
-    .local int rx453_off
-    .local int rx453_eos
-    .local int rx453_rep
-    .local pmc rx453_cur
-    (rx453_cur, rx453_pos, rx453_tgt) = self."!cursor_start"()
-    rx453_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
-    .lex unicode:"$\x{a2}", rx453_cur
-    .local pmc match
-    .lex "$/", match
-    length rx453_eos, rx453_tgt
-    gt rx453_pos, rx453_eos, rx453_done
-    set rx453_off, 0
-    lt rx453_pos, 2, rx453_start
-    sub rx453_off, rx453_pos, 1
-    substr rx453_tgt, rx453_tgt, rx453_off
-  rx453_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan457_done
-    goto rxscan457_scan
-  rxscan457_loop:
-    ($P10) = rx453_cur."from"()
-    inc $P10
-    set rx453_pos, $P10
-    ge rx453_pos, rx453_eos, rxscan457_done
-  rxscan457_scan:
-    set_addr $I10, rxscan457_loop
-    rx453_cur."!mark_push"(0, rx453_pos, $I10)
-  rxscan457_done:
+    .local string rx430_tgt
+    .local int rx430_pos
+    .local int rx430_off
+    .local int rx430_eos
+    .local int rx430_rep
+    .local pmc rx430_cur
+    (rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx430_cur
+    .local pmc match
+    .lex "$/", match
+    length rx430_eos, rx430_tgt
+    gt rx430_pos, rx430_eos, rx430_done
+    set rx430_off, 0
+    lt rx430_pos, 2, rx430_start
+    sub rx430_off, rx430_pos, 1
+    substr rx430_tgt, rx430_tgt, rx430_off
+  rx430_start:
+    eq $I10, 1, rx430_restart
+    rx430_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan434_done
+    goto rxscan434_scan
+  rxscan434_loop:
+    ($P10) = rx430_cur."from"()
+    inc $P10
+    set rx430_pos, $P10
+    ge rx430_pos, rx430_eos, rxscan434_done
+  rxscan434_scan:
+    set_addr $I10, rxscan434_loop
+    rx430_cur."!mark_push"(0, rx430_pos, $I10)
+  rxscan434_done:
 .annotate 'line', 228
   # rx subrule "package_declarator" subtype=capture negate=
-    rx453_cur."!cursor_pos"(rx453_pos)
-    $P10 = rx453_cur."package_declarator"()
-    unless $P10, rx453_fail
-    rx453_cur."!mark_push"(0, -1, 0, $P10)
+    rx430_cur."!cursor_pos"(rx430_pos)
+    $P10 = rx430_cur."package_declarator"()
+    unless $P10, rx430_fail
+    rx430_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_declarator")
-    rx453_pos = $P10."pos"()
+    rx430_pos = $P10."pos"()
   # rx pass
-    rx453_cur."!cursor_pass"(rx453_pos, "term:sym<package_declarator>")
-    rx453_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx453_pos)
-    .return (rx453_cur)
-  rx453_fail:
+    rx430_cur."!cursor_pass"(rx430_pos, "term:sym<package_declarator>")
+    rx430_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx430_pos)
+    .return (rx430_cur)
+  rx430_restart:
 .annotate 'line', 4
-    (rx453_rep, rx453_pos, $I10, $P10) = rx453_cur."!mark_fail"(0)
-    lt rx453_pos, -1, rx453_done
-    eq rx453_pos, -1, rx453_fail
+    rx430_cur."!cursor_debug"("NEXT ", "term:sym<package_declarator>")
+  rx430_fail:
+    (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
+    lt rx430_pos, -1, rx430_done
+    eq rx430_pos, -1, rx430_fail
     jump $I10
-  rx453_done:
-    rx453_cur."!cursor_fail"()
-    rx453_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
-    .return (rx453_cur)
+  rx430_done:
+    rx430_cur."!cursor_fail"()
+    rx430_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
+    .return (rx430_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1278500537.15927") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1279564397.22945") :method
 .annotate 'line', 4
-    $P455 = self."!PREFIX__!subrule"("package_declarator", "")
-    new $P456, "ResizablePMCArray"
-    push $P456, $P455
-    .return ($P456)
+    $P432 = self."!PREFIX__!subrule"("package_declarator", "")
+    new $P433, "ResizablePMCArray"
+    push $P433, $P432
+    .return ($P433)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("107_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<scope_declarator>"  :subid("107_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx459_tgt
-    .local int rx459_pos
-    .local int rx459_off
-    .local int rx459_eos
-    .local int rx459_rep
-    .local pmc rx459_cur
-    (rx459_cur, rx459_pos, rx459_tgt) = self."!cursor_start"()
-    rx459_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
-    .lex unicode:"$\x{a2}", rx459_cur
+    .local string rx436_tgt
+    .local int rx436_pos
+    .local int rx436_off
+    .local int rx436_eos
+    .local int rx436_rep
+    .local pmc rx436_cur
+    (rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx436_cur
     .local pmc match
     .lex "$/", match
-    length rx459_eos, rx459_tgt
-    gt rx459_pos, rx459_eos, rx459_done
-    set rx459_off, 0
-    lt rx459_pos, 2, rx459_start
-    sub rx459_off, rx459_pos, 1
-    substr rx459_tgt, rx459_tgt, rx459_off
-  rx459_start:
+    length rx436_eos, rx436_tgt
+    gt rx436_pos, rx436_eos, rx436_done
+    set rx436_off, 0
+    lt rx436_pos, 2, rx436_start
+    sub rx436_off, rx436_pos, 1
+    substr rx436_tgt, rx436_tgt, rx436_off
+  rx436_start:
+    eq $I10, 1, rx436_restart
+    rx436_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan463_done
-    goto rxscan463_scan
-  rxscan463_loop:
-    ($P10) = rx459_cur."from"()
+    ne $I10, -1, rxscan440_done
+    goto rxscan440_scan
+  rxscan440_loop:
+    ($P10) = rx436_cur."from"()
     inc $P10
-    set rx459_pos, $P10
-    ge rx459_pos, rx459_eos, rxscan463_done
-  rxscan463_scan:
-    set_addr $I10, rxscan463_loop
-    rx459_cur."!mark_push"(0, rx459_pos, $I10)
-  rxscan463_done:
+    set rx436_pos, $P10
+    ge rx436_pos, rx436_eos, rxscan440_done
+  rxscan440_scan:
+    set_addr $I10, rxscan440_loop
+    rx436_cur."!mark_push"(0, rx436_pos, $I10)
+  rxscan440_done:
 .annotate 'line', 229
   # rx subrule "scope_declarator" subtype=capture negate=
-    rx459_cur."!cursor_pos"(rx459_pos)
-    $P10 = rx459_cur."scope_declarator"()
-    unless $P10, rx459_fail
-    rx459_cur."!mark_push"(0, -1, 0, $P10)
+    rx436_cur."!cursor_pos"(rx436_pos)
+    $P10 = rx436_cur."scope_declarator"()
+    unless $P10, rx436_fail
+    rx436_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scope_declarator")
-    rx459_pos = $P10."pos"()
+    rx436_pos = $P10."pos"()
   # rx pass
-    rx459_cur."!cursor_pass"(rx459_pos, "term:sym<scope_declarator>")
-    rx459_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx459_pos)
-    .return (rx459_cur)
-  rx459_fail:
+    rx436_cur."!cursor_pass"(rx436_pos, "term:sym<scope_declarator>")
+    rx436_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx436_pos)
+    .return (rx436_cur)
+  rx436_restart:
 .annotate 'line', 4
-    (rx459_rep, rx459_pos, $I10, $P10) = rx459_cur."!mark_fail"(0)
-    lt rx459_pos, -1, rx459_done
-    eq rx459_pos, -1, rx459_fail
+    rx436_cur."!cursor_debug"("NEXT ", "term:sym<scope_declarator>")
+  rx436_fail:
+    (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
+    lt rx436_pos, -1, rx436_done
+    eq rx436_pos, -1, rx436_fail
     jump $I10
-  rx459_done:
-    rx459_cur."!cursor_fail"()
-    rx459_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
-    .return (rx459_cur)
+  rx436_done:
+    rx436_cur."!cursor_fail"()
+    rx436_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
+    .return (rx436_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1278500537.15927") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1279564397.22945") :method
 .annotate 'line', 4
-    $P461 = self."!PREFIX__!subrule"("scope_declarator", "")
-    new $P462, "ResizablePMCArray"
-    push $P462, $P461
-    .return ($P462)
+    $P438 = self."!PREFIX__!subrule"("scope_declarator", "")
+    new $P439, "ResizablePMCArray"
+    push $P439, $P438
+    .return ($P439)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("109_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<routine_declarator>"  :subid("109_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx465_tgt
-    .local int rx465_pos
-    .local int rx465_off
-    .local int rx465_eos
-    .local int rx465_rep
-    .local pmc rx465_cur
-    (rx465_cur, rx465_pos, rx465_tgt) = self."!cursor_start"()
-    rx465_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
-    .lex unicode:"$\x{a2}", rx465_cur
-    .local pmc match
-    .lex "$/", match
-    length rx465_eos, rx465_tgt
-    gt rx465_pos, rx465_eos, rx465_done
-    set rx465_off, 0
-    lt rx465_pos, 2, rx465_start
-    sub rx465_off, rx465_pos, 1
-    substr rx465_tgt, rx465_tgt, rx465_off
-  rx465_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan469_done
-    goto rxscan469_scan
-  rxscan469_loop:
-    ($P10) = rx465_cur."from"()
-    inc $P10
-    set rx465_pos, $P10
-    ge rx465_pos, rx465_eos, rxscan469_done
-  rxscan469_scan:
-    set_addr $I10, rxscan469_loop
-    rx465_cur."!mark_push"(0, rx465_pos, $I10)
-  rxscan469_done:
+    .local string rx442_tgt
+    .local int rx442_pos
+    .local int rx442_off
+    .local int rx442_eos
+    .local int rx442_rep
+    .local pmc rx442_cur
+    (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx442_cur
+    .local pmc match
+    .lex "$/", match
+    length rx442_eos, rx442_tgt
+    gt rx442_pos, rx442_eos, rx442_done
+    set rx442_off, 0
+    lt rx442_pos, 2, rx442_start
+    sub rx442_off, rx442_pos, 1
+    substr rx442_tgt, rx442_tgt, rx442_off
+  rx442_start:
+    eq $I10, 1, rx442_restart
+    rx442_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan446_done
+    goto rxscan446_scan
+  rxscan446_loop:
+    ($P10) = rx442_cur."from"()
+    inc $P10
+    set rx442_pos, $P10
+    ge rx442_pos, rx442_eos, rxscan446_done
+  rxscan446_scan:
+    set_addr $I10, rxscan446_loop
+    rx442_cur."!mark_push"(0, rx442_pos, $I10)
+  rxscan446_done:
 .annotate 'line', 230
   # rx subrule "routine_declarator" subtype=capture negate=
-    rx465_cur."!cursor_pos"(rx465_pos)
-    $P10 = rx465_cur."routine_declarator"()
-    unless $P10, rx465_fail
-    rx465_cur."!mark_push"(0, -1, 0, $P10)
+    rx442_cur."!cursor_pos"(rx442_pos)
+    $P10 = rx442_cur."routine_declarator"()
+    unless $P10, rx442_fail
+    rx442_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_declarator")
-    rx465_pos = $P10."pos"()
+    rx442_pos = $P10."pos"()
   # rx pass
-    rx465_cur."!cursor_pass"(rx465_pos, "term:sym<routine_declarator>")
-    rx465_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx465_pos)
-    .return (rx465_cur)
-  rx465_fail:
+    rx442_cur."!cursor_pass"(rx442_pos, "term:sym<routine_declarator>")
+    rx442_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx442_pos)
+    .return (rx442_cur)
+  rx442_restart:
 .annotate 'line', 4
-    (rx465_rep, rx465_pos, $I10, $P10) = rx465_cur."!mark_fail"(0)
-    lt rx465_pos, -1, rx465_done
-    eq rx465_pos, -1, rx465_fail
+    rx442_cur."!cursor_debug"("NEXT ", "term:sym<routine_declarator>")
+  rx442_fail:
+    (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
+    lt rx442_pos, -1, rx442_done
+    eq rx442_pos, -1, rx442_fail
     jump $I10
-  rx465_done:
-    rx465_cur."!cursor_fail"()
-    rx465_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
-    .return (rx465_cur)
+  rx442_done:
+    rx442_cur."!cursor_fail"()
+    rx442_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
+    .return (rx442_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1278500537.15927") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1279564397.22945") :method
 .annotate 'line', 4
-    $P467 = self."!PREFIX__!subrule"("routine_declarator", "")
-    new $P468, "ResizablePMCArray"
-    push $P468, $P467
-    .return ($P468)
+    $P444 = self."!PREFIX__!subrule"("routine_declarator", "")
+    new $P445, "ResizablePMCArray"
+    push $P445, $P444
+    .return ($P445)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<multi_declarator>"  :subid("111_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<multi_declarator>"  :subid("111_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .const 'Sub' $P476 = "113_1278500537.15927" 
-    capture_lex $P476
-    .local string rx471_tgt
-    .local int rx471_pos
-    .local int rx471_off
-    .local int rx471_eos
-    .local int rx471_rep
-    .local pmc rx471_cur
-    (rx471_cur, rx471_pos, rx471_tgt) = self."!cursor_start"()
-    rx471_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
-    .lex unicode:"$\x{a2}", rx471_cur
+    .const 'Sub' $P453 = "113_1279564397.22945" 
+    capture_lex $P453
+    .local string rx448_tgt
+    .local int rx448_pos
+    .local int rx448_off
+    .local int rx448_eos
+    .local int rx448_rep
+    .local pmc rx448_cur
+    (rx448_cur, rx448_pos, rx448_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx448_cur
     .local pmc match
     .lex "$/", match
-    length rx471_eos, rx471_tgt
-    gt rx471_pos, rx471_eos, rx471_done
-    set rx471_off, 0
-    lt rx471_pos, 2, rx471_start
-    sub rx471_off, rx471_pos, 1
-    substr rx471_tgt, rx471_tgt, rx471_off
-  rx471_start:
+    length rx448_eos, rx448_tgt
+    gt rx448_pos, rx448_eos, rx448_done
+    set rx448_off, 0
+    lt rx448_pos, 2, rx448_start
+    sub rx448_off, rx448_pos, 1
+    substr rx448_tgt, rx448_tgt, rx448_off
+  rx448_start:
+    eq $I10, 1, rx448_restart
+    rx448_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan474_done
-    goto rxscan474_scan
-  rxscan474_loop:
-    ($P10) = rx471_cur."from"()
+    ne $I10, -1, rxscan451_done
+    goto rxscan451_scan
+  rxscan451_loop:
+    ($P10) = rx448_cur."from"()
     inc $P10
-    set rx471_pos, $P10
-    ge rx471_pos, rx471_eos, rxscan474_done
-  rxscan474_scan:
-    set_addr $I10, rxscan474_loop
-    rx471_cur."!mark_push"(0, rx471_pos, $I10)
-  rxscan474_done:
+    set rx448_pos, $P10
+    ge rx448_pos, rx448_eos, rxscan451_done
+  rxscan451_scan:
+    set_addr $I10, rxscan451_loop
+    rx448_cur."!mark_push"(0, rx448_pos, $I10)
+  rxscan451_done:
 .annotate 'line', 231
   # rx subrule "before" subtype=zerowidth negate=
-    rx471_cur."!cursor_pos"(rx471_pos)
-    .const 'Sub' $P476 = "113_1278500537.15927" 
-    capture_lex $P476
-    $P10 = rx471_cur."before"($P476)
-    unless $P10, rx471_fail
+    rx448_cur."!cursor_pos"(rx448_pos)
+    .const 'Sub' $P453 = "113_1279564397.22945" 
+    capture_lex $P453
+    $P10 = rx448_cur."before"($P453)
+    unless $P10, rx448_fail
   # rx subrule "multi_declarator" subtype=capture negate=
-    rx471_cur."!cursor_pos"(rx471_pos)
-    $P10 = rx471_cur."multi_declarator"()
-    unless $P10, rx471_fail
-    rx471_cur."!mark_push"(0, -1, 0, $P10)
+    rx448_cur."!cursor_pos"(rx448_pos)
+    $P10 = rx448_cur."multi_declarator"()
+    unless $P10, rx448_fail
+    rx448_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("multi_declarator")
-    rx471_pos = $P10."pos"()
+    rx448_pos = $P10."pos"()
   # rx pass
-    rx471_cur."!cursor_pass"(rx471_pos, "term:sym<multi_declarator>")
-    rx471_cur."!cursor_debug"("PASS  ", "term:sym<multi_declarator>", " at pos=", rx471_pos)
-    .return (rx471_cur)
-  rx471_fail:
+    rx448_cur."!cursor_pass"(rx448_pos, "term:sym<multi_declarator>")
+    rx448_cur."!cursor_debug"("PASS  ", "term:sym<multi_declarator>", " at pos=", rx448_pos)
+    .return (rx448_cur)
+  rx448_restart:
 .annotate 'line', 4
-    (rx471_rep, rx471_pos, $I10, $P10) = rx471_cur."!mark_fail"(0)
-    lt rx471_pos, -1, rx471_done
-    eq rx471_pos, -1, rx471_fail
+    rx448_cur."!cursor_debug"("NEXT ", "term:sym<multi_declarator>")
+  rx448_fail:
+    (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
+    lt rx448_pos, -1, rx448_done
+    eq rx448_pos, -1, rx448_fail
     jump $I10
-  rx471_done:
-    rx471_cur."!cursor_fail"()
-    rx471_cur."!cursor_debug"("FAIL  ", "term:sym<multi_declarator>")
-    .return (rx471_cur)
+  rx448_done:
+    rx448_cur."!cursor_fail"()
+    rx448_cur."!cursor_debug"("FAIL  ", "term:sym<multi_declarator>")
+    .return (rx448_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1278500537.15927") :method
+.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1279564397.22945") :method
 .annotate 'line', 4
-    new $P473, "ResizablePMCArray"
-    push $P473, ""
-    .return ($P473)
+    new $P450, "ResizablePMCArray"
+    push $P450, ""
+    .return ($P450)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block475"  :anon :subid("113_1278500537.15927") :method :outer("111_1278500537.15927")
+.sub "_block452"  :anon :subid("113_1279564397.22945") :method :outer("111_1279564397.22945")
 .annotate 'line', 231
-    .local string rx477_tgt
-    .local int rx477_pos
-    .local int rx477_off
-    .local int rx477_eos
-    .local int rx477_rep
-    .local pmc rx477_cur
-    (rx477_cur, rx477_pos, rx477_tgt) = self."!cursor_start"()
-    rx477_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx477_cur
-    .local pmc match
-    .lex "$/", match
-    length rx477_eos, rx477_tgt
-    gt rx477_pos, rx477_eos, rx477_done
-    set rx477_off, 0
-    lt rx477_pos, 2, rx477_start
-    sub rx477_off, rx477_pos, 1
-    substr rx477_tgt, rx477_tgt, rx477_off
-  rx477_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan478_done
-    goto rxscan478_scan
-  rxscan478_loop:
-    ($P10) = rx477_cur."from"()
-    inc $P10
-    set rx477_pos, $P10
-    ge rx477_pos, rx477_eos, rxscan478_done
-  rxscan478_scan:
-    set_addr $I10, rxscan478_loop
-    rx477_cur."!mark_push"(0, rx477_pos, $I10)
-  rxscan478_done:
-  alt479_0:
-    set_addr $I10, alt479_1
-    rx477_cur."!mark_push"(0, rx477_pos, $I10)
+    .local string rx454_tgt
+    .local int rx454_pos
+    .local int rx454_off
+    .local int rx454_eos
+    .local int rx454_rep
+    .local pmc rx454_cur
+    (rx454_cur, rx454_pos, rx454_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx454_cur
+    .local pmc match
+    .lex "$/", match
+    length rx454_eos, rx454_tgt
+    gt rx454_pos, rx454_eos, rx454_done
+    set rx454_off, 0
+    lt rx454_pos, 2, rx454_start
+    sub rx454_off, rx454_pos, 1
+    substr rx454_tgt, rx454_tgt, rx454_off
+  rx454_start:
+    eq $I10, 1, rx454_restart
+    rx454_cur."!cursor_debug"("START ", "")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan455_done
+    goto rxscan455_scan
+  rxscan455_loop:
+    ($P10) = rx454_cur."from"()
+    inc $P10
+    set rx454_pos, $P10
+    ge rx454_pos, rx454_eos, rxscan455_done
+  rxscan455_scan:
+    set_addr $I10, rxscan455_loop
+    rx454_cur."!mark_push"(0, rx454_pos, $I10)
+  rxscan455_done:
+  alt456_0:
+    set_addr $I10, alt456_1
+    rx454_cur."!mark_push"(0, rx454_pos, $I10)
   # rx literal  "multi"
-    add $I11, rx477_pos, 5
-    gt $I11, rx477_eos, rx477_fail
-    sub $I11, rx477_pos, rx477_off
-    substr $S10, rx477_tgt, $I11, 5
-    ne $S10, "multi", rx477_fail
-    add rx477_pos, 5
-    goto alt479_end
-  alt479_1:
-    set_addr $I10, alt479_2
-    rx477_cur."!mark_push"(0, rx477_pos, $I10)
+    add $I11, rx454_pos, 5
+    gt $I11, rx454_eos, rx454_fail
+    sub $I11, rx454_pos, rx454_off
+    substr $S10, rx454_tgt, $I11, 5
+    ne $S10, "multi", rx454_fail
+    add rx454_pos, 5
+    goto alt456_end
+  alt456_1:
+    set_addr $I10, alt456_2
+    rx454_cur."!mark_push"(0, rx454_pos, $I10)
   # rx literal  "proto"
-    add $I11, rx477_pos, 5
-    gt $I11, rx477_eos, rx477_fail
-    sub $I11, rx477_pos, rx477_off
-    substr $S10, rx477_tgt, $I11, 5
-    ne $S10, "proto", rx477_fail
-    add rx477_pos, 5
-    goto alt479_end
-  alt479_2:
+    add $I11, rx454_pos, 5
+    gt $I11, rx454_eos, rx454_fail
+    sub $I11, rx454_pos, rx454_off
+    substr $S10, rx454_tgt, $I11, 5
+    ne $S10, "proto", rx454_fail
+    add rx454_pos, 5
+    goto alt456_end
+  alt456_2:
   # rx literal  "only"
-    add $I11, rx477_pos, 4
-    gt $I11, rx477_eos, rx477_fail
-    sub $I11, rx477_pos, rx477_off
-    substr $S10, rx477_tgt, $I11, 4
-    ne $S10, "only", rx477_fail
-    add rx477_pos, 4
-  alt479_end:
-  # rx pass
-    rx477_cur."!cursor_pass"(rx477_pos, "")
-    rx477_cur."!cursor_debug"("PASS  ", "", " at pos=", rx477_pos)
-    .return (rx477_cur)
-  rx477_fail:
-    (rx477_rep, rx477_pos, $I10, $P10) = rx477_cur."!mark_fail"(0)
-    lt rx477_pos, -1, rx477_done
-    eq rx477_pos, -1, rx477_fail
-    jump $I10
-  rx477_done:
-    rx477_cur."!cursor_fail"()
-    rx477_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx477_cur)
+    add $I11, rx454_pos, 4
+    gt $I11, rx454_eos, rx454_fail
+    sub $I11, rx454_pos, rx454_off
+    substr $S10, rx454_tgt, $I11, 4
+    ne $S10, "only", rx454_fail
+    add rx454_pos, 4
+  alt456_end:
+  # rx pass
+    rx454_cur."!cursor_pass"(rx454_pos, "")
+    rx454_cur."!cursor_debug"("PASS  ", "", " at pos=", rx454_pos)
+    .return (rx454_cur)
+  rx454_restart:
+    rx454_cur."!cursor_debug"("NEXT ", "")
+  rx454_fail:
+    (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
+    lt rx454_pos, -1, rx454_done
+    eq rx454_pos, -1, rx454_fail
+    jump $I10
+  rx454_done:
+    rx454_cur."!cursor_fail"()
+    rx454_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx454_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("114_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx481_tgt
-    .local int rx481_pos
-    .local int rx481_off
-    .local int rx481_eos
-    .local int rx481_rep
-    .local pmc rx481_cur
-    (rx481_cur, rx481_pos, rx481_tgt) = self."!cursor_start"()
-    rx481_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
-    .lex unicode:"$\x{a2}", rx481_cur
-    .local pmc match
-    .lex "$/", match
-    length rx481_eos, rx481_tgt
-    gt rx481_pos, rx481_eos, rx481_done
-    set rx481_off, 0
-    lt rx481_pos, 2, rx481_start
-    sub rx481_off, rx481_pos, 1
-    substr rx481_tgt, rx481_tgt, rx481_off
-  rx481_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan485_done
-    goto rxscan485_scan
-  rxscan485_loop:
-    ($P10) = rx481_cur."from"()
-    inc $P10
-    set rx481_pos, $P10
-    ge rx481_pos, rx481_eos, rxscan485_done
-  rxscan485_scan:
-    set_addr $I10, rxscan485_loop
-    rx481_cur."!mark_push"(0, rx481_pos, $I10)
-  rxscan485_done:
+.sub "term:sym<regex_declarator>"  :subid("114_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx458_tgt
+    .local int rx458_pos
+    .local int rx458_off
+    .local int rx458_eos
+    .local int rx458_rep
+    .local pmc rx458_cur
+    (rx458_cur, rx458_pos, rx458_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx458_cur
+    .local pmc match
+    .lex "$/", match
+    length rx458_eos, rx458_tgt
+    gt rx458_pos, rx458_eos, rx458_done
+    set rx458_off, 0
+    lt rx458_pos, 2, rx458_start
+    sub rx458_off, rx458_pos, 1
+    substr rx458_tgt, rx458_tgt, rx458_off
+  rx458_start:
+    eq $I10, 1, rx458_restart
+    rx458_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan462_done
+    goto rxscan462_scan
+  rxscan462_loop:
+    ($P10) = rx458_cur."from"()
+    inc $P10
+    set rx458_pos, $P10
+    ge rx458_pos, rx458_eos, rxscan462_done
+  rxscan462_scan:
+    set_addr $I10, rxscan462_loop
+    rx458_cur."!mark_push"(0, rx458_pos, $I10)
+  rxscan462_done:
 .annotate 'line', 232
   # rx subrule "regex_declarator" subtype=capture negate=
-    rx481_cur."!cursor_pos"(rx481_pos)
-    $P10 = rx481_cur."regex_declarator"()
-    unless $P10, rx481_fail
-    rx481_cur."!mark_push"(0, -1, 0, $P10)
+    rx458_cur."!cursor_pos"(rx458_pos)
+    $P10 = rx458_cur."regex_declarator"()
+    unless $P10, rx458_fail
+    rx458_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("regex_declarator")
-    rx481_pos = $P10."pos"()
+    rx458_pos = $P10."pos"()
   # rx pass
-    rx481_cur."!cursor_pass"(rx481_pos, "term:sym<regex_declarator>")
-    rx481_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx481_pos)
-    .return (rx481_cur)
-  rx481_fail:
+    rx458_cur."!cursor_pass"(rx458_pos, "term:sym<regex_declarator>")
+    rx458_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx458_pos)
+    .return (rx458_cur)
+  rx458_restart:
 .annotate 'line', 4
-    (rx481_rep, rx481_pos, $I10, $P10) = rx481_cur."!mark_fail"(0)
-    lt rx481_pos, -1, rx481_done
-    eq rx481_pos, -1, rx481_fail
+    rx458_cur."!cursor_debug"("NEXT ", "term:sym<regex_declarator>")
+  rx458_fail:
+    (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
+    lt rx458_pos, -1, rx458_done
+    eq rx458_pos, -1, rx458_fail
     jump $I10
-  rx481_done:
-    rx481_cur."!cursor_fail"()
-    rx481_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
-    .return (rx481_cur)
+  rx458_done:
+    rx458_cur."!cursor_fail"()
+    rx458_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
+    .return (rx458_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1278500537.15927") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1279564397.22945") :method
 .annotate 'line', 4
-    $P483 = self."!PREFIX__!subrule"("regex_declarator", "")
-    new $P484, "ResizablePMCArray"
-    push $P484, $P483
-    .return ($P484)
+    $P460 = self."!PREFIX__!subrule"("regex_declarator", "")
+    new $P461, "ResizablePMCArray"
+    push $P461, $P460
+    .return ($P461)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("116_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<statement_prefix>"  :subid("116_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx487_tgt
-    .local int rx487_pos
-    .local int rx487_off
-    .local int rx487_eos
-    .local int rx487_rep
-    .local pmc rx487_cur
-    (rx487_cur, rx487_pos, rx487_tgt) = self."!cursor_start"()
-    rx487_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
-    .lex unicode:"$\x{a2}", rx487_cur
+    .local string rx464_tgt
+    .local int rx464_pos
+    .local int rx464_off
+    .local int rx464_eos
+    .local int rx464_rep
+    .local pmc rx464_cur
+    (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx464_cur
     .local pmc match
     .lex "$/", match
-    length rx487_eos, rx487_tgt
-    gt rx487_pos, rx487_eos, rx487_done
-    set rx487_off, 0
-    lt rx487_pos, 2, rx487_start
-    sub rx487_off, rx487_pos, 1
-    substr rx487_tgt, rx487_tgt, rx487_off
-  rx487_start:
+    length rx464_eos, rx464_tgt
+    gt rx464_pos, rx464_eos, rx464_done
+    set rx464_off, 0
+    lt rx464_pos, 2, rx464_start
+    sub rx464_off, rx464_pos, 1
+    substr rx464_tgt, rx464_tgt, rx464_off
+  rx464_start:
+    eq $I10, 1, rx464_restart
+    rx464_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan491_done
-    goto rxscan491_scan
-  rxscan491_loop:
-    ($P10) = rx487_cur."from"()
+    ne $I10, -1, rxscan468_done
+    goto rxscan468_scan
+  rxscan468_loop:
+    ($P10) = rx464_cur."from"()
     inc $P10
-    set rx487_pos, $P10
-    ge rx487_pos, rx487_eos, rxscan491_done
-  rxscan491_scan:
-    set_addr $I10, rxscan491_loop
-    rx487_cur."!mark_push"(0, rx487_pos, $I10)
-  rxscan491_done:
+    set rx464_pos, $P10
+    ge rx464_pos, rx464_eos, rxscan468_done
+  rxscan468_scan:
+    set_addr $I10, rxscan468_loop
+    rx464_cur."!mark_push"(0, rx464_pos, $I10)
+  rxscan468_done:
 .annotate 'line', 233
   # rx subrule "statement_prefix" subtype=capture negate=
-    rx487_cur."!cursor_pos"(rx487_pos)
-    $P10 = rx487_cur."statement_prefix"()
-    unless $P10, rx487_fail
-    rx487_cur."!mark_push"(0, -1, 0, $P10)
+    rx464_cur."!cursor_pos"(rx464_pos)
+    $P10 = rx464_cur."statement_prefix"()
+    unless $P10, rx464_fail
+    rx464_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_prefix")
-    rx487_pos = $P10."pos"()
+    rx464_pos = $P10."pos"()
   # rx pass
-    rx487_cur."!cursor_pass"(rx487_pos, "term:sym<statement_prefix>")
-    rx487_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx487_pos)
-    .return (rx487_cur)
-  rx487_fail:
+    rx464_cur."!cursor_pass"(rx464_pos, "term:sym<statement_prefix>")
+    rx464_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx464_pos)
+    .return (rx464_cur)
+  rx464_restart:
 .annotate 'line', 4
-    (rx487_rep, rx487_pos, $I10, $P10) = rx487_cur."!mark_fail"(0)
-    lt rx487_pos, -1, rx487_done
-    eq rx487_pos, -1, rx487_fail
+    rx464_cur."!cursor_debug"("NEXT ", "term:sym<statement_prefix>")
+  rx464_fail:
+    (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
+    lt rx464_pos, -1, rx464_done
+    eq rx464_pos, -1, rx464_fail
     jump $I10
-  rx487_done:
-    rx487_cur."!cursor_fail"()
-    rx487_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
-    .return (rx487_cur)
+  rx464_done:
+    rx464_cur."!cursor_fail"()
+    rx464_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
+    .return (rx464_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1278500537.15927") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1279564397.22945") :method
 .annotate 'line', 4
-    $P489 = self."!PREFIX__!subrule"("statement_prefix", "")
-    new $P490, "ResizablePMCArray"
-    push $P490, $P489
-    .return ($P490)
+    $P466 = self."!PREFIX__!subrule"("statement_prefix", "")
+    new $P467, "ResizablePMCArray"
+    push $P467, $P466
+    .return ($P467)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("118_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<lambda>"  :subid("118_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx493_tgt
-    .local int rx493_pos
-    .local int rx493_off
-    .local int rx493_eos
-    .local int rx493_rep
-    .local pmc rx493_cur
-    (rx493_cur, rx493_pos, rx493_tgt) = self."!cursor_start"()
-    rx493_cur."!cursor_debug"("START ", "term:sym<lambda>")
-    .lex unicode:"$\x{a2}", rx493_cur
+    .local string rx470_tgt
+    .local int rx470_pos
+    .local int rx470_off
+    .local int rx470_eos
+    .local int rx470_rep
+    .local pmc rx470_cur
+    (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx470_cur
     .local pmc match
     .lex "$/", match
-    length rx493_eos, rx493_tgt
-    gt rx493_pos, rx493_eos, rx493_done
-    set rx493_off, 0
-    lt rx493_pos, 2, rx493_start
-    sub rx493_off, rx493_pos, 1
-    substr rx493_tgt, rx493_tgt, rx493_off
-  rx493_start:
+    length rx470_eos, rx470_tgt
+    gt rx470_pos, rx470_eos, rx470_done
+    set rx470_off, 0
+    lt rx470_pos, 2, rx470_start
+    sub rx470_off, rx470_pos, 1
+    substr rx470_tgt, rx470_tgt, rx470_off
+  rx470_start:
+    eq $I10, 1, rx470_restart
+    rx470_cur."!cursor_debug"("START ", "term:sym<lambda>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan496_done
-    goto rxscan496_scan
-  rxscan496_loop:
-    ($P10) = rx493_cur."from"()
+    ne $I10, -1, rxscan473_done
+    goto rxscan473_scan
+  rxscan473_loop:
+    ($P10) = rx470_cur."from"()
     inc $P10
-    set rx493_pos, $P10
-    ge rx493_pos, rx493_eos, rxscan496_done
-  rxscan496_scan:
-    set_addr $I10, rxscan496_loop
-    rx493_cur."!mark_push"(0, rx493_pos, $I10)
-  rxscan496_done:
+    set rx470_pos, $P10
+    ge rx470_pos, rx470_eos, rxscan473_done
+  rxscan473_scan:
+    set_addr $I10, rxscan473_loop
+    rx470_cur."!mark_push"(0, rx470_pos, $I10)
+  rxscan473_done:
 .annotate 'line', 234
   # rx subrule "lambda" subtype=zerowidth negate=
-    rx493_cur."!cursor_pos"(rx493_pos)
-    $P10 = rx493_cur."lambda"()
-    unless $P10, rx493_fail
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."lambda"()
+    unless $P10, rx470_fail
   # rx subrule "pblock" subtype=capture negate=
-    rx493_cur."!cursor_pos"(rx493_pos)
-    $P10 = rx493_cur."pblock"()
-    unless $P10, rx493_fail
-    rx493_cur."!mark_push"(0, -1, 0, $P10)
+    rx470_cur."!cursor_pos"(rx470_pos)
+    $P10 = rx470_cur."pblock"()
+    unless $P10, rx470_fail
+    rx470_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx493_pos = $P10."pos"()
+    rx470_pos = $P10."pos"()
   # rx pass
-    rx493_cur."!cursor_pass"(rx493_pos, "term:sym<lambda>")
-    rx493_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx493_pos)
-    .return (rx493_cur)
-  rx493_fail:
+    rx470_cur."!cursor_pass"(rx470_pos, "term:sym<lambda>")
+    rx470_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx470_pos)
+    .return (rx470_cur)
+  rx470_restart:
 .annotate 'line', 4
-    (rx493_rep, rx493_pos, $I10, $P10) = rx493_cur."!mark_fail"(0)
-    lt rx493_pos, -1, rx493_done
-    eq rx493_pos, -1, rx493_fail
+    rx470_cur."!cursor_debug"("NEXT ", "term:sym<lambda>")
+  rx470_fail:
+    (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
+    lt rx470_pos, -1, rx470_done
+    eq rx470_pos, -1, rx470_fail
     jump $I10
-  rx493_done:
-    rx493_cur."!cursor_fail"()
-    rx493_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
-    .return (rx493_cur)
+  rx470_done:
+    rx470_cur."!cursor_fail"()
+    rx470_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
+    .return (rx470_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("119_1278500537.15927") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("119_1279564397.22945") :method
 .annotate 'line', 4
-    new $P495, "ResizablePMCArray"
-    push $P495, ""
-    .return ($P495)
+    new $P472, "ResizablePMCArray"
+    push $P472, ""
+    .return ($P472)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("120_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "fatarrow"  :subid("120_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx498_tgt
-    .local int rx498_pos
-    .local int rx498_off
-    .local int rx498_eos
-    .local int rx498_rep
-    .local pmc rx498_cur
-    (rx498_cur, rx498_pos, rx498_tgt) = self."!cursor_start"()
-    rx498_cur."!cursor_debug"("START ", "fatarrow")
-    .lex unicode:"$\x{a2}", rx498_cur
+    .local string rx475_tgt
+    .local int rx475_pos
+    .local int rx475_off
+    .local int rx475_eos
+    .local int rx475_rep
+    .local pmc rx475_cur
+    (rx475_cur, rx475_pos, rx475_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx475_cur
     .local pmc match
     .lex "$/", match
-    length rx498_eos, rx498_tgt
-    gt rx498_pos, rx498_eos, rx498_done
-    set rx498_off, 0
-    lt rx498_pos, 2, rx498_start
-    sub rx498_off, rx498_pos, 1
-    substr rx498_tgt, rx498_tgt, rx498_off
-  rx498_start:
+    length rx475_eos, rx475_tgt
+    gt rx475_pos, rx475_eos, rx475_done
+    set rx475_off, 0
+    lt rx475_pos, 2, rx475_start
+    sub rx475_off, rx475_pos, 1
+    substr rx475_tgt, rx475_tgt, rx475_off
+  rx475_start:
+    eq $I10, 1, rx475_restart
+    rx475_cur."!cursor_debug"("START ", "fatarrow")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan502_done
-    goto rxscan502_scan
-  rxscan502_loop:
-    ($P10) = rx498_cur."from"()
+    ne $I10, -1, rxscan479_done
+    goto rxscan479_scan
+  rxscan479_loop:
+    ($P10) = rx475_cur."from"()
     inc $P10
-    set rx498_pos, $P10
-    ge rx498_pos, rx498_eos, rxscan502_done
-  rxscan502_scan:
-    set_addr $I10, rxscan502_loop
-    rx498_cur."!mark_push"(0, rx498_pos, $I10)
-  rxscan502_done:
+    set rx475_pos, $P10
+    ge rx475_pos, rx475_eos, rxscan479_done
+  rxscan479_scan:
+    set_addr $I10, rxscan479_loop
+    rx475_cur."!mark_push"(0, rx475_pos, $I10)
+  rxscan479_done:
 .annotate 'line', 237
   # rx subrule "identifier" subtype=capture negate=
-    rx498_cur."!cursor_pos"(rx498_pos)
-    $P10 = rx498_cur."identifier"()
-    unless $P10, rx498_fail
-    rx498_cur."!mark_push"(0, -1, 0, $P10)
+    rx475_cur."!cursor_pos"(rx475_pos)
+    $P10 = rx475_cur."identifier"()
+    unless $P10, rx475_fail
+    rx475_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("key")
-    rx498_pos = $P10."pos"()
-  # rx rxquantr503 ** 0..*
-    set_addr $I504, rxquantr503_done
-    rx498_cur."!mark_push"(0, rx498_pos, $I504)
-  rxquantr503_loop:
+    rx475_pos = $P10."pos"()
+  # rx rxquantr480 ** 0..*
+    set_addr $I10, rxquantr480_done
+    rx475_cur."!mark_push"(0, rx475_pos, $I10)
+  rxquantr480_loop:
   # rx enumcharlist negate=0 
-    ge rx498_pos, rx498_eos, rx498_fail
-    sub $I10, rx498_pos, rx498_off
-    substr $S10, rx498_tgt, $I10, 1
+    ge rx475_pos, rx475_eos, rx475_fail
+    sub $I10, rx475_pos, rx475_off
+    substr $S10, rx475_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx498_fail
-    inc rx498_pos
-    (rx498_rep) = rx498_cur."!mark_commit"($I504)
-    rx498_cur."!mark_push"(rx498_rep, rx498_pos, $I504)
-    goto rxquantr503_loop
-  rxquantr503_done:
+    lt $I11, 0, rx475_fail
+    inc rx475_pos
+    set_addr $I10, rxquantr480_done
+    (rx475_rep) = rx475_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr480_done
+    rx475_cur."!mark_push"(rx475_rep, rx475_pos, $I10)
+    goto rxquantr480_loop
+  rxquantr480_done:
   # rx literal  "=>"
-    add $I11, rx498_pos, 2
-    gt $I11, rx498_eos, rx498_fail
-    sub $I11, rx498_pos, rx498_off
-    substr $S10, rx498_tgt, $I11, 2
-    ne $S10, "=>", rx498_fail
-    add rx498_pos, 2
-  # rx subrule "ws" subtype=method negate=
-    rx498_cur."!cursor_pos"(rx498_pos)
-    $P10 = rx498_cur."ws"()
-    unless $P10, rx498_fail
-    rx498_pos = $P10."pos"()
+    add $I11, rx475_pos, 2
+    gt $I11, rx475_eos, rx475_fail
+    sub $I11, rx475_pos, rx475_off
+    substr $S10, rx475_tgt, $I11, 2
+    ne $S10, "=>", rx475_fail
+    add rx475_pos, 2
+  # rx subrule "ws" subtype=method negate=
+    rx475_cur."!cursor_pos"(rx475_pos)
+    $P10 = rx475_cur."ws"()
+    unless $P10, rx475_fail
+    rx475_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx498_cur."!cursor_pos"(rx498_pos)
-    $P10 = rx498_cur."EXPR"("i=")
-    unless $P10, rx498_fail
-    rx498_cur."!mark_push"(0, -1, 0, $P10)
+    rx475_cur."!cursor_pos"(rx475_pos)
+    $P10 = rx475_cur."EXPR"("i=")
+    unless $P10, rx475_fail
+    rx475_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("val")
-    rx498_pos = $P10."pos"()
+    rx475_pos = $P10."pos"()
 .annotate 'line', 236
   # rx pass
-    rx498_cur."!cursor_pass"(rx498_pos, "fatarrow")
-    rx498_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx498_pos)
-    .return (rx498_cur)
-  rx498_fail:
+    rx475_cur."!cursor_pass"(rx475_pos, "fatarrow")
+    rx475_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx475_pos)
+    .return (rx475_cur)
+  rx475_restart:
 .annotate 'line', 4
-    (rx498_rep, rx498_pos, $I10, $P10) = rx498_cur."!mark_fail"(0)
-    lt rx498_pos, -1, rx498_done
-    eq rx498_pos, -1, rx498_fail
+    rx475_cur."!cursor_debug"("NEXT ", "fatarrow")
+  rx475_fail:
+    (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0)
+    lt rx475_pos, -1, rx475_done
+    eq rx475_pos, -1, rx475_fail
     jump $I10
-  rx498_done:
-    rx498_cur."!cursor_fail"()
-    rx498_cur."!cursor_debug"("FAIL  ", "fatarrow")
-    .return (rx498_cur)
+  rx475_done:
+    rx475_cur."!cursor_fail"()
+    rx475_cur."!cursor_debug"("FAIL  ", "fatarrow")
+    .return (rx475_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("121_1278500537.15927") :method
+.sub "!PREFIX__fatarrow"  :subid("121_1279564397.22945") :method
 .annotate 'line', 4
-    $P500 = self."!PREFIX__!subrule"("identifier", "")
-    new $P501, "ResizablePMCArray"
-    push $P501, $P500
-    .return ($P501)
+    $P477 = self."!PREFIX__!subrule"("identifier", "")
+    new $P478, "ResizablePMCArray"
+    push $P478, $P477
+    .return ($P478)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("122_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "colonpair"  :subid("122_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx506_tgt
-    .local int rx506_pos
-    .local int rx506_off
-    .local int rx506_eos
-    .local int rx506_rep
-    .local pmc rx506_cur
-    (rx506_cur, rx506_pos, rx506_tgt) = self."!cursor_start"()
-    rx506_cur."!cursor_debug"("START ", "colonpair")
-    rx506_cur."!cursor_caparray"("circumfix")
-    .lex unicode:"$\x{a2}", rx506_cur
+    .local string rx482_tgt
+    .local int rx482_pos
+    .local int rx482_off
+    .local int rx482_eos
+    .local int rx482_rep
+    .local pmc rx482_cur
+    (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"()
+    rx482_cur."!cursor_caparray"("circumfix")
+    .lex unicode:"$\x{a2}", rx482_cur
     .local pmc match
     .lex "$/", match
-    length rx506_eos, rx506_tgt
-    gt rx506_pos, rx506_eos, rx506_done
-    set rx506_off, 0
-    lt rx506_pos, 2, rx506_start
-    sub rx506_off, rx506_pos, 1
-    substr rx506_tgt, rx506_tgt, rx506_off
-  rx506_start:
+    length rx482_eos, rx482_tgt
+    gt rx482_pos, rx482_eos, rx482_done
+    set rx482_off, 0
+    lt rx482_pos, 2, rx482_start
+    sub rx482_off, rx482_pos, 1
+    substr rx482_tgt, rx482_tgt, rx482_off
+  rx482_start:
+    eq $I10, 1, rx482_restart
+    rx482_cur."!cursor_debug"("START ", "colonpair")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan512_done
-    goto rxscan512_scan
-  rxscan512_loop:
-    ($P10) = rx506_cur."from"()
+    ne $I10, -1, rxscan488_done
+    goto rxscan488_scan
+  rxscan488_loop:
+    ($P10) = rx482_cur."from"()
     inc $P10
-    set rx506_pos, $P10
-    ge rx506_pos, rx506_eos, rxscan512_done
-  rxscan512_scan:
-    set_addr $I10, rxscan512_loop
-    rx506_cur."!mark_push"(0, rx506_pos, $I10)
-  rxscan512_done:
+    set rx482_pos, $P10
+    ge rx482_pos, rx482_eos, rxscan488_done
+  rxscan488_scan:
+    set_addr $I10, rxscan488_loop
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
+  rxscan488_done:
 .annotate 'line', 241
   # rx literal  ":"
-    add $I11, rx506_pos, 1
-    gt $I11, rx506_eos, rx506_fail
-    sub $I11, rx506_pos, rx506_off
-    substr $S10, rx506_tgt, $I11, 1
-    ne $S10, ":", rx506_fail
-    add rx506_pos, 1
-  alt513_0:
+    add $I11, rx482_pos, 1
+    gt $I11, rx482_eos, rx482_fail
+    sub $I11, rx482_pos, rx482_off
+    substr $S10, rx482_tgt, $I11, 1
+    ne $S10, ":", rx482_fail
+    add rx482_pos, 1
+  alt489_0:
 .annotate 'line', 242
-    set_addr $I10, alt513_1
-    rx506_cur."!mark_push"(0, rx506_pos, $I10)
+    set_addr $I10, alt489_1
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
 .annotate 'line', 243
   # rx subcapture "not"
-    set_addr $I10, rxcap_514_fail
-    rx506_cur."!mark_push"(0, rx506_pos, $I10)
+    set_addr $I10, rxcap_490_fail
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
   # rx literal  "!"
-    add $I11, rx506_pos, 1
-    gt $I11, rx506_eos, rx506_fail
-    sub $I11, rx506_pos, rx506_off
-    substr $S10, rx506_tgt, $I11, 1
-    ne $S10, "!", rx506_fail
-    add rx506_pos, 1
-    set_addr $I10, rxcap_514_fail
-    ($I12, $I11) = rx506_cur."!mark_peek"($I10)
-    rx506_cur."!cursor_pos"($I11)
-    ($P10) = rx506_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx506_pos, "")
-    rx506_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx482_pos, 1
+    gt $I11, rx482_eos, rx482_fail
+    sub $I11, rx482_pos, rx482_off
+    substr $S10, rx482_tgt, $I11, 1
+    ne $S10, "!", rx482_fail
+    add rx482_pos, 1
+    set_addr $I10, rxcap_490_fail
+    ($I12, $I11) = rx482_cur."!mark_peek"($I10)
+    rx482_cur."!cursor_pos"($I11)
+    ($P10) = rx482_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx482_pos, "")
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("not")
-    goto rxcap_514_done
-  rxcap_514_fail:
-    goto rx506_fail
-  rxcap_514_done:
+    goto rxcap_490_done
+  rxcap_490_fail:
+    goto rx482_fail
+  rxcap_490_done:
   # rx subrule "identifier" subtype=capture negate=
-    rx506_cur."!cursor_pos"(rx506_pos)
-    $P10 = rx506_cur."identifier"()
-    unless $P10, rx506_fail
-    rx506_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."identifier"()
+    unless $P10, rx482_fail
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx506_pos = $P10."pos"()
-    goto alt513_end
-  alt513_1:
-    set_addr $I10, alt513_2
-    rx506_cur."!mark_push"(0, rx506_pos, $I10)
+    rx482_pos = $P10."pos"()
+    goto alt489_end
+  alt489_1:
+    set_addr $I10, alt489_2
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
 .annotate 'line', 244
   # rx subrule "identifier" subtype=capture negate=
-    rx506_cur."!cursor_pos"(rx506_pos)
-    $P10 = rx506_cur."identifier"()
-    unless $P10, rx506_fail
-    rx506_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."identifier"()
+    unless $P10, rx482_fail
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx506_pos = $P10."pos"()
-  # rx rxquantr515 ** 0..1
-    set_addr $I516, rxquantr515_done
-    rx506_cur."!mark_push"(0, rx506_pos, $I516)
-  rxquantr515_loop:
+    rx482_pos = $P10."pos"()
+  # rx rxquantr491 ** 0..1
+    set_addr $I10, rxquantr491_done
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
+  rxquantr491_loop:
   # rx subrule "circumfix" subtype=capture negate=
-    rx506_cur."!cursor_pos"(rx506_pos)
-    $P10 = rx506_cur."circumfix"()
-    unless $P10, rx506_fail
-    rx506_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."circumfix"()
+    unless $P10, rx482_fail
+    goto rxsubrule492_pass
+  rxsubrule492_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx482_fail
+  rxsubrule492_pass:
+    set_addr $I10, rxsubrule492_back
+    rx482_cur."!mark_push"(0, rx482_pos, $I10, $P10)
     $P10."!cursor_names"("circumfix")
-    rx506_pos = $P10."pos"()
-    (rx506_rep) = rx506_cur."!mark_commit"($I516)
-  rxquantr515_done:
-    goto alt513_end
-  alt513_2:
+    rx482_pos = $P10."pos"()
+    set_addr $I10, rxquantr491_done
+    (rx482_rep) = rx482_cur."!mark_commit"($I10)
+  rxquantr491_done:
+    goto alt489_end
+  alt489_2:
 .annotate 'line', 245
   # rx subrule "circumfix" subtype=capture negate=
-    rx506_cur."!cursor_pos"(rx506_pos)
-    $P10 = rx506_cur."circumfix"()
-    unless $P10, rx506_fail
-    rx506_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."circumfix"()
+    unless $P10, rx482_fail
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("circumfix")
-    rx506_pos = $P10."pos"()
-  alt513_end:
+    rx482_pos = $P10."pos"()
+  alt489_end:
 .annotate 'line', 240
   # rx pass
-    rx506_cur."!cursor_pass"(rx506_pos, "colonpair")
-    rx506_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx506_pos)
-    .return (rx506_cur)
-  rx506_fail:
-.annotate 'line', 4
-    (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
-    lt rx506_pos, -1, rx506_done
-    eq rx506_pos, -1, rx506_fail
-    jump $I10
-  rx506_done:
-    rx506_cur."!cursor_fail"()
-    rx506_cur."!cursor_debug"("FAIL  ", "colonpair")
-    .return (rx506_cur)
+    rx482_cur."!cursor_pass"(rx482_pos, "colonpair")
+    rx482_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx482_pos)
+    .return (rx482_cur)
+  rx482_restart:
+.annotate 'line', 4
+    rx482_cur."!cursor_debug"("NEXT ", "colonpair")
+  rx482_fail:
+    (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
+    lt rx482_pos, -1, rx482_done
+    eq rx482_pos, -1, rx482_fail
+    jump $I10
+  rx482_done:
+    rx482_cur."!cursor_fail"()
+    rx482_cur."!cursor_debug"("FAIL  ", "colonpair")
+    .return (rx482_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("123_1278500537.15927") :method
-.annotate 'line', 4
-    $P508 = self."!PREFIX__!subrule"("circumfix", ":")
-    $P509 = self."!PREFIX__!subrule"("identifier", ":")
-    $P510 = self."!PREFIX__!subrule"("identifier", ":!")
-    new $P511, "ResizablePMCArray"
-    push $P511, $P508
-    push $P511, $P509
-    push $P511, $P510
-    .return ($P511)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("124_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx518_tgt
-    .local int rx518_pos
-    .local int rx518_off
-    .local int rx518_eos
-    .local int rx518_rep
-    .local pmc rx518_cur
-    (rx518_cur, rx518_pos, rx518_tgt) = self."!cursor_start"()
-    rx518_cur."!cursor_debug"("START ", "variable")
-    rx518_cur."!cursor_caparray"("twigil")
-    .lex unicode:"$\x{a2}", rx518_cur
-    .local pmc match
-    .lex "$/", match
-    length rx518_eos, rx518_tgt
-    gt rx518_pos, rx518_eos, rx518_done
-    set rx518_off, 0
-    lt rx518_pos, 2, rx518_start
-    sub rx518_off, rx518_pos, 1
-    substr rx518_tgt, rx518_tgt, rx518_off
-  rx518_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan523_done
-    goto rxscan523_scan
-  rxscan523_loop:
-    ($P10) = rx518_cur."from"()
-    inc $P10
-    set rx518_pos, $P10
-    ge rx518_pos, rx518_eos, rxscan523_done
-  rxscan523_scan:
-    set_addr $I10, rxscan523_loop
-    rx518_cur."!mark_push"(0, rx518_pos, $I10)
-  rxscan523_done:
-  alt524_0:
+.sub "!PREFIX__colonpair"  :subid("123_1279564397.22945") :method
+.annotate 'line', 4
+    $P484 = self."!PREFIX__!subrule"("circumfix", ":")
+    $P485 = self."!PREFIX__!subrule"("identifier", ":")
+    $P486 = self."!PREFIX__!subrule"("identifier", ":!")
+    new $P487, "ResizablePMCArray"
+    push $P487, $P484
+    push $P487, $P485
+    push $P487, $P486
+    .return ($P487)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "variable"  :subid("124_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx494_tgt
+    .local int rx494_pos
+    .local int rx494_off
+    .local int rx494_eos
+    .local int rx494_rep
+    .local pmc rx494_cur
+    (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"()
+    rx494_cur."!cursor_caparray"("twigil")
+    .lex unicode:"$\x{a2}", rx494_cur
+    .local pmc match
+    .lex "$/", match
+    length rx494_eos, rx494_tgt
+    gt rx494_pos, rx494_eos, rx494_done
+    set rx494_off, 0
+    lt rx494_pos, 2, rx494_start
+    sub rx494_off, rx494_pos, 1
+    substr rx494_tgt, rx494_tgt, rx494_off
+  rx494_start:
+    eq $I10, 1, rx494_restart
+    rx494_cur."!cursor_debug"("START ", "variable")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan499_done
+    goto rxscan499_scan
+  rxscan499_loop:
+    ($P10) = rx494_cur."from"()
+    inc $P10
+    set rx494_pos, $P10
+    ge rx494_pos, rx494_eos, rxscan499_done
+  rxscan499_scan:
+    set_addr $I10, rxscan499_loop
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+  rxscan499_done:
+  alt500_0:
 .annotate 'line', 249
-    set_addr $I10, alt524_1
-    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+    set_addr $I10, alt500_1
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
 .annotate 'line', 250
   # rx subrule "sigil" subtype=capture negate=
-    rx518_cur."!cursor_pos"(rx518_pos)
-    $P10 = rx518_cur."sigil"()
-    unless $P10, rx518_fail
-    rx518_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."sigil"()
+    unless $P10, rx494_fail
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx518_pos = $P10."pos"()
-  # rx rxquantr525 ** 0..1
-    set_addr $I526, rxquantr525_done
-    rx518_cur."!mark_push"(0, rx518_pos, $I526)
-  rxquantr525_loop:
+    rx494_pos = $P10."pos"()
+  # rx rxquantr501 ** 0..1
+    set_addr $I10, rxquantr501_done
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
+  rxquantr501_loop:
   # rx subrule "twigil" subtype=capture negate=
-    rx518_cur."!cursor_pos"(rx518_pos)
-    $P10 = rx518_cur."twigil"()
-    unless $P10, rx518_fail
-    rx518_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."twigil"()
+    unless $P10, rx494_fail
+    goto rxsubrule502_pass
+  rxsubrule502_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx494_fail
+  rxsubrule502_pass:
+    set_addr $I10, rxsubrule502_back
+    rx494_cur."!mark_push"(0, rx494_pos, $I10, $P10)
     $P10."!cursor_names"("twigil")
-    rx518_pos = $P10."pos"()
-    (rx518_rep) = rx518_cur."!mark_commit"($I526)
-  rxquantr525_done:
+    rx494_pos = $P10."pos"()
+    set_addr $I10, rxquantr501_done
+    (rx494_rep) = rx494_cur."!mark_commit"($I10)
+  rxquantr501_done:
   # rx subrule "name" subtype=capture negate=
-    rx518_cur."!cursor_pos"(rx518_pos)
-    $P10 = rx518_cur."name"()
-    unless $P10, rx518_fail
-    rx518_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."name"()
+    unless $P10, rx494_fail
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("desigilname")
-    rx518_pos = $P10."pos"()
-    goto alt524_end
-  alt524_1:
-    set_addr $I10, alt524_2
-    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+    rx494_pos = $P10."pos"()
+    goto alt500_end
+  alt500_1:
+    set_addr $I10, alt500_2
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
 .annotate 'line', 251
   # rx subrule "sigil" subtype=capture negate=
-    rx518_cur."!cursor_pos"(rx518_pos)
-    $P10 = rx518_cur."sigil"()
-    unless $P10, rx518_fail
-    rx518_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."sigil"()
+    unless $P10, rx494_fail
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx518_pos = $P10."pos"()
+    rx494_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx518_pos, rx518_eos, rx518_fail
-    sub $I10, rx518_pos, rx518_off
-    substr $S10, rx518_tgt, $I10, 1
+    ge rx494_pos, rx494_eos, rx494_fail
+    sub $I10, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I10, 1
     index $I11, "<[", $S10
-    lt $I11, 0, rx518_fail
+    lt $I11, 0, rx494_fail
   # rx subrule "postcircumfix" subtype=capture negate=
-    rx518_cur."!cursor_pos"(rx518_pos)
-    $P10 = rx518_cur."postcircumfix"()
-    unless $P10, rx518_fail
-    rx518_cur."!mark_push"(0, -1, 0, $P10)
+    rx494_cur."!cursor_pos"(rx494_pos)
+    $P10 = rx494_cur."postcircumfix"()
+    unless $P10, rx494_fail
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("postcircumfix")
-    rx518_pos = $P10."pos"()
-    goto alt524_end
-  alt524_2:
+    rx494_pos = $P10."pos"()
+    goto alt500_end
+  alt500_2:
 .annotate 'line', 252
   # rx subcapture "sigil"
-    set_addr $I10, rxcap_527_fail
-    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+    set_addr $I10, rxcap_503_fail
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
   # rx literal  "$"
-    add $I11, rx518_pos, 1
-    gt $I11, rx518_eos, rx518_fail
-    sub $I11, rx518_pos, rx518_off
-    substr $S10, rx518_tgt, $I11, 1
-    ne $S10, "$", rx518_fail
-    add rx518_pos, 1
-    set_addr $I10, rxcap_527_fail
-    ($I12, $I11) = rx518_cur."!mark_peek"($I10)
-    rx518_cur."!cursor_pos"($I11)
-    ($P10) = rx518_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx518_pos, "")
-    rx518_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx494_pos, 1
+    gt $I11, rx494_eos, rx494_fail
+    sub $I11, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I11, 1
+    ne $S10, "$", rx494_fail
+    add rx494_pos, 1
+    set_addr $I10, rxcap_503_fail
+    ($I12, $I11) = rx494_cur."!mark_peek"($I10)
+    rx494_cur."!cursor_pos"($I11)
+    ($P10) = rx494_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx494_pos, "")
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    goto rxcap_527_done
-  rxcap_527_fail:
-    goto rx518_fail
-  rxcap_527_done:
+    goto rxcap_503_done
+  rxcap_503_fail:
+    goto rx494_fail
+  rxcap_503_done:
   # rx subcapture "desigilname"
-    set_addr $I10, rxcap_528_fail
-    rx518_cur."!mark_push"(0, rx518_pos, $I10)
+    set_addr $I10, rxcap_504_fail
+    rx494_cur."!mark_push"(0, rx494_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx518_pos, rx518_eos, rx518_fail
-    sub $I10, rx518_pos, rx518_off
-    substr $S10, rx518_tgt, $I10, 1
+    ge rx494_pos, rx494_eos, rx494_fail
+    sub $I10, rx494_pos, rx494_off
+    substr $S10, rx494_tgt, $I10, 1
     index $I11, "/_!", $S10
-    lt $I11, 0, rx518_fail
-    inc rx518_pos
-    set_addr $I10, rxcap_528_fail
-    ($I12, $I11) = rx518_cur."!mark_peek"($I10)
-    rx518_cur."!cursor_pos"($I11)
-    ($P10) = rx518_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx518_pos, "")
-    rx518_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx494_fail
+    inc rx494_pos
+    set_addr $I10, rxcap_504_fail
+    ($I12, $I11) = rx494_cur."!mark_peek"($I10)
+    rx494_cur."!cursor_pos"($I11)
+    ($P10) = rx494_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx494_pos, "")
+    rx494_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("desigilname")
-    goto rxcap_528_done
-  rxcap_528_fail:
-    goto rx518_fail
-  rxcap_528_done:
-  alt524_end:
+    goto rxcap_504_done
+  rxcap_504_fail:
+    goto rx494_fail
+  rxcap_504_done:
+  alt500_end:
 .annotate 'line', 249
   # rx pass
-    rx518_cur."!cursor_pass"(rx518_pos, "variable")
-    rx518_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx518_pos)
-    .return (rx518_cur)
-  rx518_fail:
+    rx494_cur."!cursor_pass"(rx494_pos, "variable")
+    rx494_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx494_pos)
+    .return (rx494_cur)
+  rx494_restart:
 .annotate 'line', 4
-    (rx518_rep, rx518_pos, $I10, $P10) = rx518_cur."!mark_fail"(0)
-    lt rx518_pos, -1, rx518_done
-    eq rx518_pos, -1, rx518_fail
+    rx494_cur."!cursor_debug"("NEXT ", "variable")
+  rx494_fail:
+    (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
+    lt rx494_pos, -1, rx494_done
+    eq rx494_pos, -1, rx494_fail
     jump $I10
-  rx518_done:
-    rx518_cur."!cursor_fail"()
-    rx518_cur."!cursor_debug"("FAIL  ", "variable")
-    .return (rx518_cur)
+  rx494_done:
+    rx494_cur."!cursor_fail"()
+    rx494_cur."!cursor_debug"("FAIL  ", "variable")
+    .return (rx494_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("125_1278500537.15927") :method
+.sub "!PREFIX__variable"  :subid("125_1279564397.22945") :method
 .annotate 'line', 4
-    $P520 = self."!PREFIX__!subrule"("sigil", "")
-    $P521 = self."!PREFIX__!subrule"("sigil", "")
-    new $P522, "ResizablePMCArray"
-    push $P522, "$!"
-    push $P522, "$_"
-    push $P522, "$/"
-    push $P522, $P520
-    push $P522, $P521
-    .return ($P522)
+    $P496 = self."!PREFIX__!subrule"("sigil", "")
+    $P497 = self."!PREFIX__!subrule"("sigil", "")
+    new $P498, "ResizablePMCArray"
+    push $P498, "$!"
+    push $P498, "$_"
+    push $P498, "$/"
+    push $P498, $P496
+    push $P498, $P497
+    .return ($P498)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("126_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "sigil"  :subid("126_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx530_tgt
-    .local int rx530_pos
-    .local int rx530_off
-    .local int rx530_eos
-    .local int rx530_rep
-    .local pmc rx530_cur
-    (rx530_cur, rx530_pos, rx530_tgt) = self."!cursor_start"()
-    rx530_cur."!cursor_debug"("START ", "sigil")
-    .lex unicode:"$\x{a2}", rx530_cur
-    .local pmc match
-    .lex "$/", match
-    length rx530_eos, rx530_tgt
-    gt rx530_pos, rx530_eos, rx530_done
-    set rx530_off, 0
-    lt rx530_pos, 2, rx530_start
-    sub rx530_off, rx530_pos, 1
-    substr rx530_tgt, rx530_tgt, rx530_off
-  rx530_start:
+    .local string rx506_tgt
+    .local int rx506_pos
+    .local int rx506_off
+    .local int rx506_eos
+    .local int rx506_rep
+    .local pmc rx506_cur
+    (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx506_cur
+    .local pmc match
+    .lex "$/", match
+    length rx506_eos, rx506_tgt
+    gt rx506_pos, rx506_eos, rx506_done
+    set rx506_off, 0
+    lt rx506_pos, 2, rx506_start
+    sub rx506_off, rx506_pos, 1
+    substr rx506_tgt, rx506_tgt, rx506_off
+  rx506_start:
+    eq $I10, 1, rx506_restart
+    rx506_cur."!cursor_debug"("START ", "sigil")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan533_done
-    goto rxscan533_scan
-  rxscan533_loop:
-    ($P10) = rx530_cur."from"()
+    ne $I10, -1, rxscan509_done
+    goto rxscan509_scan
+  rxscan509_loop:
+    ($P10) = rx506_cur."from"()
     inc $P10
-    set rx530_pos, $P10
-    ge rx530_pos, rx530_eos, rxscan533_done
-  rxscan533_scan:
-    set_addr $I10, rxscan533_loop
-    rx530_cur."!mark_push"(0, rx530_pos, $I10)
-  rxscan533_done:
+    set rx506_pos, $P10
+    ge rx506_pos, rx506_eos, rxscan509_done
+  rxscan509_scan:
+    set_addr $I10, rxscan509_loop
+    rx506_cur."!mark_push"(0, rx506_pos, $I10)
+  rxscan509_done:
 .annotate 'line', 255
   # rx enumcharlist negate=0 
-    ge rx530_pos, rx530_eos, rx530_fail
-    sub $I10, rx530_pos, rx530_off
-    substr $S10, rx530_tgt, $I10, 1
+    ge rx506_pos, rx506_eos, rx506_fail
+    sub $I10, rx506_pos, rx506_off
+    substr $S10, rx506_tgt, $I10, 1
     index $I11, "$@%&", $S10
-    lt $I11, 0, rx530_fail
-    inc rx530_pos
+    lt $I11, 0, rx506_fail
+    inc rx506_pos
   # rx pass
-    rx530_cur."!cursor_pass"(rx530_pos, "sigil")
-    rx530_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx530_pos)
-    .return (rx530_cur)
-  rx530_fail:
+    rx506_cur."!cursor_pass"(rx506_pos, "sigil")
+    rx506_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx506_pos)
+    .return (rx506_cur)
+  rx506_restart:
 .annotate 'line', 4
-    (rx530_rep, rx530_pos, $I10, $P10) = rx530_cur."!mark_fail"(0)
-    lt rx530_pos, -1, rx530_done
-    eq rx530_pos, -1, rx530_fail
+    rx506_cur."!cursor_debug"("NEXT ", "sigil")
+  rx506_fail:
+    (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
+    lt rx506_pos, -1, rx506_done
+    eq rx506_pos, -1, rx506_fail
     jump $I10
-  rx530_done:
-    rx530_cur."!cursor_fail"()
-    rx530_cur."!cursor_debug"("FAIL  ", "sigil")
-    .return (rx530_cur)
+  rx506_done:
+    rx506_cur."!cursor_fail"()
+    rx506_cur."!cursor_debug"("FAIL  ", "sigil")
+    .return (rx506_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("127_1278500537.15927") :method
+.sub "!PREFIX__sigil"  :subid("127_1279564397.22945") :method
 .annotate 'line', 4
-    new $P532, "ResizablePMCArray"
-    push $P532, "&"
-    push $P532, "%"
-    push $P532, "@"
-    push $P532, "$"
-    .return ($P532)
+    new $P508, "ResizablePMCArray"
+    push $P508, "&"
+    push $P508, "%"
+    push $P508, "@"
+    push $P508, "$"
+    .return ($P508)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("128_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx535_tgt
-    .local int rx535_pos
-    .local int rx535_off
-    .local int rx535_eos
-    .local int rx535_rep
-    .local pmc rx535_cur
-    (rx535_cur, rx535_pos, rx535_tgt) = self."!cursor_start"()
-    rx535_cur."!cursor_debug"("START ", "twigil")
-    .lex unicode:"$\x{a2}", rx535_cur
-    .local pmc match
-    .lex "$/", match
-    length rx535_eos, rx535_tgt
-    gt rx535_pos, rx535_eos, rx535_done
-    set rx535_off, 0
-    lt rx535_pos, 2, rx535_start
-    sub rx535_off, rx535_pos, 1
-    substr rx535_tgt, rx535_tgt, rx535_off
-  rx535_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan538_done
-    goto rxscan538_scan
-  rxscan538_loop:
-    ($P10) = rx535_cur."from"()
-    inc $P10
-    set rx535_pos, $P10
-    ge rx535_pos, rx535_eos, rxscan538_done
-  rxscan538_scan:
-    set_addr $I10, rxscan538_loop
-    rx535_cur."!mark_push"(0, rx535_pos, $I10)
-  rxscan538_done:
+.sub "twigil"  :subid("128_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx511_tgt
+    .local int rx511_pos
+    .local int rx511_off
+    .local int rx511_eos
+    .local int rx511_rep
+    .local pmc rx511_cur
+    (rx511_cur, rx511_pos, rx511_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx511_cur
+    .local pmc match
+    .lex "$/", match
+    length rx511_eos, rx511_tgt
+    gt rx511_pos, rx511_eos, rx511_done
+    set rx511_off, 0
+    lt rx511_pos, 2, rx511_start
+    sub rx511_off, rx511_pos, 1
+    substr rx511_tgt, rx511_tgt, rx511_off
+  rx511_start:
+    eq $I10, 1, rx511_restart
+    rx511_cur."!cursor_debug"("START ", "twigil")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan514_done
+    goto rxscan514_scan
+  rxscan514_loop:
+    ($P10) = rx511_cur."from"()
+    inc $P10
+    set rx511_pos, $P10
+    ge rx511_pos, rx511_eos, rxscan514_done
+  rxscan514_scan:
+    set_addr $I10, rxscan514_loop
+    rx511_cur."!mark_push"(0, rx511_pos, $I10)
+  rxscan514_done:
 .annotate 'line', 257
   # rx enumcharlist negate=0 
-    ge rx535_pos, rx535_eos, rx535_fail
-    sub $I10, rx535_pos, rx535_off
-    substr $S10, rx535_tgt, $I10, 1
+    ge rx511_pos, rx511_eos, rx511_fail
+    sub $I10, rx511_pos, rx511_off
+    substr $S10, rx511_tgt, $I10, 1
     index $I11, "*!?", $S10
-    lt $I11, 0, rx535_fail
-    inc rx535_pos
+    lt $I11, 0, rx511_fail
+    inc rx511_pos
   # rx pass
-    rx535_cur."!cursor_pass"(rx535_pos, "twigil")
-    rx535_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx535_pos)
-    .return (rx535_cur)
-  rx535_fail:
+    rx511_cur."!cursor_pass"(rx511_pos, "twigil")
+    rx511_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx511_pos)
+    .return (rx511_cur)
+  rx511_restart:
 .annotate 'line', 4
-    (rx535_rep, rx535_pos, $I10, $P10) = rx535_cur."!mark_fail"(0)
-    lt rx535_pos, -1, rx535_done
-    eq rx535_pos, -1, rx535_fail
+    rx511_cur."!cursor_debug"("NEXT ", "twigil")
+  rx511_fail:
+    (rx511_rep, rx511_pos, $I10, $P10) = rx511_cur."!mark_fail"(0)
+    lt rx511_pos, -1, rx511_done
+    eq rx511_pos, -1, rx511_fail
     jump $I10
-  rx535_done:
-    rx535_cur."!cursor_fail"()
-    rx535_cur."!cursor_debug"("FAIL  ", "twigil")
-    .return (rx535_cur)
+  rx511_done:
+    rx511_cur."!cursor_fail"()
+    rx511_cur."!cursor_debug"("FAIL  ", "twigil")
+    .return (rx511_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("129_1278500537.15927") :method
+.sub "!PREFIX__twigil"  :subid("129_1279564397.22945") :method
 .annotate 'line', 4
-    new $P537, "ResizablePMCArray"
-    push $P537, "?"
-    push $P537, "!"
-    push $P537, "*"
-    .return ($P537)
+    new $P513, "ResizablePMCArray"
+    push $P513, "?"
+    push $P513, "!"
+    push $P513, "*"
+    .return ($P513)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("130_1278500537.15927") :method
+.sub "package_declarator"  :subid("130_1279564397.22945") :method
 .annotate 'line', 259
-    $P540 = self."!protoregex"("package_declarator")
-    .return ($P540)
+    $P516 = self."!protoregex"("package_declarator")
+    .return ($P516)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("131_1278500537.15927") :method
+.sub "!PREFIX__package_declarator"  :subid("131_1279564397.22945") :method
 .annotate 'line', 259
-    $P542 = self."!PREFIX__!protoregex"("package_declarator")
-    .return ($P542)
+    $P518 = self."!PREFIX__!protoregex"("package_declarator")
+    .return ($P518)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("132_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "package_declarator:sym<module>"  :subid("132_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx544_tgt
-    .local int rx544_pos
-    .local int rx544_off
-    .local int rx544_eos
-    .local int rx544_rep
-    .local pmc rx544_cur
-    (rx544_cur, rx544_pos, rx544_tgt) = self."!cursor_start"()
-    rx544_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
-    .lex unicode:"$\x{a2}", rx544_cur
-    .local pmc match
-    .lex "$/", match
-    length rx544_eos, rx544_tgt
-    gt rx544_pos, rx544_eos, rx544_done
-    set rx544_off, 0
-    lt rx544_pos, 2, rx544_start
-    sub rx544_off, rx544_pos, 1
-    substr rx544_tgt, rx544_tgt, rx544_off
-  rx544_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan548_done
-    goto rxscan548_scan
-  rxscan548_loop:
-    ($P10) = rx544_cur."from"()
-    inc $P10
-    set rx544_pos, $P10
-    ge rx544_pos, rx544_eos, rxscan548_done
-  rxscan548_scan:
-    set_addr $I10, rxscan548_loop
-    rx544_cur."!mark_push"(0, rx544_pos, $I10)
-  rxscan548_done:
+    .local string rx520_tgt
+    .local int rx520_pos
+    .local int rx520_off
+    .local int rx520_eos
+    .local int rx520_rep
+    .local pmc rx520_cur
+    (rx520_cur, rx520_pos, rx520_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx520_cur
+    .local pmc match
+    .lex "$/", match
+    length rx520_eos, rx520_tgt
+    gt rx520_pos, rx520_eos, rx520_done
+    set rx520_off, 0
+    lt rx520_pos, 2, rx520_start
+    sub rx520_off, rx520_pos, 1
+    substr rx520_tgt, rx520_tgt, rx520_off
+  rx520_start:
+    eq $I10, 1, rx520_restart
+    rx520_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan524_done
+    goto rxscan524_scan
+  rxscan524_loop:
+    ($P10) = rx520_cur."from"()
+    inc $P10
+    set rx520_pos, $P10
+    ge rx520_pos, rx520_eos, rxscan524_done
+  rxscan524_scan:
+    set_addr $I10, rxscan524_loop
+    rx520_cur."!mark_push"(0, rx520_pos, $I10)
+  rxscan524_done:
 .annotate 'line', 260
   # rx subcapture "sym"
-    set_addr $I10, rxcap_549_fail
-    rx544_cur."!mark_push"(0, rx544_pos, $I10)
+    set_addr $I10, rxcap_525_fail
+    rx520_cur."!mark_push"(0, rx520_pos, $I10)
   # rx literal  "module"
-    add $I11, rx544_pos, 6
-    gt $I11, rx544_eos, rx544_fail
-    sub $I11, rx544_pos, rx544_off
-    substr $S10, rx544_tgt, $I11, 6
-    ne $S10, "module", rx544_fail
-    add rx544_pos, 6
-    set_addr $I10, rxcap_549_fail
-    ($I12, $I11) = rx544_cur."!mark_peek"($I10)
-    rx544_cur."!cursor_pos"($I11)
-    ($P10) = rx544_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx544_pos, "")
-    rx544_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx520_pos, 6
+    gt $I11, rx520_eos, rx520_fail
+    sub $I11, rx520_pos, rx520_off
+    substr $S10, rx520_tgt, $I11, 6
+    ne $S10, "module", rx520_fail
+    add rx520_pos, 6
+    set_addr $I10, rxcap_525_fail
+    ($I12, $I11) = rx520_cur."!mark_peek"($I10)
+    rx520_cur."!cursor_pos"($I11)
+    ($P10) = rx520_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx520_pos, "")
+    rx520_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_549_done
-  rxcap_549_fail:
-    goto rx544_fail
-  rxcap_549_done:
+    goto rxcap_525_done
+  rxcap_525_fail:
+    goto rx520_fail
+  rxcap_525_done:
   # rx subrule "package_def" subtype=capture negate=
-    rx544_cur."!cursor_pos"(rx544_pos)
-    $P10 = rx544_cur."package_def"()
-    unless $P10, rx544_fail
-    rx544_cur."!mark_push"(0, -1, 0, $P10)
+    rx520_cur."!cursor_pos"(rx520_pos)
+    $P10 = rx520_cur."package_def"()
+    unless $P10, rx520_fail
+    rx520_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_def")
-    rx544_pos = $P10."pos"()
+    rx520_pos = $P10."pos"()
   # rx pass
-    rx544_cur."!cursor_pass"(rx544_pos, "package_declarator:sym<module>")
-    rx544_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx544_pos)
-    .return (rx544_cur)
-  rx544_fail:
+    rx520_cur."!cursor_pass"(rx520_pos, "package_declarator:sym<module>")
+    rx520_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx520_pos)
+    .return (rx520_cur)
+  rx520_restart:
 .annotate 'line', 4
-    (rx544_rep, rx544_pos, $I10, $P10) = rx544_cur."!mark_fail"(0)
-    lt rx544_pos, -1, rx544_done
-    eq rx544_pos, -1, rx544_fail
+    rx520_cur."!cursor_debug"("NEXT ", "package_declarator:sym<module>")
+  rx520_fail:
+    (rx520_rep, rx520_pos, $I10, $P10) = rx520_cur."!mark_fail"(0)
+    lt rx520_pos, -1, rx520_done
+    eq rx520_pos, -1, rx520_fail
     jump $I10
-  rx544_done:
-    rx544_cur."!cursor_fail"()
-    rx544_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
-    .return (rx544_cur)
+  rx520_done:
+    rx520_cur."!cursor_fail"()
+    rx520_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
+    .return (rx520_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1278500537.15927") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1279564397.22945") :method
 .annotate 'line', 4
-    $P546 = self."!PREFIX__!subrule"("package_def", "module")
-    new $P547, "ResizablePMCArray"
-    push $P547, $P546
-    .return ($P547)
+    $P522 = self."!PREFIX__!subrule"("package_def", "module")
+    new $P523, "ResizablePMCArray"
+    push $P523, $P522
+    .return ($P523)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("134_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "package_declarator:sym<class>"  :subid("134_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx551_tgt
-    .local int rx551_pos
-    .local int rx551_off
-    .local int rx551_eos
-    .local int rx551_rep
-    .local pmc rx551_cur
-    (rx551_cur, rx551_pos, rx551_tgt) = self."!cursor_start"()
-    rx551_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
-    .lex unicode:"$\x{a2}", rx551_cur
+    .local string rx527_tgt
+    .local int rx527_pos
+    .local int rx527_off
+    .local int rx527_eos
+    .local int rx527_rep
+    .local pmc rx527_cur
+    (rx527_cur, rx527_pos, rx527_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx527_cur
     .local pmc match
     .lex "$/", match
-    length rx551_eos, rx551_tgt
-    gt rx551_pos, rx551_eos, rx551_done
-    set rx551_off, 0
-    lt rx551_pos, 2, rx551_start
-    sub rx551_off, rx551_pos, 1
-    substr rx551_tgt, rx551_tgt, rx551_off
-  rx551_start:
+    length rx527_eos, rx527_tgt
+    gt rx527_pos, rx527_eos, rx527_done
+    set rx527_off, 0
+    lt rx527_pos, 2, rx527_start
+    sub rx527_off, rx527_pos, 1
+    substr rx527_tgt, rx527_tgt, rx527_off
+  rx527_start:
+    eq $I10, 1, rx527_restart
+    rx527_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan556_done
-    goto rxscan556_scan
-  rxscan556_loop:
-    ($P10) = rx551_cur."from"()
+    ne $I10, -1, rxscan532_done
+    goto rxscan532_scan
+  rxscan532_loop:
+    ($P10) = rx527_cur."from"()
     inc $P10
-    set rx551_pos, $P10
-    ge rx551_pos, rx551_eos, rxscan556_done
-  rxscan556_scan:
-    set_addr $I10, rxscan556_loop
-    rx551_cur."!mark_push"(0, rx551_pos, $I10)
-  rxscan556_done:
+    set rx527_pos, $P10
+    ge rx527_pos, rx527_eos, rxscan532_done
+  rxscan532_scan:
+    set_addr $I10, rxscan532_loop
+    rx527_cur."!mark_push"(0, rx527_pos, $I10)
+  rxscan532_done:
 .annotate 'line', 261
   # rx subcapture "sym"
-    set_addr $I10, rxcap_558_fail
-    rx551_cur."!mark_push"(0, rx551_pos, $I10)
-  alt557_0:
-    set_addr $I10, alt557_1
-    rx551_cur."!mark_push"(0, rx551_pos, $I10)
+    set_addr $I10, rxcap_534_fail
+    rx527_cur."!mark_push"(0, rx527_pos, $I10)
+  alt533_0:
+    set_addr $I10, alt533_1
+    rx527_cur."!mark_push"(0, rx527_pos, $I10)
   # rx literal  "class"
-    add $I11, rx551_pos, 5
-    gt $I11, rx551_eos, rx551_fail
-    sub $I11, rx551_pos, rx551_off
-    substr $S10, rx551_tgt, $I11, 5
-    ne $S10, "class", rx551_fail
-    add rx551_pos, 5
-    goto alt557_end
-  alt557_1:
+    add $I11, rx527_pos, 5
+    gt $I11, rx527_eos, rx527_fail
+    sub $I11, rx527_pos, rx527_off
+    substr $S10, rx527_tgt, $I11, 5
+    ne $S10, "class", rx527_fail
+    add rx527_pos, 5
+    goto alt533_end
+  alt533_1:
   # rx literal  "grammar"
-    add $I11, rx551_pos, 7
-    gt $I11, rx551_eos, rx551_fail
-    sub $I11, rx551_pos, rx551_off
-    substr $S10, rx551_tgt, $I11, 7
-    ne $S10, "grammar", rx551_fail
-    add rx551_pos, 7
-  alt557_end:
-    set_addr $I10, rxcap_558_fail
-    ($I12, $I11) = rx551_cur."!mark_peek"($I10)
-    rx551_cur."!cursor_pos"($I11)
-    ($P10) = rx551_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx551_pos, "")
-    rx551_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx527_pos, 7
+    gt $I11, rx527_eos, rx527_fail
+    sub $I11, rx527_pos, rx527_off
+    substr $S10, rx527_tgt, $I11, 7
+    ne $S10, "grammar", rx527_fail
+    add rx527_pos, 7
+  alt533_end:
+    set_addr $I10, rxcap_534_fail
+    ($I12, $I11) = rx527_cur."!mark_peek"($I10)
+    rx527_cur."!cursor_pos"($I11)
+    ($P10) = rx527_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx527_pos, "")
+    rx527_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_558_done
-  rxcap_558_fail:
-    goto rx551_fail
-  rxcap_558_done:
+    goto rxcap_534_done
+  rxcap_534_fail:
+    goto rx527_fail
+  rxcap_534_done:
   # rx subrule "package_def" subtype=capture negate=
-    rx551_cur."!cursor_pos"(rx551_pos)
-    $P10 = rx551_cur."package_def"()
-    unless $P10, rx551_fail
-    rx551_cur."!mark_push"(0, -1, 0, $P10)
+    rx527_cur."!cursor_pos"(rx527_pos)
+    $P10 = rx527_cur."package_def"()
+    unless $P10, rx527_fail
+    rx527_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_def")
-    rx551_pos = $P10."pos"()
+    rx527_pos = $P10."pos"()
   # rx pass
-    rx551_cur."!cursor_pass"(rx551_pos, "package_declarator:sym<class>")
-    rx551_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx551_pos)
-    .return (rx551_cur)
-  rx551_fail:
+    rx527_cur."!cursor_pass"(rx527_pos, "package_declarator:sym<class>")
+    rx527_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx527_pos)
+    .return (rx527_cur)
+  rx527_restart:
 .annotate 'line', 4
-    (rx551_rep, rx551_pos, $I10, $P10) = rx551_cur."!mark_fail"(0)
-    lt rx551_pos, -1, rx551_done
-    eq rx551_pos, -1, rx551_fail
+    rx527_cur."!cursor_debug"("NEXT ", "package_declarator:sym<class>")
+  rx527_fail:
+    (rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0)
+    lt rx527_pos, -1, rx527_done
+    eq rx527_pos, -1, rx527_fail
     jump $I10
-  rx551_done:
-    rx551_cur."!cursor_fail"()
-    rx551_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
-    .return (rx551_cur)
+  rx527_done:
+    rx527_cur."!cursor_fail"()
+    rx527_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
+    .return (rx527_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1278500537.15927") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1279564397.22945") :method
 .annotate 'line', 4
-    $P553 = self."!PREFIX__!subrule"("package_def", "grammar")
-    $P554 = self."!PREFIX__!subrule"("package_def", "class")
-    new $P555, "ResizablePMCArray"
-    push $P555, $P553
-    push $P555, $P554
-    .return ($P555)
+    $P529 = self."!PREFIX__!subrule"("package_def", "grammar")
+    $P530 = self."!PREFIX__!subrule"("package_def", "class")
+    new $P531, "ResizablePMCArray"
+    push $P531, $P529
+    push $P531, $P530
+    .return ($P531)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("136_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "package_def"  :subid("136_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx560_tgt
-    .local int rx560_pos
-    .local int rx560_off
-    .local int rx560_eos
-    .local int rx560_rep
-    .local pmc rx560_cur
-    (rx560_cur, rx560_pos, rx560_tgt) = self."!cursor_start"()
-    rx560_cur."!cursor_debug"("START ", "package_def")
-    rx560_cur."!cursor_caparray"("parent")
-    .lex unicode:"$\x{a2}", rx560_cur
+    .local string rx536_tgt
+    .local int rx536_pos
+    .local int rx536_off
+    .local int rx536_eos
+    .local int rx536_rep
+    .local pmc rx536_cur
+    (rx536_cur, rx536_pos, rx536_tgt, $I10) = self."!cursor_start"()
+    rx536_cur."!cursor_caparray"("parent")
+    .lex unicode:"$\x{a2}", rx536_cur
     .local pmc match
     .lex "$/", match
-    length rx560_eos, rx560_tgt
-    gt rx560_pos, rx560_eos, rx560_done
-    set rx560_off, 0
-    lt rx560_pos, 2, rx560_start
-    sub rx560_off, rx560_pos, 1
-    substr rx560_tgt, rx560_tgt, rx560_off
-  rx560_start:
+    length rx536_eos, rx536_tgt
+    gt rx536_pos, rx536_eos, rx536_done
+    set rx536_off, 0
+    lt rx536_pos, 2, rx536_start
+    sub rx536_off, rx536_pos, 1
+    substr rx536_tgt, rx536_tgt, rx536_off
+  rx536_start:
+    eq $I10, 1, rx536_restart
+    rx536_cur."!cursor_debug"("START ", "package_def")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan564_done
-    goto rxscan564_scan
-  rxscan564_loop:
-    ($P10) = rx560_cur."from"()
+    ne $I10, -1, rxscan540_done
+    goto rxscan540_scan
+  rxscan540_loop:
+    ($P10) = rx536_cur."from"()
     inc $P10
-    set rx560_pos, $P10
-    ge rx560_pos, rx560_eos, rxscan564_done
-  rxscan564_scan:
-    set_addr $I10, rxscan564_loop
-    rx560_cur."!mark_push"(0, rx560_pos, $I10)
-  rxscan564_done:
+    set rx536_pos, $P10
+    ge rx536_pos, rx536_eos, rxscan540_done
+  rxscan540_scan:
+    set_addr $I10, rxscan540_loop
+    rx536_cur."!mark_push"(0, rx536_pos, $I10)
+  rxscan540_done:
 .annotate 'line', 263
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
 .annotate 'line', 264
   # rx subrule "name" subtype=capture negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."name"()
-    unless $P10, rx560_fail
-    rx560_cur."!mark_push"(0, -1, 0, $P10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."name"()
+    unless $P10, rx536_fail
+    rx536_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx560_pos = $P10."pos"()
+    rx536_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
 .annotate 'line', 265
-  # rx rxquantr567 ** 0..1
-    set_addr $I571, rxquantr567_done
-    rx560_cur."!mark_push"(0, rx560_pos, $I571)
-  rxquantr567_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+  # rx rxquantr543 ** 0..1
+    set_addr $I10, rxquantr543_done
+    rx536_cur."!mark_push"(0, rx536_pos, $I10)
+  rxquantr543_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx literal  "is"
-    add $I11, rx560_pos, 2
-    gt $I11, rx560_eos, rx560_fail
-    sub $I11, rx560_pos, rx560_off
-    substr $S10, rx560_tgt, $I11, 2
-    ne $S10, "is", rx560_fail
-    add rx560_pos, 2
-  # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+    add $I11, rx536_pos, 2
+    gt $I11, rx536_eos, rx536_fail
+    sub $I11, rx536_pos, rx536_off
+    substr $S10, rx536_tgt, $I11, 2
+    ne $S10, "is", rx536_fail
+    add rx536_pos, 2
+  # rx subrule "ws" subtype=method negate=
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx subrule "name" subtype=capture negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."name"()
-    unless $P10, rx560_fail
-    rx560_cur."!mark_push"(0, -1, 0, $P10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."name"()
+    unless $P10, rx536_fail
+    rx536_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("parent")
-    rx560_pos = $P10."pos"()
+    rx536_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
-    (rx560_rep) = rx560_cur."!mark_commit"($I571)
-  rxquantr567_done:
-  # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
-  alt573_0:
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+    set_addr $I10, rxquantr543_done
+    (rx536_rep) = rx536_cur."!mark_commit"($I10)
+  rxquantr543_done:
+  # rx subrule "ws" subtype=method negate=
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+  alt548_0:
 .annotate 'line', 266
-    set_addr $I10, alt573_1
-    rx560_cur."!mark_push"(0, rx560_pos, $I10)
+    set_addr $I10, alt548_1
+    rx536_cur."!mark_push"(0, rx536_pos, $I10)
 .annotate 'line', 267
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx literal  ";"
-    add $I11, rx560_pos, 1
-    gt $I11, rx560_eos, rx560_fail
-    sub $I11, rx560_pos, rx560_off
-    substr $S10, rx560_tgt, $I11, 1
-    ne $S10, ";", rx560_fail
-    add rx560_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+    add $I11, rx536_pos, 1
+    gt $I11, rx536_eos, rx536_fail
+    sub $I11, rx536_pos, rx536_off
+    substr $S10, rx536_tgt, $I11, 1
+    ne $S10, ";", rx536_fail
+    add rx536_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx subrule "comp_unit" subtype=capture negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."comp_unit"()
-    unless $P10, rx560_fail
-    rx560_cur."!mark_push"(0, -1, 0, $P10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."comp_unit"()
+    unless $P10, rx536_fail
+    rx536_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("comp_unit")
-    rx560_pos = $P10."pos"()
+    rx536_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
-    goto alt573_end
-  alt573_1:
-    set_addr $I10, alt573_2
-    rx560_cur."!mark_push"(0, rx560_pos, $I10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+    goto alt548_end
+  alt548_1:
+    set_addr $I10, alt548_2
+    rx536_cur."!mark_push"(0, rx536_pos, $I10)
 .annotate 'line', 268
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx560_pos, rx560_eos, rx560_fail
-    sub $I10, rx560_pos, rx560_off
-    substr $S10, rx560_tgt, $I10, 1
+    ge rx536_pos, rx536_eos, rx536_fail
+    sub $I10, rx536_pos, rx536_off
+    substr $S10, rx536_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx560_fail
+    lt $I11, 0, rx536_fail
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx subrule "block" subtype=capture negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."block"()
-    unless $P10, rx560_fail
-    rx560_cur."!mark_push"(0, -1, 0, $P10)
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."block"()
+    unless $P10, rx536_fail
+    rx536_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx560_pos = $P10."pos"()
+    rx536_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
-    goto alt573_end
-  alt573_2:
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+    goto alt548_end
+  alt548_2:
 .annotate 'line', 269
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."panic"("Malformed package declaration")
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
-  alt573_end:
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."panic"("Malformed package declaration")
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
+  alt548_end:
 .annotate 'line', 270
   # rx subrule "ws" subtype=method negate=
-    rx560_cur."!cursor_pos"(rx560_pos)
-    $P10 = rx560_cur."ws"()
-    unless $P10, rx560_fail
-    rx560_pos = $P10."pos"()
+    rx536_cur."!cursor_pos"(rx536_pos)
+    $P10 = rx536_cur."ws"()
+    unless $P10, rx536_fail
+    rx536_pos = $P10."pos"()
 .annotate 'line', 263
   # rx pass
-    rx560_cur."!cursor_pass"(rx560_pos, "package_def")
-    rx560_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx560_pos)
-    .return (rx560_cur)
-  rx560_fail:
+    rx536_cur."!cursor_pass"(rx536_pos, "package_def")
+    rx536_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx536_pos)
+    .return (rx536_cur)
+  rx536_restart:
 .annotate 'line', 4
-    (rx560_rep, rx560_pos, $I10, $P10) = rx560_cur."!mark_fail"(0)
-    lt rx560_pos, -1, rx560_done
-    eq rx560_pos, -1, rx560_fail
+    rx536_cur."!cursor_debug"("NEXT ", "package_def")
+  rx536_fail:
+    (rx536_rep, rx536_pos, $I10, $P10) = rx536_cur."!mark_fail"(0)
+    lt rx536_pos, -1, rx536_done
+    eq rx536_pos, -1, rx536_fail
     jump $I10
-  rx560_done:
-    rx560_cur."!cursor_fail"()
-    rx560_cur."!cursor_debug"("FAIL  ", "package_def")
-    .return (rx560_cur)
+  rx536_done:
+    rx536_cur."!cursor_fail"()
+    rx536_cur."!cursor_debug"("FAIL  ", "package_def")
+    .return (rx536_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("137_1278500537.15927") :method
+.sub "!PREFIX__package_def"  :subid("137_1279564397.22945") :method
 .annotate 'line', 4
-    $P562 = self."!PREFIX__!subrule"("ws", "")
-    new $P563, "ResizablePMCArray"
-    push $P563, $P562
-    .return ($P563)
+    $P538 = self."!PREFIX__!subrule"("ws", "")
+    new $P539, "ResizablePMCArray"
+    push $P539, $P538
+    .return ($P539)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("138_1278500537.15927") :method
+.sub "scope_declarator"  :subid("138_1279564397.22945") :method
 .annotate 'line', 273
-    $P584 = self."!protoregex"("scope_declarator")
-    .return ($P584)
+    $P559 = self."!protoregex"("scope_declarator")
+    .return ($P559)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("139_1278500537.15927") :method
+.sub "!PREFIX__scope_declarator"  :subid("139_1279564397.22945") :method
 .annotate 'line', 273
-    $P586 = self."!PREFIX__!protoregex"("scope_declarator")
-    .return ($P586)
+    $P561 = self."!PREFIX__!protoregex"("scope_declarator")
+    .return ($P561)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("140_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "scope_declarator:sym<my>"  :subid("140_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx588_tgt
-    .local int rx588_pos
-    .local int rx588_off
-    .local int rx588_eos
-    .local int rx588_rep
-    .local pmc rx588_cur
-    (rx588_cur, rx588_pos, rx588_tgt) = self."!cursor_start"()
-    rx588_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
-    .lex unicode:"$\x{a2}", rx588_cur
-    .local pmc match
-    .lex "$/", match
-    length rx588_eos, rx588_tgt
-    gt rx588_pos, rx588_eos, rx588_done
-    set rx588_off, 0
-    lt rx588_pos, 2, rx588_start
-    sub rx588_off, rx588_pos, 1
-    substr rx588_tgt, rx588_tgt, rx588_off
-  rx588_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan592_done
-    goto rxscan592_scan
-  rxscan592_loop:
-    ($P10) = rx588_cur."from"()
-    inc $P10
-    set rx588_pos, $P10
-    ge rx588_pos, rx588_eos, rxscan592_done
-  rxscan592_scan:
-    set_addr $I10, rxscan592_loop
-    rx588_cur."!mark_push"(0, rx588_pos, $I10)
-  rxscan592_done:
+    .local string rx563_tgt
+    .local int rx563_pos
+    .local int rx563_off
+    .local int rx563_eos
+    .local int rx563_rep
+    .local pmc rx563_cur
+    (rx563_cur, rx563_pos, rx563_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx563_cur
+    .local pmc match
+    .lex "$/", match
+    length rx563_eos, rx563_tgt
+    gt rx563_pos, rx563_eos, rx563_done
+    set rx563_off, 0
+    lt rx563_pos, 2, rx563_start
+    sub rx563_off, rx563_pos, 1
+    substr rx563_tgt, rx563_tgt, rx563_off
+  rx563_start:
+    eq $I10, 1, rx563_restart
+    rx563_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan567_done
+    goto rxscan567_scan
+  rxscan567_loop:
+    ($P10) = rx563_cur."from"()
+    inc $P10
+    set rx563_pos, $P10
+    ge rx563_pos, rx563_eos, rxscan567_done
+  rxscan567_scan:
+    set_addr $I10, rxscan567_loop
+    rx563_cur."!mark_push"(0, rx563_pos, $I10)
+  rxscan567_done:
 .annotate 'line', 274
   # rx subcapture "sym"
-    set_addr $I10, rxcap_593_fail
-    rx588_cur."!mark_push"(0, rx588_pos, $I10)
+    set_addr $I10, rxcap_568_fail
+    rx563_cur."!mark_push"(0, rx563_pos, $I10)
   # rx literal  "my"
-    add $I11, rx588_pos, 2
-    gt $I11, rx588_eos, rx588_fail
-    sub $I11, rx588_pos, rx588_off
-    substr $S10, rx588_tgt, $I11, 2
-    ne $S10, "my", rx588_fail
-    add rx588_pos, 2
-    set_addr $I10, rxcap_593_fail
-    ($I12, $I11) = rx588_cur."!mark_peek"($I10)
-    rx588_cur."!cursor_pos"($I11)
-    ($P10) = rx588_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx588_pos, "")
-    rx588_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx563_pos, 2
+    gt $I11, rx563_eos, rx563_fail
+    sub $I11, rx563_pos, rx563_off
+    substr $S10, rx563_tgt, $I11, 2
+    ne $S10, "my", rx563_fail
+    add rx563_pos, 2
+    set_addr $I10, rxcap_568_fail
+    ($I12, $I11) = rx563_cur."!mark_peek"($I10)
+    rx563_cur."!cursor_pos"($I11)
+    ($P10) = rx563_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx563_pos, "")
+    rx563_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_593_done
-  rxcap_593_fail:
-    goto rx588_fail
-  rxcap_593_done:
+    goto rxcap_568_done
+  rxcap_568_fail:
+    goto rx563_fail
+  rxcap_568_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx588_cur."!cursor_pos"(rx588_pos)
-    $P10 = rx588_cur."scoped"("my")
-    unless $P10, rx588_fail
-    rx588_cur."!mark_push"(0, -1, 0, $P10)
+    rx563_cur."!cursor_pos"(rx563_pos)
+    $P10 = rx563_cur."scoped"("my")
+    unless $P10, rx563_fail
+    rx563_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx588_pos = $P10."pos"()
+    rx563_pos = $P10."pos"()
   # rx pass
-    rx588_cur."!cursor_pass"(rx588_pos, "scope_declarator:sym<my>")
-    rx588_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx588_pos)
-    .return (rx588_cur)
-  rx588_fail:
+    rx563_cur."!cursor_pass"(rx563_pos, "scope_declarator:sym<my>")
+    rx563_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx563_pos)
+    .return (rx563_cur)
+  rx563_restart:
 .annotate 'line', 4
-    (rx588_rep, rx588_pos, $I10, $P10) = rx588_cur."!mark_fail"(0)
-    lt rx588_pos, -1, rx588_done
-    eq rx588_pos, -1, rx588_fail
+    rx563_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<my>")
+  rx563_fail:
+    (rx563_rep, rx563_pos, $I10, $P10) = rx563_cur."!mark_fail"(0)
+    lt rx563_pos, -1, rx563_done
+    eq rx563_pos, -1, rx563_fail
     jump $I10
-  rx588_done:
-    rx588_cur."!cursor_fail"()
-    rx588_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
-    .return (rx588_cur)
+  rx563_done:
+    rx563_cur."!cursor_fail"()
+    rx563_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
+    .return (rx563_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1278500537.15927") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1279564397.22945") :method
 .annotate 'line', 4
-    $P590 = self."!PREFIX__!subrule"("scoped", "my")
-    new $P591, "ResizablePMCArray"
-    push $P591, $P590
-    .return ($P591)
+    $P565 = self."!PREFIX__!subrule"("scoped", "my")
+    new $P566, "ResizablePMCArray"
+    push $P566, $P565
+    .return ($P566)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("142_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "scope_declarator:sym<our>"  :subid("142_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx595_tgt
-    .local int rx595_pos
-    .local int rx595_off
-    .local int rx595_eos
-    .local int rx595_rep
-    .local pmc rx595_cur
-    (rx595_cur, rx595_pos, rx595_tgt) = self."!cursor_start"()
-    rx595_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
-    .lex unicode:"$\x{a2}", rx595_cur
+    .local string rx570_tgt
+    .local int rx570_pos
+    .local int rx570_off
+    .local int rx570_eos
+    .local int rx570_rep
+    .local pmc rx570_cur
+    (rx570_cur, rx570_pos, rx570_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx570_cur
     .local pmc match
     .lex "$/", match
-    length rx595_eos, rx595_tgt
-    gt rx595_pos, rx595_eos, rx595_done
-    set rx595_off, 0
-    lt rx595_pos, 2, rx595_start
-    sub rx595_off, rx595_pos, 1
-    substr rx595_tgt, rx595_tgt, rx595_off
-  rx595_start:
+    length rx570_eos, rx570_tgt
+    gt rx570_pos, rx570_eos, rx570_done
+    set rx570_off, 0
+    lt rx570_pos, 2, rx570_start
+    sub rx570_off, rx570_pos, 1
+    substr rx570_tgt, rx570_tgt, rx570_off
+  rx570_start:
+    eq $I10, 1, rx570_restart
+    rx570_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan599_done
-    goto rxscan599_scan
-  rxscan599_loop:
-    ($P10) = rx595_cur."from"()
+    ne $I10, -1, rxscan574_done
+    goto rxscan574_scan
+  rxscan574_loop:
+    ($P10) = rx570_cur."from"()
     inc $P10
-    set rx595_pos, $P10
-    ge rx595_pos, rx595_eos, rxscan599_done
-  rxscan599_scan:
-    set_addr $I10, rxscan599_loop
-    rx595_cur."!mark_push"(0, rx595_pos, $I10)
-  rxscan599_done:
+    set rx570_pos, $P10
+    ge rx570_pos, rx570_eos, rxscan574_done
+  rxscan574_scan:
+    set_addr $I10, rxscan574_loop
+    rx570_cur."!mark_push"(0, rx570_pos, $I10)
+  rxscan574_done:
 .annotate 'line', 275
   # rx subcapture "sym"
-    set_addr $I10, rxcap_600_fail
-    rx595_cur."!mark_push"(0, rx595_pos, $I10)
+    set_addr $I10, rxcap_575_fail
+    rx570_cur."!mark_push"(0, rx570_pos, $I10)
   # rx literal  "our"
-    add $I11, rx595_pos, 3
-    gt $I11, rx595_eos, rx595_fail
-    sub $I11, rx595_pos, rx595_off
-    substr $S10, rx595_tgt, $I11, 3
-    ne $S10, "our", rx595_fail
-    add rx595_pos, 3
-    set_addr $I10, rxcap_600_fail
-    ($I12, $I11) = rx595_cur."!mark_peek"($I10)
-    rx595_cur."!cursor_pos"($I11)
-    ($P10) = rx595_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx595_pos, "")
-    rx595_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx570_pos, 3
+    gt $I11, rx570_eos, rx570_fail
+    sub $I11, rx570_pos, rx570_off
+    substr $S10, rx570_tgt, $I11, 3
+    ne $S10, "our", rx570_fail
+    add rx570_pos, 3
+    set_addr $I10, rxcap_575_fail
+    ($I12, $I11) = rx570_cur."!mark_peek"($I10)
+    rx570_cur."!cursor_pos"($I11)
+    ($P10) = rx570_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx570_pos, "")
+    rx570_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_600_done
-  rxcap_600_fail:
-    goto rx595_fail
-  rxcap_600_done:
+    goto rxcap_575_done
+  rxcap_575_fail:
+    goto rx570_fail
+  rxcap_575_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx595_cur."!cursor_pos"(rx595_pos)
-    $P10 = rx595_cur."scoped"("our")
-    unless $P10, rx595_fail
-    rx595_cur."!mark_push"(0, -1, 0, $P10)
+    rx570_cur."!cursor_pos"(rx570_pos)
+    $P10 = rx570_cur."scoped"("our")
+    unless $P10, rx570_fail
+    rx570_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx595_pos = $P10."pos"()
+    rx570_pos = $P10."pos"()
   # rx pass
-    rx595_cur."!cursor_pass"(rx595_pos, "scope_declarator:sym<our>")
-    rx595_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx595_pos)
-    .return (rx595_cur)
-  rx595_fail:
+    rx570_cur."!cursor_pass"(rx570_pos, "scope_declarator:sym<our>")
+    rx570_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx570_pos)
+    .return (rx570_cur)
+  rx570_restart:
 .annotate 'line', 4
-    (rx595_rep, rx595_pos, $I10, $P10) = rx595_cur."!mark_fail"(0)
-    lt rx595_pos, -1, rx595_done
-    eq rx595_pos, -1, rx595_fail
+    rx570_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<our>")
+  rx570_fail:
+    (rx570_rep, rx570_pos, $I10, $P10) = rx570_cur."!mark_fail"(0)
+    lt rx570_pos, -1, rx570_done
+    eq rx570_pos, -1, rx570_fail
     jump $I10
-  rx595_done:
-    rx595_cur."!cursor_fail"()
-    rx595_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
-    .return (rx595_cur)
+  rx570_done:
+    rx570_cur."!cursor_fail"()
+    rx570_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
+    .return (rx570_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1278500537.15927") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1279564397.22945") :method
 .annotate 'line', 4
-    $P597 = self."!PREFIX__!subrule"("scoped", "our")
-    new $P598, "ResizablePMCArray"
-    push $P598, $P597
-    .return ($P598)
+    $P572 = self."!PREFIX__!subrule"("scoped", "our")
+    new $P573, "ResizablePMCArray"
+    push $P573, $P572
+    .return ($P573)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("144_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "scope_declarator:sym<has>"  :subid("144_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx602_tgt
-    .local int rx602_pos
-    .local int rx602_off
-    .local int rx602_eos
-    .local int rx602_rep
-    .local pmc rx602_cur
-    (rx602_cur, rx602_pos, rx602_tgt) = self."!cursor_start"()
-    rx602_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
-    .lex unicode:"$\x{a2}", rx602_cur
+    .local string rx577_tgt
+    .local int rx577_pos
+    .local int rx577_off
+    .local int rx577_eos
+    .local int rx577_rep
+    .local pmc rx577_cur
+    (rx577_cur, rx577_pos, rx577_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx577_cur
     .local pmc match
     .lex "$/", match
-    length rx602_eos, rx602_tgt
-    gt rx602_pos, rx602_eos, rx602_done
-    set rx602_off, 0
-    lt rx602_pos, 2, rx602_start
-    sub rx602_off, rx602_pos, 1
-    substr rx602_tgt, rx602_tgt, rx602_off
-  rx602_start:
+    length rx577_eos, rx577_tgt
+    gt rx577_pos, rx577_eos, rx577_done
+    set rx577_off, 0
+    lt rx577_pos, 2, rx577_start
+    sub rx577_off, rx577_pos, 1
+    substr rx577_tgt, rx577_tgt, rx577_off
+  rx577_start:
+    eq $I10, 1, rx577_restart
+    rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan606_done
-    goto rxscan606_scan
-  rxscan606_loop:
-    ($P10) = rx602_cur."from"()
+    ne $I10, -1, rxscan581_done
+    goto rxscan581_scan
+  rxscan581_loop:
+    ($P10) = rx577_cur."from"()
     inc $P10
-    set rx602_pos, $P10
-    ge rx602_pos, rx602_eos, rxscan606_done
-  rxscan606_scan:
-    set_addr $I10, rxscan606_loop
-    rx602_cur."!mark_push"(0, rx602_pos, $I10)
-  rxscan606_done:
+    set rx577_pos, $P10
+    ge rx577_pos, rx577_eos, rxscan581_done
+  rxscan581_scan:
+    set_addr $I10, rxscan581_loop
+    rx577_cur."!mark_push"(0, rx577_pos, $I10)
+  rxscan581_done:
 .annotate 'line', 276
   # rx subcapture "sym"
-    set_addr $I10, rxcap_607_fail
-    rx602_cur."!mark_push"(0, rx602_pos, $I10)
+    set_addr $I10, rxcap_582_fail
+    rx577_cur."!mark_push"(0, rx577_pos, $I10)
   # rx literal  "has"
-    add $I11, rx602_pos, 3
-    gt $I11, rx602_eos, rx602_fail
-    sub $I11, rx602_pos, rx602_off
-    substr $S10, rx602_tgt, $I11, 3
-    ne $S10, "has", rx602_fail
-    add rx602_pos, 3
-    set_addr $I10, rxcap_607_fail
-    ($I12, $I11) = rx602_cur."!mark_peek"($I10)
-    rx602_cur."!cursor_pos"($I11)
-    ($P10) = rx602_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx602_pos, "")
-    rx602_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx577_pos, 3
+    gt $I11, rx577_eos, rx577_fail
+    sub $I11, rx577_pos, rx577_off
+    substr $S10, rx577_tgt, $I11, 3
+    ne $S10, "has", rx577_fail
+    add rx577_pos, 3
+    set_addr $I10, rxcap_582_fail
+    ($I12, $I11) = rx577_cur."!mark_peek"($I10)
+    rx577_cur."!cursor_pos"($I11)
+    ($P10) = rx577_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx577_pos, "")
+    rx577_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_607_done
-  rxcap_607_fail:
-    goto rx602_fail
-  rxcap_607_done:
+    goto rxcap_582_done
+  rxcap_582_fail:
+    goto rx577_fail
+  rxcap_582_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx602_cur."!cursor_pos"(rx602_pos)
-    $P10 = rx602_cur."scoped"("has")
-    unless $P10, rx602_fail
-    rx602_cur."!mark_push"(0, -1, 0, $P10)
+    rx577_cur."!cursor_pos"(rx577_pos)
+    $P10 = rx577_cur."scoped"("has")
+    unless $P10, rx577_fail
+    rx577_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx602_pos = $P10."pos"()
+    rx577_pos = $P10."pos"()
   # rx pass
-    rx602_cur."!cursor_pass"(rx602_pos, "scope_declarator:sym<has>")
-    rx602_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx602_pos)
-    .return (rx602_cur)
-  rx602_fail:
+    rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<has>")
+    rx577_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx577_pos)
+    .return (rx577_cur)
+  rx577_restart:
 .annotate 'line', 4
-    (rx602_rep, rx602_pos, $I10, $P10) = rx602_cur."!mark_fail"(0)
-    lt rx602_pos, -1, rx602_done
-    eq rx602_pos, -1, rx602_fail
+    rx577_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<has>")
+  rx577_fail:
+    (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
+    lt rx577_pos, -1, rx577_done
+    eq rx577_pos, -1, rx577_fail
     jump $I10
-  rx602_done:
-    rx602_cur."!cursor_fail"()
-    rx602_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
-    .return (rx602_cur)
+  rx577_done:
+    rx577_cur."!cursor_fail"()
+    rx577_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
+    .return (rx577_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1278500537.15927") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1279564397.22945") :method
 .annotate 'line', 4
-    $P604 = self."!PREFIX__!subrule"("scoped", "has")
-    new $P605, "ResizablePMCArray"
-    push $P605, $P604
-    .return ($P605)
+    $P579 = self."!PREFIX__!subrule"("scoped", "has")
+    new $P580, "ResizablePMCArray"
+    push $P580, $P579
+    .return ($P580)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("146_1278500537.15927") :method :outer("11_1278500537.15927")
-    .param pmc param_609
+.sub "scoped"  :subid("146_1279564397.22945") :method :outer("11_1279564397.22945")
+    .param pmc param_584
 .annotate 'line', 278
-    .lex "$*SCOPE", param_609
+    .lex "$*SCOPE", param_584
 .annotate 'line', 4
-    .local string rx610_tgt
-    .local int rx610_pos
-    .local int rx610_off
-    .local int rx610_eos
-    .local int rx610_rep
-    .local pmc rx610_cur
-    (rx610_cur, rx610_pos, rx610_tgt) = self."!cursor_start"()
-    rx610_cur."!cursor_debug"("START ", "scoped")
-    .lex unicode:"$\x{a2}", rx610_cur
-    .local pmc match
-    .lex "$/", match
-    length rx610_eos, rx610_tgt
-    gt rx610_pos, rx610_eos, rx610_done
-    set rx610_off, 0
-    lt rx610_pos, 2, rx610_start
-    sub rx610_off, rx610_pos, 1
-    substr rx610_tgt, rx610_tgt, rx610_off
-  rx610_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan615_done
-    goto rxscan615_scan
-  rxscan615_loop:
-    ($P10) = rx610_cur."from"()
-    inc $P10
-    set rx610_pos, $P10
-    ge rx610_pos, rx610_eos, rxscan615_done
-  rxscan615_scan:
-    set_addr $I10, rxscan615_loop
-    rx610_cur."!mark_push"(0, rx610_pos, $I10)
-  rxscan615_done:
-  alt616_0:
+    .local string rx585_tgt
+    .local int rx585_pos
+    .local int rx585_off
+    .local int rx585_eos
+    .local int rx585_rep
+    .local pmc rx585_cur
+    (rx585_cur, rx585_pos, rx585_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx585_cur
+    .local pmc match
+    .lex "$/", match
+    length rx585_eos, rx585_tgt
+    gt rx585_pos, rx585_eos, rx585_done
+    set rx585_off, 0
+    lt rx585_pos, 2, rx585_start
+    sub rx585_off, rx585_pos, 1
+    substr rx585_tgt, rx585_tgt, rx585_off
+  rx585_start:
+    eq $I10, 1, rx585_restart
+    rx585_cur."!cursor_debug"("START ", "scoped")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan590_done
+    goto rxscan590_scan
+  rxscan590_loop:
+    ($P10) = rx585_cur."from"()
+    inc $P10
+    set rx585_pos, $P10
+    ge rx585_pos, rx585_eos, rxscan590_done
+  rxscan590_scan:
+    set_addr $I10, rxscan590_loop
+    rx585_cur."!mark_push"(0, rx585_pos, $I10)
+  rxscan590_done:
+  alt591_0:
 .annotate 'line', 278
-    set_addr $I10, alt616_1
-    rx610_cur."!mark_push"(0, rx610_pos, $I10)
+    set_addr $I10, alt591_1
+    rx585_cur."!mark_push"(0, rx585_pos, $I10)
 .annotate 'line', 279
   # rx subrule "ws" subtype=method negate=
-    rx610_cur."!cursor_pos"(rx610_pos)
-    $P10 = rx610_cur."ws"()
-    unless $P10, rx610_fail
-    rx610_pos = $P10."pos"()
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."ws"()
+    unless $P10, rx585_fail
+    rx585_pos = $P10."pos"()
   # rx subrule "declarator" subtype=capture negate=
-    rx610_cur."!cursor_pos"(rx610_pos)
-    $P10 = rx610_cur."declarator"()
-    unless $P10, rx610_fail
-    rx610_cur."!mark_push"(0, -1, 0, $P10)
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."declarator"()
+    unless $P10, rx585_fail
+    rx585_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx610_pos = $P10."pos"()
+    rx585_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx610_cur."!cursor_pos"(rx610_pos)
-    $P10 = rx610_cur."ws"()
-    unless $P10, rx610_fail
-    rx610_pos = $P10."pos"()
-    goto alt616_end
-  alt616_1:
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."ws"()
+    unless $P10, rx585_fail
+    rx585_pos = $P10."pos"()
+    goto alt591_end
+  alt591_1:
 .annotate 'line', 280
   # rx subrule "ws" subtype=method negate=
-    rx610_cur."!cursor_pos"(rx610_pos)
-    $P10 = rx610_cur."ws"()
-    unless $P10, rx610_fail
-    rx610_pos = $P10."pos"()
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."ws"()
+    unless $P10, rx585_fail
+    rx585_pos = $P10."pos"()
   # rx subrule "multi_declarator" subtype=capture negate=
-    rx610_cur."!cursor_pos"(rx610_pos)
-    $P10 = rx610_cur."multi_declarator"()
-    unless $P10, rx610_fail
-    rx610_cur."!mark_push"(0, -1, 0, $P10)
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."multi_declarator"()
+    unless $P10, rx585_fail
+    rx585_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("multi_declarator")
-    rx610_pos = $P10."pos"()
+    rx585_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx610_cur."!cursor_pos"(rx610_pos)
-    $P10 = rx610_cur."ws"()
-    unless $P10, rx610_fail
-    rx610_pos = $P10."pos"()
-  alt616_end:
+    rx585_cur."!cursor_pos"(rx585_pos)
+    $P10 = rx585_cur."ws"()
+    unless $P10, rx585_fail
+    rx585_pos = $P10."pos"()
+  alt591_end:
 .annotate 'line', 278
   # rx pass
-    rx610_cur."!cursor_pass"(rx610_pos, "scoped")
-    rx610_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx610_pos)
-    .return (rx610_cur)
-  rx610_fail:
+    rx585_cur."!cursor_pass"(rx585_pos, "scoped")
+    rx585_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx585_pos)
+    .return (rx585_cur)
+  rx585_restart:
 .annotate 'line', 4
-    (rx610_rep, rx610_pos, $I10, $P10) = rx610_cur."!mark_fail"(0)
-    lt rx610_pos, -1, rx610_done
-    eq rx610_pos, -1, rx610_fail
+    rx585_cur."!cursor_debug"("NEXT ", "scoped")
+  rx585_fail:
+    (rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0)
+    lt rx585_pos, -1, rx585_done
+    eq rx585_pos, -1, rx585_fail
     jump $I10
-  rx610_done:
-    rx610_cur."!cursor_fail"()
-    rx610_cur."!cursor_debug"("FAIL  ", "scoped")
-    .return (rx610_cur)
+  rx585_done:
+    rx585_cur."!cursor_fail"()
+    rx585_cur."!cursor_debug"("FAIL  ", "scoped")
+    .return (rx585_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("147_1278500537.15927") :method
+.sub "!PREFIX__scoped"  :subid("147_1279564397.22945") :method
 .annotate 'line', 4
-    $P612 = self."!PREFIX__!subrule"("ws", "")
-    $P613 = self."!PREFIX__!subrule"("ws", "")
-    new $P614, "ResizablePMCArray"
-    push $P614, $P612
-    push $P614, $P613
-    .return ($P614)
+    $P587 = self."!PREFIX__!subrule"("ws", "")
+    $P588 = self."!PREFIX__!subrule"("ws", "")
+    new $P589, "ResizablePMCArray"
+    push $P589, $P587
+    push $P589, $P588
+    .return ($P589)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "typename"  :subid("148_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "typename"  :subid("148_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx622_tgt
-    .local int rx622_pos
-    .local int rx622_off
-    .local int rx622_eos
-    .local int rx622_rep
-    .local pmc rx622_cur
-    (rx622_cur, rx622_pos, rx622_tgt) = self."!cursor_start"()
-    rx622_cur."!cursor_debug"("START ", "typename")
-    .lex unicode:"$\x{a2}", rx622_cur
-    .local pmc match
-    .lex "$/", match
-    length rx622_eos, rx622_tgt
-    gt rx622_pos, rx622_eos, rx622_done
-    set rx622_off, 0
-    lt rx622_pos, 2, rx622_start
-    sub rx622_off, rx622_pos, 1
-    substr rx622_tgt, rx622_tgt, rx622_off
-  rx622_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan626_done
-    goto rxscan626_scan
-  rxscan626_loop:
-    ($P10) = rx622_cur."from"()
-    inc $P10
-    set rx622_pos, $P10
-    ge rx622_pos, rx622_eos, rxscan626_done
-  rxscan626_scan:
-    set_addr $I10, rxscan626_loop
-    rx622_cur."!mark_push"(0, rx622_pos, $I10)
-  rxscan626_done:
+    .local string rx597_tgt
+    .local int rx597_pos
+    .local int rx597_off
+    .local int rx597_eos
+    .local int rx597_rep
+    .local pmc rx597_cur
+    (rx597_cur, rx597_pos, rx597_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx597_cur
+    .local pmc match
+    .lex "$/", match
+    length rx597_eos, rx597_tgt
+    gt rx597_pos, rx597_eos, rx597_done
+    set rx597_off, 0
+    lt rx597_pos, 2, rx597_start
+    sub rx597_off, rx597_pos, 1
+    substr rx597_tgt, rx597_tgt, rx597_off
+  rx597_start:
+    eq $I10, 1, rx597_restart
+    rx597_cur."!cursor_debug"("START ", "typename")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan601_done
+    goto rxscan601_scan
+  rxscan601_loop:
+    ($P10) = rx597_cur."from"()
+    inc $P10
+    set rx597_pos, $P10
+    ge rx597_pos, rx597_eos, rxscan601_done
+  rxscan601_scan:
+    set_addr $I10, rxscan601_loop
+    rx597_cur."!mark_push"(0, rx597_pos, $I10)
+  rxscan601_done:
 .annotate 'line', 283
   # rx subrule "name" subtype=capture negate=
-    rx622_cur."!cursor_pos"(rx622_pos)
-    $P10 = rx622_cur."name"()
-    unless $P10, rx622_fail
-    rx622_cur."!mark_push"(0, -1, 0, $P10)
+    rx597_cur."!cursor_pos"(rx597_pos)
+    $P10 = rx597_cur."name"()
+    unless $P10, rx597_fail
+    rx597_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx622_pos = $P10."pos"()
+    rx597_pos = $P10."pos"()
   # rx pass
-    rx622_cur."!cursor_pass"(rx622_pos, "typename")
-    rx622_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx622_pos)
-    .return (rx622_cur)
-  rx622_fail:
+    rx597_cur."!cursor_pass"(rx597_pos, "typename")
+    rx597_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx597_pos)
+    .return (rx597_cur)
+  rx597_restart:
 .annotate 'line', 4
-    (rx622_rep, rx622_pos, $I10, $P10) = rx622_cur."!mark_fail"(0)
-    lt rx622_pos, -1, rx622_done
-    eq rx622_pos, -1, rx622_fail
+    rx597_cur."!cursor_debug"("NEXT ", "typename")
+  rx597_fail:
+    (rx597_rep, rx597_pos, $I10, $P10) = rx597_cur."!mark_fail"(0)
+    lt rx597_pos, -1, rx597_done
+    eq rx597_pos, -1, rx597_fail
     jump $I10
-  rx622_done:
-    rx622_cur."!cursor_fail"()
-    rx622_cur."!cursor_debug"("FAIL  ", "typename")
-    .return (rx622_cur)
+  rx597_done:
+    rx597_cur."!cursor_fail"()
+    rx597_cur."!cursor_debug"("FAIL  ", "typename")
+    .return (rx597_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename"  :subid("149_1278500537.15927") :method
+.sub "!PREFIX__typename"  :subid("149_1279564397.22945") :method
 .annotate 'line', 4
-    $P624 = self."!PREFIX__!subrule"("name", "")
-    new $P625, "ResizablePMCArray"
-    push $P625, $P624
-    .return ($P625)
+    $P599 = self."!PREFIX__!subrule"("name", "")
+    new $P600, "ResizablePMCArray"
+    push $P600, $P599
+    .return ($P600)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "declarator"  :subid("150_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "declarator"  :subid("150_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx628_tgt
-    .local int rx628_pos
-    .local int rx628_off
-    .local int rx628_eos
-    .local int rx628_rep
-    .local pmc rx628_cur
-    (rx628_cur, rx628_pos, rx628_tgt) = self."!cursor_start"()
-    rx628_cur."!cursor_debug"("START ", "declarator")
-    .lex unicode:"$\x{a2}", rx628_cur
+    .local string rx603_tgt
+    .local int rx603_pos
+    .local int rx603_off
+    .local int rx603_eos
+    .local int rx603_rep
+    .local pmc rx603_cur
+    (rx603_cur, rx603_pos, rx603_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx603_cur
     .local pmc match
     .lex "$/", match
-    length rx628_eos, rx628_tgt
-    gt rx628_pos, rx628_eos, rx628_done
-    set rx628_off, 0
-    lt rx628_pos, 2, rx628_start
-    sub rx628_off, rx628_pos, 1
-    substr rx628_tgt, rx628_tgt, rx628_off
-  rx628_start:
+    length rx603_eos, rx603_tgt
+    gt rx603_pos, rx603_eos, rx603_done
+    set rx603_off, 0
+    lt rx603_pos, 2, rx603_start
+    sub rx603_off, rx603_pos, 1
+    substr rx603_tgt, rx603_tgt, rx603_off
+  rx603_start:
+    eq $I10, 1, rx603_restart
+    rx603_cur."!cursor_debug"("START ", "declarator")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan633_done
-    goto rxscan633_scan
-  rxscan633_loop:
-    ($P10) = rx628_cur."from"()
+    ne $I10, -1, rxscan608_done
+    goto rxscan608_scan
+  rxscan608_loop:
+    ($P10) = rx603_cur."from"()
     inc $P10
-    set rx628_pos, $P10
-    ge rx628_pos, rx628_eos, rxscan633_done
-  rxscan633_scan:
-    set_addr $I10, rxscan633_loop
-    rx628_cur."!mark_push"(0, rx628_pos, $I10)
-  rxscan633_done:
-  alt634_0:
+    set rx603_pos, $P10
+    ge rx603_pos, rx603_eos, rxscan608_done
+  rxscan608_scan:
+    set_addr $I10, rxscan608_loop
+    rx603_cur."!mark_push"(0, rx603_pos, $I10)
+  rxscan608_done:
+  alt609_0:
 .annotate 'line', 285
-    set_addr $I10, alt634_1
-    rx628_cur."!mark_push"(0, rx628_pos, $I10)
+    set_addr $I10, alt609_1
+    rx603_cur."!mark_push"(0, rx603_pos, $I10)
 .annotate 'line', 286
   # rx subrule "variable_declarator" subtype=capture negate=
-    rx628_cur."!cursor_pos"(rx628_pos)
-    $P10 = rx628_cur."variable_declarator"()
-    unless $P10, rx628_fail
-    rx628_cur."!mark_push"(0, -1, 0, $P10)
+    rx603_cur."!cursor_pos"(rx603_pos)
+    $P10 = rx603_cur."variable_declarator"()
+    unless $P10, rx603_fail
+    rx603_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable_declarator")
-    rx628_pos = $P10."pos"()
-    goto alt634_end
-  alt634_1:
+    rx603_pos = $P10."pos"()
+    goto alt609_end
+  alt609_1:
 .annotate 'line', 287
   # rx subrule "routine_declarator" subtype=capture negate=
-    rx628_cur."!cursor_pos"(rx628_pos)
-    $P10 = rx628_cur."routine_declarator"()
-    unless $P10, rx628_fail
-    rx628_cur."!mark_push"(0, -1, 0, $P10)
+    rx603_cur."!cursor_pos"(rx603_pos)
+    $P10 = rx603_cur."routine_declarator"()
+    unless $P10, rx603_fail
+    rx603_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_declarator")
-    rx628_pos = $P10."pos"()
-  alt634_end:
+    rx603_pos = $P10."pos"()
+  alt609_end:
 .annotate 'line', 285
   # rx pass
-    rx628_cur."!cursor_pass"(rx628_pos, "declarator")
-    rx628_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx628_pos)
-    .return (rx628_cur)
-  rx628_fail:
+    rx603_cur."!cursor_pass"(rx603_pos, "declarator")
+    rx603_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx603_pos)
+    .return (rx603_cur)
+  rx603_restart:
 .annotate 'line', 4
-    (rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0)
-    lt rx628_pos, -1, rx628_done
-    eq rx628_pos, -1, rx628_fail
+    rx603_cur."!cursor_debug"("NEXT ", "declarator")
+  rx603_fail:
+    (rx603_rep, rx603_pos, $I10, $P10) = rx603_cur."!mark_fail"(0)
+    lt rx603_pos, -1, rx603_done
+    eq rx603_pos, -1, rx603_fail
     jump $I10
-  rx628_done:
-    rx628_cur."!cursor_fail"()
-    rx628_cur."!cursor_debug"("FAIL  ", "declarator")
-    .return (rx628_cur)
+  rx603_done:
+    rx603_cur."!cursor_fail"()
+    rx603_cur."!cursor_debug"("FAIL  ", "declarator")
+    .return (rx603_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator"  :subid("151_1278500537.15927") :method
+.sub "!PREFIX__declarator"  :subid("151_1279564397.22945") :method
 .annotate 'line', 4
-    $P630 = self."!PREFIX__!subrule"("routine_declarator", "")
-    $P631 = self."!PREFIX__!subrule"("variable_declarator", "")
-    new $P632, "ResizablePMCArray"
-    push $P632, $P630
-    push $P632, $P631
-    .return ($P632)
+    $P605 = self."!PREFIX__!subrule"("routine_declarator", "")
+    $P606 = self."!PREFIX__!subrule"("variable_declarator", "")
+    new $P607, "ResizablePMCArray"
+    push $P607, $P605
+    push $P607, $P606
+    .return ($P607)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("152_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx636_tgt
-    .local int rx636_pos
-    .local int rx636_off
-    .local int rx636_eos
-    .local int rx636_rep
-    .local pmc rx636_cur
-    (rx636_cur, rx636_pos, rx636_tgt) = self."!cursor_start"()
-    rx636_cur."!cursor_debug"("START ", "variable_declarator")
-    .lex unicode:"$\x{a2}", rx636_cur
-    .local pmc match
-    .lex "$/", match
-    length rx636_eos, rx636_tgt
-    gt rx636_pos, rx636_eos, rx636_done
-    set rx636_off, 0
-    lt rx636_pos, 2, rx636_start
-    sub rx636_off, rx636_pos, 1
-    substr rx636_tgt, rx636_tgt, rx636_off
-  rx636_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan640_done
-    goto rxscan640_scan
-  rxscan640_loop:
-    ($P10) = rx636_cur."from"()
-    inc $P10
-    set rx636_pos, $P10
-    ge rx636_pos, rx636_eos, rxscan640_done
-  rxscan640_scan:
-    set_addr $I10, rxscan640_loop
-    rx636_cur."!mark_push"(0, rx636_pos, $I10)
-  rxscan640_done:
+.sub "variable_declarator"  :subid("152_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx611_tgt
+    .local int rx611_pos
+    .local int rx611_off
+    .local int rx611_eos
+    .local int rx611_rep
+    .local pmc rx611_cur
+    (rx611_cur, rx611_pos, rx611_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx611_cur
+    .local pmc match
+    .lex "$/", match
+    length rx611_eos, rx611_tgt
+    gt rx611_pos, rx611_eos, rx611_done
+    set rx611_off, 0
+    lt rx611_pos, 2, rx611_start
+    sub rx611_off, rx611_pos, 1
+    substr rx611_tgt, rx611_tgt, rx611_off
+  rx611_start:
+    eq $I10, 1, rx611_restart
+    rx611_cur."!cursor_debug"("START ", "variable_declarator")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan615_done
+    goto rxscan615_scan
+  rxscan615_loop:
+    ($P10) = rx611_cur."from"()
+    inc $P10
+    set rx611_pos, $P10
+    ge rx611_pos, rx611_eos, rxscan615_done
+  rxscan615_scan:
+    set_addr $I10, rxscan615_loop
+    rx611_cur."!mark_push"(0, rx611_pos, $I10)
+  rxscan615_done:
 .annotate 'line', 290
   # rx subrule "variable" subtype=capture negate=
-    rx636_cur."!cursor_pos"(rx636_pos)
-    $P10 = rx636_cur."variable"()
-    unless $P10, rx636_fail
-    rx636_cur."!mark_push"(0, -1, 0, $P10)
+    rx611_cur."!cursor_pos"(rx611_pos)
+    $P10 = rx611_cur."variable"()
+    unless $P10, rx611_fail
+    rx611_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable")
-    rx636_pos = $P10."pos"()
+    rx611_pos = $P10."pos"()
   # rx pass
-    rx636_cur."!cursor_pass"(rx636_pos, "variable_declarator")
-    rx636_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx636_pos)
-    .return (rx636_cur)
-  rx636_fail:
+    rx611_cur."!cursor_pass"(rx611_pos, "variable_declarator")
+    rx611_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx611_pos)
+    .return (rx611_cur)
+  rx611_restart:
 .annotate 'line', 4
-    (rx636_rep, rx636_pos, $I10, $P10) = rx636_cur."!mark_fail"(0)
-    lt rx636_pos, -1, rx636_done
-    eq rx636_pos, -1, rx636_fail
+    rx611_cur."!cursor_debug"("NEXT ", "variable_declarator")
+  rx611_fail:
+    (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
+    lt rx611_pos, -1, rx611_done
+    eq rx611_pos, -1, rx611_fail
     jump $I10
-  rx636_done:
-    rx636_cur."!cursor_fail"()
-    rx636_cur."!cursor_debug"("FAIL  ", "variable_declarator")
-    .return (rx636_cur)
+  rx611_done:
+    rx611_cur."!cursor_fail"()
+    rx611_cur."!cursor_debug"("FAIL  ", "variable_declarator")
+    .return (rx611_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("153_1278500537.15927") :method
+.sub "!PREFIX__variable_declarator"  :subid("153_1279564397.22945") :method
 .annotate 'line', 4
-    $P638 = self."!PREFIX__!subrule"("variable", "")
-    new $P639, "ResizablePMCArray"
-    push $P639, $P638
-    .return ($P639)
+    $P613 = self."!PREFIX__!subrule"("variable", "")
+    new $P614, "ResizablePMCArray"
+    push $P614, $P613
+    .return ($P614)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("154_1278500537.15927") :method
+.sub "routine_declarator"  :subid("154_1279564397.22945") :method
 .annotate 'line', 292
-    $P642 = self."!protoregex"("routine_declarator")
-    .return ($P642)
+    $P617 = self."!protoregex"("routine_declarator")
+    .return ($P617)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("155_1278500537.15927") :method
+.sub "!PREFIX__routine_declarator"  :subid("155_1279564397.22945") :method
 .annotate 'line', 292
-    $P644 = self."!PREFIX__!protoregex"("routine_declarator")
-    .return ($P644)
+    $P619 = self."!PREFIX__!protoregex"("routine_declarator")
+    .return ($P619)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("156_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "routine_declarator:sym<sub>"  :subid("156_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx646_tgt
-    .local int rx646_pos
-    .local int rx646_off
-    .local int rx646_eos
-    .local int rx646_rep
-    .local pmc rx646_cur
-    (rx646_cur, rx646_pos, rx646_tgt) = self."!cursor_start"()
-    rx646_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
-    .lex unicode:"$\x{a2}", rx646_cur
-    .local pmc match
-    .lex "$/", match
-    length rx646_eos, rx646_tgt
-    gt rx646_pos, rx646_eos, rx646_done
-    set rx646_off, 0
-    lt rx646_pos, 2, rx646_start
-    sub rx646_off, rx646_pos, 1
-    substr rx646_tgt, rx646_tgt, rx646_off
-  rx646_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan650_done
-    goto rxscan650_scan
-  rxscan650_loop:
-    ($P10) = rx646_cur."from"()
-    inc $P10
-    set rx646_pos, $P10
-    ge rx646_pos, rx646_eos, rxscan650_done
-  rxscan650_scan:
-    set_addr $I10, rxscan650_loop
-    rx646_cur."!mark_push"(0, rx646_pos, $I10)
-  rxscan650_done:
+    .local string rx621_tgt
+    .local int rx621_pos
+    .local int rx621_off
+    .local int rx621_eos
+    .local int rx621_rep
+    .local pmc rx621_cur
+    (rx621_cur, rx621_pos, rx621_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx621_cur
+    .local pmc match
+    .lex "$/", match
+    length rx621_eos, rx621_tgt
+    gt rx621_pos, rx621_eos, rx621_done
+    set rx621_off, 0
+    lt rx621_pos, 2, rx621_start
+    sub rx621_off, rx621_pos, 1
+    substr rx621_tgt, rx621_tgt, rx621_off
+  rx621_start:
+    eq $I10, 1, rx621_restart
+    rx621_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan625_done
+    goto rxscan625_scan
+  rxscan625_loop:
+    ($P10) = rx621_cur."from"()
+    inc $P10
+    set rx621_pos, $P10
+    ge rx621_pos, rx621_eos, rxscan625_done
+  rxscan625_scan:
+    set_addr $I10, rxscan625_loop
+    rx621_cur."!mark_push"(0, rx621_pos, $I10)
+  rxscan625_done:
 .annotate 'line', 293
   # rx subcapture "sym"
-    set_addr $I10, rxcap_651_fail
-    rx646_cur."!mark_push"(0, rx646_pos, $I10)
+    set_addr $I10, rxcap_626_fail
+    rx621_cur."!mark_push"(0, rx621_pos, $I10)
   # rx literal  "sub"
-    add $I11, rx646_pos, 3
-    gt $I11, rx646_eos, rx646_fail
-    sub $I11, rx646_pos, rx646_off
-    substr $S10, rx646_tgt, $I11, 3
-    ne $S10, "sub", rx646_fail
-    add rx646_pos, 3
-    set_addr $I10, rxcap_651_fail
-    ($I12, $I11) = rx646_cur."!mark_peek"($I10)
-    rx646_cur."!cursor_pos"($I11)
-    ($P10) = rx646_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx646_pos, "")
-    rx646_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx621_pos, 3
+    gt $I11, rx621_eos, rx621_fail
+    sub $I11, rx621_pos, rx621_off
+    substr $S10, rx621_tgt, $I11, 3
+    ne $S10, "sub", rx621_fail
+    add rx621_pos, 3
+    set_addr $I10, rxcap_626_fail
+    ($I12, $I11) = rx621_cur."!mark_peek"($I10)
+    rx621_cur."!cursor_pos"($I11)
+    ($P10) = rx621_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx621_pos, "")
+    rx621_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_651_done
-  rxcap_651_fail:
-    goto rx646_fail
-  rxcap_651_done:
+    goto rxcap_626_done
+  rxcap_626_fail:
+    goto rx621_fail
+  rxcap_626_done:
   # rx subrule "routine_def" subtype=capture negate=
-    rx646_cur."!cursor_pos"(rx646_pos)
-    $P10 = rx646_cur."routine_def"()
-    unless $P10, rx646_fail
-    rx646_cur."!mark_push"(0, -1, 0, $P10)
+    rx621_cur."!cursor_pos"(rx621_pos)
+    $P10 = rx621_cur."routine_def"()
+    unless $P10, rx621_fail
+    rx621_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_def")
-    rx646_pos = $P10."pos"()
+    rx621_pos = $P10."pos"()
   # rx pass
-    rx646_cur."!cursor_pass"(rx646_pos, "routine_declarator:sym<sub>")
-    rx646_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx646_pos)
-    .return (rx646_cur)
-  rx646_fail:
+    rx621_cur."!cursor_pass"(rx621_pos, "routine_declarator:sym<sub>")
+    rx621_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx621_pos)
+    .return (rx621_cur)
+  rx621_restart:
 .annotate 'line', 4
-    (rx646_rep, rx646_pos, $I10, $P10) = rx646_cur."!mark_fail"(0)
-    lt rx646_pos, -1, rx646_done
-    eq rx646_pos, -1, rx646_fail
+    rx621_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<sub>")
+  rx621_fail:
+    (rx621_rep, rx621_pos, $I10, $P10) = rx621_cur."!mark_fail"(0)
+    lt rx621_pos, -1, rx621_done
+    eq rx621_pos, -1, rx621_fail
     jump $I10
-  rx646_done:
-    rx646_cur."!cursor_fail"()
-    rx646_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
-    .return (rx646_cur)
+  rx621_done:
+    rx621_cur."!cursor_fail"()
+    rx621_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
+    .return (rx621_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1278500537.15927") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1279564397.22945") :method
 .annotate 'line', 4
-    $P648 = self."!PREFIX__!subrule"("routine_def", "sub")
-    new $P649, "ResizablePMCArray"
-    push $P649, $P648
-    .return ($P649)
+    $P623 = self."!PREFIX__!subrule"("routine_def", "sub")
+    new $P624, "ResizablePMCArray"
+    push $P624, $P623
+    .return ($P624)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("158_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "routine_declarator:sym<method>"  :subid("158_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx653_tgt
-    .local int rx653_pos
-    .local int rx653_off
-    .local int rx653_eos
-    .local int rx653_rep
-    .local pmc rx653_cur
-    (rx653_cur, rx653_pos, rx653_tgt) = self."!cursor_start"()
-    rx653_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
-    .lex unicode:"$\x{a2}", rx653_cur
-    .local pmc match
-    .lex "$/", match
-    length rx653_eos, rx653_tgt
-    gt rx653_pos, rx653_eos, rx653_done
-    set rx653_off, 0
-    lt rx653_pos, 2, rx653_start
-    sub rx653_off, rx653_pos, 1
-    substr rx653_tgt, rx653_tgt, rx653_off
-  rx653_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan657_done
-    goto rxscan657_scan
-  rxscan657_loop:
-    ($P10) = rx653_cur."from"()
-    inc $P10
-    set rx653_pos, $P10
-    ge rx653_pos, rx653_eos, rxscan657_done
-  rxscan657_scan:
-    set_addr $I10, rxscan657_loop
-    rx653_cur."!mark_push"(0, rx653_pos, $I10)
-  rxscan657_done:
+    .local string rx628_tgt
+    .local int rx628_pos
+    .local int rx628_off
+    .local int rx628_eos
+    .local int rx628_rep
+    .local pmc rx628_cur
+    (rx628_cur, rx628_pos, rx628_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx628_cur
+    .local pmc match
+    .lex "$/", match
+    length rx628_eos, rx628_tgt
+    gt rx628_pos, rx628_eos, rx628_done
+    set rx628_off, 0
+    lt rx628_pos, 2, rx628_start
+    sub rx628_off, rx628_pos, 1
+    substr rx628_tgt, rx628_tgt, rx628_off
+  rx628_start:
+    eq $I10, 1, rx628_restart
+    rx628_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan632_done
+    goto rxscan632_scan
+  rxscan632_loop:
+    ($P10) = rx628_cur."from"()
+    inc $P10
+    set rx628_pos, $P10
+    ge rx628_pos, rx628_eos, rxscan632_done
+  rxscan632_scan:
+    set_addr $I10, rxscan632_loop
+    rx628_cur."!mark_push"(0, rx628_pos, $I10)
+  rxscan632_done:
 .annotate 'line', 294
   # rx subcapture "sym"
-    set_addr $I10, rxcap_658_fail
-    rx653_cur."!mark_push"(0, rx653_pos, $I10)
+    set_addr $I10, rxcap_633_fail
+    rx628_cur."!mark_push"(0, rx628_pos, $I10)
   # rx literal  "method"
-    add $I11, rx653_pos, 6
-    gt $I11, rx653_eos, rx653_fail
-    sub $I11, rx653_pos, rx653_off
-    substr $S10, rx653_tgt, $I11, 6
-    ne $S10, "method", rx653_fail
-    add rx653_pos, 6
-    set_addr $I10, rxcap_658_fail
-    ($I12, $I11) = rx653_cur."!mark_peek"($I10)
-    rx653_cur."!cursor_pos"($I11)
-    ($P10) = rx653_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx653_pos, "")
-    rx653_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx628_pos, 6
+    gt $I11, rx628_eos, rx628_fail
+    sub $I11, rx628_pos, rx628_off
+    substr $S10, rx628_tgt, $I11, 6
+    ne $S10, "method", rx628_fail
+    add rx628_pos, 6
+    set_addr $I10, rxcap_633_fail
+    ($I12, $I11) = rx628_cur."!mark_peek"($I10)
+    rx628_cur."!cursor_pos"($I11)
+    ($P10) = rx628_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx628_pos, "")
+    rx628_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_658_done
-  rxcap_658_fail:
-    goto rx653_fail
-  rxcap_658_done:
+    goto rxcap_633_done
+  rxcap_633_fail:
+    goto rx628_fail
+  rxcap_633_done:
   # rx subrule "method_def" subtype=capture negate=
-    rx653_cur."!cursor_pos"(rx653_pos)
-    $P10 = rx653_cur."method_def"()
-    unless $P10, rx653_fail
-    rx653_cur."!mark_push"(0, -1, 0, $P10)
+    rx628_cur."!cursor_pos"(rx628_pos)
+    $P10 = rx628_cur."method_def"()
+    unless $P10, rx628_fail
+    rx628_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("method_def")
-    rx653_pos = $P10."pos"()
+    rx628_pos = $P10."pos"()
   # rx pass
-    rx653_cur."!cursor_pass"(rx653_pos, "routine_declarator:sym<method>")
-    rx653_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx653_pos)
-    .return (rx653_cur)
-  rx653_fail:
+    rx628_cur."!cursor_pass"(rx628_pos, "routine_declarator:sym<method>")
+    rx628_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx628_pos)
+    .return (rx628_cur)
+  rx628_restart:
 .annotate 'line', 4
-    (rx653_rep, rx653_pos, $I10, $P10) = rx653_cur."!mark_fail"(0)
-    lt rx653_pos, -1, rx653_done
-    eq rx653_pos, -1, rx653_fail
+    rx628_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<method>")
+  rx628_fail:
+    (rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0)
+    lt rx628_pos, -1, rx628_done
+    eq rx628_pos, -1, rx628_fail
     jump $I10
-  rx653_done:
-    rx653_cur."!cursor_fail"()
-    rx653_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
-    .return (rx653_cur)
+  rx628_done:
+    rx628_cur."!cursor_fail"()
+    rx628_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
+    .return (rx628_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1278500537.15927") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1279564397.22945") :method
 .annotate 'line', 4
-    $P655 = self."!PREFIX__!subrule"("method_def", "method")
-    new $P656, "ResizablePMCArray"
-    push $P656, $P655
-    .return ($P656)
+    $P630 = self."!PREFIX__!subrule"("method_def", "method")
+    new $P631, "ResizablePMCArray"
+    push $P631, $P630
+    .return ($P631)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("160_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx660_tgt
-    .local int rx660_pos
-    .local int rx660_off
-    .local int rx660_eos
-    .local int rx660_rep
-    .local pmc rx660_cur
-    (rx660_cur, rx660_pos, rx660_tgt) = self."!cursor_start"()
-    rx660_cur."!cursor_debug"("START ", "routine_def")
-    rx660_cur."!cursor_caparray"("deflongname", "sigil")
-    .lex unicode:"$\x{a2}", rx660_cur
-    .local pmc match
-    .lex "$/", match
-    length rx660_eos, rx660_tgt
-    gt rx660_pos, rx660_eos, rx660_done
-    set rx660_off, 0
-    lt rx660_pos, 2, rx660_start
-    sub rx660_off, rx660_pos, 1
-    substr rx660_tgt, rx660_tgt, rx660_off
-  rx660_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan664_done
-    goto rxscan664_scan
-  rxscan664_loop:
-    ($P10) = rx660_cur."from"()
-    inc $P10
-    set rx660_pos, $P10
-    ge rx660_pos, rx660_eos, rxscan664_done
-  rxscan664_scan:
-    set_addr $I10, rxscan664_loop
-    rx660_cur."!mark_push"(0, rx660_pos, $I10)
-  rxscan664_done:
+.sub "routine_def"  :subid("160_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx635_tgt
+    .local int rx635_pos
+    .local int rx635_off
+    .local int rx635_eos
+    .local int rx635_rep
+    .local pmc rx635_cur
+    (rx635_cur, rx635_pos, rx635_tgt, $I10) = self."!cursor_start"()
+    rx635_cur."!cursor_caparray"("sigil", "deflongname")
+    .lex unicode:"$\x{a2}", rx635_cur
+    .local pmc match
+    .lex "$/", match
+    length rx635_eos, rx635_tgt
+    gt rx635_pos, rx635_eos, rx635_done
+    set rx635_off, 0
+    lt rx635_pos, 2, rx635_start
+    sub rx635_off, rx635_pos, 1
+    substr rx635_tgt, rx635_tgt, rx635_off
+  rx635_start:
+    eq $I10, 1, rx635_restart
+    rx635_cur."!cursor_debug"("START ", "routine_def")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan639_done
+    goto rxscan639_scan
+  rxscan639_loop:
+    ($P10) = rx635_cur."from"()
+    inc $P10
+    set rx635_pos, $P10
+    ge rx635_pos, rx635_eos, rxscan639_done
+  rxscan639_scan:
+    set_addr $I10, rxscan639_loop
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  rxscan639_done:
 .annotate 'line', 296
   # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
 .annotate 'line', 297
-  # rx rxquantr666 ** 0..1
-    set_addr $I672, rxquantr666_done
-    rx660_cur."!mark_push"(0, rx660_pos, $I672)
-  rxquantr666_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
+  # rx rxquantr641 ** 0..1
+    set_addr $I10, rxquantr641_done
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  rxquantr641_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx subcapture "sigil"
-    set_addr $I10, rxcap_670_fail
-    rx660_cur."!mark_push"(0, rx660_pos, $I10)
-  # rx rxquantr668 ** 0..1
-    set_addr $I669, rxquantr668_done
-    rx660_cur."!mark_push"(0, rx660_pos, $I669)
-  rxquantr668_loop:
+    set_addr $I10, rxcap_644_fail
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  # rx rxquantr643 ** 0..1
+    set_addr $I10, rxquantr643_done
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+  rxquantr643_loop:
   # rx literal  "&"
-    add $I11, rx660_pos, 1
-    gt $I11, rx660_eos, rx660_fail
-    sub $I11, rx660_pos, rx660_off
-    substr $S10, rx660_tgt, $I11, 1
-    ne $S10, "&", rx660_fail
-    add rx660_pos, 1
-    (rx660_rep) = rx660_cur."!mark_commit"($I669)
-  rxquantr668_done:
-    set_addr $I10, rxcap_670_fail
-    ($I12, $I11) = rx660_cur."!mark_peek"($I10)
-    rx660_cur."!cursor_pos"($I11)
-    ($P10) = rx660_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx660_pos, "")
-    rx660_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx635_pos, 1
+    gt $I11, rx635_eos, rx635_fail
+    sub $I11, rx635_pos, rx635_off
+    substr $S10, rx635_tgt, $I11, 1
+    ne $S10, "&", rx635_fail
+    add rx635_pos, 1
+    set_addr $I10, rxquantr643_done
+    (rx635_rep) = rx635_cur."!mark_commit"($I10)
+  rxquantr643_done:
+    set_addr $I10, rxcap_644_fail
+    ($I12, $I11) = rx635_cur."!mark_peek"($I10)
+    rx635_cur."!cursor_pos"($I11)
+    ($P10) = rx635_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx635_pos, "")
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    goto rxcap_670_done
-  rxcap_670_fail:
-    goto rx660_fail
-  rxcap_670_done:
+    goto rxcap_644_done
+  rxcap_644_fail:
+    goto rx635_fail
+  rxcap_644_done:
   # rx subrule "deflongname" subtype=capture negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."deflongname"()
-    unless $P10, rx660_fail
-    rx660_cur."!mark_push"(0, -1, 0, $P10)
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."deflongname"()
+    unless $P10, rx635_fail
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx660_pos = $P10."pos"()
+    rx635_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
-    (rx660_rep) = rx660_cur."!mark_commit"($I672)
-  rxquantr666_done:
-  # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+    set_addr $I10, rxquantr641_done
+    (rx635_rep) = rx635_cur."!mark_commit"($I10)
+  rxquantr641_done:
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
 .annotate 'line', 298
   # rx subrule "newpad" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."newpad"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
-  alt675_0:
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."newpad"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+  alt648_0:
 .annotate 'line', 299
-    set_addr $I10, alt675_1
-    rx660_cur."!mark_push"(0, rx660_pos, $I10)
+    set_addr $I10, alt648_1
+    rx635_cur."!mark_push"(0, rx635_pos, $I10)
   # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx660_pos, 1
-    gt $I11, rx660_eos, rx660_fail
-    sub $I11, rx660_pos, rx660_off
-    substr $S10, rx660_tgt, $I11, 1
-    ne $S10, "(", rx660_fail
-    add rx660_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
+    add $I11, rx635_pos, 1
+    gt $I11, rx635_eos, rx635_fail
+    sub $I11, rx635_pos, rx635_off
+    substr $S10, rx635_tgt, $I11, 1
+    ne $S10, "(", rx635_fail
+    add rx635_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."signature"()
-    unless $P10, rx660_fail
-    rx660_cur."!mark_push"(0, -1, 0, $P10)
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."signature"()
+    unless $P10, rx635_fail
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx660_pos = $P10."pos"()
+    rx635_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx660_pos, 1
-    gt $I11, rx660_eos, rx660_fail
-    sub $I11, rx660_pos, rx660_off
-    substr $S10, rx660_tgt, $I11, 1
-    ne $S10, ")", rx660_fail
-    add rx660_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
-    goto alt675_end
-  alt675_1:
+    add $I11, rx635_pos, 1
+    gt $I11, rx635_eos, rx635_fail
+    sub $I11, rx635_pos, rx635_off
+    substr $S10, rx635_tgt, $I11, 1
+    ne $S10, ")", rx635_fail
+    add rx635_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+    goto alt648_end
+  alt648_1:
 .annotate 'line', 300
   # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."panic"("Routine declaration requires a signature")
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
-  alt675_end:
-  # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."panic"("Routine declaration requires a signature")
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
+  alt648_end:
+  # rx subrule "ws" subtype=method negate=
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
 .annotate 'line', 301
   # rx subrule "blockoid" subtype=capture negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."blockoid"()
-    unless $P10, rx660_fail
-    rx660_cur."!mark_push"(0, -1, 0, $P10)
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."blockoid"()
+    unless $P10, rx635_fail
+    rx635_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx660_pos = $P10."pos"()
+    rx635_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx660_cur."!cursor_pos"(rx660_pos)
-    $P10 = rx660_cur."ws"()
-    unless $P10, rx660_fail
-    rx660_pos = $P10."pos"()
+    rx635_cur."!cursor_pos"(rx635_pos)
+    $P10 = rx635_cur."ws"()
+    unless $P10, rx635_fail
+    rx635_pos = $P10."pos"()
 .annotate 'line', 296
   # rx pass
-    rx660_cur."!cursor_pass"(rx660_pos, "routine_def")
-    rx660_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx660_pos)
-    .return (rx660_cur)
-  rx660_fail:
+    rx635_cur."!cursor_pass"(rx635_pos, "routine_def")
+    rx635_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx635_pos)
+    .return (rx635_cur)
+  rx635_restart:
 .annotate 'line', 4
-    (rx660_rep, rx660_pos, $I10, $P10) = rx660_cur."!mark_fail"(0)
-    lt rx660_pos, -1, rx660_done
-    eq rx660_pos, -1, rx660_fail
+    rx635_cur."!cursor_debug"("NEXT ", "routine_def")
+  rx635_fail:
+    (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
+    lt rx635_pos, -1, rx635_done
+    eq rx635_pos, -1, rx635_fail
     jump $I10
-  rx660_done:
-    rx660_cur."!cursor_fail"()
-    rx660_cur."!cursor_debug"("FAIL  ", "routine_def")
-    .return (rx660_cur)
+  rx635_done:
+    rx635_cur."!cursor_fail"()
+    rx635_cur."!cursor_debug"("FAIL  ", "routine_def")
+    .return (rx635_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("161_1278500537.15927") :method
+.sub "!PREFIX__routine_def"  :subid("161_1279564397.22945") :method
 .annotate 'line', 4
-    $P662 = self."!PREFIX__!subrule"("ws", "")
-    new $P663, "ResizablePMCArray"
-    push $P663, $P662
-    .return ($P663)
+    $P637 = self."!PREFIX__!subrule"("ws", "")
+    new $P638, "ResizablePMCArray"
+    push $P638, $P637
+    .return ($P638)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("162_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "method_def"  :subid("162_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx685_tgt
-    .local int rx685_pos
-    .local int rx685_off
-    .local int rx685_eos
-    .local int rx685_rep
-    .local pmc rx685_cur
-    (rx685_cur, rx685_pos, rx685_tgt) = self."!cursor_start"()
-    rx685_cur."!cursor_debug"("START ", "method_def")
-    rx685_cur."!cursor_caparray"("deflongname")
-    .lex unicode:"$\x{a2}", rx685_cur
+    .local string rx658_tgt
+    .local int rx658_pos
+    .local int rx658_off
+    .local int rx658_eos
+    .local int rx658_rep
+    .local pmc rx658_cur
+    (rx658_cur, rx658_pos, rx658_tgt, $I10) = self."!cursor_start"()
+    rx658_cur."!cursor_caparray"("deflongname")
+    .lex unicode:"$\x{a2}", rx658_cur
     .local pmc match
     .lex "$/", match
-    length rx685_eos, rx685_tgt
-    gt rx685_pos, rx685_eos, rx685_done
-    set rx685_off, 0
-    lt rx685_pos, 2, rx685_start
-    sub rx685_off, rx685_pos, 1
-    substr rx685_tgt, rx685_tgt, rx685_off
-  rx685_start:
+    length rx658_eos, rx658_tgt
+    gt rx658_pos, rx658_eos, rx658_done
+    set rx658_off, 0
+    lt rx658_pos, 2, rx658_start
+    sub rx658_off, rx658_pos, 1
+    substr rx658_tgt, rx658_tgt, rx658_off
+  rx658_start:
+    eq $I10, 1, rx658_restart
+    rx658_cur."!cursor_debug"("START ", "method_def")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan689_done
-    goto rxscan689_scan
-  rxscan689_loop:
-    ($P10) = rx685_cur."from"()
+    ne $I10, -1, rxscan662_done
+    goto rxscan662_scan
+  rxscan662_loop:
+    ($P10) = rx658_cur."from"()
     inc $P10
-    set rx685_pos, $P10
-    ge rx685_pos, rx685_eos, rxscan689_done
-  rxscan689_scan:
-    set_addr $I10, rxscan689_loop
-    rx685_cur."!mark_push"(0, rx685_pos, $I10)
-  rxscan689_done:
+    set rx658_pos, $P10
+    ge rx658_pos, rx658_eos, rxscan662_done
+  rxscan662_scan:
+    set_addr $I10, rxscan662_loop
+    rx658_cur."!mark_push"(0, rx658_pos, $I10)
+  rxscan662_done:
 .annotate 'line', 304
   # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
 .annotate 'line', 305
-  # rx rxquantr691 ** 0..1
-    set_addr $I692, rxquantr691_done
-    rx685_cur."!mark_push"(0, rx685_pos, $I692)
-  rxquantr691_loop:
+  # rx rxquantr664 ** 0..1
+    set_addr $I10, rxquantr664_done
+    rx658_cur."!mark_push"(0, rx658_pos, $I10)
+  rxquantr664_loop:
   # rx subrule "deflongname" subtype=capture negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."deflongname"()
-    unless $P10, rx685_fail
-    rx685_cur."!mark_push"(0, -1, 0, $P10)
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."deflongname"()
+    unless $P10, rx658_fail
+    goto rxsubrule665_pass
+  rxsubrule665_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx658_fail
+  rxsubrule665_pass:
+    set_addr $I10, rxsubrule665_back
+    rx658_cur."!mark_push"(0, rx658_pos, $I10, $P10)
     $P10."!cursor_names"("deflongname")
-    rx685_pos = $P10."pos"()
-    (rx685_rep) = rx685_cur."!mark_commit"($I692)
-  rxquantr691_done:
-  # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
+    rx658_pos = $P10."pos"()
+    set_addr $I10, rxquantr664_done
+    (rx658_rep) = rx658_cur."!mark_commit"($I10)
+  rxquantr664_done:
+  # rx subrule "ws" subtype=method negate=
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
 .annotate 'line', 306
   # rx subrule "newpad" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."newpad"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
-  alt695_0:
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."newpad"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
+  alt668_0:
 .annotate 'line', 307
-    set_addr $I10, alt695_1
-    rx685_cur."!mark_push"(0, rx685_pos, $I10)
+    set_addr $I10, alt668_1
+    rx658_cur."!mark_push"(0, rx658_pos, $I10)
   # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx685_pos, 1
-    gt $I11, rx685_eos, rx685_fail
-    sub $I11, rx685_pos, rx685_off
-    substr $S10, rx685_tgt, $I11, 1
-    ne $S10, "(", rx685_fail
-    add rx685_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
+    add $I11, rx658_pos, 1
+    gt $I11, rx658_eos, rx658_fail
+    sub $I11, rx658_pos, rx658_off
+    substr $S10, rx658_tgt, $I11, 1
+    ne $S10, "(", rx658_fail
+    add rx658_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."signature"()
-    unless $P10, rx685_fail
-    rx685_cur."!mark_push"(0, -1, 0, $P10)
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."signature"()
+    unless $P10, rx658_fail
+    rx658_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx685_pos = $P10."pos"()
+    rx658_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx685_pos, 1
-    gt $I11, rx685_eos, rx685_fail
-    sub $I11, rx685_pos, rx685_off
-    substr $S10, rx685_tgt, $I11, 1
-    ne $S10, ")", rx685_fail
-    add rx685_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
-    goto alt695_end
-  alt695_1:
+    add $I11, rx658_pos, 1
+    gt $I11, rx658_eos, rx658_fail
+    sub $I11, rx658_pos, rx658_off
+    substr $S10, rx658_tgt, $I11, 1
+    ne $S10, ")", rx658_fail
+    add rx658_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
+    goto alt668_end
+  alt668_1:
 .annotate 'line', 308
   # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."panic"("Routine declaration requires a signature")
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
-  alt695_end:
-  # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."panic"("Routine declaration requires a signature")
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
+  alt668_end:
+  # rx subrule "ws" subtype=method negate=
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
 .annotate 'line', 309
   # rx subrule "blockoid" subtype=capture negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."blockoid"()
-    unless $P10, rx685_fail
-    rx685_cur."!mark_push"(0, -1, 0, $P10)
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."blockoid"()
+    unless $P10, rx658_fail
+    rx658_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx685_pos = $P10."pos"()
+    rx658_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx685_cur."!cursor_pos"(rx685_pos)
-    $P10 = rx685_cur."ws"()
-    unless $P10, rx685_fail
-    rx685_pos = $P10."pos"()
+    rx658_cur."!cursor_pos"(rx658_pos)
+    $P10 = rx658_cur."ws"()
+    unless $P10, rx658_fail
+    rx658_pos = $P10."pos"()
 .annotate 'line', 304
   # rx pass
-    rx685_cur."!cursor_pass"(rx685_pos, "method_def")
-    rx685_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx685_pos)
-    .return (rx685_cur)
-  rx685_fail:
+    rx658_cur."!cursor_pass"(rx658_pos, "method_def")
+    rx658_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx658_pos)
+    .return (rx658_cur)
+  rx658_restart:
 .annotate 'line', 4
-    (rx685_rep, rx685_pos, $I10, $P10) = rx685_cur."!mark_fail"(0)
-    lt rx685_pos, -1, rx685_done
-    eq rx685_pos, -1, rx685_fail
+    rx658_cur."!cursor_debug"("NEXT ", "method_def")
+  rx658_fail:
+    (rx658_rep, rx658_pos, $I10, $P10) = rx658_cur."!mark_fail"(0)
+    lt rx658_pos, -1, rx658_done
+    eq rx658_pos, -1, rx658_fail
     jump $I10
-  rx685_done:
-    rx685_cur."!cursor_fail"()
-    rx685_cur."!cursor_debug"("FAIL  ", "method_def")
-    .return (rx685_cur)
+  rx658_done:
+    rx658_cur."!cursor_fail"()
+    rx658_cur."!cursor_debug"("FAIL  ", "method_def")
+    .return (rx658_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("163_1278500537.15927") :method
+.sub "!PREFIX__method_def"  :subid("163_1279564397.22945") :method
 .annotate 'line', 4
-    $P687 = self."!PREFIX__!subrule"("ws", "")
-    new $P688, "ResizablePMCArray"
-    push $P688, $P687
-    .return ($P688)
+    $P660 = self."!PREFIX__!subrule"("ws", "")
+    new $P661, "ResizablePMCArray"
+    push $P661, $P660
+    .return ($P661)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator"  :subid("164_1278500537.15927") :method
+.sub "multi_declarator"  :subid("164_1279564397.22945") :method
 .annotate 'line', 312
-    $P705 = self."!protoregex"("multi_declarator")
-    .return ($P705)
+    $P678 = self."!protoregex"("multi_declarator")
+    .return ($P678)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator"  :subid("165_1278500537.15927") :method
+.sub "!PREFIX__multi_declarator"  :subid("165_1279564397.22945") :method
 .annotate 'line', 312
-    $P707 = self."!PREFIX__!protoregex"("multi_declarator")
-    .return ($P707)
+    $P680 = self."!PREFIX__!protoregex"("multi_declarator")
+    .return ($P680)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<multi>"  :subid("166_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "multi_declarator:sym<multi>"  :subid("166_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 314
-    new $P709, "Undef"
-    .lex "$*MULTINESS", $P709
+    new $P682, "Undef"
+    .lex "$*MULTINESS", $P682
 .annotate 'line', 4
-    .local string rx710_tgt
-    .local int rx710_pos
-    .local int rx710_off
-    .local int rx710_eos
-    .local int rx710_rep
-    .local pmc rx710_cur
-    (rx710_cur, rx710_pos, rx710_tgt) = self."!cursor_start"()
-    rx710_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
-    .lex unicode:"$\x{a2}", rx710_cur
-    .local pmc match
-    .lex "$/", match
-    length rx710_eos, rx710_tgt
-    gt rx710_pos, rx710_eos, rx710_done
-    set rx710_off, 0
-    lt rx710_pos, 2, rx710_start
-    sub rx710_off, rx710_pos, 1
-    substr rx710_tgt, rx710_tgt, rx710_off
-  rx710_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan714_done
-    goto rxscan714_scan
-  rxscan714_loop:
-    ($P10) = rx710_cur."from"()
-    inc $P10
-    set rx710_pos, $P10
-    ge rx710_pos, rx710_eos, rxscan714_done
-  rxscan714_scan:
-    set_addr $I10, rxscan714_loop
-    rx710_cur."!mark_push"(0, rx710_pos, $I10)
-  rxscan714_done:
+    .local string rx683_tgt
+    .local int rx683_pos
+    .local int rx683_off
+    .local int rx683_eos
+    .local int rx683_rep
+    .local pmc rx683_cur
+    (rx683_cur, rx683_pos, rx683_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx683_cur
+    .local pmc match
+    .lex "$/", match
+    length rx683_eos, rx683_tgt
+    gt rx683_pos, rx683_eos, rx683_done
+    set rx683_off, 0
+    lt rx683_pos, 2, rx683_start
+    sub rx683_off, rx683_pos, 1
+    substr rx683_tgt, rx683_tgt, rx683_off
+  rx683_start:
+    eq $I10, 1, rx683_restart
+    rx683_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan687_done
+    goto rxscan687_scan
+  rxscan687_loop:
+    ($P10) = rx683_cur."from"()
+    inc $P10
+    set rx683_pos, $P10
+    ge rx683_pos, rx683_eos, rxscan687_done
+  rxscan687_scan:
+    set_addr $I10, rxscan687_loop
+    rx683_cur."!mark_push"(0, rx683_pos, $I10)
+  rxscan687_done:
 .annotate 'line', 314
-    rx710_cur."!cursor_pos"(rx710_pos)
-    new $P715, "String"
-    assign $P715, "multi"
-    store_lex "$*MULTINESS", $P715
+    rx683_cur."!cursor_pos"(rx683_pos)
+    new $P688, "String"
+    assign $P688, "multi"
+    store_lex "$*MULTINESS", $P688
 .annotate 'line', 315
   # rx subcapture "sym"
-    set_addr $I10, rxcap_716_fail
-    rx710_cur."!mark_push"(0, rx710_pos, $I10)
+    set_addr $I10, rxcap_689_fail
+    rx683_cur."!mark_push"(0, rx683_pos, $I10)
   # rx literal  "multi"
-    add $I11, rx710_pos, 5
-    gt $I11, rx710_eos, rx710_fail
-    sub $I11, rx710_pos, rx710_off
-    substr $S10, rx710_tgt, $I11, 5
-    ne $S10, "multi", rx710_fail
-    add rx710_pos, 5
-    set_addr $I10, rxcap_716_fail
-    ($I12, $I11) = rx710_cur."!mark_peek"($I10)
-    rx710_cur."!cursor_pos"($I11)
-    ($P10) = rx710_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx710_pos, "")
-    rx710_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx683_pos, 5
+    gt $I11, rx683_eos, rx683_fail
+    sub $I11, rx683_pos, rx683_off
+    substr $S10, rx683_tgt, $I11, 5
+    ne $S10, "multi", rx683_fail
+    add rx683_pos, 5
+    set_addr $I10, rxcap_689_fail
+    ($I12, $I11) = rx683_cur."!mark_peek"($I10)
+    rx683_cur."!cursor_pos"($I11)
+    ($P10) = rx683_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx683_pos, "")
+    rx683_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_716_done
-  rxcap_716_fail:
-    goto rx710_fail
-  rxcap_716_done:
+    goto rxcap_689_done
+  rxcap_689_fail:
+    goto rx683_fail
+  rxcap_689_done:
 .annotate 'line', 316
   # rx subrule "ws" subtype=method negate=
-    rx710_cur."!cursor_pos"(rx710_pos)
-    $P10 = rx710_cur."ws"()
-    unless $P10, rx710_fail
-    rx710_pos = $P10."pos"()
-  alt717_0:
-    set_addr $I10, alt717_1
-    rx710_cur."!mark_push"(0, rx710_pos, $I10)
+    rx683_cur."!cursor_pos"(rx683_pos)
+    $P10 = rx683_cur."ws"()
+    unless $P10, rx683_fail
+    rx683_pos = $P10."pos"()
+  alt690_0:
+    set_addr $I10, alt690_1
+    rx683_cur."!mark_push"(0, rx683_pos, $I10)
   # rx subrule "declarator" subtype=capture negate=
-    rx710_cur."!cursor_pos"(rx710_pos)
-    $P10 = rx710_cur."declarator"()
-    unless $P10, rx710_fail
-    rx710_cur."!mark_push"(0, -1, 0, $P10)
+    rx683_cur."!cursor_pos"(rx683_pos)
+    $P10 = rx683_cur."declarator"()
+    unless $P10, rx683_fail
+    rx683_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx710_pos = $P10."pos"()
-    goto alt717_end
-  alt717_1:
-    set_addr $I10, alt717_2
-    rx710_cur."!mark_push"(0, rx710_pos, $I10)
+    rx683_pos = $P10."pos"()
+    goto alt690_end
+  alt690_1:
+    set_addr $I10, alt690_2
+    rx683_cur."!mark_push"(0, rx683_pos, $I10)
   # rx subrule "routine_def" subtype=capture negate=
-    rx710_cur."!cursor_pos"(rx710_pos)
-    $P10 = rx710_cur."routine_def"()
-    unless $P10, rx710_fail
-    rx710_cur."!mark_push"(0, -1, 0, $P10)
+    rx683_cur."!cursor_pos"(rx683_pos)
+    $P10 = rx683_cur."routine_def"()
+    unless $P10, rx683_fail
+    rx683_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_def")
-    rx710_pos = $P10."pos"()
-    goto alt717_end
-  alt717_2:
+    rx683_pos = $P10."pos"()
+    goto alt690_end
+  alt690_2:
   # rx subrule "panic" subtype=method negate=
-    rx710_cur."!cursor_pos"(rx710_pos)
-    $P10 = rx710_cur."panic"("Malformed multi")
-    unless $P10, rx710_fail
-    rx710_pos = $P10."pos"()
-  alt717_end:
+    rx683_cur."!cursor_pos"(rx683_pos)
+    $P10 = rx683_cur."panic"("Malformed multi")
+    unless $P10, rx683_fail
+    rx683_pos = $P10."pos"()
+  alt690_end:
 .annotate 'line', 313
   # rx pass
-    rx710_cur."!cursor_pass"(rx710_pos, "multi_declarator:sym<multi>")
-    rx710_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<multi>", " at pos=", rx710_pos)
-    .return (rx710_cur)
-  rx710_fail:
+    rx683_cur."!cursor_pass"(rx683_pos, "multi_declarator:sym<multi>")
+    rx683_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<multi>", " at pos=", rx683_pos)
+    .return (rx683_cur)
+  rx683_restart:
 .annotate 'line', 4
-    (rx710_rep, rx710_pos, $I10, $P10) = rx710_cur."!mark_fail"(0)
-    lt rx710_pos, -1, rx710_done
-    eq rx710_pos, -1, rx710_fail
+    rx683_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<multi>")
+  rx683_fail:
+    (rx683_rep, rx683_pos, $I10, $P10) = rx683_cur."!mark_fail"(0)
+    lt rx683_pos, -1, rx683_done
+    eq rx683_pos, -1, rx683_fail
     jump $I10
-  rx710_done:
-    rx710_cur."!cursor_fail"()
-    rx710_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<multi>")
-    .return (rx710_cur)
+  rx683_done:
+    rx683_cur."!cursor_fail"()
+    rx683_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<multi>")
+    .return (rx683_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1278500537.15927") :method
+.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1279564397.22945") :method
 .annotate 'line', 4
-    $P712 = self."!PREFIX__!subrule"("ws", "multi")
-    new $P713, "ResizablePMCArray"
-    push $P713, $P712
-    .return ($P713)
+    $P685 = self."!PREFIX__!subrule"("ws", "multi")
+    new $P686, "ResizablePMCArray"
+    push $P686, $P685
+    .return ($P686)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<null>"  :subid("168_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "multi_declarator:sym<null>"  :subid("168_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 319
+    new $P692, "Undef"
+    .lex "$*MULTINESS", $P692
+.annotate 'line', 4
+    .local string rx693_tgt
+    .local int rx693_pos
+    .local int rx693_off
+    .local int rx693_eos
+    .local int rx693_rep
+    .local pmc rx693_cur
+    (rx693_cur, rx693_pos, rx693_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx693_cur
+    .local pmc match
+    .lex "$/", match
+    length rx693_eos, rx693_tgt
+    gt rx693_pos, rx693_eos, rx693_done
+    set rx693_off, 0
+    lt rx693_pos, 2, rx693_start
+    sub rx693_off, rx693_pos, 1
+    substr rx693_tgt, rx693_tgt, rx693_off
+  rx693_start:
+    eq $I10, 1, rx693_restart
+    rx693_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan697_done
+    goto rxscan697_scan
+  rxscan697_loop:
+    ($P10) = rx693_cur."from"()
+    inc $P10
+    set rx693_pos, $P10
+    ge rx693_pos, rx693_eos, rxscan697_done
+  rxscan697_scan:
+    set_addr $I10, rxscan697_loop
+    rx693_cur."!mark_push"(0, rx693_pos, $I10)
+  rxscan697_done:
 .annotate 'line', 319
-    new $P719, "Undef"
-    .lex "$*MULTINESS", $P719
+    rx693_cur."!cursor_pos"(rx693_pos)
+    new $P698, "String"
+    assign $P698, ""
+    store_lex "$*MULTINESS", $P698
+.annotate 'line', 320
+  # rx subrule "declarator" subtype=capture negate=
+    rx693_cur."!cursor_pos"(rx693_pos)
+    $P10 = rx693_cur."declarator"()
+    unless $P10, rx693_fail
+    rx693_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("declarator")
+    rx693_pos = $P10."pos"()
+.annotate 'line', 318
+  # rx pass
+    rx693_cur."!cursor_pass"(rx693_pos, "multi_declarator:sym<null>")
+    rx693_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<null>", " at pos=", rx693_pos)
+    .return (rx693_cur)
+  rx693_restart:
+.annotate 'line', 4
+    rx693_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<null>")
+  rx693_fail:
+    (rx693_rep, rx693_pos, $I10, $P10) = rx693_cur."!mark_fail"(0)
+    lt rx693_pos, -1, rx693_done
+    eq rx693_pos, -1, rx693_fail
+    jump $I10
+  rx693_done:
+    rx693_cur."!cursor_fail"()
+    rx693_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<null>")
+    .return (rx693_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1279564397.22945") :method
+.annotate 'line', 4
+    $P695 = self."!PREFIX__!subrule"("declarator", "")
+    new $P696, "ResizablePMCArray"
+    push $P696, $P695
+    .return ($P696)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "signature"  :subid("170_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx700_tgt
+    .local int rx700_pos
+    .local int rx700_off
+    .local int rx700_eos
+    .local int rx700_rep
+    .local pmc rx700_cur
+    (rx700_cur, rx700_pos, rx700_tgt, $I10) = self."!cursor_start"()
+    rx700_cur."!cursor_caparray"("parameter")
+    .lex unicode:"$\x{a2}", rx700_cur
+    .local pmc match
+    .lex "$/", match
+    length rx700_eos, rx700_tgt
+    gt rx700_pos, rx700_eos, rx700_done
+    set rx700_off, 0
+    lt rx700_pos, 2, rx700_start
+    sub rx700_off, rx700_pos, 1
+    substr rx700_tgt, rx700_tgt, rx700_off
+  rx700_start:
+    eq $I10, 1, rx700_restart
+    rx700_cur."!cursor_debug"("START ", "signature")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan703_done
+    goto rxscan703_scan
+  rxscan703_loop:
+    ($P10) = rx700_cur."from"()
+    inc $P10
+    set rx700_pos, $P10
+    ge rx700_pos, rx700_eos, rxscan703_done
+  rxscan703_scan:
+    set_addr $I10, rxscan703_loop
+    rx700_cur."!mark_push"(0, rx700_pos, $I10)
+  rxscan703_done:
+.annotate 'line', 323
+  # rx rxquantr704 ** 0..1
+    set_addr $I10, rxquantr704_done
+    rx700_cur."!mark_push"(0, rx700_pos, $I10)
+  rxquantr704_loop:
+  # rx rxquantr705 ** 1..*
+    set_addr $I10, rxquantr705_done
+    rx700_cur."!mark_push"(0, -1, $I10)
+  rxquantr705_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx700_cur."!cursor_pos"(rx700_pos)
+    $P10 = rx700_cur."ws"()
+    unless $P10, rx700_fail
+    rx700_pos = $P10."pos"()
+  # rx subrule "parameter" subtype=capture negate=
+    rx700_cur."!cursor_pos"(rx700_pos)
+    $P10 = rx700_cur."parameter"()
+    unless $P10, rx700_fail
+    rx700_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("parameter")
+    rx700_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx700_cur."!cursor_pos"(rx700_pos)
+    $P10 = rx700_cur."ws"()
+    unless $P10, rx700_fail
+    rx700_pos = $P10."pos"()
+    set_addr $I10, rxquantr705_done
+    (rx700_rep) = rx700_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr705_done
+    rx700_cur."!mark_push"(rx700_rep, rx700_pos, $I10)
+  # rx literal  ","
+    add $I11, rx700_pos, 1
+    gt $I11, rx700_eos, rx700_fail
+    sub $I11, rx700_pos, rx700_off
+    substr $S10, rx700_tgt, $I11, 1
+    ne $S10, ",", rx700_fail
+    add rx700_pos, 1
+    goto rxquantr705_loop
+  rxquantr705_done:
+    set_addr $I10, rxquantr704_done
+    (rx700_rep) = rx700_cur."!mark_commit"($I10)
+  rxquantr704_done:
+  # rx pass
+    rx700_cur."!cursor_pass"(rx700_pos, "signature")
+    rx700_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx700_pos)
+    .return (rx700_cur)
+  rx700_restart:
+.annotate 'line', 4
+    rx700_cur."!cursor_debug"("NEXT ", "signature")
+  rx700_fail:
+    (rx700_rep, rx700_pos, $I10, $P10) = rx700_cur."!mark_fail"(0)
+    lt rx700_pos, -1, rx700_done
+    eq rx700_pos, -1, rx700_fail
+    jump $I10
+  rx700_done:
+    rx700_cur."!cursor_fail"()
+    rx700_cur."!cursor_debug"("FAIL  ", "signature")
+    .return (rx700_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__signature"  :subid("171_1279564397.22945") :method
+.annotate 'line', 4
+    new $P702, "ResizablePMCArray"
+    push $P702, ""
+    .return ($P702)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "parameter"  :subid("172_1279564397.22945") :method :outer("11_1279564397.22945")
+.annotate 'line', 4
+    .local string rx707_tgt
+    .local int rx707_pos
+    .local int rx707_off
+    .local int rx707_eos
+    .local int rx707_rep
+    .local pmc rx707_cur
+    (rx707_cur, rx707_pos, rx707_tgt, $I10) = self."!cursor_start"()
+    rx707_cur."!cursor_caparray"("typename", "default_value")
+    .lex unicode:"$\x{a2}", rx707_cur
+    .local pmc match
+    .lex "$/", match
+    length rx707_eos, rx707_tgt
+    gt rx707_pos, rx707_eos, rx707_done
+    set rx707_off, 0
+    lt rx707_pos, 2, rx707_start
+    sub rx707_off, rx707_pos, 1
+    substr rx707_tgt, rx707_tgt, rx707_off
+  rx707_start:
+    eq $I10, 1, rx707_restart
+    rx707_cur."!cursor_debug"("START ", "parameter")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan710_done
+    goto rxscan710_scan
+  rxscan710_loop:
+    ($P10) = rx707_cur."from"()
+    inc $P10
+    set rx707_pos, $P10
+    ge rx707_pos, rx707_eos, rxscan710_done
+  rxscan710_scan:
+    set_addr $I10, rxscan710_loop
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  rxscan710_done:
+.annotate 'line', 326
+  # rx rxquantr711 ** 0..*
+    set_addr $I10, rxquantr711_done
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  rxquantr711_loop:
+  # rx subrule "typename" subtype=capture negate=
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."typename"()
+    unless $P10, rx707_fail
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("typename")
+    rx707_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."ws"()
+    unless $P10, rx707_fail
+    rx707_pos = $P10."pos"()
+    set_addr $I10, rxquantr711_done
+    (rx707_rep) = rx707_cur."!mark_commit"($I10)
+    set_addr $I10, rxquantr711_done
+    rx707_cur."!mark_push"(rx707_rep, rx707_pos, $I10)
+    goto rxquantr711_loop
+  rxquantr711_done:
+  alt712_0:
+.annotate 'line', 327
+    set_addr $I10, alt712_1
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+.annotate 'line', 328
+  # rx subcapture "quant"
+    set_addr $I10, rxcap_713_fail
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  # rx literal  "*"
+    add $I11, rx707_pos, 1
+    gt $I11, rx707_eos, rx707_fail
+    sub $I11, rx707_pos, rx707_off
+    substr $S10, rx707_tgt, $I11, 1
+    ne $S10, "*", rx707_fail
+    add rx707_pos, 1
+    set_addr $I10, rxcap_713_fail
+    ($I12, $I11) = rx707_cur."!mark_peek"($I10)
+    rx707_cur."!cursor_pos"($I11)
+    ($P10) = rx707_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx707_pos, "")
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quant")
+    goto rxcap_713_done
+  rxcap_713_fail:
+    goto rx707_fail
+  rxcap_713_done:
+  # rx subrule "param_var" subtype=capture negate=
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."param_var"()
+    unless $P10, rx707_fail
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("param_var")
+    rx707_pos = $P10."pos"()
+    goto alt712_end
+  alt712_1:
+  alt714_0:
+.annotate 'line', 329
+    set_addr $I10, alt714_1
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  # rx subrule "param_var" subtype=capture negate=
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."param_var"()
+    unless $P10, rx707_fail
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("param_var")
+    rx707_pos = $P10."pos"()
+    goto alt714_end
+  alt714_1:
+  # rx subrule "named_param" subtype=capture negate=
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."named_param"()
+    unless $P10, rx707_fail
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("named_param")
+    rx707_pos = $P10."pos"()
+  alt714_end:
+  # rx subcapture "quant"
+    set_addr $I10, rxcap_716_fail
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  alt715_0:
+    set_addr $I10, alt715_1
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  # rx literal  "?"
+    add $I11, rx707_pos, 1
+    gt $I11, rx707_eos, rx707_fail
+    sub $I11, rx707_pos, rx707_off
+    substr $S10, rx707_tgt, $I11, 1
+    ne $S10, "?", rx707_fail
+    add rx707_pos, 1
+    goto alt715_end
+  alt715_1:
+    set_addr $I10, alt715_2
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  # rx literal  "!"
+    add $I11, rx707_pos, 1
+    gt $I11, rx707_eos, rx707_fail
+    sub $I11, rx707_pos, rx707_off
+    substr $S10, rx707_tgt, $I11, 1
+    ne $S10, "!", rx707_fail
+    add rx707_pos, 1
+    goto alt715_end
+  alt715_2:
+  alt715_end:
+    set_addr $I10, rxcap_716_fail
+    ($I12, $I11) = rx707_cur."!mark_peek"($I10)
+    rx707_cur."!cursor_pos"($I11)
+    ($P10) = rx707_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx707_pos, "")
+    rx707_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quant")
+    goto rxcap_716_done
+  rxcap_716_fail:
+    goto rx707_fail
+  rxcap_716_done:
+  alt712_end:
+.annotate 'line', 331
+  # rx rxquantr717 ** 0..1
+    set_addr $I10, rxquantr717_done
+    rx707_cur."!mark_push"(0, rx707_pos, $I10)
+  rxquantr717_loop:
+  # rx subrule "default_value" subtype=capture negate=
+    rx707_cur."!cursor_pos"(rx707_pos)
+    $P10 = rx707_cur."default_value"()
+    unless $P10, rx707_fail
+    goto rxsubrule718_pass
+  rxsubrule718_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx707_fail
+  rxsubrule718_pass:
+    set_addr $I10, rxsubrule718_back
+    rx707_cur."!mark_push"(0, rx707_pos, $I10, $P10)
+    $P10."!cursor_names"("default_value")
+    rx707_pos = $P10."pos"()
+    set_addr $I10, rxquantr717_done
+    (rx707_rep) = rx707_cur."!mark_commit"($I10)
+  rxquantr717_done:
+.annotate 'line', 325
+  # rx pass
+    rx707_cur."!cursor_pass"(rx707_pos, "parameter")
+    rx707_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx707_pos)
+    .return (rx707_cur)
+  rx707_restart:
+.annotate 'line', 4
+    rx707_cur."!cursor_debug"("NEXT ", "parameter")
+  rx707_fail:
+    (rx707_rep, rx707_pos, $I10, $P10) = rx707_cur."!mark_fail"(0)
+    lt rx707_pos, -1, rx707_done
+    eq rx707_pos, -1, rx707_fail
+    jump $I10
+  rx707_done:
+    rx707_cur."!cursor_fail"()
+    rx707_cur."!cursor_debug"("FAIL  ", "parameter")
+    .return (rx707_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__parameter"  :subid("173_1279564397.22945") :method
+.annotate 'line', 4
+    new $P709, "ResizablePMCArray"
+    push $P709, ""
+    .return ($P709)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "param_var"  :subid("174_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
     .local string rx720_tgt
     .local int rx720_pos
@@ -8440,8 +9148,8 @@
     .local int rx720_eos
     .local int rx720_rep
     .local pmc rx720_cur
-    (rx720_cur, rx720_pos, rx720_tgt) = self."!cursor_start"()
-    rx720_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+    (rx720_cur, rx720_pos, rx720_tgt, $I10) = self."!cursor_start"()
+    rx720_cur."!cursor_caparray"("twigil")
     .lex unicode:"$\x{a2}", rx720_cur
     .local pmc match
     .lex "$/", match
@@ -8452,6 +9160,8 @@
     sub rx720_off, rx720_pos, 1
     substr rx720_tgt, rx720_tgt, rx720_off
   rx720_start:
+    eq $I10, 1, rx720_restart
+    rx720_cur."!cursor_debug"("START ", "param_var")
     $I10 = self.'from'()
     ne $I10, -1, rxscan724_done
     goto rxscan724_scan
@@ -8464,42 +9174,94 @@
     set_addr $I10, rxscan724_loop
     rx720_cur."!mark_push"(0, rx720_pos, $I10)
   rxscan724_done:
-.annotate 'line', 319
+.annotate 'line', 335
+  # rx subrule "sigil" subtype=capture negate=
     rx720_cur."!cursor_pos"(rx720_pos)
-    new $P725, "String"
-    assign $P725, ""
-    store_lex "$*MULTINESS", $P725
-.annotate 'line', 320
-  # rx subrule "declarator" subtype=capture negate=
+    $P10 = rx720_cur."sigil"()
+    unless $P10, rx720_fail
+    rx720_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sigil")
+    rx720_pos = $P10."pos"()
+  # rx rxquantr725 ** 0..1
+    set_addr $I10, rxquantr725_done
+    rx720_cur."!mark_push"(0, rx720_pos, $I10)
+  rxquantr725_loop:
+  # rx subrule "twigil" subtype=capture negate=
+    rx720_cur."!cursor_pos"(rx720_pos)
+    $P10 = rx720_cur."twigil"()
+    unless $P10, rx720_fail
+    goto rxsubrule726_pass
+  rxsubrule726_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx720_fail
+  rxsubrule726_pass:
+    set_addr $I10, rxsubrule726_back
+    rx720_cur."!mark_push"(0, rx720_pos, $I10, $P10)
+    $P10."!cursor_names"("twigil")
+    rx720_pos = $P10."pos"()
+    set_addr $I10, rxquantr725_done
+    (rx720_rep) = rx720_cur."!mark_commit"($I10)
+  rxquantr725_done:
+  alt727_0:
+.annotate 'line', 336
+    set_addr $I10, alt727_1
+    rx720_cur."!mark_push"(0, rx720_pos, $I10)
+  # rx subrule "ident" subtype=capture negate=
     rx720_cur."!cursor_pos"(rx720_pos)
-    $P10 = rx720_cur."declarator"()
+    $P10 = rx720_cur."ident"()
     unless $P10, rx720_fail
     rx720_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("declarator")
+    $P10."!cursor_names"("name")
     rx720_pos = $P10."pos"()
-.annotate 'line', 318
+    goto alt727_end
+  alt727_1:
+  # rx subcapture "name"
+    set_addr $I10, rxcap_728_fail
+    rx720_cur."!mark_push"(0, rx720_pos, $I10)
+  # rx enumcharlist negate=0 
+    ge rx720_pos, rx720_eos, rx720_fail
+    sub $I10, rx720_pos, rx720_off
+    substr $S10, rx720_tgt, $I10, 1
+    index $I11, "/!", $S10
+    lt $I11, 0, rx720_fail
+    inc rx720_pos
+    set_addr $I10, rxcap_728_fail
+    ($I12, $I11) = rx720_cur."!mark_peek"($I10)
+    rx720_cur."!cursor_pos"($I11)
+    ($P10) = rx720_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx720_pos, "")
+    rx720_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("name")
+    goto rxcap_728_done
+  rxcap_728_fail:
+    goto rx720_fail
+  rxcap_728_done:
+  alt727_end:
+.annotate 'line', 334
   # rx pass
-    rx720_cur."!cursor_pass"(rx720_pos, "multi_declarator:sym<null>")
-    rx720_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<null>", " at pos=", rx720_pos)
+    rx720_cur."!cursor_pass"(rx720_pos, "param_var")
+    rx720_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx720_pos)
     .return (rx720_cur)
-  rx720_fail:
+  rx720_restart:
 .annotate 'line', 4
+    rx720_cur."!cursor_debug"("NEXT ", "param_var")
+  rx720_fail:
     (rx720_rep, rx720_pos, $I10, $P10) = rx720_cur."!mark_fail"(0)
     lt rx720_pos, -1, rx720_done
     eq rx720_pos, -1, rx720_fail
     jump $I10
   rx720_done:
     rx720_cur."!cursor_fail"()
-    rx720_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<null>")
+    rx720_cur."!cursor_debug"("FAIL  ", "param_var")
     .return (rx720_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1278500537.15927") :method
+.sub "!PREFIX__param_var"  :subid("175_1279564397.22945") :method
 .annotate 'line', 4
-    $P722 = self."!PREFIX__!subrule"("declarator", "")
+    $P722 = self."!PREFIX__!subrule"("sigil", "")
     new $P723, "ResizablePMCArray"
     push $P723, $P722
     .return ($P723)
@@ -8507,107 +9269,87 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("170_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx727_tgt
-    .local int rx727_pos
-    .local int rx727_off
-    .local int rx727_eos
-    .local int rx727_rep
-    .local pmc rx727_cur
-    (rx727_cur, rx727_pos, rx727_tgt) = self."!cursor_start"()
-    rx727_cur."!cursor_debug"("START ", "signature")
-    rx727_cur."!cursor_caparray"("parameter")
-    .lex unicode:"$\x{a2}", rx727_cur
-    .local pmc match
-    .lex "$/", match
-    length rx727_eos, rx727_tgt
-    gt rx727_pos, rx727_eos, rx727_done
-    set rx727_off, 0
-    lt rx727_pos, 2, rx727_start
-    sub rx727_off, rx727_pos, 1
-    substr rx727_tgt, rx727_tgt, rx727_off
-  rx727_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan730_done
-    goto rxscan730_scan
-  rxscan730_loop:
-    ($P10) = rx727_cur."from"()
-    inc $P10
-    set rx727_pos, $P10
-    ge rx727_pos, rx727_eos, rxscan730_done
-  rxscan730_scan:
-    set_addr $I10, rxscan730_loop
-    rx727_cur."!mark_push"(0, rx727_pos, $I10)
-  rxscan730_done:
-.annotate 'line', 323
-  # rx rxquantr731 ** 0..1
-    set_addr $I734, rxquantr731_done
-    rx727_cur."!mark_push"(0, rx727_pos, $I734)
-  rxquantr731_loop:
-  # rx rxquantr732 ** 1..*
-    set_addr $I733, rxquantr732_done
-    rx727_cur."!mark_push"(0, -1, $I733)
-  rxquantr732_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx727_cur."!cursor_pos"(rx727_pos)
-    $P10 = rx727_cur."ws"()
-    unless $P10, rx727_fail
-    rx727_pos = $P10."pos"()
-  # rx subrule "parameter" subtype=capture negate=
-    rx727_cur."!cursor_pos"(rx727_pos)
-    $P10 = rx727_cur."parameter"()
-    unless $P10, rx727_fail
-    rx727_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("parameter")
-    rx727_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx727_cur."!cursor_pos"(rx727_pos)
-    $P10 = rx727_cur."ws"()
-    unless $P10, rx727_fail
-    rx727_pos = $P10."pos"()
-    (rx727_rep) = rx727_cur."!mark_commit"($I733)
-    rx727_cur."!mark_push"(rx727_rep, rx727_pos, $I733)
-  # rx literal  ","
-    add $I11, rx727_pos, 1
-    gt $I11, rx727_eos, rx727_fail
-    sub $I11, rx727_pos, rx727_off
-    substr $S10, rx727_tgt, $I11, 1
-    ne $S10, ",", rx727_fail
-    add rx727_pos, 1
-    goto rxquantr732_loop
-  rxquantr732_done:
-    (rx727_rep) = rx727_cur."!mark_commit"($I734)
-  rxquantr731_done:
-  # rx pass
-    rx727_cur."!cursor_pass"(rx727_pos, "signature")
-    rx727_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx727_pos)
-    .return (rx727_cur)
-  rx727_fail:
+.sub "named_param"  :subid("176_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    (rx727_rep, rx727_pos, $I10, $P10) = rx727_cur."!mark_fail"(0)
-    lt rx727_pos, -1, rx727_done
-    eq rx727_pos, -1, rx727_fail
+    .local string rx730_tgt
+    .local int rx730_pos
+    .local int rx730_off
+    .local int rx730_eos
+    .local int rx730_rep
+    .local pmc rx730_cur
+    (rx730_cur, rx730_pos, rx730_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx730_cur
+    .local pmc match
+    .lex "$/", match
+    length rx730_eos, rx730_tgt
+    gt rx730_pos, rx730_eos, rx730_done
+    set rx730_off, 0
+    lt rx730_pos, 2, rx730_start
+    sub rx730_off, rx730_pos, 1
+    substr rx730_tgt, rx730_tgt, rx730_off
+  rx730_start:
+    eq $I10, 1, rx730_restart
+    rx730_cur."!cursor_debug"("START ", "named_param")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan734_done
+    goto rxscan734_scan
+  rxscan734_loop:
+    ($P10) = rx730_cur."from"()
+    inc $P10
+    set rx730_pos, $P10
+    ge rx730_pos, rx730_eos, rxscan734_done
+  rxscan734_scan:
+    set_addr $I10, rxscan734_loop
+    rx730_cur."!mark_push"(0, rx730_pos, $I10)
+  rxscan734_done:
+.annotate 'line', 340
+  # rx literal  ":"
+    add $I11, rx730_pos, 1
+    gt $I11, rx730_eos, rx730_fail
+    sub $I11, rx730_pos, rx730_off
+    substr $S10, rx730_tgt, $I11, 1
+    ne $S10, ":", rx730_fail
+    add rx730_pos, 1
+  # rx subrule "param_var" subtype=capture negate=
+    rx730_cur."!cursor_pos"(rx730_pos)
+    $P10 = rx730_cur."param_var"()
+    unless $P10, rx730_fail
+    rx730_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("param_var")
+    rx730_pos = $P10."pos"()
+.annotate 'line', 339
+  # rx pass
+    rx730_cur."!cursor_pass"(rx730_pos, "named_param")
+    rx730_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx730_pos)
+    .return (rx730_cur)
+  rx730_restart:
+.annotate 'line', 4
+    rx730_cur."!cursor_debug"("NEXT ", "named_param")
+  rx730_fail:
+    (rx730_rep, rx730_pos, $I10, $P10) = rx730_cur."!mark_fail"(0)
+    lt rx730_pos, -1, rx730_done
+    eq rx730_pos, -1, rx730_fail
     jump $I10
-  rx727_done:
-    rx727_cur."!cursor_fail"()
-    rx727_cur."!cursor_debug"("FAIL  ", "signature")
-    .return (rx727_cur)
+  rx730_done:
+    rx730_cur."!cursor_fail"()
+    rx730_cur."!cursor_debug"("FAIL  ", "named_param")
+    .return (rx730_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("171_1278500537.15927") :method
+.sub "!PREFIX__named_param"  :subid("177_1279564397.22945") :method
 .annotate 'line', 4
-    new $P729, "ResizablePMCArray"
-    push $P729, ""
-    .return ($P729)
+    $P732 = self."!PREFIX__!subrule"("param_var", ":")
+    new $P733, "ResizablePMCArray"
+    push $P733, $P732
+    .return ($P733)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("172_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "default_value"  :subid("178_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
     .local string rx736_tgt
     .local int rx736_pos
@@ -8615,9 +9357,7 @@
     .local int rx736_eos
     .local int rx736_rep
     .local pmc rx736_cur
-    (rx736_cur, rx736_pos, rx736_tgt) = self."!cursor_start"()
-    rx736_cur."!cursor_debug"("START ", "parameter")
-    rx736_cur."!cursor_caparray"("default_value", "typename")
+    (rx736_cur, rx736_pos, rx736_tgt, $I10) = self."!cursor_start"()
     .lex unicode:"$\x{a2}", rx736_cur
     .local pmc match
     .lex "$/", match
@@ -8628,9196 +9368,9134 @@
     sub rx736_off, rx736_pos, 1
     substr rx736_tgt, rx736_tgt, rx736_off
   rx736_start:
+    eq $I10, 1, rx736_restart
+    rx736_cur."!cursor_debug"("START ", "default_value")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan739_done
-    goto rxscan739_scan
-  rxscan739_loop:
+    ne $I10, -1, rxscan740_done
+    goto rxscan740_scan
+  rxscan740_loop:
     ($P10) = rx736_cur."from"()
     inc $P10
     set rx736_pos, $P10
-    ge rx736_pos, rx736_eos, rxscan739_done
-  rxscan739_scan:
-    set_addr $I10, rxscan739_loop
+    ge rx736_pos, rx736_eos, rxscan740_done
+  rxscan740_scan:
+    set_addr $I10, rxscan740_loop
     rx736_cur."!mark_push"(0, rx736_pos, $I10)
-  rxscan739_done:
-.annotate 'line', 326
-  # rx rxquantr740 ** 0..*
-    set_addr $I741, rxquantr740_done
-    rx736_cur."!mark_push"(0, rx736_pos, $I741)
-  rxquantr740_loop:
-  # rx subrule "typename" subtype=capture negate=
-    rx736_cur."!cursor_pos"(rx736_pos)
-    $P10 = rx736_cur."typename"()
-    unless $P10, rx736_fail
-    rx736_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("typename")
-    rx736_pos = $P10."pos"()
+  rxscan740_done:
+.annotate 'line', 343
   # rx subrule "ws" subtype=method negate=
     rx736_cur."!cursor_pos"(rx736_pos)
     $P10 = rx736_cur."ws"()
     unless $P10, rx736_fail
     rx736_pos = $P10."pos"()
-    (rx736_rep) = rx736_cur."!mark_commit"($I741)
-    rx736_cur."!mark_push"(rx736_rep, rx736_pos, $I741)
-    goto rxquantr740_loop
-  rxquantr740_done:
-  alt742_0:
-.annotate 'line', 327
-    set_addr $I10, alt742_1
-    rx736_cur."!mark_push"(0, rx736_pos, $I10)
-.annotate 'line', 328
-  # rx subcapture "quant"
-    set_addr $I10, rxcap_743_fail
-    rx736_cur."!mark_push"(0, rx736_pos, $I10)
-  # rx literal  "*"
+  # rx literal  "="
     add $I11, rx736_pos, 1
     gt $I11, rx736_eos, rx736_fail
     sub $I11, rx736_pos, rx736_off
     substr $S10, rx736_tgt, $I11, 1
-    ne $S10, "*", rx736_fail
+    ne $S10, "=", rx736_fail
     add rx736_pos, 1
-    set_addr $I10, rxcap_743_fail
-    ($I12, $I11) = rx736_cur."!mark_peek"($I10)
-    rx736_cur."!cursor_pos"($I11)
-    ($P10) = rx736_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx736_pos, "")
-    rx736_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quant")
-    goto rxcap_743_done
-  rxcap_743_fail:
-    goto rx736_fail
-  rxcap_743_done:
-  # rx subrule "param_var" subtype=capture negate=
-    rx736_cur."!cursor_pos"(rx736_pos)
-    $P10 = rx736_cur."param_var"()
-    unless $P10, rx736_fail
-    rx736_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("param_var")
-    rx736_pos = $P10."pos"()
-    goto alt742_end
-  alt742_1:
-  alt744_0:
-.annotate 'line', 329
-    set_addr $I10, alt744_1
-    rx736_cur."!mark_push"(0, rx736_pos, $I10)
-  # rx subrule "param_var" subtype=capture negate=
+  # rx subrule "ws" subtype=method negate=
     rx736_cur."!cursor_pos"(rx736_pos)
-    $P10 = rx736_cur."param_var"()
+    $P10 = rx736_cur."ws"()
     unless $P10, rx736_fail
-    rx736_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("param_var")
     rx736_pos = $P10."pos"()
-    goto alt744_end
-  alt744_1:
-  # rx subrule "named_param" subtype=capture negate=
+  # rx subrule "EXPR" subtype=capture negate=
     rx736_cur."!cursor_pos"(rx736_pos)
-    $P10 = rx736_cur."named_param"()
+    $P10 = rx736_cur."EXPR"("i=")
     unless $P10, rx736_fail
     rx736_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("named_param")
+    $P10."!cursor_names"("EXPR")
     rx736_pos = $P10."pos"()
-  alt744_end:
-  # rx subcapture "quant"
-    set_addr $I10, rxcap_746_fail
-    rx736_cur."!mark_push"(0, rx736_pos, $I10)
-  alt745_0:
-    set_addr $I10, alt745_1
-    rx736_cur."!mark_push"(0, rx736_pos, $I10)
-  # rx literal  "?"
-    add $I11, rx736_pos, 1
-    gt $I11, rx736_eos, rx736_fail
-    sub $I11, rx736_pos, rx736_off
-    substr $S10, rx736_tgt, $I11, 1
-    ne $S10, "?", rx736_fail
-    add rx736_pos, 1
-    goto alt745_end
-  alt745_1:
-    set_addr $I10, alt745_2
-    rx736_cur."!mark_push"(0, rx736_pos, $I10)
-  # rx literal  "!"
-    add $I11, rx736_pos, 1
-    gt $I11, rx736_eos, rx736_fail
-    sub $I11, rx736_pos, rx736_off
-    substr $S10, rx736_tgt, $I11, 1
-    ne $S10, "!", rx736_fail
-    add rx736_pos, 1
-    goto alt745_end
-  alt745_2:
-  alt745_end:
-    set_addr $I10, rxcap_746_fail
-    ($I12, $I11) = rx736_cur."!mark_peek"($I10)
-    rx736_cur."!cursor_pos"($I11)
-    ($P10) = rx736_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx736_pos, "")
-    rx736_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quant")
-    goto rxcap_746_done
-  rxcap_746_fail:
-    goto rx736_fail
-  rxcap_746_done:
-  alt742_end:
-.annotate 'line', 331
-  # rx rxquantr747 ** 0..1
-    set_addr $I748, rxquantr747_done
-    rx736_cur."!mark_push"(0, rx736_pos, $I748)
-  rxquantr747_loop:
-  # rx subrule "default_value" subtype=capture negate=
+  # rx subrule "ws" subtype=method negate=
     rx736_cur."!cursor_pos"(rx736_pos)
-    $P10 = rx736_cur."default_value"()
+    $P10 = rx736_cur."ws"()
     unless $P10, rx736_fail
-    rx736_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("default_value")
     rx736_pos = $P10."pos"()
-    (rx736_rep) = rx736_cur."!mark_commit"($I748)
-  rxquantr747_done:
-.annotate 'line', 325
   # rx pass
-    rx736_cur."!cursor_pass"(rx736_pos, "parameter")
-    rx736_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx736_pos)
+    rx736_cur."!cursor_pass"(rx736_pos, "default_value")
+    rx736_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx736_pos)
     .return (rx736_cur)
-  rx736_fail:
+  rx736_restart:
 .annotate 'line', 4
+    rx736_cur."!cursor_debug"("NEXT ", "default_value")
+  rx736_fail:
     (rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0)
     lt rx736_pos, -1, rx736_done
     eq rx736_pos, -1, rx736_fail
     jump $I10
   rx736_done:
     rx736_cur."!cursor_fail"()
-    rx736_cur."!cursor_debug"("FAIL  ", "parameter")
+    rx736_cur."!cursor_debug"("FAIL  ", "default_value")
     .return (rx736_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("173_1278500537.15927") :method
-.annotate 'line', 4
-    new $P738, "ResizablePMCArray"
-    push $P738, ""
-    .return ($P738)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("174_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx750_tgt
-    .local int rx750_pos
-    .local int rx750_off
-    .local int rx750_eos
-    .local int rx750_rep
-    .local pmc rx750_cur
-    (rx750_cur, rx750_pos, rx750_tgt) = self."!cursor_start"()
-    rx750_cur."!cursor_debug"("START ", "param_var")
-    rx750_cur."!cursor_caparray"("twigil")
-    .lex unicode:"$\x{a2}", rx750_cur
-    .local pmc match
-    .lex "$/", match
-    length rx750_eos, rx750_tgt
-    gt rx750_pos, rx750_eos, rx750_done
-    set rx750_off, 0
-    lt rx750_pos, 2, rx750_start
-    sub rx750_off, rx750_pos, 1
-    substr rx750_tgt, rx750_tgt, rx750_off
-  rx750_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan754_done
-    goto rxscan754_scan
-  rxscan754_loop:
-    ($P10) = rx750_cur."from"()
-    inc $P10
-    set rx750_pos, $P10
-    ge rx750_pos, rx750_eos, rxscan754_done
-  rxscan754_scan:
-    set_addr $I10, rxscan754_loop
-    rx750_cur."!mark_push"(0, rx750_pos, $I10)
-  rxscan754_done:
-.annotate 'line', 335
-  # rx subrule "sigil" subtype=capture negate=
-    rx750_cur."!cursor_pos"(rx750_pos)
-    $P10 = rx750_cur."sigil"()
-    unless $P10, rx750_fail
-    rx750_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sigil")
-    rx750_pos = $P10."pos"()
-  # rx rxquantr755 ** 0..1
-    set_addr $I756, rxquantr755_done
-    rx750_cur."!mark_push"(0, rx750_pos, $I756)
-  rxquantr755_loop:
-  # rx subrule "twigil" subtype=capture negate=
-    rx750_cur."!cursor_pos"(rx750_pos)
-    $P10 = rx750_cur."twigil"()
-    unless $P10, rx750_fail
-    rx750_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("twigil")
-    rx750_pos = $P10."pos"()
-    (rx750_rep) = rx750_cur."!mark_commit"($I756)
-  rxquantr755_done:
-  alt757_0:
-.annotate 'line', 336
-    set_addr $I10, alt757_1
-    rx750_cur."!mark_push"(0, rx750_pos, $I10)
-  # rx subrule "ident" subtype=capture negate=
-    rx750_cur."!cursor_pos"(rx750_pos)
-    $P10 = rx750_cur."ident"()
-    unless $P10, rx750_fail
-    rx750_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("name")
-    rx750_pos = $P10."pos"()
-    goto alt757_end
-  alt757_1:
-  # rx subcapture "name"
-    set_addr $I10, rxcap_758_fail
-    rx750_cur."!mark_push"(0, rx750_pos, $I10)
-  # rx enumcharlist negate=0 
-    ge rx750_pos, rx750_eos, rx750_fail
-    sub $I10, rx750_pos, rx750_off
-    substr $S10, rx750_tgt, $I10, 1
-    index $I11, "/!", $S10
-    lt $I11, 0, rx750_fail
-    inc rx750_pos
-    set_addr $I10, rxcap_758_fail
-    ($I12, $I11) = rx750_cur."!mark_peek"($I10)
-    rx750_cur."!cursor_pos"($I11)
-    ($P10) = rx750_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx750_pos, "")
-    rx750_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("name")
-    goto rxcap_758_done
-  rxcap_758_fail:
-    goto rx750_fail
-  rxcap_758_done:
-  alt757_end:
-.annotate 'line', 334
-  # rx pass
-    rx750_cur."!cursor_pass"(rx750_pos, "param_var")
-    rx750_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx750_pos)
-    .return (rx750_cur)
-  rx750_fail:
-.annotate 'line', 4
-    (rx750_rep, rx750_pos, $I10, $P10) = rx750_cur."!mark_fail"(0)
-    lt rx750_pos, -1, rx750_done
-    eq rx750_pos, -1, rx750_fail
-    jump $I10
-  rx750_done:
-    rx750_cur."!cursor_fail"()
-    rx750_cur."!cursor_debug"("FAIL  ", "param_var")
-    .return (rx750_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("175_1278500537.15927") :method
-.annotate 'line', 4
-    $P752 = self."!PREFIX__!subrule"("sigil", "")
-    new $P753, "ResizablePMCArray"
-    push $P753, $P752
-    .return ($P753)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("176_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx760_tgt
-    .local int rx760_pos
-    .local int rx760_off
-    .local int rx760_eos
-    .local int rx760_rep
-    .local pmc rx760_cur
-    (rx760_cur, rx760_pos, rx760_tgt) = self."!cursor_start"()
-    rx760_cur."!cursor_debug"("START ", "named_param")
-    .lex unicode:"$\x{a2}", rx760_cur
-    .local pmc match
-    .lex "$/", match
-    length rx760_eos, rx760_tgt
-    gt rx760_pos, rx760_eos, rx760_done
-    set rx760_off, 0
-    lt rx760_pos, 2, rx760_start
-    sub rx760_off, rx760_pos, 1
-    substr rx760_tgt, rx760_tgt, rx760_off
-  rx760_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan764_done
-    goto rxscan764_scan
-  rxscan764_loop:
-    ($P10) = rx760_cur."from"()
-    inc $P10
-    set rx760_pos, $P10
-    ge rx760_pos, rx760_eos, rxscan764_done
-  rxscan764_scan:
-    set_addr $I10, rxscan764_loop
-    rx760_cur."!mark_push"(0, rx760_pos, $I10)
-  rxscan764_done:
-.annotate 'line', 340
-  # rx literal  ":"
-    add $I11, rx760_pos, 1
-    gt $I11, rx760_eos, rx760_fail
-    sub $I11, rx760_pos, rx760_off
-    substr $S10, rx760_tgt, $I11, 1
-    ne $S10, ":", rx760_fail
-    add rx760_pos, 1
-  # rx subrule "param_var" subtype=capture negate=
-    rx760_cur."!cursor_pos"(rx760_pos)
-    $P10 = rx760_cur."param_var"()
-    unless $P10, rx760_fail
-    rx760_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("param_var")
-    rx760_pos = $P10."pos"()
-.annotate 'line', 339
-  # rx pass
-    rx760_cur."!cursor_pass"(rx760_pos, "named_param")
-    rx760_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx760_pos)
-    .return (rx760_cur)
-  rx760_fail:
-.annotate 'line', 4
-    (rx760_rep, rx760_pos, $I10, $P10) = rx760_cur."!mark_fail"(0)
-    lt rx760_pos, -1, rx760_done
-    eq rx760_pos, -1, rx760_fail
-    jump $I10
-  rx760_done:
-    rx760_cur."!cursor_fail"()
-    rx760_cur."!cursor_debug"("FAIL  ", "named_param")
-    .return (rx760_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("177_1278500537.15927") :method
-.annotate 'line', 4
-    $P762 = self."!PREFIX__!subrule"("param_var", ":")
-    new $P763, "ResizablePMCArray"
-    push $P763, $P762
-    .return ($P763)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("178_1278500537.15927") :method :outer("11_1278500537.15927")
-.annotate 'line', 4
-    .local string rx766_tgt
-    .local int rx766_pos
-    .local int rx766_off
-    .local int rx766_eos
-    .local int rx766_rep
-    .local pmc rx766_cur
-    (rx766_cur, rx766_pos, rx766_tgt) = self."!cursor_start"()
-    rx766_cur."!cursor_debug"("START ", "default_value")
-    .lex unicode:"$\x{a2}", rx766_cur
-    .local pmc match
-    .lex "$/", match
-    length rx766_eos, rx766_tgt
-    gt rx766_pos, rx766_eos, rx766_done
-    set rx766_off, 0
-    lt rx766_pos, 2, rx766_start
-    sub rx766_off, rx766_pos, 1
-    substr rx766_tgt, rx766_tgt, rx766_off
-  rx766_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan770_done
-    goto rxscan770_scan
-  rxscan770_loop:
-    ($P10) = rx766_cur."from"()
-    inc $P10
-    set rx766_pos, $P10
-    ge rx766_pos, rx766_eos, rxscan770_done
-  rxscan770_scan:
-    set_addr $I10, rxscan770_loop
-    rx766_cur."!mark_push"(0, rx766_pos, $I10)
-  rxscan770_done:
-.annotate 'line', 343
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  # rx literal  "="
-    add $I11, rx766_pos, 1
-    gt $I11, rx766_eos, rx766_fail
-    sub $I11, rx766_pos, rx766_off
-    substr $S10, rx766_tgt, $I11, 1
-    ne $S10, "=", rx766_fail
-    add rx766_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  # rx subrule "EXPR" subtype=capture negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."EXPR"("i=")
-    unless $P10, rx766_fail
-    rx766_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("EXPR")
-    rx766_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx766_cur."!cursor_pos"(rx766_pos)
-    $P10 = rx766_cur."ws"()
-    unless $P10, rx766_fail
-    rx766_pos = $P10."pos"()
-  # rx pass
-    rx766_cur."!cursor_pass"(rx766_pos, "default_value")
-    rx766_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx766_pos)
-    .return (rx766_cur)
-  rx766_fail:
-.annotate 'line', 4
-    (rx766_rep, rx766_pos, $I10, $P10) = rx766_cur."!mark_fail"(0)
-    lt rx766_pos, -1, rx766_done
-    eq rx766_pos, -1, rx766_fail
-    jump $I10
-  rx766_done:
-    rx766_cur."!cursor_fail"()
-    rx766_cur."!cursor_debug"("FAIL  ", "default_value")
-    .return (rx766_cur)
-    .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("179_1278500537.15927") :method
+.sub "!PREFIX__default_value"  :subid("179_1279564397.22945") :method
 .annotate 'line', 4
-    $P768 = self."!PREFIX__!subrule"("ws", "")
-    new $P769, "ResizablePMCArray"
-    push $P769, $P768
-    .return ($P769)
+    $P738 = self."!PREFIX__!subrule"("ws", "")
+    new $P739, "ResizablePMCArray"
+    push $P739, $P738
+    .return ($P739)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("180_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "regex_declarator"  :subid("180_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx775_tgt
-    .local int rx775_pos
-    .local int rx775_off
-    .local int rx775_eos
-    .local int rx775_rep
-    .local pmc rx775_cur
-    (rx775_cur, rx775_pos, rx775_tgt) = self."!cursor_start"()
-    rx775_cur."!cursor_debug"("START ", "regex_declarator")
-    rx775_cur."!cursor_caparray"("signature")
-    .lex unicode:"$\x{a2}", rx775_cur
-    .local pmc match
-    .lex "$/", match
-    length rx775_eos, rx775_tgt
-    gt rx775_pos, rx775_eos, rx775_done
-    set rx775_off, 0
-    lt rx775_pos, 2, rx775_start
-    sub rx775_off, rx775_pos, 1
-    substr rx775_tgt, rx775_tgt, rx775_off
-  rx775_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan779_done
-    goto rxscan779_scan
-  rxscan779_loop:
-    ($P10) = rx775_cur."from"()
-    inc $P10
-    set rx775_pos, $P10
-    ge rx775_pos, rx775_eos, rxscan779_done
-  rxscan779_scan:
-    set_addr $I10, rxscan779_loop
-    rx775_cur."!mark_push"(0, rx775_pos, $I10)
-  rxscan779_done:
+    .local string rx745_tgt
+    .local int rx745_pos
+    .local int rx745_off
+    .local int rx745_eos
+    .local int rx745_rep
+    .local pmc rx745_cur
+    (rx745_cur, rx745_pos, rx745_tgt, $I10) = self."!cursor_start"()
+    rx745_cur."!cursor_caparray"("signature")
+    .lex unicode:"$\x{a2}", rx745_cur
+    .local pmc match
+    .lex "$/", match
+    length rx745_eos, rx745_tgt
+    gt rx745_pos, rx745_eos, rx745_done
+    set rx745_off, 0
+    lt rx745_pos, 2, rx745_start
+    sub rx745_off, rx745_pos, 1
+    substr rx745_tgt, rx745_tgt, rx745_off
+  rx745_start:
+    eq $I10, 1, rx745_restart
+    rx745_cur."!cursor_debug"("START ", "regex_declarator")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan749_done
+    goto rxscan749_scan
+  rxscan749_loop:
+    ($P10) = rx745_cur."from"()
+    inc $P10
+    set rx745_pos, $P10
+    ge rx745_pos, rx745_eos, rxscan749_done
+  rxscan749_scan:
+    set_addr $I10, rxscan749_loop
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+  rxscan749_done:
 .annotate 'line', 345
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
-  alt781_0:
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+  alt751_0:
 .annotate 'line', 346
-    set_addr $I10, alt781_1
-    rx775_cur."!mark_push"(0, rx775_pos, $I10)
+    set_addr $I10, alt751_1
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
 .annotate 'line', 347
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx subcapture "proto"
-    set_addr $I10, rxcap_783_fail
-    rx775_cur."!mark_push"(0, rx775_pos, $I10)
+    set_addr $I10, rxcap_753_fail
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
   # rx literal  "proto"
-    add $I11, rx775_pos, 5
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 5
-    ne $S10, "proto", rx775_fail
-    add rx775_pos, 5
-    set_addr $I10, rxcap_783_fail
-    ($I12, $I11) = rx775_cur."!mark_peek"($I10)
-    rx775_cur."!cursor_pos"($I11)
-    ($P10) = rx775_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx775_pos, "")
-    rx775_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx745_pos, 5
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 5
+    ne $S10, "proto", rx745_fail
+    add rx745_pos, 5
+    set_addr $I10, rxcap_753_fail
+    ($I12, $I11) = rx745_cur."!mark_peek"($I10)
+    rx745_cur."!cursor_pos"($I11)
+    ($P10) = rx745_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx745_pos, "")
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("proto")
-    goto rxcap_783_done
-  rxcap_783_fail:
-    goto rx775_fail
-  rxcap_783_done:
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
-  alt785_0:
-    set_addr $I10, alt785_1
-    rx775_cur."!mark_push"(0, rx775_pos, $I10)
+    goto rxcap_753_done
+  rxcap_753_fail:
+    goto rx745_fail
+  rxcap_753_done:
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+  alt755_0:
+    set_addr $I10, alt755_1
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
   # rx literal  "regex"
-    add $I11, rx775_pos, 5
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 5
-    ne $S10, "regex", rx775_fail
-    add rx775_pos, 5
-    goto alt785_end
-  alt785_1:
-    set_addr $I10, alt785_2
-    rx775_cur."!mark_push"(0, rx775_pos, $I10)
+    add $I11, rx745_pos, 5
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 5
+    ne $S10, "regex", rx745_fail
+    add rx745_pos, 5
+    goto alt755_end
+  alt755_1:
+    set_addr $I10, alt755_2
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
   # rx literal  "token"
-    add $I11, rx775_pos, 5
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 5
-    ne $S10, "token", rx775_fail
-    add rx775_pos, 5
-    goto alt785_end
-  alt785_2:
+    add $I11, rx745_pos, 5
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 5
+    ne $S10, "token", rx745_fail
+    add rx745_pos, 5
+    goto alt755_end
+  alt755_2:
   # rx literal  "rule"
-    add $I11, rx775_pos, 4
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 4
-    ne $S10, "rule", rx775_fail
-    add rx775_pos, 4
-  alt785_end:
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    add $I11, rx745_pos, 4
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 4
+    ne $S10, "rule", rx745_fail
+    add rx745_pos, 4
+  alt755_end:
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
 .annotate 'line', 348
   # rx subrule "deflongname" subtype=capture negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."deflongname"()
-    unless $P10, rx775_fail
-    rx775_cur."!mark_push"(0, -1, 0, $P10)
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."deflongname"()
+    unless $P10, rx745_fail
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx775_pos = $P10."pos"()
+    rx745_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
-  alt788_0:
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+  alt758_0:
 .annotate 'line', 349
-    set_addr $I10, alt788_1
-    rx775_cur."!mark_push"(0, rx775_pos, $I10)
+    set_addr $I10, alt758_1
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
 .annotate 'line', 350
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx literal  "{"
-    add $I11, rx775_pos, 1
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 1
-    ne $S10, "{", rx775_fail
-    add rx775_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "{", rx745_fail
+    add rx745_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx literal  "<...>"
-    add $I11, rx775_pos, 5
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 5
-    ne $S10, "<...>", rx775_fail
-    add rx775_pos, 5
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    add $I11, rx745_pos, 5
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 5
+    ne $S10, "<...>", rx745_fail
+    add rx745_pos, 5
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx775_pos, 1
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 1
-    ne $S10, "}", rx775_fail
-    add rx775_pos, 1
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "}", rx745_fail
+    add rx745_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ENDSTMT"()
-    unless $P10, rx775_fail
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
-    goto alt788_end
-  alt788_1:
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ENDSTMT"()
+    unless $P10, rx745_fail
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+    goto alt758_end
+  alt758_1:
 .annotate 'line', 351
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."panic"("Proto regex body must be <...>")
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
-  alt788_end:
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."panic"("Proto regex body must be <...>")
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+  alt758_end:
 .annotate 'line', 352
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
 .annotate 'line', 347
-    goto alt781_end
-  alt781_1:
+    goto alt751_end
+  alt751_1:
 .annotate 'line', 353
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx subcapture "sym"
-    set_addr $I10, rxcap_798_fail
-    rx775_cur."!mark_push"(0, rx775_pos, $I10)
-  alt797_0:
-    set_addr $I10, alt797_1
-    rx775_cur."!mark_push"(0, rx775_pos, $I10)
+    set_addr $I10, rxcap_768_fail
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+  alt767_0:
+    set_addr $I10, alt767_1
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
   # rx literal  "regex"
-    add $I11, rx775_pos, 5
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 5
-    ne $S10, "regex", rx775_fail
-    add rx775_pos, 5
-    goto alt797_end
-  alt797_1:
-    set_addr $I10, alt797_2
-    rx775_cur."!mark_push"(0, rx775_pos, $I10)
+    add $I11, rx745_pos, 5
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 5
+    ne $S10, "regex", rx745_fail
+    add rx745_pos, 5
+    goto alt767_end
+  alt767_1:
+    set_addr $I10, alt767_2
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
   # rx literal  "token"
-    add $I11, rx775_pos, 5
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 5
-    ne $S10, "token", rx775_fail
-    add rx775_pos, 5
-    goto alt797_end
-  alt797_2:
+    add $I11, rx745_pos, 5
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 5
+    ne $S10, "token", rx745_fail
+    add rx745_pos, 5
+    goto alt767_end
+  alt767_2:
   # rx literal  "rule"
-    add $I11, rx775_pos, 4
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 4
-    ne $S10, "rule", rx775_fail
-    add rx775_pos, 4
-  alt797_end:
-    set_addr $I10, rxcap_798_fail
-    ($I12, $I11) = rx775_cur."!mark_peek"($I10)
-    rx775_cur."!cursor_pos"($I11)
-    ($P10) = rx775_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx775_pos, "")
-    rx775_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx745_pos, 4
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 4
+    ne $S10, "rule", rx745_fail
+    add rx745_pos, 4
+  alt767_end:
+    set_addr $I10, rxcap_768_fail
+    ($I12, $I11) = rx745_cur."!mark_peek"($I10)
+    rx745_cur."!cursor_pos"($I11)
+    ($P10) = rx745_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx745_pos, "")
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_798_done
-  rxcap_798_fail:
-    goto rx775_fail
-  rxcap_798_done:
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    goto rxcap_768_done
+  rxcap_768_fail:
+    goto rx745_fail
+  rxcap_768_done:
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
 .annotate 'line', 354
   # rx subrule "deflongname" subtype=capture negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."deflongname"()
-    unless $P10, rx775_fail
-    rx775_cur."!mark_push"(0, -1, 0, $P10)
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."deflongname"()
+    unless $P10, rx745_fail
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx775_pos = $P10."pos"()
+    rx745_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
 .annotate 'line', 355
   # rx subrule "newpad" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."newpad"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."newpad"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
 .annotate 'line', 356
-  # rx rxquantr802 ** 0..1
-    set_addr $I807, rxquantr802_done
-    rx775_cur."!mark_push"(0, rx775_pos, $I807)
-  rxquantr802_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+  # rx rxquantr772 ** 0..1
+    set_addr $I10, rxquantr772_done
+    rx745_cur."!mark_push"(0, rx745_pos, $I10)
+  rxquantr772_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx775_pos, 1
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 1
-    ne $S10, "(", rx775_fail
-    add rx775_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "(", rx745_fail
+    add rx745_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."signature"()
-    unless $P10, rx775_fail
-    rx775_cur."!mark_push"(0, -1, 0, $P10)
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."signature"()
+    unless $P10, rx745_fail
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx775_pos = $P10."pos"()
+    rx745_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx775_pos, 1
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 1
-    ne $S10, ")", rx775_fail
-    add rx775_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
-    (rx775_rep) = rx775_cur."!mark_commit"($I807)
-  rxquantr802_done:
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, ")", rx745_fail
+    add rx745_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+    set_addr $I10, rxquantr772_done
+    (rx745_rep) = rx745_cur."!mark_commit"($I10)
+  rxquantr772_done:
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
 .annotate 'line', 357
   # rx reduce name="regex_declarator" key="open"
-    rx775_cur."!cursor_pos"(rx775_pos)
-    rx775_cur."!reduce"("regex_declarator", "open")
+    rx745_cur."!cursor_pos"(rx745_pos)
+    rx745_cur."!reduce"("regex_declarator", "open")
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
 .annotate 'line', 358
   # rx literal  "{"
-    add $I11, rx775_pos, 1
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 1
-    ne $S10, "{", rx775_fail
-    add rx775_pos, 1
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "{", rx745_fail
+    add rx745_pos, 1
   # rx subrule "LANG" subtype=capture negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."LANG"("Regex", "nibbler")
-    unless $P10, rx775_fail
-    rx775_cur."!mark_push"(0, -1, 0, $P10)
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."LANG"("Regex", "nibbler")
+    unless $P10, rx745_fail
+    rx745_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("p6regex")
-    rx775_pos = $P10."pos"()
+    rx745_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx775_pos, 1
-    gt $I11, rx775_eos, rx775_fail
-    sub $I11, rx775_pos, rx775_off
-    substr $S10, rx775_tgt, $I11, 1
-    ne $S10, "}", rx775_fail
-    add rx775_pos, 1
+    add $I11, rx745_pos, 1
+    gt $I11, rx745_eos, rx745_fail
+    sub $I11, rx745_pos, rx745_off
+    substr $S10, rx745_tgt, $I11, 1
+    ne $S10, "}", rx745_fail
+    add rx745_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ENDSTMT"()
-    unless $P10, rx775_fail
-  # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
-  alt781_end:
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ENDSTMT"()
+    unless $P10, rx745_fail
+  # rx subrule "ws" subtype=method negate=
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
+  alt751_end:
 .annotate 'line', 359
   # rx subrule "ws" subtype=method negate=
-    rx775_cur."!cursor_pos"(rx775_pos)
-    $P10 = rx775_cur."ws"()
-    unless $P10, rx775_fail
-    rx775_pos = $P10."pos"()
+    rx745_cur."!cursor_pos"(rx745_pos)
+    $P10 = rx745_cur."ws"()
+    unless $P10, rx745_fail
+    rx745_pos = $P10."pos"()
 .annotate 'line', 345
   # rx pass
-    rx775_cur."!cursor_pass"(rx775_pos, "regex_declarator")
-    rx775_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx775_pos)
-    .return (rx775_cur)
-  rx775_fail:
+    rx745_cur."!cursor_pass"(rx745_pos, "regex_declarator")
+    rx745_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx745_pos)
+    .return (rx745_cur)
+  rx745_restart:
 .annotate 'line', 4
-    (rx775_rep, rx775_pos, $I10, $P10) = rx775_cur."!mark_fail"(0)
-    lt rx775_pos, -1, rx775_done
-    eq rx775_pos, -1, rx775_fail
+    rx745_cur."!cursor_debug"("NEXT ", "regex_declarator")
+  rx745_fail:
+    (rx745_rep, rx745_pos, $I10, $P10) = rx745_cur."!mark_fail"(0)
+    lt rx745_pos, -1, rx745_done
+    eq rx745_pos, -1, rx745_fail
     jump $I10
-  rx775_done:
-    rx775_cur."!cursor_fail"()
-    rx775_cur."!cursor_debug"("FAIL  ", "regex_declarator")
-    .return (rx775_cur)
+  rx745_done:
+    rx745_cur."!cursor_fail"()
+    rx745_cur."!cursor_debug"("FAIL  ", "regex_declarator")
+    .return (rx745_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("181_1278500537.15927") :method
+.sub "!PREFIX__regex_declarator"  :subid("181_1279564397.22945") :method
 .annotate 'line', 4
-    $P777 = self."!PREFIX__!subrule"("ws", "")
-    new $P778, "ResizablePMCArray"
-    push $P778, $P777
-    .return ($P778)
+    $P747 = self."!PREFIX__!subrule"("ws", "")
+    new $P748, "ResizablePMCArray"
+    push $P748, $P747
+    .return ($P748)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("182_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "dotty"  :subid("182_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx813_tgt
-    .local int rx813_pos
-    .local int rx813_off
-    .local int rx813_eos
-    .local int rx813_rep
-    .local pmc rx813_cur
-    (rx813_cur, rx813_pos, rx813_tgt) = self."!cursor_start"()
-    rx813_cur."!cursor_debug"("START ", "dotty")
-    rx813_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx813_cur
-    .local pmc match
-    .lex "$/", match
-    length rx813_eos, rx813_tgt
-    gt rx813_pos, rx813_eos, rx813_done
-    set rx813_off, 0
-    lt rx813_pos, 2, rx813_start
-    sub rx813_off, rx813_pos, 1
-    substr rx813_tgt, rx813_tgt, rx813_off
-  rx813_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan817_done
-    goto rxscan817_scan
-  rxscan817_loop:
-    ($P10) = rx813_cur."from"()
-    inc $P10
-    set rx813_pos, $P10
-    ge rx813_pos, rx813_eos, rxscan817_done
-  rxscan817_scan:
-    set_addr $I10, rxscan817_loop
-    rx813_cur."!mark_push"(0, rx813_pos, $I10)
-  rxscan817_done:
+    .local string rx782_tgt
+    .local int rx782_pos
+    .local int rx782_off
+    .local int rx782_eos
+    .local int rx782_rep
+    .local pmc rx782_cur
+    (rx782_cur, rx782_pos, rx782_tgt, $I10) = self."!cursor_start"()
+    rx782_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx782_cur
+    .local pmc match
+    .lex "$/", match
+    length rx782_eos, rx782_tgt
+    gt rx782_pos, rx782_eos, rx782_done
+    set rx782_off, 0
+    lt rx782_pos, 2, rx782_start
+    sub rx782_off, rx782_pos, 1
+    substr rx782_tgt, rx782_tgt, rx782_off
+  rx782_start:
+    eq $I10, 1, rx782_restart
+    rx782_cur."!cursor_debug"("START ", "dotty")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan786_done
+    goto rxscan786_scan
+  rxscan786_loop:
+    ($P10) = rx782_cur."from"()
+    inc $P10
+    set rx782_pos, $P10
+    ge rx782_pos, rx782_eos, rxscan786_done
+  rxscan786_scan:
+    set_addr $I10, rxscan786_loop
+    rx782_cur."!mark_push"(0, rx782_pos, $I10)
+  rxscan786_done:
 .annotate 'line', 363
   # rx literal  "."
-    add $I11, rx813_pos, 1
-    gt $I11, rx813_eos, rx813_fail
-    sub $I11, rx813_pos, rx813_off
-    substr $S10, rx813_tgt, $I11, 1
-    ne $S10, ".", rx813_fail
-    add rx813_pos, 1
-  alt818_0:
+    add $I11, rx782_pos, 1
+    gt $I11, rx782_eos, rx782_fail
+    sub $I11, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I11, 1
+    ne $S10, ".", rx782_fail
+    add rx782_pos, 1
+  alt787_0:
 .annotate 'line', 364
-    set_addr $I10, alt818_1
-    rx813_cur."!mark_push"(0, rx813_pos, $I10)
+    set_addr $I10, alt787_1
+    rx782_cur."!mark_push"(0, rx782_pos, $I10)
   # rx subrule "deflongname" subtype=capture negate=
-    rx813_cur."!cursor_pos"(rx813_pos)
-    $P10 = rx813_cur."deflongname"()
-    unless $P10, rx813_fail
-    rx813_cur."!mark_push"(0, -1, 0, $P10)
+    rx782_cur."!cursor_pos"(rx782_pos)
+    $P10 = rx782_cur."deflongname"()
+    unless $P10, rx782_fail
+    rx782_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname=deflongname")
-    rx813_pos = $P10."pos"()
-    goto alt818_end
-  alt818_1:
+    rx782_pos = $P10."pos"()
+    goto alt787_end
+  alt787_1:
 .annotate 'line', 365
   # rx enumcharlist negate=0 zerowidth
-    ge rx813_pos, rx813_eos, rx813_fail
-    sub $I10, rx813_pos, rx813_off
-    substr $S10, rx813_tgt, $I10, 1
+    ge rx782_pos, rx782_eos, rx782_fail
+    sub $I10, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I10, 1
     index $I11, "'\"", $S10
-    lt $I11, 0, rx813_fail
+    lt $I11, 0, rx782_fail
   # rx subrule "quote" subtype=capture negate=
-    rx813_cur."!cursor_pos"(rx813_pos)
-    $P10 = rx813_cur."quote"()
-    unless $P10, rx813_fail
-    rx813_cur."!mark_push"(0, -1, 0, $P10)
+    rx782_cur."!cursor_pos"(rx782_pos)
+    $P10 = rx782_cur."quote"()
+    unless $P10, rx782_fail
+    rx782_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote")
-    rx813_pos = $P10."pos"()
-  alt819_0:
+    rx782_pos = $P10."pos"()
+  alt788_0:
 .annotate 'line', 366
-    set_addr $I10, alt819_1
-    rx813_cur."!mark_push"(0, rx813_pos, $I10)
+    set_addr $I10, alt788_1
+    rx782_cur."!mark_push"(0, rx782_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx813_pos, rx813_eos, rx813_fail
-    sub $I10, rx813_pos, rx813_off
-    substr $S10, rx813_tgt, $I10, 1
+    ge rx782_pos, rx782_eos, rx782_fail
+    sub $I10, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx813_fail
-    goto alt819_end
-  alt819_1:
+    lt $I11, 0, rx782_fail
+    goto alt788_end
+  alt788_1:
   # rx subrule "panic" subtype=method negate=
-    rx813_cur."!cursor_pos"(rx813_pos)
-    $P10 = rx813_cur."panic"("Quoted method name requires parenthesized arguments")
-    unless $P10, rx813_fail
-    rx813_pos = $P10."pos"()
-  alt819_end:
-  alt818_end:
+    rx782_cur."!cursor_pos"(rx782_pos)
+    $P10 = rx782_cur."panic"("Quoted method name requires parenthesized arguments")
+    unless $P10, rx782_fail
+    rx782_pos = $P10."pos"()
+  alt788_end:
+  alt787_end:
 .annotate 'line', 372
-  # rx rxquantr820 ** 0..1
-    set_addr $I822, rxquantr820_done
-    rx813_cur."!mark_push"(0, rx813_pos, $I822)
-  rxquantr820_loop:
-  alt821_0:
+  # rx rxquantr789 ** 0..1
+    set_addr $I10, rxquantr789_done
+    rx782_cur."!mark_push"(0, rx782_pos, $I10)
+  rxquantr789_loop:
+  alt790_0:
 .annotate 'line', 369
-    set_addr $I10, alt821_1
-    rx813_cur."!mark_push"(0, rx813_pos, $I10)
+    set_addr $I10, alt790_1
+    rx782_cur."!mark_push"(0, rx782_pos, $I10)
 .annotate 'line', 370
   # rx enumcharlist negate=0 zerowidth
-    ge rx813_pos, rx813_eos, rx813_fail
-    sub $I10, rx813_pos, rx813_off
-    substr $S10, rx813_tgt, $I10, 1
+    ge rx782_pos, rx782_eos, rx782_fail
+    sub $I10, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx813_fail
+    lt $I11, 0, rx782_fail
   # rx subrule "args" subtype=capture negate=
-    rx813_cur."!cursor_pos"(rx813_pos)
-    $P10 = rx813_cur."args"()
-    unless $P10, rx813_fail
-    rx813_cur."!mark_push"(0, -1, 0, $P10)
+    rx782_cur."!cursor_pos"(rx782_pos)
+    $P10 = rx782_cur."args"()
+    unless $P10, rx782_fail
+    rx782_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx813_pos = $P10."pos"()
-    goto alt821_end
-  alt821_1:
+    rx782_pos = $P10."pos"()
+    goto alt790_end
+  alt790_1:
 .annotate 'line', 371
   # rx literal  ":"
-    add $I11, rx813_pos, 1
-    gt $I11, rx813_eos, rx813_fail
-    sub $I11, rx813_pos, rx813_off
-    substr $S10, rx813_tgt, $I11, 1
-    ne $S10, ":", rx813_fail
-    add rx813_pos, 1
+    add $I11, rx782_pos, 1
+    gt $I11, rx782_eos, rx782_fail
+    sub $I11, rx782_pos, rx782_off
+    substr $S10, rx782_tgt, $I11, 1
+    ne $S10, ":", rx782_fail
+    add rx782_pos, 1
   # rx charclass s
-    ge rx813_pos, rx813_eos, rx813_fail
-    sub $I10, rx813_pos, rx813_off
-    is_cclass $I11, 32, rx813_tgt, $I10
-    unless $I11, rx813_fail
-    inc rx813_pos
+    ge rx782_pos, rx782_eos, rx782_fail
+    sub $I10, rx782_pos, rx782_off
+    is_cclass $I11, 32, rx782_tgt, $I10
+    unless $I11, rx782_fail
+    inc rx782_pos
   # rx subrule "arglist" subtype=capture negate=
-    rx813_cur."!cursor_pos"(rx813_pos)
-    $P10 = rx813_cur."arglist"()
-    unless $P10, rx813_fail
-    rx813_cur."!mark_push"(0, -1, 0, $P10)
+    rx782_cur."!cursor_pos"(rx782_pos)
+    $P10 = rx782_cur."arglist"()
+    unless $P10, rx782_fail
+    rx782_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx813_pos = $P10."pos"()
-  alt821_end:
+    rx782_pos = $P10."pos"()
+  alt790_end:
 .annotate 'line', 372
-    (rx813_rep) = rx813_cur."!mark_commit"($I822)
-  rxquantr820_done:
+    set_addr $I10, rxquantr789_done
+    (rx782_rep) = rx782_cur."!mark_commit"($I10)
+  rxquantr789_done:
 .annotate 'line', 362
   # rx pass
-    rx813_cur."!cursor_pass"(rx813_pos, "dotty")
-    rx813_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx813_pos)
-    .return (rx813_cur)
-  rx813_fail:
+    rx782_cur."!cursor_pass"(rx782_pos, "dotty")
+    rx782_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx782_pos)
+    .return (rx782_cur)
+  rx782_restart:
 .annotate 'line', 4
-    (rx813_rep, rx813_pos, $I10, $P10) = rx813_cur."!mark_fail"(0)
-    lt rx813_pos, -1, rx813_done
-    eq rx813_pos, -1, rx813_fail
+    rx782_cur."!cursor_debug"("NEXT ", "dotty")
+  rx782_fail:
+    (rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0)
+    lt rx782_pos, -1, rx782_done
+    eq rx782_pos, -1, rx782_fail
     jump $I10
-  rx813_done:
-    rx813_cur."!cursor_fail"()
-    rx813_cur."!cursor_debug"("FAIL  ", "dotty")
-    .return (rx813_cur)
+  rx782_done:
+    rx782_cur."!cursor_fail"()
+    rx782_cur."!cursor_debug"("FAIL  ", "dotty")
+    .return (rx782_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("183_1278500537.15927") :method
+.sub "!PREFIX__dotty"  :subid("183_1279564397.22945") :method
 .annotate 'line', 4
-    $P815 = self."!PREFIX__!subrule"("deflongname", ".")
-    new $P816, "ResizablePMCArray"
-    push $P816, "'"
-    push $P816, "\""
-    push $P816, $P815
-    .return ($P816)
+    $P784 = self."!PREFIX__!subrule"("deflongname", ".")
+    new $P785, "ResizablePMCArray"
+    push $P785, "'"
+    push $P785, "\""
+    push $P785, $P784
+    .return ($P785)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("184_1278500537.15927") :method
+.sub "term"  :subid("184_1279564397.22945") :method
 .annotate 'line', 376
-    $P824 = self."!protoregex"("term")
-    .return ($P824)
+    $P792 = self."!protoregex"("term")
+    .return ($P792)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("185_1278500537.15927") :method
+.sub "!PREFIX__term"  :subid("185_1279564397.22945") :method
 .annotate 'line', 376
-    $P826 = self."!PREFIX__!protoregex"("term")
-    .return ($P826)
+    $P794 = self."!PREFIX__!protoregex"("term")
+    .return ($P794)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("186_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<self>"  :subid("186_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx828_tgt
-    .local int rx828_pos
-    .local int rx828_off
-    .local int rx828_eos
-    .local int rx828_rep
-    .local pmc rx828_cur
-    (rx828_cur, rx828_pos, rx828_tgt) = self."!cursor_start"()
-    rx828_cur."!cursor_debug"("START ", "term:sym<self>")
-    .lex unicode:"$\x{a2}", rx828_cur
-    .local pmc match
-    .lex "$/", match
-    length rx828_eos, rx828_tgt
-    gt rx828_pos, rx828_eos, rx828_done
-    set rx828_off, 0
-    lt rx828_pos, 2, rx828_start
-    sub rx828_off, rx828_pos, 1
-    substr rx828_tgt, rx828_tgt, rx828_off
-  rx828_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan831_done
-    goto rxscan831_scan
-  rxscan831_loop:
-    ($P10) = rx828_cur."from"()
-    inc $P10
-    set rx828_pos, $P10
-    ge rx828_pos, rx828_eos, rxscan831_done
-  rxscan831_scan:
-    set_addr $I10, rxscan831_loop
-    rx828_cur."!mark_push"(0, rx828_pos, $I10)
-  rxscan831_done:
+    .local string rx796_tgt
+    .local int rx796_pos
+    .local int rx796_off
+    .local int rx796_eos
+    .local int rx796_rep
+    .local pmc rx796_cur
+    (rx796_cur, rx796_pos, rx796_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx796_cur
+    .local pmc match
+    .lex "$/", match
+    length rx796_eos, rx796_tgt
+    gt rx796_pos, rx796_eos, rx796_done
+    set rx796_off, 0
+    lt rx796_pos, 2, rx796_start
+    sub rx796_off, rx796_pos, 1
+    substr rx796_tgt, rx796_tgt, rx796_off
+  rx796_start:
+    eq $I10, 1, rx796_restart
+    rx796_cur."!cursor_debug"("START ", "term:sym<self>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan799_done
+    goto rxscan799_scan
+  rxscan799_loop:
+    ($P10) = rx796_cur."from"()
+    inc $P10
+    set rx796_pos, $P10
+    ge rx796_pos, rx796_eos, rxscan799_done
+  rxscan799_scan:
+    set_addr $I10, rxscan799_loop
+    rx796_cur."!mark_push"(0, rx796_pos, $I10)
+  rxscan799_done:
 .annotate 'line', 378
   # rx subcapture "sym"
-    set_addr $I10, rxcap_832_fail
-    rx828_cur."!mark_push"(0, rx828_pos, $I10)
+    set_addr $I10, rxcap_800_fail
+    rx796_cur."!mark_push"(0, rx796_pos, $I10)
   # rx literal  "self"
-    add $I11, rx828_pos, 4
-    gt $I11, rx828_eos, rx828_fail
-    sub $I11, rx828_pos, rx828_off
-    substr $S10, rx828_tgt, $I11, 4
-    ne $S10, "self", rx828_fail
-    add rx828_pos, 4
-    set_addr $I10, rxcap_832_fail
-    ($I12, $I11) = rx828_cur."!mark_peek"($I10)
-    rx828_cur."!cursor_pos"($I11)
-    ($P10) = rx828_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx828_pos, "")
-    rx828_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx796_pos, 4
+    gt $I11, rx796_eos, rx796_fail
+    sub $I11, rx796_pos, rx796_off
+    substr $S10, rx796_tgt, $I11, 4
+    ne $S10, "self", rx796_fail
+    add rx796_pos, 4
+    set_addr $I10, rxcap_800_fail
+    ($I12, $I11) = rx796_cur."!mark_peek"($I10)
+    rx796_cur."!cursor_pos"($I11)
+    ($P10) = rx796_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx796_pos, "")
+    rx796_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_832_done
-  rxcap_832_fail:
-    goto rx828_fail
-  rxcap_832_done:
+    goto rxcap_800_done
+  rxcap_800_fail:
+    goto rx796_fail
+  rxcap_800_done:
   # rxanchor rwb
-    le rx828_pos, 0, rx828_fail
-    sub $I10, rx828_pos, rx828_off
-    is_cclass $I11, 8192, rx828_tgt, $I10
-    if $I11, rx828_fail
+    le rx796_pos, 0, rx796_fail
+    sub $I10, rx796_pos, rx796_off
+    is_cclass $I11, 8192, rx796_tgt, $I10
+    if $I11, rx796_fail
     dec $I10
-    is_cclass $I11, 8192, rx828_tgt, $I10
-    unless $I11, rx828_fail
+    is_cclass $I11, 8192, rx796_tgt, $I10
+    unless $I11, rx796_fail
   # rx pass
-    rx828_cur."!cursor_pass"(rx828_pos, "term:sym<self>")
-    rx828_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx828_pos)
-    .return (rx828_cur)
-  rx828_fail:
+    rx796_cur."!cursor_pass"(rx796_pos, "term:sym<self>")
+    rx796_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx796_pos)
+    .return (rx796_cur)
+  rx796_restart:
 .annotate 'line', 4
-    (rx828_rep, rx828_pos, $I10, $P10) = rx828_cur."!mark_fail"(0)
-    lt rx828_pos, -1, rx828_done
-    eq rx828_pos, -1, rx828_fail
+    rx796_cur."!cursor_debug"("NEXT ", "term:sym<self>")
+  rx796_fail:
+    (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0)
+    lt rx796_pos, -1, rx796_done
+    eq rx796_pos, -1, rx796_fail
     jump $I10
-  rx828_done:
-    rx828_cur."!cursor_fail"()
-    rx828_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
-    .return (rx828_cur)
+  rx796_done:
+    rx796_cur."!cursor_fail"()
+    rx796_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
+    .return (rx796_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("187_1278500537.15927") :method
+.sub "!PREFIX__term:sym<self>"  :subid("187_1279564397.22945") :method
 .annotate 'line', 4
-    new $P830, "ResizablePMCArray"
-    push $P830, "self"
-    .return ($P830)
+    new $P798, "ResizablePMCArray"
+    push $P798, "self"
+    .return ($P798)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("188_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<identifier>"  :subid("188_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx834_tgt
-    .local int rx834_pos
-    .local int rx834_off
-    .local int rx834_eos
-    .local int rx834_rep
-    .local pmc rx834_cur
-    (rx834_cur, rx834_pos, rx834_tgt) = self."!cursor_start"()
-    rx834_cur."!cursor_debug"("START ", "term:sym<identifier>")
-    .lex unicode:"$\x{a2}", rx834_cur
-    .local pmc match
-    .lex "$/", match
-    length rx834_eos, rx834_tgt
-    gt rx834_pos, rx834_eos, rx834_done
-    set rx834_off, 0
-    lt rx834_pos, 2, rx834_start
-    sub rx834_off, rx834_pos, 1
-    substr rx834_tgt, rx834_tgt, rx834_off
-  rx834_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan838_done
-    goto rxscan838_scan
-  rxscan838_loop:
-    ($P10) = rx834_cur."from"()
-    inc $P10
-    set rx834_pos, $P10
-    ge rx834_pos, rx834_eos, rxscan838_done
-  rxscan838_scan:
-    set_addr $I10, rxscan838_loop
-    rx834_cur."!mark_push"(0, rx834_pos, $I10)
-  rxscan838_done:
+    .local string rx802_tgt
+    .local int rx802_pos
+    .local int rx802_off
+    .local int rx802_eos
+    .local int rx802_rep
+    .local pmc rx802_cur
+    (rx802_cur, rx802_pos, rx802_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx802_cur
+    .local pmc match
+    .lex "$/", match
+    length rx802_eos, rx802_tgt
+    gt rx802_pos, rx802_eos, rx802_done
+    set rx802_off, 0
+    lt rx802_pos, 2, rx802_start
+    sub rx802_off, rx802_pos, 1
+    substr rx802_tgt, rx802_tgt, rx802_off
+  rx802_start:
+    eq $I10, 1, rx802_restart
+    rx802_cur."!cursor_debug"("START ", "term:sym<identifier>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan806_done
+    goto rxscan806_scan
+  rxscan806_loop:
+    ($P10) = rx802_cur."from"()
+    inc $P10
+    set rx802_pos, $P10
+    ge rx802_pos, rx802_eos, rxscan806_done
+  rxscan806_scan:
+    set_addr $I10, rxscan806_loop
+    rx802_cur."!mark_push"(0, rx802_pos, $I10)
+  rxscan806_done:
 .annotate 'line', 381
   # rx subrule "deflongname" subtype=capture negate=
-    rx834_cur."!cursor_pos"(rx834_pos)
-    $P10 = rx834_cur."deflongname"()
-    unless $P10, rx834_fail
-    rx834_cur."!mark_push"(0, -1, 0, $P10)
+    rx802_cur."!cursor_pos"(rx802_pos)
+    $P10 = rx802_cur."deflongname"()
+    unless $P10, rx802_fail
+    rx802_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx834_pos = $P10."pos"()
+    rx802_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx834_pos, rx834_eos, rx834_fail
-    sub $I10, rx834_pos, rx834_off
-    substr $S10, rx834_tgt, $I10, 1
+    ge rx802_pos, rx802_eos, rx802_fail
+    sub $I10, rx802_pos, rx802_off
+    substr $S10, rx802_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx834_fail
+    lt $I11, 0, rx802_fail
   # rx subrule "args" subtype=capture negate=
-    rx834_cur."!cursor_pos"(rx834_pos)
-    $P10 = rx834_cur."args"()
-    unless $P10, rx834_fail
-    rx834_cur."!mark_push"(0, -1, 0, $P10)
+    rx802_cur."!cursor_pos"(rx802_pos)
+    $P10 = rx802_cur."args"()
+    unless $P10, rx802_fail
+    rx802_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx834_pos = $P10."pos"()
+    rx802_pos = $P10."pos"()
 .annotate 'line', 380
   # rx pass
-    rx834_cur."!cursor_pass"(rx834_pos, "term:sym<identifier>")
-    rx834_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx834_pos)
-    .return (rx834_cur)
-  rx834_fail:
+    rx802_cur."!cursor_pass"(rx802_pos, "term:sym<identifier>")
+    rx802_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx802_pos)
+    .return (rx802_cur)
+  rx802_restart:
 .annotate 'line', 4
-    (rx834_rep, rx834_pos, $I10, $P10) = rx834_cur."!mark_fail"(0)
-    lt rx834_pos, -1, rx834_done
-    eq rx834_pos, -1, rx834_fail
+    rx802_cur."!cursor_debug"("NEXT ", "term:sym<identifier>")
+  rx802_fail:
+    (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0)
+    lt rx802_pos, -1, rx802_done
+    eq rx802_pos, -1, rx802_fail
     jump $I10
-  rx834_done:
-    rx834_cur."!cursor_fail"()
-    rx834_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
-    .return (rx834_cur)
+  rx802_done:
+    rx802_cur."!cursor_fail"()
+    rx802_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
+    .return (rx802_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("189_1278500537.15927") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("189_1279564397.22945") :method
 .annotate 'line', 4
-    $P836 = self."!PREFIX__!subrule"("deflongname", "")
-    new $P837, "ResizablePMCArray"
-    push $P837, $P836
-    .return ($P837)
+    $P804 = self."!PREFIX__!subrule"("deflongname", "")
+    new $P805, "ResizablePMCArray"
+    push $P805, $P804
+    .return ($P805)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("190_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<name>"  :subid("190_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx840_tgt
-    .local int rx840_pos
-    .local int rx840_off
-    .local int rx840_eos
-    .local int rx840_rep
-    .local pmc rx840_cur
-    (rx840_cur, rx840_pos, rx840_tgt) = self."!cursor_start"()
-    rx840_cur."!cursor_debug"("START ", "term:sym<name>")
-    rx840_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx840_cur
+    .local string rx808_tgt
+    .local int rx808_pos
+    .local int rx808_off
+    .local int rx808_eos
+    .local int rx808_rep
+    .local pmc rx808_cur
+    (rx808_cur, rx808_pos, rx808_tgt, $I10) = self."!cursor_start"()
+    rx808_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx808_cur
     .local pmc match
     .lex "$/", match
-    length rx840_eos, rx840_tgt
-    gt rx840_pos, rx840_eos, rx840_done
-    set rx840_off, 0
-    lt rx840_pos, 2, rx840_start
-    sub rx840_off, rx840_pos, 1
-    substr rx840_tgt, rx840_tgt, rx840_off
-  rx840_start:
+    length rx808_eos, rx808_tgt
+    gt rx808_pos, rx808_eos, rx808_done
+    set rx808_off, 0
+    lt rx808_pos, 2, rx808_start
+    sub rx808_off, rx808_pos, 1
+    substr rx808_tgt, rx808_tgt, rx808_off
+  rx808_start:
+    eq $I10, 1, rx808_restart
+    rx808_cur."!cursor_debug"("START ", "term:sym<name>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan844_done
-    goto rxscan844_scan
-  rxscan844_loop:
-    ($P10) = rx840_cur."from"()
+    ne $I10, -1, rxscan812_done
+    goto rxscan812_scan
+  rxscan812_loop:
+    ($P10) = rx808_cur."from"()
     inc $P10
-    set rx840_pos, $P10
-    ge rx840_pos, rx840_eos, rxscan844_done
-  rxscan844_scan:
-    set_addr $I10, rxscan844_loop
-    rx840_cur."!mark_push"(0, rx840_pos, $I10)
-  rxscan844_done:
+    set rx808_pos, $P10
+    ge rx808_pos, rx808_eos, rxscan812_done
+  rxscan812_scan:
+    set_addr $I10, rxscan812_loop
+    rx808_cur."!mark_push"(0, rx808_pos, $I10)
+  rxscan812_done:
 .annotate 'line', 385
   # rx subrule "name" subtype=capture negate=
-    rx840_cur."!cursor_pos"(rx840_pos)
-    $P10 = rx840_cur."name"()
-    unless $P10, rx840_fail
-    rx840_cur."!mark_push"(0, -1, 0, $P10)
+    rx808_cur."!cursor_pos"(rx808_pos)
+    $P10 = rx808_cur."name"()
+    unless $P10, rx808_fail
+    rx808_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx840_pos = $P10."pos"()
-  # rx rxquantr845 ** 0..1
-    set_addr $I846, rxquantr845_done
-    rx840_cur."!mark_push"(0, rx840_pos, $I846)
-  rxquantr845_loop:
+    rx808_pos = $P10."pos"()
+  # rx rxquantr813 ** 0..1
+    set_addr $I10, rxquantr813_done
+    rx808_cur."!mark_push"(0, rx808_pos, $I10)
+  rxquantr813_loop:
   # rx subrule "args" subtype=capture negate=
-    rx840_cur."!cursor_pos"(rx840_pos)
-    $P10 = rx840_cur."args"()
-    unless $P10, rx840_fail
-    rx840_cur."!mark_push"(0, -1, 0, $P10)
+    rx808_cur."!cursor_pos"(rx808_pos)
+    $P10 = rx808_cur."args"()
+    unless $P10, rx808_fail
+    goto rxsubrule814_pass
+  rxsubrule814_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx808_fail
+  rxsubrule814_pass:
+    set_addr $I10, rxsubrule814_back
+    rx808_cur."!mark_push"(0, rx808_pos, $I10, $P10)
     $P10."!cursor_names"("args")
-    rx840_pos = $P10."pos"()
-    (rx840_rep) = rx840_cur."!mark_commit"($I846)
-  rxquantr845_done:
+    rx808_pos = $P10."pos"()
+    set_addr $I10, rxquantr813_done
+    (rx808_rep) = rx808_cur."!mark_commit"($I10)
+  rxquantr813_done:
 .annotate 'line', 384
   # rx pass
-    rx840_cur."!cursor_pass"(rx840_pos, "term:sym<name>")
-    rx840_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx840_pos)
-    .return (rx840_cur)
-  rx840_fail:
+    rx808_cur."!cursor_pass"(rx808_pos, "term:sym<name>")
+    rx808_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx808_pos)
+    .return (rx808_cur)
+  rx808_restart:
 .annotate 'line', 4
-    (rx840_rep, rx840_pos, $I10, $P10) = rx840_cur."!mark_fail"(0)
-    lt rx840_pos, -1, rx840_done
-    eq rx840_pos, -1, rx840_fail
+    rx808_cur."!cursor_debug"("NEXT ", "term:sym<name>")
+  rx808_fail:
+    (rx808_rep, rx808_pos, $I10, $P10) = rx808_cur."!mark_fail"(0)
+    lt rx808_pos, -1, rx808_done
+    eq rx808_pos, -1, rx808_fail
     jump $I10
-  rx840_done:
-    rx840_cur."!cursor_fail"()
-    rx840_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
-    .return (rx840_cur)
+  rx808_done:
+    rx808_cur."!cursor_fail"()
+    rx808_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
+    .return (rx808_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("191_1278500537.15927") :method
+.sub "!PREFIX__term:sym<name>"  :subid("191_1279564397.22945") :method
 .annotate 'line', 4
-    $P842 = self."!PREFIX__!subrule"("name", "")
-    new $P843, "ResizablePMCArray"
-    push $P843, $P842
-    .return ($P843)
+    $P810 = self."!PREFIX__!subrule"("name", "")
+    new $P811, "ResizablePMCArray"
+    push $P811, $P810
+    .return ($P811)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("192_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<pir::op>"  :subid("192_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx848_tgt
-    .local int rx848_pos
-    .local int rx848_off
-    .local int rx848_eos
-    .local int rx848_rep
-    .local pmc rx848_cur
-    (rx848_cur, rx848_pos, rx848_tgt) = self."!cursor_start"()
-    rx848_cur."!cursor_debug"("START ", "term:sym<pir::op>")
-    rx848_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx848_cur
+    .local string rx816_tgt
+    .local int rx816_pos
+    .local int rx816_off
+    .local int rx816_eos
+    .local int rx816_rep
+    .local pmc rx816_cur
+    (rx816_cur, rx816_pos, rx816_tgt, $I10) = self."!cursor_start"()
+    rx816_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx816_cur
     .local pmc match
     .lex "$/", match
-    length rx848_eos, rx848_tgt
-    gt rx848_pos, rx848_eos, rx848_done
-    set rx848_off, 0
-    lt rx848_pos, 2, rx848_start
-    sub rx848_off, rx848_pos, 1
-    substr rx848_tgt, rx848_tgt, rx848_off
-  rx848_start:
+    length rx816_eos, rx816_tgt
+    gt rx816_pos, rx816_eos, rx816_done
+    set rx816_off, 0
+    lt rx816_pos, 2, rx816_start
+    sub rx816_off, rx816_pos, 1
+    substr rx816_tgt, rx816_tgt, rx816_off
+  rx816_start:
+    eq $I10, 1, rx816_restart
+    rx816_cur."!cursor_debug"("START ", "term:sym<pir::op>")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan851_done
-    goto rxscan851_scan
-  rxscan851_loop:
-    ($P10) = rx848_cur."from"()
+    ne $I10, -1, rxscan819_done
+    goto rxscan819_scan
+  rxscan819_loop:
+    ($P10) = rx816_cur."from"()
     inc $P10
-    set rx848_pos, $P10
-    ge rx848_pos, rx848_eos, rxscan851_done
-  rxscan851_scan:
-    set_addr $I10, rxscan851_loop
-    rx848_cur."!mark_push"(0, rx848_pos, $I10)
-  rxscan851_done:
+    set rx816_pos, $P10
+    ge rx816_pos, rx816_eos, rxscan819_done
+  rxscan819_scan:
+    set_addr $I10, rxscan819_loop
+    rx816_cur."!mark_push"(0, rx816_pos, $I10)
+  rxscan819_done:
 .annotate 'line', 389
   # rx literal  "pir::"
-    add $I11, rx848_pos, 5
-    gt $I11, rx848_eos, rx848_fail
-    sub $I11, rx848_pos, rx848_off
-    substr $S10, rx848_tgt, $I11, 5
-    ne $S10, "pir::", rx848_fail
-    add rx848_pos, 5
+    add $I11, rx816_pos, 5
+    gt $I11, rx816_eos, rx816_fail
+    sub $I11, rx816_pos, rx816_off
+    substr $S10, rx816_tgt, $I11, 5
+    ne $S10, "pir::", rx816_fail
+    add rx816_pos, 5
   # rx subcapture "op"
-    set_addr $I10, rxcap_852_fail
-    rx848_cur."!mark_push"(0, rx848_pos, $I10)
+    set_addr $I10, rxcap_820_fail
+    rx816_cur."!mark_push"(0, rx816_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx848_pos, rx848_off
-    find_not_cclass $I11, 8192, rx848_tgt, $I10, rx848_eos
+    sub $I10, rx816_pos, rx816_off
+    find_not_cclass $I11, 8192, rx816_tgt, $I10, rx816_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx848_fail
-    add rx848_pos, rx848_off, $I11
-    set_addr $I10, rxcap_852_fail
-    ($I12, $I11) = rx848_cur."!mark_peek"($I10)
-    rx848_cur."!cursor_pos"($I11)
-    ($P10) = rx848_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx848_pos, "")
-    rx848_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx816_fail
+    add rx816_pos, rx816_off, $I11
+    set_addr $I10, rxcap_820_fail
+    ($I12, $I11) = rx816_cur."!mark_peek"($I10)
+    rx816_cur."!cursor_pos"($I11)
+    ($P10) = rx816_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx816_pos, "")
+    rx816_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("op")
-    goto rxcap_852_done
-  rxcap_852_fail:
-    goto rx848_fail
-  rxcap_852_done:
-  # rx rxquantr853 ** 0..1
-    set_addr $I854, rxquantr853_done
-    rx848_cur."!mark_push"(0, rx848_pos, $I854)
-  rxquantr853_loop:
+    goto rxcap_820_done
+  rxcap_820_fail:
+    goto rx816_fail
+  rxcap_820_done:
+  # rx rxquantr821 ** 0..1
+    set_addr $I10, rxquantr821_done
+    rx816_cur."!mark_push"(0, rx816_pos, $I10)
+  rxquantr821_loop:
   # rx subrule "args" subtype=capture negate=
-    rx848_cur."!cursor_pos"(rx848_pos)
-    $P10 = rx848_cur."args"()
-    unless $P10, rx848_fail
-    rx848_cur."!mark_push"(0, -1, 0, $P10)
+    rx816_cur."!cursor_pos"(rx816_pos)
+    $P10 = rx816_cur."args"()
+    unless $P10, rx816_fail
+    goto rxsubrule822_pass
+  rxsubrule822_back:
+    $P10 = $P10."!cursor_next"()
+    unless $P10, rx816_fail
+  rxsubrule822_pass:
+    set_addr $I10, rxsubrule822_back
+    rx816_cur."!mark_push"(0, rx816_pos, $I10, $P10)
     $P10."!cursor_names"("args")
-    rx848_pos = $P10."pos"()
-    (rx848_rep) = rx848_cur."!mark_commit"($I854)
-  rxquantr853_done:
+    rx816_pos = $P10."pos"()
+    set_addr $I10, rxquantr821_done
+    (rx816_rep) = rx816_cur."!mark_commit"($I10)
+  rxquantr821_done:
 .annotate 'line', 388
   # rx pass
-    rx848_cur."!cursor_pass"(rx848_pos, "term:sym<pir::op>")
-    rx848_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx848_pos)
-    .return (rx848_cur)
-  rx848_fail:
+    rx816_cur."!cursor_pass"(rx816_pos, "term:sym<pir::op>")
+    rx816_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx816_pos)
+    .return (rx816_cur)
+  rx816_restart:
 .annotate 'line', 4
-    (rx848_rep, rx848_pos, $I10, $P10) = rx848_cur."!mark_fail"(0)
-    lt rx848_pos, -1, rx848_done
-    eq rx848_pos, -1, rx848_fail
+    rx816_cur."!cursor_debug"("NEXT ", "term:sym<pir::op>")
+  rx816_fail:
+    (rx816_rep, rx816_pos, $I10, $P10) = rx816_cur."!mark_fail"(0)
+    lt rx816_pos, -1, rx816_done
+    eq rx816_pos, -1, rx816_fail
     jump $I10
-  rx848_done:
-    rx848_cur."!cursor_fail"()
-    rx848_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
-    .return (rx848_cur)
+  rx816_done:
+    rx816_cur."!cursor_fail"()
+    rx816_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
+    .return (rx816_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1278500537.15927") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1279564397.22945") :method
 .annotate 'line', 4
-    new $P850, "ResizablePMCArray"
-    push $P850, "pir::"
-    .return ($P850)
+    new $P818, "ResizablePMCArray"
+    push $P818, "pir::"
+    .return ($P818)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("194_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "args"  :subid("194_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx856_tgt
-    .local int rx856_pos
-    .local int rx856_off
-    .local int rx856_eos
-    .local int rx856_rep
-    .local pmc rx856_cur
-    (rx856_cur, rx856_pos, rx856_tgt) = self."!cursor_start"()
-    rx856_cur."!cursor_debug"("START ", "args")
-    .lex unicode:"$\x{a2}", rx856_cur
-    .local pmc match
-    .lex "$/", match
-    length rx856_eos, rx856_tgt
-    gt rx856_pos, rx856_eos, rx856_done
-    set rx856_off, 0
-    lt rx856_pos, 2, rx856_start
-    sub rx856_off, rx856_pos, 1
-    substr rx856_tgt, rx856_tgt, rx856_off
-  rx856_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan860_done
-    goto rxscan860_scan
-  rxscan860_loop:
-    ($P10) = rx856_cur."from"()
-    inc $P10
-    set rx856_pos, $P10
-    ge rx856_pos, rx856_eos, rxscan860_done
-  rxscan860_scan:
-    set_addr $I10, rxscan860_loop
-    rx856_cur."!mark_push"(0, rx856_pos, $I10)
-  rxscan860_done:
+    .local string rx824_tgt
+    .local int rx824_pos
+    .local int rx824_off
+    .local int rx824_eos
+    .local int rx824_rep
+    .local pmc rx824_cur
+    (rx824_cur, rx824_pos, rx824_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx824_cur
+    .local pmc match
+    .lex "$/", match
+    length rx824_eos, rx824_tgt
+    gt rx824_pos, rx824_eos, rx824_done
+    set rx824_off, 0
+    lt rx824_pos, 2, rx824_start
+    sub rx824_off, rx824_pos, 1
+    substr rx824_tgt, rx824_tgt, rx824_off
+  rx824_start:
+    eq $I10, 1, rx824_restart
+    rx824_cur."!cursor_debug"("START ", "args")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan828_done
+    goto rxscan828_scan
+  rxscan828_loop:
+    ($P10) = rx824_cur."from"()
+    inc $P10
+    set rx824_pos, $P10
+    ge rx824_pos, rx824_eos, rxscan828_done
+  rxscan828_scan:
+    set_addr $I10, rxscan828_loop
+    rx824_cur."!mark_push"(0, rx824_pos, $I10)
+  rxscan828_done:
 .annotate 'line', 393
   # rx literal  "("
-    add $I11, rx856_pos, 1
-    gt $I11, rx856_eos, rx856_fail
-    sub $I11, rx856_pos, rx856_off
-    substr $S10, rx856_tgt, $I11, 1
-    ne $S10, "(", rx856_fail
-    add rx856_pos, 1
+    add $I11, rx824_pos, 1
+    gt $I11, rx824_eos, rx824_fail
+    sub $I11, rx824_pos, rx824_off
+    substr $S10, rx824_tgt, $I11, 1
+    ne $S10, "(", rx824_fail
+    add rx824_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx856_cur."!cursor_pos"(rx856_pos)
-    $P10 = rx856_cur."arglist"()
-    unless $P10, rx856_fail
-    rx856_cur."!mark_push"(0, -1, 0, $P10)
+    rx824_cur."!cursor_pos"(rx824_pos)
+    $P10 = rx824_cur."arglist"()
+    unless $P10, rx824_fail
+    rx824_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx856_pos = $P10."pos"()
+    rx824_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx856_pos, 1
-    gt $I11, rx856_eos, rx856_fail
-    sub $I11, rx856_pos, rx856_off
-    substr $S10, rx856_tgt, $I11, 1
-    ne $S10, ")", rx856_fail
-    add rx856_pos, 1
+    add $I11, rx824_pos, 1
+    gt $I11, rx824_eos, rx824_fail
+    sub $I11, rx824_pos, rx824_off
+    substr $S10, rx824_tgt, $I11, 1
+    ne $S10, ")", rx824_fail
+    add rx824_pos, 1
   # rx pass
-    rx856_cur."!cursor_pass"(rx856_pos, "args")
-    rx856_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx856_pos)
-    .return (rx856_cur)
-  rx856_fail:
+    rx824_cur."!cursor_pass"(rx824_pos, "args")
+    rx824_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx824_pos)
+    .return (rx824_cur)
+  rx824_restart:
 .annotate 'line', 4
-    (rx856_rep, rx856_pos, $I10, $P10) = rx856_cur."!mark_fail"(0)
-    lt rx856_pos, -1, rx856_done
-    eq rx856_pos, -1, rx856_fail
+    rx824_cur."!cursor_debug"("NEXT ", "args")
+  rx824_fail:
+    (rx824_rep, rx824_pos, $I10, $P10) = rx824_cur."!mark_fail"(0)
+    lt rx824_pos, -1, rx824_done
+    eq rx824_pos, -1, rx824_fail
     jump $I10
-  rx856_done:
-    rx856_cur."!cursor_fail"()
-    rx856_cur."!cursor_debug"("FAIL  ", "args")
-    .return (rx856_cur)
+  rx824_done:
+    rx824_cur."!cursor_fail"()
+    rx824_cur."!cursor_debug"("FAIL  ", "args")
+    .return (rx824_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("195_1278500537.15927") :method
+.sub "!PREFIX__args"  :subid("195_1279564397.22945") :method
 .annotate 'line', 4
-    $P858 = self."!PREFIX__!subrule"("arglist", "(")
-    new $P859, "ResizablePMCArray"
-    push $P859, $P858
-    .return ($P859)
+    $P826 = self."!PREFIX__!subrule"("arglist", "(")
+    new $P827, "ResizablePMCArray"
+    push $P827, $P826
+    .return ($P827)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("196_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "arglist"  :subid("196_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx862_tgt
-    .local int rx862_pos
-    .local int rx862_off
-    .local int rx862_eos
-    .local int rx862_rep
-    .local pmc rx862_cur
-    (rx862_cur, rx862_pos, rx862_tgt) = self."!cursor_start"()
-    rx862_cur."!cursor_debug"("START ", "arglist")
-    .lex unicode:"$\x{a2}", rx862_cur
-    .local pmc match
-    .lex "$/", match
-    length rx862_eos, rx862_tgt
-    gt rx862_pos, rx862_eos, rx862_done
-    set rx862_off, 0
-    lt rx862_pos, 2, rx862_start
-    sub rx862_off, rx862_pos, 1
-    substr rx862_tgt, rx862_tgt, rx862_off
-  rx862_start:
+    .local string rx830_tgt
+    .local int rx830_pos
+    .local int rx830_off
+    .local int rx830_eos
+    .local int rx830_rep
+    .local pmc rx830_cur
+    (rx830_cur, rx830_pos, rx830_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx830_cur
+    .local pmc match
+    .lex "$/", match
+    length rx830_eos, rx830_tgt
+    gt rx830_pos, rx830_eos, rx830_done
+    set rx830_off, 0
+    lt rx830_pos, 2, rx830_start
+    sub rx830_off, rx830_pos, 1
+    substr rx830_tgt, rx830_tgt, rx830_off
+  rx830_start:
+    eq $I10, 1, rx830_restart
+    rx830_cur."!cursor_debug"("START ", "arglist")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan866_done
-    goto rxscan866_scan
-  rxscan866_loop:
-    ($P10) = rx862_cur."from"()
+    ne $I10, -1, rxscan834_done
+    goto rxscan834_scan
+  rxscan834_loop:
+    ($P10) = rx830_cur."from"()
     inc $P10
-    set rx862_pos, $P10
-    ge rx862_pos, rx862_eos, rxscan866_done
-  rxscan866_scan:
-    set_addr $I10, rxscan866_loop
-    rx862_cur."!mark_push"(0, rx862_pos, $I10)
-  rxscan866_done:
+    set rx830_pos, $P10
+    ge rx830_pos, rx830_eos, rxscan834_done
+  rxscan834_scan:
+    set_addr $I10, rxscan834_loop
+    rx830_cur."!mark_push"(0, rx830_pos, $I10)
+  rxscan834_done:
 .annotate 'line', 397
   # rx subrule "ws" subtype=method negate=
-    rx862_cur."!cursor_pos"(rx862_pos)
-    $P10 = rx862_cur."ws"()
-    unless $P10, rx862_fail
-    rx862_pos = $P10."pos"()
-  alt867_0:
+    rx830_cur."!cursor_pos"(rx830_pos)
+    $P10 = rx830_cur."ws"()
+    unless $P10, rx830_fail
+    rx830_pos = $P10."pos"()
+  alt835_0:
 .annotate 'line', 398
-    set_addr $I10, alt867_1
-    rx862_cur."!mark_push"(0, rx862_pos, $I10)
+    set_addr $I10, alt835_1
+    rx830_cur."!mark_push"(0, rx830_pos, $I10)
 .annotate 'line', 399
   # rx subrule "EXPR" subtype=capture negate=
-    rx862_cur."!cursor_pos"(rx862_pos)
-    $P10 = rx862_cur."EXPR"("f=")
-    unless $P10, rx862_fail
-    rx862_cur."!mark_push"(0, -1, 0, $P10)
+    rx830_cur."!cursor_pos"(rx830_pos)
+    $P10 = rx830_cur."EXPR"("f=")
+    unless $P10, rx830_fail
+    rx830_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx862_pos = $P10."pos"()
-    goto alt867_end
-  alt867_1:
-  alt867_end:
+    rx830_pos = $P10."pos"()
+    goto alt835_end
+  alt835_1:
+  alt835_end:
 .annotate 'line', 396
   # rx pass
-    rx862_cur."!cursor_pass"(rx862_pos, "arglist")
-    rx862_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx862_pos)
-    .return (rx862_cur)
-  rx862_fail:
+    rx830_cur."!cursor_pass"(rx830_pos, "arglist")
+    rx830_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx830_pos)
+    .return (rx830_cur)
+  rx830_restart:
 .annotate 'line', 4
-    (rx862_rep, rx862_pos, $I10, $P10) = rx862_cur."!mark_fail"(0)
-    lt rx862_pos, -1, rx862_done
-    eq rx862_pos, -1, rx862_fail
+    rx830_cur."!cursor_debug"("NEXT ", "arglist")
+  rx830_fail:
+    (rx830_rep, rx830_pos, $I10, $P10) = rx830_cur."!mark_fail"(0)
+    lt rx830_pos, -1, rx830_done
+    eq rx830_pos, -1, rx830_fail
     jump $I10
-  rx862_done:
-    rx862_cur."!cursor_fail"()
-    rx862_cur."!cursor_debug"("FAIL  ", "arglist")
-    .return (rx862_cur)
+  rx830_done:
+    rx830_cur."!cursor_fail"()
+    rx830_cur."!cursor_debug"("FAIL  ", "arglist")
+    .return (rx830_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("197_1278500537.15927") :method
+.sub "!PREFIX__arglist"  :subid("197_1279564397.22945") :method
 .annotate 'line', 4
-    $P864 = self."!PREFIX__!subrule"("ws", "")
-    new $P865, "ResizablePMCArray"
-    push $P865, $P864
-    .return ($P865)
+    $P832 = self."!PREFIX__!subrule"("ws", "")
+    new $P833, "ResizablePMCArray"
+    push $P833, $P832
+    .return ($P833)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("198_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "term:sym<value>"  :subid("198_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx869_tgt
-    .local int rx869_pos
-    .local int rx869_off
-    .local int rx869_eos
-    .local int rx869_rep
-    .local pmc rx869_cur
-    (rx869_cur, rx869_pos, rx869_tgt) = self."!cursor_start"()
-    rx869_cur."!cursor_debug"("START ", "term:sym<value>")
-    .lex unicode:"$\x{a2}", rx869_cur
-    .local pmc match
-    .lex "$/", match
-    length rx869_eos, rx869_tgt
-    gt rx869_pos, rx869_eos, rx869_done
-    set rx869_off, 0
-    lt rx869_pos, 2, rx869_start
-    sub rx869_off, rx869_pos, 1
-    substr rx869_tgt, rx869_tgt, rx869_off
-  rx869_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan873_done
-    goto rxscan873_scan
-  rxscan873_loop:
-    ($P10) = rx869_cur."from"()
-    inc $P10
-    set rx869_pos, $P10
-    ge rx869_pos, rx869_eos, rxscan873_done
-  rxscan873_scan:
-    set_addr $I10, rxscan873_loop
-    rx869_cur."!mark_push"(0, rx869_pos, $I10)
-  rxscan873_done:
+    .local string rx837_tgt
+    .local int rx837_pos
+    .local int rx837_off
+    .local int rx837_eos
+    .local int rx837_rep
+    .local pmc rx837_cur
+    (rx837_cur, rx837_pos, rx837_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx837_cur
+    .local pmc match
+    .lex "$/", match
+    length rx837_eos, rx837_tgt
+    gt rx837_pos, rx837_eos, rx837_done
+    set rx837_off, 0
+    lt rx837_pos, 2, rx837_start
+    sub rx837_off, rx837_pos, 1
+    substr rx837_tgt, rx837_tgt, rx837_off
+  rx837_start:
+    eq $I10, 1, rx837_restart
+    rx837_cur."!cursor_debug"("START ", "term:sym<value>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan841_done
+    goto rxscan841_scan
+  rxscan841_loop:
+    ($P10) = rx837_cur."from"()
+    inc $P10
+    set rx837_pos, $P10
+    ge rx837_pos, rx837_eos, rxscan841_done
+  rxscan841_scan:
+    set_addr $I10, rxscan841_loop
+    rx837_cur."!mark_push"(0, rx837_pos, $I10)
+  rxscan841_done:
 .annotate 'line', 405
   # rx subrule "value" subtype=capture negate=
-    rx869_cur."!cursor_pos"(rx869_pos)
-    $P10 = rx869_cur."value"()
-    unless $P10, rx869_fail
-    rx869_cur."!mark_push"(0, -1, 0, $P10)
+    rx837_cur."!cursor_pos"(rx837_pos)
+    $P10 = rx837_cur."value"()
+    unless $P10, rx837_fail
+    rx837_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("value")
-    rx869_pos = $P10."pos"()
+    rx837_pos = $P10."pos"()
   # rx pass
-    rx869_cur."!cursor_pass"(rx869_pos, "term:sym<value>")
-    rx869_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx869_pos)
-    .return (rx869_cur)
-  rx869_fail:
+    rx837_cur."!cursor_pass"(rx837_pos, "term:sym<value>")
+    rx837_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx837_pos)
+    .return (rx837_cur)
+  rx837_restart:
 .annotate 'line', 4
-    (rx869_rep, rx869_pos, $I10, $P10) = rx869_cur."!mark_fail"(0)
-    lt rx869_pos, -1, rx869_done
-    eq rx869_pos, -1, rx869_fail
+    rx837_cur."!cursor_debug"("NEXT ", "term:sym<value>")
+  rx837_fail:
+    (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
+    lt rx837_pos, -1, rx837_done
+    eq rx837_pos, -1, rx837_fail
     jump $I10
-  rx869_done:
-    rx869_cur."!cursor_fail"()
-    rx869_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
-    .return (rx869_cur)
+  rx837_done:
+    rx837_cur."!cursor_fail"()
+    rx837_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
+    .return (rx837_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("199_1278500537.15927") :method
+.sub "!PREFIX__term:sym<value>"  :subid("199_1279564397.22945") :method
 .annotate 'line', 4
-    $P871 = self."!PREFIX__!subrule"("value", "")
-    new $P872, "ResizablePMCArray"
-    push $P872, $P871
-    .return ($P872)
+    $P839 = self."!PREFIX__!subrule"("value", "")
+    new $P840, "ResizablePMCArray"
+    push $P840, $P839
+    .return ($P840)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("200_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "value"  :subid("200_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx875_tgt
-    .local int rx875_pos
-    .local int rx875_off
-    .local int rx875_eos
-    .local int rx875_rep
-    .local pmc rx875_cur
-    (rx875_cur, rx875_pos, rx875_tgt) = self."!cursor_start"()
-    rx875_cur."!cursor_debug"("START ", "value")
-    .lex unicode:"$\x{a2}", rx875_cur
+    .local string rx843_tgt
+    .local int rx843_pos
+    .local int rx843_off
+    .local int rx843_eos
+    .local int rx843_rep
+    .local pmc rx843_cur
+    (rx843_cur, rx843_pos, rx843_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx843_cur
     .local pmc match
     .lex "$/", match
-    length rx875_eos, rx875_tgt
-    gt rx875_pos, rx875_eos, rx875_done
-    set rx875_off, 0
-    lt rx875_pos, 2, rx875_start
-    sub rx875_off, rx875_pos, 1
-    substr rx875_tgt, rx875_tgt, rx875_off
-  rx875_start:
+    length rx843_eos, rx843_tgt
+    gt rx843_pos, rx843_eos, rx843_done
+    set rx843_off, 0
+    lt rx843_pos, 2, rx843_start
+    sub rx843_off, rx843_pos, 1
+    substr rx843_tgt, rx843_tgt, rx843_off
+  rx843_start:
+    eq $I10, 1, rx843_restart
+    rx843_cur."!cursor_debug"("START ", "value")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan880_done
-    goto rxscan880_scan
-  rxscan880_loop:
-    ($P10) = rx875_cur."from"()
+    ne $I10, -1, rxscan848_done
+    goto rxscan848_scan
+  rxscan848_loop:
+    ($P10) = rx843_cur."from"()
     inc $P10
-    set rx875_pos, $P10
-    ge rx875_pos, rx875_eos, rxscan880_done
-  rxscan880_scan:
-    set_addr $I10, rxscan880_loop
-    rx875_cur."!mark_push"(0, rx875_pos, $I10)
-  rxscan880_done:
-  alt881_0:
+    set rx843_pos, $P10
+    ge rx843_pos, rx843_eos, rxscan848_done
+  rxscan848_scan:
+    set_addr $I10, rxscan848_loop
+    rx843_cur."!mark_push"(0, rx843_pos, $I10)
+  rxscan848_done:
+  alt849_0:
 .annotate 'line', 407
-    set_addr $I10, alt881_1
-    rx875_cur."!mark_push"(0, rx875_pos, $I10)
+    set_addr $I10, alt849_1
+    rx843_cur."!mark_push"(0, rx843_pos, $I10)
 .annotate 'line', 408
   # rx subrule "quote" subtype=capture negate=
-    rx875_cur."!cursor_pos"(rx875_pos)
-    $P10 = rx875_cur."quote"()
-    unless $P10, rx875_fail
-    rx875_cur."!mark_push"(0, -1, 0, $P10)
+    rx843_cur."!cursor_pos"(rx843_pos)
+    $P10 = rx843_cur."quote"()
+    unless $P10, rx843_fail
+    rx843_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote")
-    rx875_pos = $P10."pos"()
-    goto alt881_end
-  alt881_1:
+    rx843_pos = $P10."pos"()
+    goto alt849_end
+  alt849_1:
 .annotate 'line', 409
   # rx subrule "number" subtype=capture negate=
-    rx875_cur."!cursor_pos"(rx875_pos)
-    $P10 = rx875_cur."number"()
-    unless $P10, rx875_fail
-    rx875_cur."!mark_push"(0, -1, 0, $P10)
+    rx843_cur."!cursor_pos"(rx843_pos)
+    $P10 = rx843_cur."number"()
+    unless $P10, rx843_fail
+    rx843_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("number")
-    rx875_pos = $P10."pos"()
-  alt881_end:
+    rx843_pos = $P10."pos"()
+  alt849_end:
 .annotate 'line', 407
   # rx pass
-    rx875_cur."!cursor_pass"(rx875_pos, "value")
-    rx875_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx875_pos)
-    .return (rx875_cur)
-  rx875_fail:
+    rx843_cur."!cursor_pass"(rx843_pos, "value")
+    rx843_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx843_pos)
+    .return (rx843_cur)
+  rx843_restart:
 .annotate 'line', 4
-    (rx875_rep, rx875_pos, $I10, $P10) = rx875_cur."!mark_fail"(0)
-    lt rx875_pos, -1, rx875_done
-    eq rx875_pos, -1, rx875_fail
+    rx843_cur."!cursor_debug"("NEXT ", "value")
+  rx843_fail:
+    (rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0)
+    lt rx843_pos, -1, rx843_done
+    eq rx843_pos, -1, rx843_fail
     jump $I10
-  rx875_done:
-    rx875_cur."!cursor_fail"()
-    rx875_cur."!cursor_debug"("FAIL  ", "value")
-    .return (rx875_cur)
+  rx843_done:
+    rx843_cur."!cursor_fail"()
+    rx843_cur."!cursor_debug"("FAIL  ", "value")
+    .return (rx843_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("201_1278500537.15927") :method
+.sub "!PREFIX__value"  :subid("201_1279564397.22945") :method
 .annotate 'line', 4
-    $P877 = self."!PREFIX__!subrule"("number", "")
-    $P878 = self."!PREFIX__!subrule"("quote", "")
-    new $P879, "ResizablePMCArray"
-    push $P879, $P877
-    push $P879, $P878
-    .return ($P879)
+    $P845 = self."!PREFIX__!subrule"("number", "")
+    $P846 = self."!PREFIX__!subrule"("quote", "")
+    new $P847, "ResizablePMCArray"
+    push $P847, $P845
+    push $P847, $P846
+    .return ($P847)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("202_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "number"  :subid("202_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx883_tgt
-    .local int rx883_pos
-    .local int rx883_off
-    .local int rx883_eos
-    .local int rx883_rep
-    .local pmc rx883_cur
-    (rx883_cur, rx883_pos, rx883_tgt) = self."!cursor_start"()
-    rx883_cur."!cursor_debug"("START ", "number")
-    .lex unicode:"$\x{a2}", rx883_cur
+    .local string rx851_tgt
+    .local int rx851_pos
+    .local int rx851_off
+    .local int rx851_eos
+    .local int rx851_rep
+    .local pmc rx851_cur
+    (rx851_cur, rx851_pos, rx851_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx851_cur
     .local pmc match
     .lex "$/", match
-    length rx883_eos, rx883_tgt
-    gt rx883_pos, rx883_eos, rx883_done
-    set rx883_off, 0
-    lt rx883_pos, 2, rx883_start
-    sub rx883_off, rx883_pos, 1
-    substr rx883_tgt, rx883_tgt, rx883_off
-  rx883_start:
+    length rx851_eos, rx851_tgt
+    gt rx851_pos, rx851_eos, rx851_done
+    set rx851_off, 0
+    lt rx851_pos, 2, rx851_start
+    sub rx851_off, rx851_pos, 1
+    substr rx851_tgt, rx851_tgt, rx851_off
+  rx851_start:
+    eq $I10, 1, rx851_restart
+    rx851_cur."!cursor_debug"("START ", "number")
     $I10 = self.'from'()
-    ne $I10, -1, rxscan886_done
-    goto rxscan886_scan
-  rxscan886_loop:
-    ($P10) = rx883_cur."from"()
+    ne $I10, -1, rxscan854_done
+    goto rxscan854_scan
+  rxscan854_loop:
+    ($P10) = rx851_cur."from"()
     inc $P10
-    set rx883_pos, $P10
-    ge rx883_pos, rx883_eos, rxscan886_done
-  rxscan886_scan:
-    set_addr $I10, rxscan886_loop
-    rx883_cur."!mark_push"(0, rx883_pos, $I10)
-  rxscan886_done:
+    set rx851_pos, $P10
+    ge rx851_pos, rx851_eos, rxscan854_done
+  rxscan854_scan:
+    set_addr $I10, rxscan854_loop
+    rx851_cur."!mark_push"(0, rx851_pos, $I10)
+  rxscan854_done:
 .annotate 'line', 413
   # rx subcapture "sign"
-    set_addr $I10, rxcap_889_fail
-    rx883_cur."!mark_push"(0, rx883_pos, $I10)
-  # rx rxquantr887 ** 0..1
-    set_addr $I888, rxquantr887_done
-    rx883_cur."!mark_push"(0, rx883_pos, $I888)
-  rxquantr887_loop:
+    set_addr $I10, rxcap_856_fail
+    rx851_cur."!mark_push"(0, rx851_pos, $I10)
+  # rx rxquantr855 ** 0..1
+    set_addr $I10, rxquantr855_done
+    rx851_cur."!mark_push"(0, rx851_pos, $I10)
+  rxquantr855_loop:
   # rx enumcharlist negate=0 
-    ge rx883_pos, rx883_eos, rx883_fail
-    sub $I10, rx883_pos, rx883_off
-    substr $S10, rx883_tgt, $I10, 1
+    ge rx851_pos, rx851_eos, rx851_fail
+    sub $I10, rx851_pos, rx851_off
+    substr $S10, rx851_tgt, $I10, 1
     index $I11, "+-", $S10
-    lt $I11, 0, rx883_fail
-    inc rx883_pos
-    (rx883_rep) = rx883_cur."!mark_commit"($I888)
-  rxquantr887_done:
-    set_addr $I10, rxcap_889_fail
-    ($I12, $I11) = rx883_cur."!mark_peek"($I10)
-    rx883_cur."!cursor_pos"($I11)
-    ($P10) = rx883_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx883_pos, "")
-    rx883_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx851_fail
+    inc rx851_pos
+    set_addr $I10, rxquantr855_done
+    (rx851_rep) = rx851_cur."!mark_commit"($I10)
+  rxquantr855_done:
+    set_addr $I10, rxcap_856_fail
+    ($I12, $I11) = rx851_cur."!mark_peek"($I10)
+    rx851_cur."!cursor_pos"($I11)
+    ($P10) = rx851_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx851_pos, "")
+    rx851_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sign")
-    goto rxcap_889_done
-  rxcap_889_fail:
-    goto rx883_fail
-  rxcap_889_done:
-  alt890_0:
+    goto rxcap_856_done
+  rxcap_856_fail:
+    goto rx851_fail
+  rxcap_856_done:
+  alt857_0:
 .annotate 'line', 414
-    set_addr $I10, alt890_1
-    rx883_cur."!mark_push"(0, rx883_pos, $I10)
+    set_addr $I10, alt857_1
+    rx851_cur."!mark_push"(0, rx851_pos, $I10)
   # rx subrule "dec_number" subtype=capture negate=
-    rx883_cur."!cursor_pos"(rx883_pos)
-    $P10 = rx883_cur."dec_number"()
-    unless $P10, rx883_fail
-    rx883_cur."!mark_push"(0, -1, 0, $P10)
+    rx851_cur."!cursor_pos"(rx851_pos)
+    $P10 = rx851_cur."dec_number"()
+    unless $P10, rx851_fail
+    rx851_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("dec_number")
-    rx883_pos = $P10."pos"()
-    goto alt890_end
-  alt890_1:
+    rx851_pos = $P10."pos"()
+    goto alt857_end
+  alt857_1:
   # rx subrule "integer" subtype=capture negate=
-    rx883_cur."!cursor_pos"(rx883_pos)
-    $P10 = rx883_cur."integer"()
-    unless $P10, rx883_fail
-    rx883_cur."!mark_push"(0, -1, 0, $P10)
+    rx851_cur."!cursor_pos"(rx851_pos)
+    $P10 = rx851_cur."integer"()
+    unless $P10, rx851_fail
+    rx851_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("integer")
-    rx883_pos = $P10."pos"()
-  alt890_end:
+    rx851_pos = $P10."pos"()
+  alt857_end:
 .annotate 'line', 412
   # rx pass
-    rx883_cur."!cursor_pass"(rx883_pos, "number")
-    rx883_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx883_pos)
-    .return (rx883_cur)
-  rx883_fail:
+    rx851_cur."!cursor_pass"(rx851_pos, "number")
+    rx851_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx851_pos)
+    .return (rx851_cur)
+  rx851_restart:
 .annotate 'line', 4
-    (rx883_rep, rx883_pos, $I10, $P10) = rx883_cur."!mark_fail"(0)
-    lt rx883_pos, -1, rx883_done
-    eq rx883_pos, -1, rx883_fail
+    rx851_cur."!cursor_debug"("NEXT ", "number")
+  rx851_fail:
+    (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
+    lt rx851_pos, -1, rx851_done
+    eq rx851_pos, -1, rx851_fail
     jump $I10
-  rx883_done:
-    rx883_cur."!cursor_fail"()
-    rx883_cur."!cursor_debug"("FAIL  ", "number")
-    .return (rx883_cur)
+  rx851_done:
+    rx851_cur."!cursor_fail"()
+    rx851_cur."!cursor_debug"("FAIL  ", "number")
+    .return (rx851_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("203_1278500537.15927") :method
+.sub "!PREFIX__number"  :subid("203_1279564397.22945") :method
 .annotate 'line', 4
-    new $P885, "ResizablePMCArray"
-    push $P885, ""
-    .return ($P885)
+    new $P853, "ResizablePMCArray"
+    push $P853, ""
+    .return ($P853)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("204_1278500537.15927") :method
+.sub "quote"  :subid("204_1279564397.22945") :method
 .annotate 'line', 417
-    $P892 = self."!protoregex"("quote")
-    .return ($P892)
+    $P859 = self."!protoregex"("quote")
+    .return ($P859)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("205_1278500537.15927") :method
+.sub "!PREFIX__quote"  :subid("205_1279564397.22945") :method
 .annotate 'line', 417
-    $P894 = self."!PREFIX__!protoregex"("quote")
-    .return ($P894)
+    $P861 = self."!PREFIX__!protoregex"("quote")
+    .return ($P861)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("206_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "quote:sym<apos>"  :subid("206_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx896_tgt
-    .local int rx896_pos
-    .local int rx896_off
-    .local int rx896_eos
-    .local int rx896_rep
-    .local pmc rx896_cur
-    (rx896_cur, rx896_pos, rx896_tgt) = self."!cursor_start"()
-    rx896_cur."!cursor_debug"("START ", "quote:sym<apos>")
-    .lex unicode:"$\x{a2}", rx896_cur
-    .local pmc match
-    .lex "$/", match
-    length rx896_eos, rx896_tgt
-    gt rx896_pos, rx896_eos, rx896_done
-    set rx896_off, 0
-    lt rx896_pos, 2, rx896_start
-    sub rx896_off, rx896_pos, 1
-    substr rx896_tgt, rx896_tgt, rx896_off
-  rx896_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan899_done
-    goto rxscan899_scan
-  rxscan899_loop:
-    ($P10) = rx896_cur."from"()
-    inc $P10
-    set rx896_pos, $P10
-    ge rx896_pos, rx896_eos, rxscan899_done
-  rxscan899_scan:
-    set_addr $I10, rxscan899_loop
-    rx896_cur."!mark_push"(0, rx896_pos, $I10)
-  rxscan899_done:
+    .local string rx863_tgt
+    .local int rx863_pos
+    .local int rx863_off
+    .local int rx863_eos
+    .local int rx863_rep
+    .local pmc rx863_cur
+    (rx863_cur, rx863_pos, rx863_tgt, $I10) = self."!cursor_start"()
+    .lex unicode:"$\x{a2}", rx863_cur
+    .local pmc match
+    .lex "$/", match
+    length rx863_eos, rx863_tgt
+    gt rx863_pos, rx863_eos, rx863_done
+    set rx863_off, 0
+    lt rx863_pos, 2, rx863_start
+    sub rx863_off, rx863_pos, 1
+    substr rx863_tgt, rx863_tgt, rx863_off
+  rx863_start:
+    eq $I10, 1, rx863_restart
+    rx863_cur."!cursor_debug"("START ", "quote:sym<apos>")
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan866_done
+    goto rxscan866_scan
+  rxscan866_loop:
+    ($P10) = rx863_cur."from"()
+    inc $P10
+    set rx863_pos, $P10
+    ge rx863_pos, rx863_eos, rxscan866_done
+  rxscan866_scan:
+    set_addr $I10, rxscan866_loop
+    rx863_cur."!mark_push"(0, rx863_pos, $I10)
+  rxscan866_done:
 .annotate 'line', 418
   # rx enumcharlist negate=0 zerowidth
-    ge rx896_pos, rx896_eos, rx896_fail
-    sub $I10, rx896_pos, rx896_off
-    substr $S10, rx896_tgt, $I10, 1
+    ge rx863_pos, rx863_eos, rx863_fail
+    sub $I10, rx863_pos, rx863_off
+    substr $S10, rx863_tgt, $I10, 1
     index $I11, "'", $S10
-    lt $I11, 0, rx896_fail
+    lt $I11, 0, rx863_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx896_cur."!cursor_pos"(rx896_pos)
-    $P10 = rx896_cur."quote_EXPR"(":q")
-    unless $P10, rx896_fail
-    rx896_cur."!mark_push"(0, -1, 0, $P10)
+    rx863_cur."!cursor_pos"(rx863_pos)
+    $P10 = rx863_cur."quote_EXPR"(":q")
+    unless $P10, rx863_fail
+    rx863_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx896_pos = $P10."pos"()
+    rx863_pos = $P10."pos"()
   # rx pass
-    rx896_cur."!cursor_pass"(rx896_pos, "quote:sym<apos>")
-    rx896_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx896_pos)
-    .return (rx896_cur)
-  rx896_fail:
+    rx863_cur."!cursor_pass"(rx863_pos, "quote:sym<apos>")
+    rx863_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx863_pos)
+    .return (rx863_cur)
+  rx863_restart:
 .annotate 'line', 4
-    (rx896_rep, rx896_pos, $I10, $P10) = rx896_cur."!mark_fail"(0)
-    lt rx896_pos, -1, rx896_done
-    eq rx896_pos, -1, rx896_fail
+    rx863_cur."!cursor_debug"("NEXT ", "quote:sym<apos>")
+  rx863_fail:
+    (rx863_rep, rx863_pos, $I10, $P10) = rx863_cur."!mark_fail"(0)
+    lt rx863_pos, -1, rx863_done
+    eq rx863_pos, -1, rx863_fail
     jump $I10
-  rx896_done:
-    rx896_cur."!cursor_fail"()
-    rx896_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
-    .return (rx896_cur)
+  rx863_done:
+    rx863_cur."!cursor_fail"()
+    rx863_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
+    .return (rx863_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("207_1278500537.15927") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("207_1279564397.22945") :method
 .annotate 'line', 4
-    new $P898, "ResizablePMCArray"
-    push $P898, "'"
-    .return ($P898)
+    new $P865, "ResizablePMCArray"
+    push $P865, "'"
+    .return ($P865)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("208_1278500537.15927") :method :outer("11_1278500537.15927")
+.sub "quote:sym<dblq>"  :subid("208_1279564397.22945") :method :outer("11_1279564397.22945")
 .annotate 'line', 4
-    .local string rx901_tgt
-    .local int rx901_pos
-    .local int rx901_off
-    .local int rx901_eos
-    .local int rx901_rep
-    .local pmc rx901_cur
-    (rx90