[svn:parrot] r47981 - in branches/dynop_mapping: . compilers/data_json compilers/imcc compilers/opsc/src/Ops compilers/opsc/src/Ops/Trans compilers/pct compilers/pct/src/PAST compilers/pct/src/POST compilers/pge compilers/pirc/src compilers/tge config/auto/sizes config/auto/zlib config/gen config/gen/makefiles config/gen/platform/ansi config/gen/platform/darwin config/gen/platform/generic config/gen/platform/netbsd config/gen/platform/openbsd config/gen/platform/solaris docs docs/book/draft docs/book/pct docs/book/pir docs/dev docs/pdds docs/pdds/draft docs/project editor examples/compilers examples/embed examples/io examples/languages/abc examples/languages/squaak examples/pge examples/pir ext/Parrot-Embed/lib/Parrot ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib lib/Parrot lib/Parrot/Configure/Step lib/Parrot/Docs/Section lib/Parrot/Harness lib/Parrot/Pmc2c ports/cygwin ports/debian ports/fedora/2.3.0 ports/fedora/2.5.0 ports/suse/2.2.0 runtim e/parrot/languages runtime/parrot/library runtime/parrot/library/LWP runtime/parrot/library/Math runtime/parrot/library/URI src src/call src/dynpmc src/gc src/interp src/io src/nci src/ops src/pmc src/runcore src/string/charset t/codingstd t/compilers/imcc/syn t/compilers/tge t/dynoplibs t/dynpmc t/examples t/library t/oo t/op t/pir t/pmc t/src t/steps/auto t/steps/gen t/steps/init/hints t/tools tools/build tools/dev tools/util

plobsing at svn.parrot.org plobsing at svn.parrot.org
Sun Jul 4 06:24:56 UTC 2010


Author: plobsing
Date: Sun Jul  4 06:24:50 2010
New Revision: 47981
URL: https://trac.parrot.org/parrot/changeset/47981

Log:
sync with trunk

Added:
   branches/dynop_mapping/include/parrot/namespace.h
      - copied unchanged from r47980, trunk/include/parrot/namespace.h
   branches/dynop_mapping/ports/fedora/2.5.0/
      - copied from r47980, trunk/ports/fedora/2.5.0/
   branches/dynop_mapping/runtime/parrot/library/URI/   (props changed)
      - copied from r47980, trunk/runtime/parrot/library/URI/
   branches/dynop_mapping/src/namespace.c
      - copied unchanged from r47980, trunk/src/namespace.c
   branches/dynop_mapping/t/dynoplibs/io-old.t
      - copied unchanged from r47980, trunk/t/dynoplibs/io-old.t
   branches/dynop_mapping/t/library/uri_escape.t
      - copied unchanged from r47980, trunk/t/library/uri_escape.t
   branches/dynop_mapping/t/oo/objects.t
      - copied unchanged from r47980, trunk/t/oo/objects.t
   branches/dynop_mapping/t/pir/timer_exit.t
      - copied unchanged from r47980, trunk/t/pir/timer_exit.t
   branches/dynop_mapping/t/tools/parrot_config.t
      - copied unchanged from r47980, trunk/t/tools/parrot_config.t
Replaced:
   branches/dynop_mapping/ports/fedora/2.5.0/parrot.desk.in.tar.gz
      - copied unchanged from r47980, trunk/ports/fedora/2.5.0/parrot.desk.in.tar.gz
   branches/dynop_mapping/ports/fedora/2.5.0/parrot.patch
      - copied unchanged from r47980, trunk/ports/fedora/2.5.0/parrot.patch
   branches/dynop_mapping/ports/fedora/2.5.0/parrot.spec
      - copied unchanged from r47980, trunk/ports/fedora/2.5.0/parrot.spec
   branches/dynop_mapping/runtime/parrot/library/URI/Escape.pir
      - copied unchanged from r47980, trunk/runtime/parrot/library/URI/Escape.pir
Deleted:
   branches/dynop_mapping/config/gen/platform/darwin/memalign.c
   branches/dynop_mapping/config/gen/platform/generic/memalign.c
   branches/dynop_mapping/include/parrot/global.h
   branches/dynop_mapping/src/global.c
   branches/dynop_mapping/t/pmc/objects.t
Modified:
   branches/dynop_mapping/   (props changed)
   branches/dynop_mapping/.gitignore
   branches/dynop_mapping/CREDITS
   branches/dynop_mapping/ChangeLog
   branches/dynop_mapping/DEPRECATED.pod
   branches/dynop_mapping/MANIFEST
   branches/dynop_mapping/MANIFEST.SKIP
   branches/dynop_mapping/MANIFEST.generated
   branches/dynop_mapping/NEWS
   branches/dynop_mapping/README
   branches/dynop_mapping/VERSION
   branches/dynop_mapping/compilers/data_json/Rules.mak   (props changed)
   branches/dynop_mapping/compilers/imcc/Rules.in   (props changed)
   branches/dynop_mapping/compilers/imcc/pbc.c
   branches/dynop_mapping/compilers/opsc/src/Ops/Op.pm
   branches/dynop_mapping/compilers/opsc/src/Ops/Trans/C.pm
   branches/dynop_mapping/compilers/pct/Rules.mak   (props changed)
   branches/dynop_mapping/compilers/pct/src/PAST/Compiler.pir
   branches/dynop_mapping/compilers/pct/src/PAST/Node.pir
   branches/dynop_mapping/compilers/pct/src/POST/Node.pir
   branches/dynop_mapping/compilers/pge/Rules.mak   (props changed)
   branches/dynop_mapping/compilers/pirc/src/bcgen.c
   branches/dynop_mapping/compilers/pirc/src/pircapi.c
   branches/dynop_mapping/compilers/tge/Rules.mak   (props changed)
   branches/dynop_mapping/config/auto/sizes/intval_maxmin_c.in   (props changed)
   branches/dynop_mapping/config/auto/zlib/   (props changed)
   branches/dynop_mapping/config/gen/config_pm.pm
   branches/dynop_mapping/config/gen/makefiles/root.in
   branches/dynop_mapping/config/gen/opengl.pm
   branches/dynop_mapping/config/gen/platform.pm
   branches/dynop_mapping/config/gen/platform/ansi/dl.c
   branches/dynop_mapping/config/gen/platform/ansi/exec.c
   branches/dynop_mapping/config/gen/platform/ansi/time.c
   branches/dynop_mapping/config/gen/platform/generic/dl.c
   branches/dynop_mapping/config/gen/platform/generic/exec.c
   branches/dynop_mapping/config/gen/platform/generic/math.c
   branches/dynop_mapping/config/gen/platform/generic/stat.c
   branches/dynop_mapping/config/gen/platform/generic/time.c
   branches/dynop_mapping/config/gen/platform/netbsd/math.c
   branches/dynop_mapping/config/gen/platform/openbsd/math.c
   branches/dynop_mapping/config/gen/platform/solaris/math.c
   branches/dynop_mapping/config/gen/platform/solaris/time.c
   branches/dynop_mapping/docs/book/draft/README   (props changed)
   branches/dynop_mapping/docs/book/draft/appa_glossary.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/appb_patch_submission.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/appc_command_line_options.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/appd_build_options.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/appe_source_code.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/ch01_introduction.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/ch02_getting_started.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/ch07_dynpmcs.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/ch08_dynops.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/ch10_opcode_reference.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/ch11_directive_reference.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/ch12_operator_reference.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/chXX_hlls.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/chXX_library.pod   (props changed)
   branches/dynop_mapping/docs/book/draft/chXX_testing_and_debugging.pod   (props changed)
   branches/dynop_mapping/docs/book/pct/ch01_introduction.pod   (props changed)
   branches/dynop_mapping/docs/book/pct/ch02_getting_started.pod   (props changed)
   branches/dynop_mapping/docs/book/pct/ch03_compiler_tools.pod   (props changed)
   branches/dynop_mapping/docs/book/pct/ch04_pge.pod   (props changed)
   branches/dynop_mapping/docs/book/pct/ch05_nqp.pod   (props changed)
   branches/dynop_mapping/docs/book/pir/ch07_objects.pod
   branches/dynop_mapping/docs/dev/c_functions.pod   (props changed)
   branches/dynop_mapping/docs/embed.pod
   branches/dynop_mapping/docs/parrothist.pod
   branches/dynop_mapping/docs/pdds/draft/pdd06_pasm.pod
   branches/dynop_mapping/docs/pdds/draft/pdd11_extending.pod
   branches/dynop_mapping/docs/pdds/pdd28_strings.pod
   branches/dynop_mapping/docs/pdds/pdd30_install.pod   (props changed)
   branches/dynop_mapping/docs/project/release_manager_guide.pod
   branches/dynop_mapping/editor/mk_skeleton.pir
   branches/dynop_mapping/examples/compilers/japhc.c
   branches/dynop_mapping/examples/embed/cotorra.c   (props changed)
   branches/dynop_mapping/examples/io/http.pir
   branches/dynop_mapping/examples/io/httpd.pir
   branches/dynop_mapping/examples/languages/abc/   (props changed)
   branches/dynop_mapping/examples/languages/squaak/   (props changed)
   branches/dynop_mapping/examples/pge/demo.pir   (props changed)
   branches/dynop_mapping/examples/pir/make_hello_pbc.pir
   branches/dynop_mapping/ext/Parrot-Embed/lib/Parrot/Embed.xs
   branches/dynop_mapping/ext/nqp-rx/Rules.mak   (props changed)
   branches/dynop_mapping/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/dynop_mapping/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/dynop_mapping/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/dynop_mapping/ext/nqp-rx/src/stage0/nqp-setting.nqp
   branches/dynop_mapping/include/parrot/call.h   (props changed)
   branches/dynop_mapping/include/parrot/context.h
   branches/dynop_mapping/include/parrot/extend.h
   branches/dynop_mapping/include/parrot/gc_api.h   (props changed)
   branches/dynop_mapping/include/parrot/hash.h
   branches/dynop_mapping/include/parrot/interpreter.h
   branches/dynop_mapping/include/parrot/key.h
   branches/dynop_mapping/include/parrot/oplib.h
   branches/dynop_mapping/include/parrot/oplib/core_ops.h
   branches/dynop_mapping/include/parrot/packfile.h
   branches/dynop_mapping/include/parrot/parrot.h
   branches/dynop_mapping/include/parrot/runcore_api.h   (props changed)
   branches/dynop_mapping/include/parrot/runcore_profiling.h   (props changed)
   branches/dynop_mapping/include/parrot/runcore_trace.h   (props changed)
   branches/dynop_mapping/include/parrot/warnings.h
   branches/dynop_mapping/lib/Parrot/Configure/Step/Test.pm   (props changed)
   branches/dynop_mapping/lib/Parrot/Docs/Section/Parrot.pm
   branches/dynop_mapping/lib/Parrot/H2inc.pm   (props changed)
   branches/dynop_mapping/lib/Parrot/Harness/DefaultTests.pm
   branches/dynop_mapping/lib/Parrot/Pmc2c/PMCEmitter.pm
   branches/dynop_mapping/lib/Parrot/Test.pm
   branches/dynop_mapping/ports/cygwin/README
   branches/dynop_mapping/ports/cygwin/parrot-1.0.0-1.cygport   (props changed)
   branches/dynop_mapping/ports/debian/libparrot-dev.install.in   (props changed)
   branches/dynop_mapping/ports/debian/libparrot.install.in   (props changed)
   branches/dynop_mapping/ports/debian/parrot-doc.install.in   (props changed)
   branches/dynop_mapping/ports/debian/parrot.install.in   (props changed)
   branches/dynop_mapping/ports/fedora/2.3.0/   (props changed)
   branches/dynop_mapping/ports/suse/2.2.0/   (props changed)
   branches/dynop_mapping/runtime/parrot/languages/   (props changed)
   branches/dynop_mapping/runtime/parrot/library/LWP/UserAgent.pir
   branches/dynop_mapping/runtime/parrot/library/Math/Rand.pir   (props changed)
   branches/dynop_mapping/runtime/parrot/library/P6object.pir
   branches/dynop_mapping/runtime/parrot/library/Pg.pir
   branches/dynop_mapping/runtime/parrot/library/Rules.mak   (props changed)
   branches/dynop_mapping/runtime/parrot/library/SDL.pir
   branches/dynop_mapping/src/call/args.c
   branches/dynop_mapping/src/call/context.c
   branches/dynop_mapping/src/call/context_accessors.c
   branches/dynop_mapping/src/call/ops.c   (props changed)
   branches/dynop_mapping/src/call/pcc.c   (contents, props changed)
   branches/dynop_mapping/src/dynpmc/Defines.in
   branches/dynop_mapping/src/dynpmc/gziphandle.pmc
   branches/dynop_mapping/src/extend.c
   branches/dynop_mapping/src/gc/alloc_memory.c   (props changed)
   branches/dynop_mapping/src/gc/alloc_resources.c   (props changed)
   branches/dynop_mapping/src/gc/api.c   (props changed)
   branches/dynop_mapping/src/gc/gc_private.h
   branches/dynop_mapping/src/gc/malloc.c   (props changed)
   branches/dynop_mapping/src/gc/malloc_trace.c   (props changed)
   branches/dynop_mapping/src/gc/mark_sweep.c   (props changed)
   branches/dynop_mapping/src/gc/system.c   (props changed)
   branches/dynop_mapping/src/hash.c
   branches/dynop_mapping/src/hll.c
   branches/dynop_mapping/src/interp/inter_cb.c   (props changed)
   branches/dynop_mapping/src/interp/inter_create.c   (props changed)
   branches/dynop_mapping/src/interp/inter_misc.c   (props changed)
   branches/dynop_mapping/src/io/api.c
   branches/dynop_mapping/src/io/io_private.h
   branches/dynop_mapping/src/io/socket_unix.c
   branches/dynop_mapping/src/io/socket_win32.c
   branches/dynop_mapping/src/io/win32.c
   branches/dynop_mapping/src/key.c
   branches/dynop_mapping/src/library.c
   branches/dynop_mapping/src/multidispatch.c
   branches/dynop_mapping/src/nci/core_thunks.c
   branches/dynop_mapping/src/nci/extra_thunks.c
   branches/dynop_mapping/src/nci_test.c
   branches/dynop_mapping/src/oo.c
   branches/dynop_mapping/src/ops/core_ops.c
   branches/dynop_mapping/src/ops/experimental.ops
   branches/dynop_mapping/src/ops/object.ops
   branches/dynop_mapping/src/ops/pmc.ops
   branches/dynop_mapping/src/ops/var.ops
   branches/dynop_mapping/src/packdump.c
   branches/dynop_mapping/src/packfile.c
   branches/dynop_mapping/src/pmc/arrayiterator.pmc
   branches/dynop_mapping/src/pmc/bytebuffer.pmc
   branches/dynop_mapping/src/pmc/callcontext.pmc
   branches/dynop_mapping/src/pmc/capture.pmc
   branches/dynop_mapping/src/pmc/class.pmc
   branches/dynop_mapping/src/pmc/default.pmc
   branches/dynop_mapping/src/pmc/eval.pmc
   branches/dynop_mapping/src/pmc/filehandle.pmc
   branches/dynop_mapping/src/pmc/fixedintegerarray.pmc
   branches/dynop_mapping/src/pmc/handle.pmc
   branches/dynop_mapping/src/pmc/hash.pmc
   branches/dynop_mapping/src/pmc/hashiterator.pmc
   branches/dynop_mapping/src/pmc/key.pmc
   branches/dynop_mapping/src/pmc/lexinfo.pmc
   branches/dynop_mapping/src/pmc/namespace.pmc
   branches/dynop_mapping/src/pmc/object.pmc
   branches/dynop_mapping/src/pmc/orderedhashiterator.pmc
   branches/dynop_mapping/src/pmc/packfilefixupentry.pmc
   branches/dynop_mapping/src/pmc/packfilerawsegment.pmc
   branches/dynop_mapping/src/pmc/parrotinterpreter.pmc
   branches/dynop_mapping/src/pmc/pmcproxy.pmc
   branches/dynop_mapping/src/pmc/resizableintegerarray.pmc
   branches/dynop_mapping/src/pmc/resizablepmcarray.pmc
   branches/dynop_mapping/src/pmc/role.pmc
   branches/dynop_mapping/src/pmc/scheduler.pmc
   branches/dynop_mapping/src/pmc/string.pmc
   branches/dynop_mapping/src/pmc/stringhandle.pmc
   branches/dynop_mapping/src/pmc/stringiterator.pmc
   branches/dynop_mapping/src/pmc/sub.pmc
   branches/dynop_mapping/src/pmc/timer.pmc
   branches/dynop_mapping/src/pmc/unmanagedstruct.pmc
   branches/dynop_mapping/src/pmc_freeze.c
   branches/dynop_mapping/src/runcore/cores.c   (props changed)
   branches/dynop_mapping/src/runcore/main.c   (props changed)
   branches/dynop_mapping/src/runcore/profiling.c   (props changed)
   branches/dynop_mapping/src/runcore/trace.c   (props changed)
   branches/dynop_mapping/src/scheduler.c
   branches/dynop_mapping/src/string/charset/ascii.c
   branches/dynop_mapping/src/string/charset/binary.c
   branches/dynop_mapping/src/string/charset/iso-8859-1.c
   branches/dynop_mapping/src/string/charset/unicode.c
   branches/dynop_mapping/src/thread.c
   branches/dynop_mapping/src/warnings.c
   branches/dynop_mapping/t/codingstd/c_function_docs.t
   branches/dynop_mapping/t/compilers/imcc/syn/regressions.t
   branches/dynop_mapping/t/compilers/tge/NoneGrammar.tg   (props changed)
   branches/dynop_mapping/t/dynpmc/gziphandle.t
   branches/dynop_mapping/t/examples/pir.t
   branches/dynop_mapping/t/oo/root_new.t   (props changed)
   branches/dynop_mapping/t/oo/vtableoverride.t
   branches/dynop_mapping/t/op/annotate-old.t
   branches/dynop_mapping/t/op/sprintf2.t
   branches/dynop_mapping/t/pir/macro.t
   branches/dynop_mapping/t/pmc/arrayiterator.t
   branches/dynop_mapping/t/pmc/bytebuffer.t
   branches/dynop_mapping/t/pmc/eval.t
   branches/dynop_mapping/t/pmc/exception.t
   branches/dynop_mapping/t/pmc/exceptionhandler.t
   branches/dynop_mapping/t/pmc/exporter.t
   branches/dynop_mapping/t/pmc/filehandle.t
   branches/dynop_mapping/t/pmc/fixedintegerarray.t
   branches/dynop_mapping/t/pmc/float.t
   branches/dynop_mapping/t/pmc/handle.t
   branches/dynop_mapping/t/pmc/hash.t
   branches/dynop_mapping/t/pmc/hashiterator.t
   branches/dynop_mapping/t/pmc/io.t
   branches/dynop_mapping/t/pmc/namespace-old.t   (props changed)
   branches/dynop_mapping/t/pmc/orderedhashiterator.t
   branches/dynop_mapping/t/pmc/resizableintegerarray.t
   branches/dynop_mapping/t/pmc/schedulermessage.t
   branches/dynop_mapping/t/pmc/sockaddr.t
   branches/dynop_mapping/t/pmc/stringbuilder.t
   branches/dynop_mapping/t/pmc/stringhandle.t
   branches/dynop_mapping/t/pmc/stringiterator.t
   branches/dynop_mapping/t/src/embed.t   (contents, props changed)
   branches/dynop_mapping/t/src/extend.t
   branches/dynop_mapping/t/steps/auto/warnings-01.t
   branches/dynop_mapping/t/steps/gen/opengl-01.t
   branches/dynop_mapping/t/steps/init/hints/linux-01.t   (props changed)
   branches/dynop_mapping/t/tools/pbc_disassemble.t
   branches/dynop_mapping/t/tools/pbc_dump.t
   branches/dynop_mapping/tools/build/h2inc.pl   (props changed)
   branches/dynop_mapping/tools/dev/fetch_languages.pl   (contents, props changed)
   branches/dynop_mapping/tools/dev/mk_gitignore.pl   (props changed)
   branches/dynop_mapping/tools/dev/mk_inno.pl
   branches/dynop_mapping/tools/dev/mk_manifest_and_skip.pl
   branches/dynop_mapping/tools/dev/nci_thunk_gen.pir
   branches/dynop_mapping/tools/dev/pprof2cg.pl
   branches/dynop_mapping/tools/dev/vgp
   branches/dynop_mapping/tools/util/parrot-config.pir
   branches/dynop_mapping/tools/util/perlcritic-cage.conf   (props changed)
   branches/dynop_mapping/tools/util/release.json

Modified: branches/dynop_mapping/.gitignore
==============================================================================
--- branches/dynop_mapping/.gitignore	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/.gitignore	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 # ex: set ro:
-# $Id
-# generated by tools/dev/mk_manifest_and_skip.pl Mon May 17 15:32:39 2010 UT
+# $Id: MANIFEST.SKIP 47057 2010-05-27 15:39:08Z fperrad 
+# generated by tools/dev/mk_manifest_and_skip.pl Thu May 27 15:25:37 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -47,6 +47,10 @@
 libparrot.dll
 miniparrot
 myconfig
+ops2c
+ops2c.c
+ops2c.pbc
+ops2c.pir
 parrot
 parrot-nqp
 parrot-nqp.c
@@ -102,6 +106,12 @@
 compilers/imcc/imcparser.c
 compilers/imcc/imcparser.h
 compilers/imcc/imcparser.output
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/'
+compilers/opsc/gen/Ops/*.pir
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Compiler/'
+compilers/opsc/gen/Ops/Compiler/*.pir
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Trans/'
+compilers/opsc/gen/Ops/Trans/*.pir
 # generated from svn:ignore of 'compilers/pct/src/PAST/'
 compilers/pct/src/PAST/*.pbc
 # generated from svn:ignore of 'compilers/pct/src/PCT/'
@@ -235,6 +245,8 @@
 ext/Parrot-Embed/lib/Parrot/*.obj
 # generated from svn:ignore of 'ext/Parrot-Embed/t/'
 ext/Parrot-Embed/t/*.pbc
+# generated from svn:ignore of 'ext/nqp-rx/src/stage0/'
+ext/nqp-rx/src/stage0/nqp-setting.pir
 # generated from svn:ignore of 'include/parrot/'
 include/parrot/*.tmp
 include/parrot/config.h
@@ -248,11 +260,6 @@
 include/parrot/platform_interface.h
 include/parrot/platform_limits.h
 include/parrot/vtable.h
-# generated from svn:ignore of 'include/parrot/oplib/'
-include/parrot/oplib/*_ops.h
-include/parrot/oplib/*_ops_cg*.h
-include/parrot/oplib/*_ops_switch.h
-include/parrot/oplib/ops.h
 # generated from svn:ignore of 'include/pmc/'
 include/pmc/*.h
 # generated from svn:ignore of 'lib/'
@@ -314,6 +321,8 @@
 runtime/parrot/library/Getopt/Obj.pbc
 # generated from svn:ignore of 'runtime/parrot/library/HTTP/'
 runtime/parrot/library/HTTP/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/LWP/'
+runtime/parrot/library/LWP/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/MIME/'
 runtime/parrot/library/MIME/*.pbc
 # generated from svn:ignore of 'runtime/parrot/library/Math/'
@@ -582,6 +591,7 @@
 # generated from svn:ignore of 't/tools/'
 t/tools/*.pbc
 t/tools/*.pir
+t/tools/*.stdout
 t/tools/pdb.t.*
 t/tools/pmc2c.*.c
 t/tools/pmc2c.*.dump

Modified: branches/dynop_mapping/CREDITS
==============================================================================
--- branches/dynop_mapping/CREDITS	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/CREDITS	Sun Jul  4 06:24:50 2010	(r47981)
@@ -248,6 +248,7 @@
 D: Range check in Env PMC
 A: christoph_googleacct at mksig.org
 A: christop... at mksig.org
+A: Christoph Otto
 D: Pipp
 E: christoph at mksig.org
 
@@ -402,7 +403,7 @@
 
 N: Gerd Pokorra
 E: pokorra at uni-siegen.de
-D: Release manager for 1.9.0 and 2.3.0
+D: Release manager for 1.9.0, 2.3.0 and 2.5.0
 
 N: Goplat
 D: Win98 and other fixes.
@@ -514,6 +515,10 @@
 E: zhuomingliang at yahoo.com.cn
 D: Bugfixes, cage cleaning
 
+N: John Harrison
+E: ash at greatethaninfinity.com 
+U: ash_
+
 N: John J. Trammell
 E: trammell at el-swifto.com
 D: coding standard tests
@@ -576,6 +581,7 @@
 N: Julian Albo
 U: NotFound
 A: julianalbo
+A: julian.notfound
 E: julian.notfound at gmail.com
 
 N: Julian Fondren
@@ -1005,6 +1011,14 @@
 N: Tony Payne
 D: Example hanoi.pasm
 
+N: Tyler Curtis
+U: tcurtis
+E: tyler.l.curtis at gmail.com
+E: ekiru.0 at gmail.com
+D: PAST Optimization GSoC 2010
+A: tylercurtis
+A: ekiru
+
 N: Ujwal Reddy Malipeddi
 U: ujwalic
 E: ujwalic at gmail.com

Modified: branches/dynop_mapping/ChangeLog
==============================================================================
--- branches/dynop_mapping/ChangeLog	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/ChangeLog	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,8 +1,12 @@
 #1 $Id$
 
+2010.06.15     Gerd
+	* Released 2.5.0
+	See NEWS for more.
+
 2010.05.18     Whiteknight
-        * Released 2.4.0
-        See NEWS for more
+	* Released 2.4.0
+	See NEWS for more
 
 2010.04.20     Gerd
 	* Released 2.3.0
@@ -157,7 +161,7 @@
 	See NEWS for more.
 
 2007.3.10     coke
-        * removed parakeet
+	* removed parakeet
 
 2007.02.22    pmichaud
 	* Released 0.4.9
@@ -223,7 +227,7 @@
 2006.07.20    audreyt
 	* --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
 	  (or some such --leo)
-          (at the moment code is checking for 2.0 -- ambs)
+	  (at the moment code is checking for 2.0 -- ambs)
 
 2006.07.17    chip
 	partial implementation of new pdd21:
@@ -236,7 +240,7 @@
 	See NEWS for more.
 
 2006.06.03    leo
-        * I and N registers are never cleared to 0 / 0.0 on subroutine entry
+	* I and N registers are never cleared to 0 / 0.0 on subroutine entry
 
 2006.05.14    leo
 	* Released 0.4.4
@@ -250,7 +254,7 @@
 	See NEWS for more.
 
 2006.03.06    leo
-        * Shifted argument type bits left by 2 according to r11754
+	* Shifted argument type bits left by 2 according to r11754
 	  change of docs/pdds/pdd03_calling_conventions.pod
 	* if you are creating PASM then code needs adjustment
 
@@ -353,7 +357,7 @@
 	* the usual bug fixes and improvements
 
 2005-03-06    leo
-        * Released 0.1.2
+	* Released 0.1.2
 	* big rewrite of string code, not yet finished but ...
 	* partial implementation of a generational garbage collector
 	* indirect register frame addressing
@@ -368,7 +372,7 @@
 	* and as always a lot more
 
 2004-10-09    leo
-        * Released 0.1.1
+	* Released 0.1.1
 	* Need Perl 5.6 now for building
 	* Basic AST support, PAST file parser, bits of code generation
 	* BigInt PMC using GMP
@@ -398,39 +402,39 @@
 	* ... and a lot more
 
 2004-02-29    leo
-        * Released 0.1.0
-        * "Ladies and gentlemen, I give you... objects!"
-        * Huge documentation overhaul
-        * More supported platforms, s. PLATFORMS
-        * Basic thread support for pthread based architectures
-        * Basic event handling for timers and signals including:
-        * PASM callbacks for NCI (native C) functions.
-        * Improved platform configuration
-        * COW stacks now working, stacks code redone
-        * Structure handling vastly improved
-        * Random PMC and rand primitives
-        * Better subroutine call syntax in PIR
-        * Make PIR subroutines compliant with pdd03
-        * Improved profiling (DOD, GC timings)
-        * Hash code improvements, incl. random key order support
-        * Experimental freeze/thaw code for some PMC types
-        * IO improvements for buffered layer and Win32
-        * String iterators
-        * String bitwise vtables
-        * Many new opcodes
-        * Support for JIT, where malloced memory isn't executable
-        * Priority DOD scheme for objects that need timely destruction
-        * Improved bytecode loading (e.g. onLoad functions)
-        * Language updates: forth, Perl6/P6C, m4
-        * Libraries: Getopt_Long, SDL, Dumper, Sort
-        * new JAPH examples
-        * Unified imcc and parrot test handling
-        * Many new tests (make test reports 1386 tests)
-        * Numerous bug fixes
+	* Released 0.1.0
+	* "Ladies and gentlemen, I give you... objects!"
+	* Huge documentation overhaul
+	* More supported platforms, s. PLATFORMS
+	* Basic thread support for pthread based architectures
+	* Basic event handling for timers and signals including:
+	* PASM callbacks for NCI (native C) functions.
+	* Improved platform configuration
+	* COW stacks now working, stacks code redone
+	* Structure handling vastly improved
+	* Random PMC and rand primitives
+	* Better subroutine call syntax in PIR
+	* Make PIR subroutines compliant with pdd03
+	* Improved profiling (DOD, GC timings)
+	* Hash code improvements, incl. random key order support
+	* Experimental freeze/thaw code for some PMC types
+	* IO improvements for buffered layer and Win32
+	* String iterators
+	* String bitwise vtables
+	* Many new opcodes
+	* Support for JIT, where malloced memory isn't executable
+	* Priority DOD scheme for objects that need timely destruction
+	* Improved bytecode loading (e.g. onLoad functions)
+	* Language updates: forth, Perl6/P6C, m4
+	* Libraries: Getopt_Long, SDL, Dumper, Sort
+	* new JAPH examples
+	* Unified imcc and parrot test handling
+	* Many new tests (make test reports 1386 tests)
+	* Numerous bug fixes
 
 
 2003-10-31    leo
-        * Released 0.0.13
+	* Released 0.0.13
 	* Yep thirteen - haunted by the ghost of 0.0.12
 	* Build imcc as parrot
 	* Objects more finished
@@ -453,7 +457,7 @@
 	* Many new tests and fixes
 
 2003-10-22    melvin
-        * imcc moved from parrot/languages/ to parrot/
+	* imcc moved from parrot/languages/ to parrot/
 
 2003-09-20    sfink
 
@@ -493,7 +497,7 @@
 
 2003-06-14 13:50 dan
 	* Moved the registers out of the context structure, since they
-          really aren't context
+	  really aren't context
 	* Changed the register stack frames to hold only 16 registers
 	  rather than 32, added half-set push and pop ops, and reworked
 	  the full set push/pops to do two half-set push/pops. Should
@@ -506,7 +510,7 @@
 
 	* Various files
 	  Update Yet Another copyright statements to reflect the (no longer
-          so) shiny new year.
+	  so) shiny new year.
 
 2003-03-11 22:06  chip
 

Modified: branches/dynop_mapping/DEPRECATED.pod
==============================================================================
--- branches/dynop_mapping/DEPRECATED.pod	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/DEPRECATED.pod	Sun Jul  4 06:24:50 2010	(r47981)
@@ -141,12 +141,25 @@
 
 L<https://trac.parrot.org/parrot/ticket/1655>
 
+=item Method is_tty in PMCs derived from Handle [eligible in 2.7]
+
+Use isatty instead.
+
+L<https://trac.parrot.org/parrot/ticket/1689>
+
 =back
 
 =head1 Opcodes
 
 =over 4
 
+=item open and close opcodes will be removed [eligible in 2.7]
+
+L<https://trac.parrot.org/parrot/ticket/1697>
+
+These opcodes will be removed. The open/close methods on File or
+the FileHandle PMC should be used instead.
+
 =item get_addr and set_addr [eligible in 1.5]
 
 L<https://trac.parrot.org/parrot/ticket/218>
@@ -156,15 +169,6 @@
 for Sub, Exception, and related PMC types will instead be handled by
 get_label and set_label.
 
-=item All bitwise ops [eligible in 2.1]
-
-All bitwise ops (all ops containing C<bitwise> in their names) will be provided
-by dynops.  B<NOTE>: Before removing the bitwise ops, make sure that the
-equivalent dynops are available and that the major HLLs (Rakudo, Partcl, Lua,
-etc) have switched to using them.
-
-L<https://trac.parrot.org/parrot/ticket/1260>
-
 =item get_results opcode order and features [eligible in 2.1]
 
 get_results no longer used to fetch exception object.
@@ -319,6 +323,12 @@
 
 L<https://trac.parrot.org/parrot/ticket/443>
 
+=item C<Parrot_find_global_s> and C<Parrot_store_global_s>
+
+This function is not used or tested anywhere.
+
+http://trac.parrot.org/parrot/ticket/1660
+
 =item PMC Attributes Allocation Functions [experimental]
 
  Parrot_gc_allocate_pmc_attributes
@@ -348,6 +358,12 @@
 
 L<https://trac.parrot.org/parrot/ticket/1628>
 
+=item Parrot_get_runtime_prefix [eligible in 2.7]
+
+Use Parrot_get_runtime_path instead.
+
+L<https://trac.parrot.org/parrot/ticket/1191>
+
 =back
 
 =head1 Compiler tools

Modified: branches/dynop_mapping/MANIFEST
==============================================================================
--- branches/dynop_mapping/MANIFEST	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/MANIFEST	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Tue Jun  8 22:21:17 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Tue Jun 29 22:56:50 2010 UT
 #
 # See below for documentation on the format of this file.
 #
@@ -278,7 +278,6 @@
 config/gen/platform/cygwin/math.c                           []
 config/gen/platform/darwin/begin.c                          []
 config/gen/platform/darwin/hires_timer.c                    []
-config/gen/platform/darwin/memalign.c                       []
 config/gen/platform/generic/dl.c                            []
 config/gen/platform/generic/dl.h                            []
 config/gen/platform/generic/env.c                           []
@@ -288,7 +287,6 @@
 config/gen/platform/generic/itimer.c                        []
 config/gen/platform/generic/math.c                          []
 config/gen/platform/generic/math.h                          []
-config/gen/platform/generic/memalign.c                      []
 config/gen/platform/generic/memexec.c                       []
 config/gen/platform/generic/platform_limits.h               []
 config/gen/platform/generic/signal.c                        []
@@ -959,7 +957,6 @@
 include/parrot/exit.h                                       [main]include
 include/parrot/extend.h                                     [main]include
 include/parrot/gc_api.h                                     [main]include
-include/parrot/global.h                                     [main]include
 include/parrot/global_setup.h                               [main]include
 include/parrot/hash.h                                       [main]include
 include/parrot/hll.h                                        [main]include
@@ -975,6 +972,7 @@
 include/parrot/memory.h                                     [main]include
 include/parrot/misc.h                                       [main]include
 include/parrot/multidispatch.h                              [main]include
+include/parrot/namespace.h                                  [main]include
 include/parrot/nci.h                                        [main]include
 include/parrot/oo.h                                         [main]include
 include/parrot/oo_private.h                                 [main]include
@@ -1219,6 +1217,7 @@
 runtime/parrot/library/Test/Class.pir                       [library]
 runtime/parrot/library/Test/More.pir                        [library]
 runtime/parrot/library/URI.pir                              [library]
+runtime/parrot/library/URI/Escape.pir                       [library]
 runtime/parrot/library/YAML/Dumper.pir                      [library]
 runtime/parrot/library/YAML/Dumper/Base.pir                 [library]
 runtime/parrot/library/YAML/Dumper/Default.pir              [library]
@@ -1291,7 +1290,6 @@
 src/gc/malloc_trace.c                                       []
 src/gc/mark_sweep.c                                         []
 src/gc/system.c                                             []
-src/global.c                                                []
 src/global_setup.c                                          []
 src/hash.c                                                  []
 src/hll.c                                                   []
@@ -1317,6 +1315,7 @@
 src/main.c                                                  []
 src/misc.c                                                  []
 src/multidispatch.c                                         []
+src/namespace.c                                             []
 src/nci/api.c                                               []
 src/nci/core_thunks.c                                       []
 src/nci/core_thunks.nci                                     []
@@ -1655,6 +1654,7 @@
 t/dynoplibs/bit.t                                           [test]
 t/dynoplibs/debug.t                                         [test]
 t/dynoplibs/deprecated.t                                    [test]
+t/dynoplibs/io-old.t                                        [test]
 t/dynoplibs/io.t                                            [test]
 t/dynoplibs/math.t                                          [test]
 t/dynoplibs/obscure.t                                       [test]
@@ -1724,6 +1724,7 @@
 t/library/test_class.t                                      [test]
 t/library/test_more.t                                       [test]
 t/library/uri.t                                             [test]
+t/library/uri_escape.t                                      [test]
 t/library/uuid.t                                            [test]
 t/library/yaml_dumper.t                                     [test]
 t/manifest/01-basic.t                                       [test]
@@ -1774,6 +1775,7 @@
 t/oo/names.t                                                [test]
 t/oo/new-old.t                                              [test]
 t/oo/new.t                                                  [test]
+t/oo/objects.t                                              [test]
 t/oo/ops.t                                                  [test]
 t/oo/proxy.t                                                [test]
 t/oo/root_new.t                                             [test]
@@ -1840,6 +1842,7 @@
 t/pharness/04-Usage.t                                       [test]
 t/pir/macro.t                                               [test]
 t/pir/registernames.t                                       [test]
+t/pir/timer_exit.t                                          [test]
 t/pmc/addrregistry.t                                        [test]
 t/pmc/arrayiterator.t                                       [test]
 t/pmc/bigint.t                                              [test]
@@ -1898,7 +1901,6 @@
 t/pmc/object-meths.t                                        [test]
 t/pmc/object-mro.t                                          [test]
 t/pmc/object.t                                              [test]
-t/pmc/objects.t                                             [test]
 t/pmc/opcode.t                                              [test]
 t/pmc/oplib.t                                               [test]
 t/pmc/orderedhash.t                                         [test]
@@ -2067,6 +2069,7 @@
 t/tools/install/testlib/src/pmc/pmc_object.h                [test]
 t/tools/install/testlib/tools/build/ops2c.pl                [test]
 t/tools/install/testlib/vtable.dump                         [test]
+t/tools/parrot_config.t                                     [test]
 t/tools/parrot_debugger.t                                   [test]
 t/tools/pbc_disassemble.t                                   [test]
 t/tools/pbc_dump.t                                          [test]

Modified: branches/dynop_mapping/MANIFEST.SKIP
==============================================================================
--- branches/dynop_mapping/MANIFEST.SKIP	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/MANIFEST.SKIP	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 # ex: set ro:
 # $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Thu May 27 15:25:37 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu Jun 24 14:06:33 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -69,6 +69,8 @@
 ^config_lib\.pir/
 ^cover_db$
 ^cover_db/
+^generated_hello\.pbc$
+^generated_hello\.pbc/
 ^install_config\.fpmc$
 ^install_config\.fpmc/
 ^installable.*$
@@ -624,6 +626,9 @@
 # generated from svn:ignore of 'runtime/parrot/library/Test/Builder/'
 ^runtime/parrot/library/Test/Builder/.*\.pbc$
 ^runtime/parrot/library/Test/Builder/.*\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/URI/'
+^runtime/parrot/library/URI/.*\.pbc$
+^runtime/parrot/library/URI/.*\.pbc/
 # generated from svn:ignore of 'runtime/parrot/library/YAML/'
 ^runtime/parrot/library/YAML/.*\.pbc$
 ^runtime/parrot/library/YAML/.*\.pbc/

Modified: branches/dynop_mapping/MANIFEST.generated
==============================================================================
--- branches/dynop_mapping/MANIFEST.generated	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/MANIFEST.generated	Sun Jul  4 06:24:50 2010	(r47981)
@@ -2,11 +2,11 @@
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
 # Please re-sort this file after *EVERY* modification
-blib/lib/libparrot.2.4.0.dylib                   [main]lib
+blib/lib/libparrot.2.5.0.dylib                   [main]lib
 blib/lib/libparrot.a                             [main]lib
 blib/lib/libparrot.dylib                         [main]lib
 blib/lib/libparrot.so                            [main]lib
-blib/lib/libparrot.so.2.4.0                      [main]lib
+blib/lib/libparrot.so.2.5.0                      [main]lib
 compilers/data_json/data_json.pbc                [data_json]
 config/gen/call_list/opengl.in                   []
 docs/ops/bit.pod                                 [doc]
@@ -42,6 +42,7 @@
 include/pmc/pmc_bigint.h                         [devel]include
 include/pmc/pmc_bignum.h                         [devel]include
 include/pmc/pmc_boolean.h                        [devel]include
+include/pmc/pmc_bytebuffer.h                     [devel]include
 include/pmc/pmc_callcontext.h                    [devel]include
 include/pmc/pmc_capture.h                        [devel]include
 include/pmc/pmc_class.h                          [devel]include
@@ -295,7 +296,7 @@
 runtime/parrot/library/TAP/Formatter.pbc         [main]
 runtime/parrot/library/TAP/Harness.pbc           [main]
 runtime/parrot/library/TAP/Parser.pbc            [main]
-runtime/parrot/library/TGE.pbc			 [main]
+runtime/parrot/library/TGE.pbc                   [main]
 runtime/parrot/library/Tcl/Glob.pbc              [main]
 runtime/parrot/library/TclLibrary.pbc            [main]
 runtime/parrot/library/Test/Builder.pbc          [main]
@@ -336,6 +337,7 @@
 src/pmc/bigint.dump                              [devel]src
 src/pmc/bignum.dump                              [devel]src
 src/pmc/boolean.dump                             [devel]src
+src/pmc/bytebuffer.dump                          [devel]src
 src/pmc/callcontext.dump                         [devel]src
 src/pmc/capture.dump                             [devel]src
 src/pmc/class.dump                               [devel]src

Modified: branches/dynop_mapping/NEWS
==============================================================================
--- branches/dynop_mapping/NEWS	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/NEWS	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,8 +1,26 @@
 # $Id$
 
 New in 2.5.0
+- Core
+  + Added ByteBuffer PMC to allow direct byte manipulation
+  + Modified some PMC vtable functions to reduce complexity, simplifying coverage.
+  + Modified PAST to generate symbolic PASM constants in PIR output.
+  + General STRING API cleanups
+  + Increased test coverage of core PMCs
+  + Fixed up 'exit' opcode, added CONTROL_EXIT exception type.
+  + Experimental 'unroll' opcode renamed to 'finalize'
+- NQP-rx
+  + Added proper support for multisubs and multimethods
+  + Fixed sigspace handling ** quantifier in regexes
+  + Added \e strings
+  + Added use of inversion lists for charclass lists in regexes
 - Platforms
   + EPEL (Extra Packages for Enterprise Linux) packages for RHEL6.beta are available
+- Begin moving towards Lorito, the ops refactor to enable pervasive self-hosting and JIT compilation.
+  + All ops are now built with the self-hosted opsc compiler.
+  + For more Information about Lorito see:
+      http://trac.parrot.org/parrot/wiki/Lorito
+      http://trac.parrot.org/parrot/wiki/LoritoRoadmap
 
 New in 2.4.0
 - Core

Modified: branches/dynop_mapping/README
==============================================================================
--- branches/dynop_mapping/README	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/README	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.4.0
+This is Parrot, version 2.5.0
 ------------------------------
 
 Parrot is Copyright (C) 2001-2010, Parrot Foundation.
@@ -79,7 +79,7 @@
 By default, this installs in /usr/local, with the Parrot executable in
 /usr/local/bin. If you want to install Parrot into another location use:
 
-    perl Configure.pl --prefix=/Users/foo/parrot-0.7.0
+    perl Configure.pl --prefix=/home/joe/bird
     make install
 
 But please note that dynamic libs will not be found for non-standard

Modified: branches/dynop_mapping/VERSION
==============================================================================
--- branches/dynop_mapping/VERSION	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/VERSION	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1 +1 @@
-2.4.0
+2.5.0

Modified: branches/dynop_mapping/compilers/imcc/pbc.c
==============================================================================
--- branches/dynop_mapping/compilers/imcc/pbc.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/compilers/imcc/pbc.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -980,7 +980,6 @@
         const CHARSET *s_charset;
         const ENCODING *s_encoding = NULL;
         const ENCODING *src_encoding;
-        const char *charset;
         #define MAX_NAME 31
         char charset_name[MAX_NAME + 1];
         char encoding_name[MAX_NAME + 1];
@@ -1586,7 +1585,7 @@
     else
         sub->ns_entry_name = sub->name;
 
-    Parrot_store_sub_in_namespace(interp, sub_pmc);
+    Parrot_ns_store_sub(interp, sub_pmc);
 
     /*
      * store the sub's strings
@@ -2169,10 +2168,10 @@
 e_pbc_end_sub(PARROT_INTERP, SHIM(void *param), ARGIN(IMC_Unit *unit))
 {
     ASSERT_ARGS(e_pbc_end_sub)
-    Instruction *ins;
+    Instruction *ins = unit->instructions;
     int          pragma;
 
-    if (!unit->instructions)
+    if (!ins)
         return 0;
 
     /*
@@ -2180,7 +2179,6 @@
      * This is *dangerous*: all possible global state can be messed
      * up, e.g. when that sub starts loading bytecode
      */
-    ins   = unit->instructions;
 
     /* we run only PCC subs */
     if (!ins->symregs[0] || !ins->symregs[0]->pcc_sub)

Modified: branches/dynop_mapping/compilers/opsc/src/Ops/Op.pm
==============================================================================
--- branches/dynop_mapping/compilers/opsc/src/Ops/Op.pm	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/compilers/opsc/src/Ops/Op.pm	Sun Jul  4 06:24:50 2010	(r47981)
@@ -284,61 +284,54 @@
 }
 
 # Recursively process body chunks returning string.
-# Ideally bunch of multisubs, but...
-method process_body_chunk($trans, $chunk) {
-    my $what := $chunk.WHAT;
-    # Poor man multis...
-    if $what eq 'PAST::Var()' {
-        my $n := +$chunk.name;
-        return $trans.access_arg( self.arg_type($n - 1), $n);
+
+our multi method process_body_chunk($trans, PAST::Var $chunk) {
+    my $n := +$chunk.name;
+    $trans.access_arg( self.arg_type($n - 1), $n);
+}
+
+our multi method process_body_chunk($trans, PAST::Op $chunk) {
+    my $type := $chunk.pasttype;
+    #say('OP ' ~ $type);
+    if $type eq 'inline' {
+        #_dumper($chunk);
+        #pir::say('RET ' ~ $chunk<inline>);
+        return $chunk.inline;
     }
-    elsif $what eq 'PAST::Op()' {
-        my $type := $chunk.pasttype;
-        #say('OP ' ~ $type);
-        if $type eq 'inline' {
-            #_dumper($chunk);
-            #pir::say('RET ' ~ $chunk<inline>);
-            return $chunk.inline;
+    elsif $type eq 'call' {
+        my $name     := $chunk.name;
+        #say('NAME '~$name ~ ' ' ~ $is_next);
+        if $name eq 'OPSIZE' {
+            #say('is_next');
+            return ~self.size;
         }
-        elsif $type eq 'call' {
-            my $name     := $chunk.name;
-            #say('NAME '~$name ~ ' ' ~ $is_next);
-            if $name eq 'OPSIZE' {
-                #say('is_next');
-                return ~self.size;
-            }
-
-            my @children := list();
-            for @($chunk) {
-                @children.push(self.process_body_chunk($trans, $_));
-            }
-            my $children := join('', |@children);
-
-            #pir::say('children ' ~ $children);
-            my $ret := Q:PIR<
-                $P0 = find_lex '$trans'
-                $P1 = find_lex '$name'
-                $S0 = $P1
-                $P1 = find_lex '$children'
-                %r  = $P0.$S0($P1)
-            >;
-            #pir::say('RET ' ~ $ret);
-            return $ret;
-        }
-    }
-    elsif $what eq 'PAST::Stmts()' {
+
         my @children := list();
         for @($chunk) {
             @children.push(self.process_body_chunk($trans, $_));
         }
         my $children := join('', |@children);
-        return $children;
-    }
-    else {
-        pir::die('HOLEY');
+
+        #pir::say('children ' ~ $children);
+        my $ret := Q:PIR<
+            $P0 = find_lex '$trans'
+            $P1 = find_lex '$name'
+            $S0 = $P1
+            $P1 = find_lex '$children'
+            %r  = $P0.$S0($P1)
+        >;
+        #pir::say('RET ' ~ $ret);
+        return $ret;
     }
 }
 
+our multi method process_body_chunk($trans, PAST::Stmts $chunk) {
+    my @children := list();
+    for @($chunk) {
+        @children.push(self.process_body_chunk($trans, $_));
+    }
+    join('', |@children);
+}
 
 =begin
 

Modified: branches/dynop_mapping/compilers/opsc/src/Ops/Trans/C.pm
==============================================================================
--- branches/dynop_mapping/compilers/opsc/src/Ops/Trans/C.pm	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/compilers/opsc/src/Ops/Trans/C.pm	Sun Jul  4 06:24:50 2010	(r47981)
@@ -95,7 +95,7 @@
 
 method expr_address($addr) { $addr; }
 
-method expr_offset($offset) { "cur_opcode + $offset"; }
+method expr_offset($offset) { " cur_opcode + $offset"; }
 
 =begin
 
@@ -301,7 +301,10 @@
  * returns >= 0 (found idx into info_table), -1 if not
  */
 
-static size_t hash_str(const char *str) {
+PARROT_PURE_FUNCTION
+static
+size_t hash_str(ARGIN(const char *str))
+{
     size_t      key = 0;
     const char *s   = str;
 
@@ -313,7 +316,8 @@
     return key;
 }
 
-static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+static void store_op(PARROT_INTERP, op_info_t *info, int full)
+{
     HOP * const p     = mem_gc_allocate_zeroed_typed(interp, HOP);
     const size_t hidx =
         hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
@@ -322,7 +326,9 @@
     p->next   = hop[hidx];
     hop[hidx] = p;
 }
-static int get_op(PARROT_INTERP, const char * name, int full) {
+
+static int get_op(PARROT_INTERP, const char * name, int full)
+{
     const HOP * p;
     const size_t hidx = hash_str(name) % OP_HASH_SIZE;
     if (!hop) {
@@ -335,7 +341,9 @@
     }
     return -1;
 }
-static void hop_init(PARROT_INTERP) {
+
+static void hop_init(PARROT_INTERP)
+{
     size_t i;
     op_info_t * const info = [[BS]]op_lib.op_info_table;
     /* store full names */
@@ -346,6 +354,7 @@
         if (get_op(interp, info[i].name, 0) == -1)
             store_op(interp, info + i, 0);
 }
+
 static void hop_deinit(PARROT_INTERP)
 {
     if (hop) {

Modified: branches/dynop_mapping/compilers/pct/src/PAST/Compiler.pir
==============================================================================
--- branches/dynop_mapping/compilers/pct/src/PAST/Compiler.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/compilers/pct/src/PAST/Compiler.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -18,6 +18,7 @@
 basic flags are:
 
     P,S,I,N   PMC, string, int, or num register
+    Q         keyed PMC, next flag indicates type of key
     s         string register or constant
     i         int register or constant
     n         num register or constant
@@ -67,11 +68,13 @@
     piropsig['concat']     = 'PP~'
     piropsig['copy']       = '0PP'
     piropsig['defined']    = 'IP'
+    piropsig['delete']     = 'vQ*'
     piropsig['die']        = 'v~'
     piropsig['div']        = 'PP+'
     piropsig['does']       = 'IPs'
     piropsig['downcase']   = 'Ss'
     piropsig['elements']   = 'IP'
+    piropsig['exists']     = 'IQ*'
     piropsig['exit']       = 'vi'
     piropsig['fdiv']       = 'PP+'
     piropsig['find_codepoint']   = 'Is'
@@ -109,7 +112,7 @@
     piropsig['shl']        = 'PP+'
     piropsig['shr']        = 'PP+'
     piropsig['sleep']      = 'v+'
-    piropsig['splice']     = 'PPii'
+    piropsig['splice']     = '0PPii'
     piropsig['split']      = 'Pss'
     piropsig['sub']        = 'PP+'
     piropsig['substr']     = 'Ssii'
@@ -430,6 +433,7 @@
     sigidx = 1
     rtype = substr signature, sigidx, 1
   iter_loop:
+    if rtype == 'Q' goto keyed_pos
     unless iter goto iter_end
     .local pmc cpast, cpost
     cpast = shift iter
@@ -472,6 +476,31 @@
     inc sigidx
     rtype = substr signature, sigidx, 1
     goto iter_loop
+  keyed_pos:
+    # rtype is 'Q', so construct a keyed pmc argument
+    # first, get the base PMC
+    unless iter goto iter_end
+    cpast = shift iter
+    cpost = self.'as_post'(cpast, 'rtype'=>'P')
+    cpost = self.'coerce'(cpost, 'P')
+    # now process the key arg
+    unless iter goto iter_end
+    .local pmc kpast, kpost
+    kpast = shift iter
+    inc sigidx
+    rtype = substr signature, sigidx, 1
+    kpost = self.'as_post'(kpast, 'rtype'=>rtype)
+    kpost = self.'coerce'(kpost, rtype)
+    ops.'push'(kpost)
+    ops.'push'(cpost)
+    # now construct the keyed PMC
+    $S0 = cpost
+    concat $S0, '['
+    $S1 = kpost
+    concat $S0, $S1
+    concat $S0, ']'
+    push posargs, $S0
+    goto iter_rtype
   iter_end:
     .return (ops, posargs, namedargs)
 .end
@@ -1101,8 +1130,8 @@
     signature = 'vP'
   have_signature:
 
-    .local pmc ops
-    ops = self.'post_children'(node, 'signature'=>signature)
+    .local pmc ops, posargs
+    (ops, posargs) = self.'post_children'(node, 'signature'=>signature)
 
     .local pmc arglist
     arglist = ops.'list'()
@@ -1118,10 +1147,10 @@
     .local string result
     result = self.'uniquereg'($S0)
     ops.'result'(result)
-    ops.'push_pirop'(pirop, result, arglist :flat)
+    ops.'push_pirop'(pirop, result, posargs :flat)
     .return (ops)
   pirop_void:
-    ops.'push_pirop'(pirop, arglist :flat)
+    ops.'push_pirop'(pirop, posargs :flat)
     .return (ops)
 .end
 

Modified: branches/dynop_mapping/compilers/pct/src/PAST/Node.pir
==============================================================================
--- branches/dynop_mapping/compilers/pct/src/PAST/Node.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/compilers/pct/src/PAST/Node.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -406,14 +406,6 @@
 Get/set whether this node is an lvalue, or treats its first
 child as an lvalue (e.g., for assignment).
 
-=cut
-
-.sub 'lvalue' :method
-    .param pmc value           :optional
-    .param int has_value       :opt_flag
-    .tailcall self.'attr'('lvalue', value, has_value)
-.end
-
 =item inline([STRING code])
 
 Get/set the code to be used for inline PIR when C<pasttype> is

Modified: branches/dynop_mapping/compilers/pct/src/POST/Node.pir
==============================================================================
--- branches/dynop_mapping/compilers/pct/src/POST/Node.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/compilers/pct/src/POST/Node.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -46,10 +46,6 @@
 
 =over 4
 
-=item result([value])
-
-Get/set
-
 =cut
 
 .namespace [ 'POST';'Node' ]

Modified: branches/dynop_mapping/compilers/pirc/src/bcgen.c
==============================================================================
--- branches/dynop_mapping/compilers/pirc/src/bcgen.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/compilers/pirc/src/bcgen.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1271,7 +1271,7 @@
      * XXX must this be done always? (this w.r.t. the recent discussion about :vtable/:method
      * and being :anon etc.
      */
-    Parrot_store_sub_in_namespace(bc->interp, sub_pmc);
+    Parrot_ns_store_sub(bc->interp, sub_pmc);
     subconst_index = add_pmc_const(bc, sub_pmc);
 
     /* Add a new fixup entry in the fixup table for this sub. */

Modified: branches/dynop_mapping/compilers/pirc/src/pircapi.c
==============================================================================
--- branches/dynop_mapping/compilers/pirc/src/pircapi.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/compilers/pirc/src/pircapi.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -17,6 +17,9 @@
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: static */
+
 
 /*
 
@@ -72,16 +75,14 @@
 =item C<void parse_file(PARROT_INTERP, int flexdebug, FILE *infile, char * const
 filename, int flags, int thr_id, unsigned macro_size, char * const outputfile)>
 
-=cut
-
 This will be the proper declaration after testing for thread-safety:
 
 void parse_file(int flexdebug, FILE *infile, char * const filename, int flags,
                 char * const outputfile)
 
-*/
-
+=cut
 
+*/
 
 void
 parse_file(PARROT_INTERP, int flexdebug, ARGIN(FILE *infile),
@@ -260,6 +261,8 @@
 =item C<PackFile_ByteCode * pirc_compile_file(PARROT_INTERP, const char
 *filename, STRING **error_message)>
 
+Returns NULL.
+
 =cut
 
 */
@@ -274,8 +277,6 @@
 }
 
 
-/* HEADERIZER END: static */
-
 
 /*
 

Modified: branches/dynop_mapping/config/gen/config_pm.pm
==============================================================================
--- branches/dynop_mapping/config/gen/config_pm.pm	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/config_pm.pm	Sun Jul  4 06:24:50 2010	(r47981)
@@ -119,7 +119,11 @@
                     # String
                     $v =~ s/(["\\])/\\$1/g;
                     $v =~ s/\n/\\n/g;
-                    print {$OUT} qq(    set \$P0["$k"], "$v"\n);
+                    my $charset = q{};
+                    if ($v =~ /[^[:ascii:]]/) {
+                        $charset = 'binary:';
+                    }
+                    print {$OUT} qq(    set \$P0["$k"], $charset"$v"\n);
                 }
                 else {
                     # Null

Modified: branches/dynop_mapping/config/gen/makefiles/root.in
==============================================================================
--- branches/dynop_mapping/config/gen/makefiles/root.in	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/makefiles/root.in	Sun Jul  4 06:24:50 2010	(r47981)
@@ -320,6 +320,7 @@
     $(LIBRARY_DIR)/Tcl/Glob.pbc \
     $(LIBRARY_DIR)/TclLibrary.pbc \
     $(LIBRARY_DIR)/URI.pbc \
+    $(LIBRARY_DIR)/URI/Escape.pbc \
     $(LIBRARY_DIR)/uuid.pbc \
     $(LIBRARY_DIR)/YAML/Dumper/Base.pbc \
     $(LIBRARY_DIR)/YAML/Dumper/Default.pbc \
@@ -390,7 +391,7 @@
 	$(INC_DIR)/vtables.h \
 	$(INC_DIR)/multidispatch.h \
 	$(INC_DIR)/library.h \
-	$(INC_DIR)/global.h \
+	$(INC_DIR)/namespace.h \
 	$(INC_DIR)/stat.h \
 	$(INC_DIR)/hll.h \
 	$(INC_DIR)/pbcversion.h \
@@ -451,7 +452,6 @@
     src/gc/gc_inf$(O) \
     src/gc/mark_sweep$(O) \
     src/gc/system$(O) \
-    src/global$(O) \
     src/global_setup$(O) \
     src/hash$(O) \
     src/hll$(O) \
@@ -468,6 +468,7 @@
     src/longopt$(O) \
     src/misc$(O) \
     src/multidispatch$(O) \
+    src/namespace$(O) \
     src/frame_builder$(O) \
     src/nci/api$(O) \
     src/nci/core_thunks$(O) \
@@ -635,9 +636,10 @@
 
 $(LIBRARY_DIR)/Configure/genfile.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
 
-$(LIBRARY_DIR)/HTTP/Message.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+# Message.pbc and distutils.pbc load io_ops to work around TT #1663
+638	$(LIBRARY_DIR)/HTTP/Message.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT) $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
 
-$(LIBRARY_DIR)/distutils.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+$(LIBRARY_DIR)/distutils.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT) $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
 
 $(LIBRARY_DIR)/pcre.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
 
@@ -661,7 +663,6 @@
     src/debug.str \
     src/dynext.str \
     src/exceptions.str \
-    src/global.str \
     src/global_setup.str \
     src/hll.str \
     src/call/pcc.str \
@@ -673,6 +674,7 @@
     src/key.str \
     src/library.str \
     src/multidispatch.str \
+    src/namespace.str \
     src/frame_builder.str \
     src/nci/api.str \
     src/nci/core_thunks.str \
@@ -1216,7 +1218,8 @@
     examples/mops/mops$(EXE) \
     examples/pasm/hello.pbc \
     examples/pasm/hello$(O) \
-    examples/pasm/hello$(EXE)
+    examples/pasm/hello$(EXE) \
+    generated_hello.pbc
 
 # hello
 hello: test_prep examples/pasm/hello$(EXE)
@@ -1253,7 +1256,7 @@
 
 src/global_setup$(O) : $(PARROT_H_HEADERS) src/global_setup.str src/global_setup.c
 
-src/global$(O) : $(PARROT_H_HEADERS) src/global.str src/global.c \
+src/namespace$(O) : $(PARROT_H_HEADERS) src/namespace.str src/namespace.c \
 	include/pmc/pmc_sub.h
 
 src/pmc$(O) : include/pmc/pmc_class.h src/pmc.c \
@@ -1798,7 +1801,7 @@
 manifest_tests :
 	$(PERL) t/harness $(MANIFEST_TEST_FILES)
 
-examples_tests :
+examples_tests : test_prep
 	$(PERL) t/harness $(EXAMPLES_TEST_FILES)
 
 # benchmark tests
@@ -2417,6 +2420,8 @@
     tar -zcv -T - -f parrot-$(VERSION).tar.gz
 	$(PERL) -lane 'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' \
 	     MANIFEST | tar -jcv -T - -f parrot-$(VERSION).tar.bz2
+	sha256sum parrot-$(VERSION).tar.gz > parrot-$(VERSION).tar.gz.sha256
+	sha256sum parrot-$(VERSION).tar.bz2 > parrot-$(VERSION).tar.bz2.sha256
 	mv MANIFEST.real MANIFEST
 	rm parrot-$(VERSION)
 

Modified: branches/dynop_mapping/config/gen/opengl.pm
==============================================================================
--- branches/dynop_mapping/config/gen/opengl.pm	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/opengl.pm	Sun Jul  4 06:24:50 2010	(r47981)
@@ -245,6 +245,7 @@
     GLsizeiptr              => 'ptrdiff_t',
     GLintptrARB             => 'ptrdiff_t',
     GLsizeiptrARB           => 'ptrdiff_t',
+    GLvdpauSurfaceNV        => 'ptrdiff_t',
 );
 
 my %NCI_TYPE = (
@@ -265,6 +266,7 @@
     'short*'     => 'p',
     'int*'       => 'p',
     'long*'      => 'p',
+    'ptrdiff_t*' => 'p',
     'longlong*'  => 'p',
     'float*'     => 'p',
     'double*'    => 'p',

Modified: branches/dynop_mapping/config/gen/platform.pm
==============================================================================
--- branches/dynop_mapping/config/gen/platform.pm	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform.pm	Sun Jul  4 06:24:50 2010	(r47981)
@@ -191,7 +191,6 @@
         dl.c
         stat.c
         math.c
-        memalign.c
         signal.c
         itimer.c
         memexec.c

Modified: branches/dynop_mapping/config/gen/platform/ansi/dl.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/ansi/dl.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/ansi/dl.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2007, Parrot Foundation.
+ * Copyright (C) 2007-2010, Parrot Foundation.
  */
 
 /*
@@ -11,20 +11,16 @@
 
 =head1 DESCRIPTION
 
-Dynlib stuff.  (Currently, just placeholders.)
+Parrot functions -- B<none yet implemented> -- which wrap around standard
+library functions for handling dynamic libraries.
 
 =head2 Functions
 
 =over 4
 
-=cut
-
-*/
-
-/*
+=item C<void * Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags)>
 
-=item C<void * Parrot_dlopen(const char *filename, SHIM(Parrot_dlopen_flags
-flags)>
+Parrot wrapper around C<dlopen>.  B<Not yet implemented.>
 
 =cut
 
@@ -42,6 +38,8 @@
 
 =item C<const char * Parrot_dlerror(void)>
 
+Parrot wrapper around C<dlerror>.  B<Not yet implemented.>
+
 =cut
 
 */
@@ -57,6 +55,8 @@
 
 =item C<void * Parrot_dlsym(void *handle, const char *symbol)>
 
+Parrot wrapper around C<dlsym>.  B<Not yet implemented.>
+
 =cut
 
 */
@@ -73,6 +73,8 @@
 
 =item C<int Parrot_dlclose(void *handle)>
 
+Parrot wrapper around C<dlclose>.  B<Not yet implemented.>
+
 =cut
 
 */

Modified: branches/dynop_mapping/config/gen/platform/ansi/exec.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/ansi/exec.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/ansi/exec.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2004-2008, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
  */
 
 /*
@@ -25,7 +25,7 @@
 
 =item C<INTVAL Parrot_Run_OS_Command(PARROT_INTERP, STRING *command)>
 
-Spawn a subprocess
+B<Not yet implemented on this platform.> Spawn a subprocess.
 
 =cut
 
@@ -43,6 +43,8 @@
 
 =item C<INTVAL Parrot_Run_OS_Command_Argv(PARROT_INTERP, PMC *cmdargs)>
 
+B<Not yet implemented on this platform.>
+
 =cut
 
 */

Modified: branches/dynop_mapping/config/gen/platform/ansi/time.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/ansi/time.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/ansi/time.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2007, Parrot Foundation.
+ * Copyright (C) 2007-2010, Parrot Foundation.
  */
 
 /*
@@ -27,6 +27,8 @@
 
 =item C<INTVAL Parrot_intval_time(void)>
 
+Parrot wrapper around standard library C<time()> function, returning an INTVAL.
+
 =cut
 
 */
@@ -42,6 +44,9 @@
 
 =item C<FLOATVAL Parrot_floatval_time(void)>
 
+Note:  We are unable to provide this level of precision under ANSI-C, so we
+just fall back to intval time for this.
+
 =cut
 
 */
@@ -49,8 +54,6 @@
 FLOATVAL
 Parrot_floatval_time(void)
 {
-    /* unable to provide this level of precision under ANSI-C, so just fall
-       back to intval time for this. */
     Parrot_warn(NULL, PARROT_WARNINGS_PLATFORM_FLAG, "Parrot_floatval_time not accurate");
     return (FLOATVAL)Parrot_intval_time();
 }

Deleted: branches/dynop_mapping/config/gen/platform/darwin/memalign.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/darwin/memalign.c	Sun Jul  4 06:24:50 2010	(r47980)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,201 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2007-2008, Parrot Foundation.
- */
-
-/*
-
-=head1 NAME
-
-memalign.c
-
-=head1 DESCRIPTION
-
-memalign related stuff
-
-=head2 Functions
-
-=over 4
-
-=cut
-
-*/
-
-#include <mach/vm_map.h>
-#include <mach/mach_init.h>
-
-/*
-
-=item C<static unsigned long log2int(unsigned long x)>
-
-=cut
-
-*/
-
-static unsigned long log2int(unsigned long x) {
-    return (x < 2) ? 0 : log2int(x >> 1) + 1;
-}
-
-/*
-
-=item C<static unsigned long roundDownPowerOf2(unsigned long x)>
-
-=cut
-
-*/
-
-static unsigned long roundDownPowerOf2(unsigned long x) {
-    return (1 << log2int(x));
-}
-
-/*
-
-=item C<static unsigned long roundUpPowerOf2(unsigned long x)>
-
-=cut
-
-*/
-
-static unsigned long roundUpPowerOf2(unsigned long x)
-{
-    static unsigned long one     = 1;
-    unsigned long        log2Int = log2int(x);
-
-    return ((one << log2Int) == x) ? x : (one << (log2Int + 1));
-}
-
-/*
-
-=item C<static unsigned long roundUpToPageBoundary(unsigned long x)>
-
-=cut
-
-*/
-
-static unsigned long roundUpToPageBoundary(unsigned long x)
-{
-    unsigned long roundedDown = trunc_page(x);
-
-    return (roundedDown == x) ? x : (roundedDown + vm_page_size);
-}
-
-typedef struct _memalign_marker_t {
-    vm_address_t start;
-    vm_size_t size;
-} memalign_marker_t;
-
-/*
-
-=item C<void * Parrot_memalign(size_t align, size_t size)>
-
-=cut
-
-*/
-
-void *
-Parrot_memalign(size_t align, size_t size)
-{
-    size_t effectiveAlign   = align;
-    size_t padding          = 0;
-    size_t amountToAllocate = 0;
-
-    if (effectiveAlign < sizeof (void *))
-        effectiveAlign = roundUpPowerOf2(sizeof (void *));
-    else
-        effectiveAlign = roundUpPowerOf2(effectiveAlign);
-
-    if (effectiveAlign < sizeof (memalign_marker_t))
-        padding = sizeof (memalign_marker_t);
-    else
-        padding = effectiveAlign;
-
-    amountToAllocate = roundUpToPageBoundary(size + padding);
-
-    {
-        vm_address_t  p      = (vm_address_t)NULL;
-        kern_return_t status = vm_allocate(mach_task_self(), &p,
-                                                amountToAllocate, 1);
-
-        if (status != KERN_SUCCESS)
-            return NULL;
-        else {
-            vm_size_t    logEffectiveAlign      = log2int(effectiveAlign);
-            vm_address_t lowestAvaliableAddress =
-                                p + sizeof (memalign_marker_t);
-            vm_address_t roundedDownAddress     =
-                            ((lowestAvaliableAddress >> logEffectiveAlign)
-                                                     << logEffectiveAlign);
-            vm_address_t returnAddress          =
-                            (roundedDownAddress == lowestAvaliableAddress)
-                            ?  lowestAvaliableAddress
-                            : (roundedDownAddress + effectiveAlign);
-            vm_address_t firstUnneededPage = 0;
-
-            memalign_marker_t *marker =
-                                (memalign_marker_t *)returnAddress - 1;
-
-            /* lowest address used, then round down to vm_page boundary */
-            vm_address_t usedPageBase = trunc_page((vm_address_t)marker);
-            marker->start             = usedPageBase;
-            marker->size              = returnAddress + size - usedPageBase;
-
-            if (usedPageBase > p) {
-                status = vm_deallocate(mach_task_self(), p, usedPageBase - p);
-
-                if (status != KERN_SUCCESS)
-                    fprintf(stderr, "Parrot_memalign(%zx, %zx) failed "
-                                    "to deallocate extra header space.\n",
-                                    align, size);
-            }
-
-            firstUnneededPage = roundUpToPageBoundary(returnAddress + size);
-
-            if (firstUnneededPage < p + amountToAllocate) {
-                status = vm_deallocate(mach_task_self(), firstUnneededPage,
-                                    p + amountToAllocate - firstUnneededPage);
-
-                if (status != KERN_SUCCESS) {
-                    fprintf(stderr, "Parrot_memalign(%zx, %zx) failed "
-                                    "to deallocate extra footer space.\n",
-                                    align, size);
-                }
-            }
-
-            return (void *)returnAddress;
-        }
-    }
-}
-
-/*
-
-=item C<void Parrot_free_memalign(void *p)>
-
-=cut
-
-*/
-
-void
-Parrot_free_memalign(void *p)
-{
-    memalign_marker_t *marker = (memalign_marker_t *)p - 1;
-    kern_return_t      status = vm_deallocate(mach_task_self(),
-                                            marker->start, marker->size);
-
-    if (status != KERN_SUCCESS)
-        fprintf(stderr, "Parrot_free_memalign(%p) failed!\n", p);
-}
-
-/*
-
-=back
-
-=cut
-
-*/
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/dynop_mapping/config/gen/platform/generic/dl.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/generic/dl.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/generic/dl.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
  */
 
 /*
@@ -11,7 +11,7 @@
 
 =head1 DESCRIPTION
 
-Dynlib stuff
+Parrot functions which wrap around standard library functions for handling dynamic libraries.
 
 =head2 Functions
 
@@ -31,6 +31,9 @@
 
 =item C<void * Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags)>
 
+Parrot wrapper around C<dlopen>.  Loads dynamic library file named by first
+argument and returns a handle to it.
+
 =cut
 
 */
@@ -50,6 +53,9 @@
 
 =item C<const char * Parrot_dlerror(void)>
 
+Wrapper around C<dlerror>.  System-dependent string that indicates most recent
+failure in use of C<Parrot_dlopen>, C<Parrot_dlclose> or C<Parrot_dlsym>.
+
 =cut
 
 */
@@ -68,6 +74,9 @@
 
 =item C<void * Parrot_dlsym(void *handle, const char *symbol)>
 
+Wrapper around C<dlysm>.  Takes a handle returned by C<Parrot_dlopen> and
+returns address where symbol is located.
+
 =cut
 
 */
@@ -86,6 +95,9 @@
 
 =item C<int Parrot_dlclose(void *handle)>
 
+Wrapper around C<dlclose>.  Releases reference to dynamic library specified
+by argument.  Returns C<0> on success and C<-1> on failure.
+
 =cut
 
 */

Modified: branches/dynop_mapping/config/gen/platform/generic/exec.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/generic/exec.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/generic/exec.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2004-2009, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
  */
 
 /*
@@ -11,7 +11,7 @@
 
 =head1 DESCRIPTION
 
-system() stuff
+Parrot functions to run operating system commands.
 
 =head2 Functions
 
@@ -28,8 +28,8 @@
 
 =item C<INTVAL Parrot_Run_OS_Command(PARROT_INTERP, STRING *command)>
 
-Spawn off a subprocess and wait for the damn thing to complete,
-returning the return value of the process
+Spawn off a subprocess provided in a string.  Wait for it to complete,
+returning the return value of the process.
 
 =cut
 
@@ -72,6 +72,9 @@
 
 =item C<INTVAL Parrot_Run_OS_Command_Argv(PARROT_INTERP, PMC *cmdargs)>
 
+Spawn off a subprocess provided in command-line arguments.  Wait for it to
+complete, returning the return value of the process.
+
 =cut
 
 */
@@ -125,6 +128,14 @@
 }
 
 /*
+
+=back
+
+=cut
+
+*/
+
+/*
  * Local variables:
  *   c-file-style: "parrot"
  * End:

Modified: branches/dynop_mapping/config/gen/platform/generic/math.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/generic/math.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/generic/math.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2004-2007, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
  */
 
 /*
@@ -11,29 +11,21 @@
 
 =head1 DESCRIPTION
 
-math stuff
+Mathematical functions.
 
 =head2 Functions
 
 =over 4
 
-=cut
-
-*/
-
-/*
-
 =item C<extern int Parrot_signbit(double x)>
 
-return true if the Numval has a negative sign.
+Return true if the Numval has a negative sign.
 This is mostly for handling the -0.0 case.
 
 =cut
 
 */
 
-/*
- */
 #if DOUBLE_SIZE == 2 * INT_SIZE
 extern int
 Parrot_signbit(double x)
@@ -55,6 +47,8 @@
 
 =item C<int Parrot_signbit_l(long double x)>
 
+Like C<Parrot_signbit()>, only taking long double instead of double.
+
 =cut
 
 */

Deleted: branches/dynop_mapping/config/gen/platform/generic/memalign.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/generic/memalign.c	Sun Jul  4 06:24:50 2010	(r47980)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,94 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
- */
-
-/*
-
-=head1 NAME
-
-config/gen/platform/generic/memalign.c
-
-=head1 DESCRIPTION
-
-memalign related stuff
-
-=head2 Functions
-
-=over 4
-
-=cut
-
-*/
-
-#if defined(PARROT_HAS_POSIX_MEMALIGN)
-#  include <stdlib.h>
-
-/*
-
-=item C<void * Parrot_memalign(size_t align, size_t size)>
-
-=cut
-
-*/
-
-void *
-Parrot_memalign(size_t align, size_t size)
-{
-    void *p;
-    int i = posix_memalign(&p, align, size);
-    return i == 0 ? p : NULL;
-}
-
-#elif defined(PARROT_HAS_MEMALIGN)
-
-#  if defined(PARROT_HAS_HEADER_MALLOC)
-#    include <malloc.h>
-#  else
-#    include <stdlib.h>
-#  endif
-
-/*
-
-=item C<void * Parrot_memalign(size_t align, size_t size)>
-
-=cut
-
-*/
-
-void *
-Parrot_memalign(size_t align, size_t size)
-{
-    return memalign(align, size);
-}
-
-#endif
-
-/*
-
-=item C<void Parrot_free_memalign(void *p)>
-
-=cut
-
-*/
-
-void
-Parrot_free_memalign(void *p)
-{
-    free(p);
-}
-
-/*
-
-=back
-
-=cut
-
-*/
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/dynop_mapping/config/gen/platform/generic/stat.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/generic/stat.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/generic/stat.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2007-2008, Parrot Foundation.
+ * Copyright (C) 2007-2010, Parrot Foundation.
  */
 
 /*
@@ -26,6 +26,8 @@
 
 =item C<PMC * Parrot_stat_file(PARROT_INTERP, STRING *filename)>
 
+B<Not implemented.>  Returns C<NULL>.
+
 =cut
 
 */
@@ -41,6 +43,8 @@
 =item C<PMC * Parrot_stat_info_pmc(PARROT_INTERP, STRING *filename, INTVAL
 thing)>
 
+B<Not implemented.>  Returns C<NULL>.
+
 =cut
 
 */
@@ -56,6 +60,55 @@
 =item C<static INTVAL stat_common(PARROT_INTERP, struct stat *statbuf, INTVAL
 thing, int status)>
 
+Stats the file, and returns the information specified by C<thing>. C<thing> can
+be one of:
+
+=over 4
+
+=item * C<STAT_EXISTS>
+
+=item * C<STAT_FILESIZE>
+
+=item * C<STAT_ISDIR>
+
+=item * C<STAT_ISREG>
+
+=item * C<STAT_ISDEV>
+
+=item * C<STAT_ACCESSTIME>
+
+=item * C<STAT_MODIFYTIME>
+
+=item * C<STAT_CHANGETIME>
+
+=item * C<STAT_UID>
+
+=item * C<STAT_GID>
+
+=item * C<STAT_PLATFORM_DEV>
+
+=item * C<STAT_PLATFORM_INODE>
+
+=item * C<STAT_PLATFORM_MODE>
+
+=item * C<STAT_PLATFORM_NLINKS>
+
+=item * C<STAT_PLATFORM_DEVTYPE>
+
+=item * C<STAT_PLATFORM_MODE>
+
+=item * C<STAT_PLATFORM_NLINKS>
+
+=item * C<STAT_PLATFORM_DEVTYPE>
+
+=item * C<STAT_PLATFORM_BLOCKSIZE>
+
+=item * C<STAT_PLATFORM_BLOCKS>
+
+=back
+
+C<STAT_CREATETIME> and C<STAT_BACKUPTIME> are not supported and will return C<-1>.
+
 =cut
 
 */
@@ -141,6 +194,8 @@
 =item C<INTVAL Parrot_stat_info_intval(PARROT_INTERP, STRING *file, INTVAL
 thing)>
 
+Returns the stat field given by C<thing> of file C<file>.
+
 =cut
 
 */
@@ -164,6 +219,8 @@
 =item C<INTVAL Parrot_fstat_info_intval(PARROT_INTERP, INTVAL file, INTVAL
 thing)>
 
+Returns the fstat field given by C<thing> from file identifier C<file>.
+
 =cut
 
 */
@@ -184,6 +241,8 @@
 =item C<FLOATVAL Parrot_stat_info_floatval(PARROT_INTERP, STRING *filename,
 INTVAL thing)>
 
+Currently returns C<-1.0> and has no side effects.
+
 =cut
 
 */
@@ -199,6 +258,8 @@
 =item C<STRING * Parrot_stat_info_string(PARROT_INTERP, STRING *filename, INTVAL
 thing)>
 
+B<Not implemented.> Returns C<NULL>.
+
 =cut
 
 */

Modified: branches/dynop_mapping/config/gen/platform/generic/time.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/generic/time.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/generic/time.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
  */
 
 /*
@@ -11,7 +11,7 @@
 
 =head1 DESCRIPTION
 
-Time stuff
+Parrot time-related functions.
 
 =head2 Functions
 
@@ -28,6 +28,8 @@
 
 =item C<INTVAL Parrot_intval_time(void)>
 
+Parrot wrapper around standard library C<time()> function, returning an INTVAL.
+
 =cut
 
 */
@@ -43,6 +45,8 @@
 
 =item C<FLOATVAL Parrot_floatval_time(void)>
 
+Parrot wrapper around standard library C<time()> function, returning a FLOATVAL.
+
 =cut
 
 */
@@ -59,6 +63,8 @@
 
 =item C<void Parrot_sleep(unsigned int seconds)>
 
+Parrot wrapper around standard library C<sleep()> function.
+
 =cut
 
 */
@@ -90,6 +96,8 @@
 
 =item C<struct tm * Parrot_gmtime_r(const time_t *t, struct tm *tm)>
 
+Parrot wrapper around standard library C<gmtime_r()> function.
+
 =cut
 
 */
@@ -105,6 +113,8 @@
 
 =item C<struct tm * Parrot_localtime_r(const time_t *t, struct tm *tm)>
 
+Parrot wrapper around standard library C<localtime_r()> function.
+
 =cut
 
 */
@@ -120,6 +130,8 @@
 
 =item C<char* Parrot_asctime_r(const struct tm *tm, char *buffer)>
 
+Parrot wrapper around standard library C<asctime_r()> function.
+
 =cut
 
 */

Modified: branches/dynop_mapping/config/gen/platform/netbsd/math.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/netbsd/math.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/netbsd/math.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,7 +1,7 @@
 /* $Id$ */
 
 /*
- * Copyright (C) 2006-2007, Parrot Foundation.
+ * Copyright (C) 2006-2010, Parrot Foundation.
  */
 
 /*
@@ -12,7 +12,7 @@
 
 =head1 DESCRIPTION
 
-math stuff
+Mathematical functions.
 
 =head2 Functions
 
@@ -29,7 +29,7 @@
 
 =item C<extern int Parrot_signbit(double x)>
 
-return true if the Numval has a negative sign.
+Return true if the Numval has a negative sign.
 This is mostly for handling the -0.0 case.
 
 =cut
@@ -57,6 +57,8 @@
 
 =item C<int Parrot_signbit_l(long double x)>
 
+Like C<Parrot_signbit()>, only taking long double instead of double.
+
 =cut
 
 */

Modified: branches/dynop_mapping/config/gen/platform/openbsd/math.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/openbsd/math.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/openbsd/math.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2006-2007, Parrot Foundation.
+ * Copyright (C) 2006-2010, Parrot Foundation.
  */
 
 /*
@@ -11,7 +11,7 @@
 
 =head1 DESCRIPTION
 
-math stuff
+Mathematical functions.
 
 =head2 Functions
 
@@ -37,7 +37,7 @@
 
 =item C<extern int Parrot_signbit(double x)>
 
-return true if the Numval has a negative sign.
+Return true if the Numval has a negative sign.
 This is mostly for handling the -0.0 case.
 
 =cut
@@ -65,6 +65,8 @@
 
 =item C<int Parrot_signbit_l(long double x)>
 
+Like C<Parrot_signbit()>, only taking long double instead of double.
+
 =cut
 
 */

Modified: branches/dynop_mapping/config/gen/platform/solaris/math.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/solaris/math.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/solaris/math.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2006-2007, Parrot Foundation.
+ * Copyright (C) 2006-2010, Parrot Foundation.
  */
 
 /*
@@ -11,7 +11,7 @@
 
 =head1 DESCRIPTION
 
-math stuff
+Mathematical functions.
 
 =head2 Functions
 
@@ -35,7 +35,7 @@
 
 =item C<extern int Parrot_signbit(double x)>
 
-return true if the Numval has a negative sign.
+Return true if the Numval has a negative sign.
 This is mostly for handling the -0.0 case.
 
 =cut
@@ -63,6 +63,8 @@
 
 =item C<int Parrot_signbit_l(long double x)>
 
+Like C<Parrot_signbit()>, only taking long double instead of double.
+
 =cut
 
 */

Modified: branches/dynop_mapping/config/gen/platform/solaris/time.c
==============================================================================
--- branches/dynop_mapping/config/gen/platform/solaris/time.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/config/gen/platform/solaris/time.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2004-2006, Parrot Foundation.
+ * Copyright (C) 2004-2010, Parrot Foundation.
  */
 
 /*
@@ -11,7 +11,7 @@
 
 =head1 DESCRIPTION
 
-Time stuff
+Parrot time-related functions.
 
 =head2 Functions
 
@@ -28,6 +28,8 @@
 
 =item C<INTVAL Parrot_intval_time(void)>
 
+Parrot wrapper around standard library C<time()> function, returning an INTVAL.
+
 =cut
 
 */
@@ -43,6 +45,8 @@
 
 =item C<FLOATVAL Parrot_floatval_time(void)>
 
+Parrot wrapper around standard library C<time()> function, returning a FLOATVAL.
+
 =cut
 
 */
@@ -59,6 +63,8 @@
 
 =item C<void Parrot_sleep(unsigned int seconds)>
 
+Parrot wrapper around standard library C<sleep()> function.
+
 =cut
 
 */
@@ -90,6 +96,8 @@
 
 =item C<struct tm * Parrot_gmtime_r(const time_t *t, struct tm *tm)>
 
+Parrot wrapper around standard library C<gmtime_r()> function.
+
 =cut
 
 */
@@ -105,6 +113,8 @@
 
 =item C<struct tm * Parrot_localtime_r(const time_t *t, struct tm *tm)>
 
+Parrot wrapper around standard library C<localtime_r()> function.
+
 =cut
 
 */
@@ -120,6 +130,8 @@
 
 =item C<char* Parrot_asctime_r(const struct tm *tm, char *buffer)>
 
+Parrot wrapper around standard library C<asctime_r()> function.
+
 =cut
 
 */

Modified: branches/dynop_mapping/docs/book/pir/ch07_objects.pod
==============================================================================
--- branches/dynop_mapping/docs/book/pir/ch07_objects.pod	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/docs/book/pir/ch07_objects.pod	Sun Jul  4 06:24:50 2010	(r47981)
@@ -94,6 +94,53 @@
 
 =end PIR_FRAGMENT
 
+=head2 Instantiation
+
+With a created class, we can use the C<new> opcode to instantiate an object of
+that class in the same way we can instantiate a new PMC.
+
+=begin PIR_FRAGMENT
+
+    $P0 = newclass "Foo"
+    $P1 = new $P0
+
+=end PIR_FRAGMENT
+
+Or, if we don't have the class object handy, we can do it by name too:
+
+=begin PIR_FRAGMENT
+
+    $P1 = new "Foo"
+
+=end PIR_FRAGMENT
+
+PMCs have two VTABLE interface functions for dealing with instantiating a new
+object: C<init> and C<init_pmc>. The former is called when a new PMC is
+created, the later is called when a new PMC is created with an initialization
+argument.
+
+=begin PIR
+
+    .namespace ["Foo"]
+    .sub 'init' :vtable
+        say "Creating a new Foo"
+    .end
+
+    .sub 'init_pmc' :vtable
+        .param pmc args
+        print "Creating a new Foo with argument "
+        say args
+    .end
+
+    .namespace[]
+    .sub 'main' :main
+        $P1 = new ['Foo']       # init
+        $P2 = new ['Foo'], $P1  # init_pmc
+    .end
+
+=end PIR
+
+
 =head2 Methods
 
 X<methods>
@@ -346,7 +393,7 @@
 Classes defined in PIR using the C<newclass> opcode are instances of the
 C<Class> PMCX<Class PMC>. This PMC contains all the meta-information for
 the class, such as attribute definitions, methods, vtable overrides, and
-its inheritance hierarchy. The opcode C<inspect>X<inspect opcode> 
+its inheritance hierarchy. The opcode C<inspect>X<inspect opcode>
 provides a way to peek behind the curtain of encapsulation to see what
 makes a class tick. When called with no arguments, C<inspect> returns an
 associative array containing data on all characteristics of the class

Modified: branches/dynop_mapping/docs/embed.pod
==============================================================================
--- branches/dynop_mapping/docs/embed.pod	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/docs/embed.pod	Sun Jul  4 06:24:50 2010	(r47981)
@@ -288,12 +288,12 @@
 
 =over 4
 
-=item C<Parrot_PMC Parrot_find_global_cur(PARROT_INTERP, Parrot_String name)>
+=item C<Parrot_PMC Parrot_ns_find_current_namespace_global(PARROT_INTERP, Parrot_String name)>
 
 Find and return a global called C<name> in the current namespace.  Returns
 C<PMCNULL> if not found.
 
-=item C<Parrot_PMC Parrot_find_global_n(PARROT_INTERP, PMC namespace, Parrot_String name)>
+=item C<Parrot_PMC Parrot_ns_find_namespace_global(PARROT_INTERP, PMC namespace, Parrot_String name)>
 
 Search the namespace PMC C<namespace> for an object with name C<globalname>.
 Return the object, or NULL if not found.
@@ -303,7 +303,7 @@
 Find and return a global called C<name> in the namespace C<namespace>.  Returns
 C<PMCNULL> if not found.
 
-=item C<void Parrot_store_global_n(PARROT_INTERP, PMC namespace, Parrot_String name, Parrot_PMC val)>
+=item C<void Parrot_ns_store_global(PARROT_INTERP, PMC namespace, Parrot_String name, Parrot_PMC val)>
 
 Store the PMC C<val> into the namespace PMC C<namespace> with name C<globalname>.
 
@@ -467,7 +467,7 @@
 
         /* find the subroutine named "foo" in the global namespace */
         pstr = string_from_literal(interp, "foo");
-        sub = Parrot_find_global_cur(interp, pstr);
+        sub = Parrot_ns_find_current_namespace_global(interp, pstr);
 
         /* run foo(), which returns nothing */
 	Parrot_ext_call(interp, sub, "->");
@@ -709,13 +709,13 @@
 
 =item C<Parrot_find_encoding_converter>
 
-=item C<Parrot_find_global_cur>
+=item C<Parrot_ns_find_current_namespace_global>
 
 =item C<Parrot_find_global_k>
 
-=item C<Parrot_find_global_n>
+=item C<Parrot_ns_find_namespace_global>
 
-=item C<Parrot_find_global_op>
+=item C<Parrot_ns_find_global_from_op>
 
 =item C<Parrot_find_global_s>
 
@@ -725,7 +725,7 @@
 
 =item C<Parrot_find_method_with_cache>
 
-=item C<Parrot_find_name_op>
+=item C<Parrot_ns_find_named_item>
 
 =item C<Parrot_float_rand>
 
@@ -761,7 +761,7 @@
 
 =item C<Parrot_get_encoding>
 
-=item C<Parrot_get_global>
+=item C<Parrot_ns_get_global>
 
 =item C<Parrot_get_HLL_id>
 
@@ -775,9 +775,9 @@
 
 =item C<Parrot_get_namespace_autobase>
 
-=item C<Parrot_get_namespace_keyed>
+=item C<Parrot_ns_get_namespace_keyed>
 
-=item C<Parrot_get_namespace_keyed_str>
+=item C<Parrot_ns_get_namespace_keyed_str>
 
 =item C<Parrot_get_numreg>
 
@@ -949,11 +949,11 @@
 
 =item C<Parrot_make_default_encoding>
 
-=item C<Parrot_make_namespace_autobase>
+=item C<Parrot_ns_make_namespace_autobase>
 
-=item C<Parrot_make_namespace_keyed>
+=item C<Parrot_ns_make_namespace_keyed>
 
-=item C<Parrot_make_namespace_keyed_str>
+=item C<Parrot_ns_make_namespace_keyed_str>
 
 =item C<Parrot_mmd_cache_create>
 
@@ -1105,12 +1105,6 @@
 
 =item C<Parrot_PMC_get_integer_keyed_str>
 
-=item C<Parrot_PMC_get_intval>
-
-=item C<Parrot_PMC_get_intval_intkey>
-
-=item C<Parrot_PMC_get_intval_pmckey>
-
 =item C<Parrot_PMC_get_iter>
 
 =item C<Parrot_PMC_get_namespace>
@@ -1503,7 +1497,7 @@
 
 =item C<Parrot_set_flag>
 
-=item C<Parrot_set_global>
+=item C<Parrot_ns_set_global>
 
 =item C<Parrot_set_intreg>
 
@@ -1533,11 +1527,11 @@
 
 =item C<Parrot_srand>
 
-=item C<Parrot_store_global_n>
+=item C<Parrot_ns_store_global>
 
 =item C<Parrot_store_global_s>
 
-=item C<Parrot_store_sub_in_namespace>
+=item C<Parrot_ns_store_sub>
 
 =item C<Parrot_str_boolean>
 

Modified: branches/dynop_mapping/docs/parrothist.pod
==============================================================================
--- branches/dynop_mapping/docs/parrothist.pod	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/docs/parrothist.pod	Sun Jul  4 06:24:50 2010	(r47981)
@@ -109,5 +109,6 @@
 
  Gerd        2.3.0 *        2010-Apr-20     "Samoan Lory"
  Whiteknight 2.4.0          2010-May-18     "Sulfer Crest"
+ Gerd        2.5.0          2010-Jun-15     "Cheops"
 
 =cut

Modified: branches/dynop_mapping/docs/pdds/draft/pdd06_pasm.pod
==============================================================================
--- branches/dynop_mapping/docs/pdds/draft/pdd06_pasm.pod	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/docs/pdds/draft/pdd06_pasm.pod	Sun Jul  4 06:24:50 2010	(r47981)
@@ -18,9 +18,7 @@
 language for it for those people who may need to generate bytecode directly,
 rather than indirectly through a high-level language.
 
-{{ NOTE: out-of-date and incomplete. It seems that it would be more
-useful as a specification of the format of PASM than as a comprehensive
-listing of all opcodes. }}
+{{ NOTE: out-of-date and incomplete. }}
 
 =head2 Questions
 
@@ -84,7 +82,9 @@
 PC.
 
 All registers have a type prefix of P, S, I, or N, for PMC, string, integer,
-and number respectively.
+and number respectively. While parrot bytecode does not have a fixed limit
+on the number of registers, PASM has an implementation limit on the number of
+addressable registers of each type, currently set at 100 (0-99).
 
 =head2 Assembly Syntax
 
@@ -158,7 +158,7 @@
 
 =head2 Opcode List
 
-In the following list, there may be multiple (but unlisted) versions of an
+There may be multiple (but unlisted) versions of an
 opcode. If an opcode takes a register that might be keyed, the keyed version
 of the opcode has a _k suffix. If an opcode might take multiple types of
 registers for a single parameter, the opcode function really has a _x suffix,
@@ -184,831 +184,7 @@
 either a register or constant of the appropriate type (PMC, string, integer,
 or number)
 
-=head3 Control flow
-
-The control flow opcodes check conditions and manage program flow.
-
-=over 4
-
-=item if tx, ix
-
-Check register tx. If true, branch by X.
-
-=item unless tx, ix
-
-Check register tx. If false, branch by X.
-
-=item jump tx
-
-Jump to the address held in register x (Px, Sx, or Ix).
-
-=item branch tx
-
-Branch forward or backward by the amount in register x. (X may be either Ix,
-Nx, or Px) Branch offset may also be an integer constant.
-
-=back
-
-=head3 Data manipulation
-
-These ops handle manipulating the data in registers
-
-=over 4
-
-=item new Px, iy
-
-Create a new PMC of class y stored in PMC register x.
-
-=item destroy Px
-
-Destroy the PMC in register X, leaving it undef
-
-=item set tx, ty
-
-Copies y into x. Note that strings and PMCs are referred to by pointer, so if
-you do something like:
-
-   set S0, S1
-
-this will copy the pointer in S1 into S0, leaving B<both> registers pointing
-at the same string.
-
-=item exchange tx, ty
-
-Exchange the contents of registers X and Y, which must be of the same type.
-(Generally cheaper than using the stack as an intermediary when setting up
-registers for function calls)
-
-=item assign Px, ty
-
-Takes the contents of Y and assigns them into the existing PMC in X.
-
-While set just copies pointers from one register to another, assign actually
-does a value assignment, as:
-
-    $foo = $bar;
-
-X's assign vtable function is invoked and it does whatever is appropriate.
-
-=item clone Px, Py
-
-=item clone Sx, xy
-
-Performs a "deeper" copy of y into x, using the vtable appropriate to the
-class of Py if cloning a PMC.
-
-=item tostring Sx, ty, Iz
-
-Take the value in register y and convert it to a string of type z, storing the
-result in string register x.
-
-=item add tx, ty, tz *
-
-Add registers y and z and store the result in register x. (x = y + z) The
-registers must all be the same type, PMC, integer, or number.
-
-=item sub tx, ty, tz *
-
-Subtract register z from register y and store the result in register x. (x = y
-- z) The registers must all be the same type, PMC, integer, or number.
-
-=item mul tx, ty, tz *
-
-Multiply register y by register z and store the results in register x. The
-registers must be the same type.
-
-=item div tx, ty, tz *
-
-Divide register y by register z, and store the result in register x.
-
-=item inc tx, nn *
-
-Increment register x by nn. nn is an integer constant. If nn is omitted,
-increment is 1.
-
-=item dec tx, nn *
-
-Decrement register x by nn. nn is an integer constant. If nn is omitted,
-decrement by 1.
-
-=item length Ix, Sy
-
-Put the length of string y into integer register x.
-
-=item concat Sx, Sy
-
-Add string y to the end of string x.
-
-=item repeat Sx, Sy, iz
-
-Copies string y z times into string x.
-
-=back
-
-=head3 Transcendental operations
-
-These opcodes handle the transcendental math functions. The destination
-register here must always be either a numeric or a PMC register.
-
-=over 4
-
-=item sin nx, ty
-
-Return the sine of the number in Y
-
-=item cos nx, ty
-
-Return the cosine of the number in Y
-
-=item tan nx, ty
-
-Return the tangent of the number in Y
-
-=item sec nx, ty
-
-Return the secant of the number in Y
-
-=item atan nx, ty
-
-Return the arctangent of Y
-
-=item atan2 nx, ty
-
-Return the result of atan2 of Y
-
-=item asin nx, ty
-
-Return the arcsine of y
-
-=item acos nx, ty
-
-Return the arccosine of y
-
-=item asec nx, ty
-
-Return the arcsecant of y
-
-=item cosh nx, ty
-
-Return the hyperbolic cosine of y
-
-=item sinh nx, ty
-
-Return the hyperbolic sine of y
-
-=item tanh nx, ty
-
-Return the hyperbolic tangent of y
-
-=item sech nx, ty
-
-Return the hyperbolic secant of y
-
-=item log2 nx, ty
-
-Return the base 2 log of y
-
-=item log10 nx, ty
-
-Return the base 10 log of y
-
-=item ln Nx, ty
-
-Return the base e log of y
-
-=item log nx, ty, tz
-
-Return the base Z log of Y
-
-=item pow nx, ty, tz
-
-Return Y to the Z power
-
-=item exp nx, ty
-
-Return e to the Y power
-
-=back
-
-=head3 Register and stack ops
-
-These opcodes deal with registers and stacks
-
-=over 4
-
-=item clearp
-
-Clean out the current set of PMC registers, setting them to NULL
-
-=item cleari
-
-Clean out the current set of I registers, setting them to 0
-
-=item clears
-
-Clean out the current set of S registers, setting them to NULL
-
-=item clearn
-
-Clean out the current set of N registers, setting them to 0
-
-=item null tx
-
-Set register X to a null value; for S and P registers, this will be NULL,
-while for I and N registers it is 0
-
-=item save tx
-
-Push register or constant X onto the generic stack
-
-=item restore tx
-
-Restore register X from the generic stack by popping off the topmost entry.
-The type of this entry must match the register type.
-
-=item entrytype Ix, iy
-
-Put the type of generic stack entry Y into integer register X
-
-=item depth Ix
-
-Get the current depth of the generic stack
-
-=item lookback tx, iy
-
-Fetch the entry that's at position Y from the top of the generic stack. This
-does not remove an entry from the stack, merely fetches the entry off it.
-
-0 is the entry at the top of the stack, 1 is the entry immediately previous to
-that, and so on. Entry -1 is the very bottom-most entry in the stack. (While
-the stack may be a tree when looked at from the bottom up,  you don't have
-access to any other branches when looking this way).
-
-=back
-
-=head3 Names, pads, and globals
-
-These operations are responsible for finding names in lexical or global
-scopes, as well as storing data into those slots.  A static scope is captured
-by a scratchpad.  The current dynamic scope is represented by the state of the
-lexical stack (which contains scratchpads).  For more detail on these ops see
-the inline POD documentation in F<ops/var.ops>.
-
-=over 4
-
-=item store_lex sx, Py
-
-=item find_lex Px, sy
-
-Instructions for storing in, and retrieving from, the scratchpad associated
-with the current context.
-
-=item find_global Px, sy, sz
-
-Find the PMC for the global variable sy from the table sz and store it in
-register X
-
-{{ DEPRECATED: op find_global was deprecated }}
-
-=item find_global Px, sy
-
-Find the PMC for the global in the default table and put it in X.
-
-{{ DEPRECATED: op find_global was deprecated }}
-
-=item find_global_table Px, sy
-
-Find the global symbol table Y and store its PMC in X
-
-=item find_global_slot ix, Py, sz
-
-Find the slot in the global table Y for the global named Z, and store its slot
-in register X.
-
-=item fetch_global Px, Py, iz
-
-Fetch the global in slot Z of the symbol table pointed to by Y
-
-=item store_global Px, sy
-
-Store X in the default global symbol table with a name of Y.
-
-{{ DEPRECATED: op store_global was deprecated }}
-
-=back
-
-=head3 Exceptions
-
-These opcodes deal with exception handling at the lowest level. Exception
-handlers are dynamically scoped, and any exception handler set in a scope will
-be removed when that scope is exited.
-
-=over 4
-
-=item set_eh Px
-
-Sets an exception handler in place. The code referred to by register Px will
-get called if an exception is thrown while the exception handler is in scope.
-
-=item pop_eh
-
-Pop the most recently placed exception off the handler stack.
-
-=item throw Px
-
-Throw an exception represented by the object in PMC register x.
-
-=item rethrow Px
-
-Only valid inside an exception handler. Rethrow the exception represented by
-the object in PMC register x. This object may have been altered by the
-exception handler.
-
-=back
-
-=head3 Object things
-
-These opcodes deal with PMCs as objects, rather than as opaque data items.
-
-=over 4
-
-=item find_method Px, Py, tz
-
-Find the method Z for object Y, and return a PMC for it in X.
-
-=item callmethod Px, ty
-
-=item set_attribute Px, ty, tz
-
-=item can Ix, Py, sz
-
-Sets X to TRUE if object Y can perform method Z; otherwise, X is set to FALSE.
-
-=item does Ix, Py, sz
-
-Sets X to TRUE if object Y can implements interface Z; otherwise, X is  set to
-FALSE.
-
-=item isa Px, ty
-
-=back
-
-=head3 Module handling
-
-These opcodes deal with loading in bytecode or executable code libraries, and
-fetching info about those libraries. This is all dealing with precompiled
-bytecode or shared libraries.
-
-=over 4
-
-=item load_bytecode sx
-
-Load in the bytecode in file X. Search the library path if need be.
-
-=item load_opcode_lib sx, iy
-
-Load in the opcode library X, starting at opcode number Y. Search the path if
-needed.
-
-=item load_string_lib sx
-
-Load in the string handling library named X
-
-=item get_op_count sx
-
-Return the number of opcodes in opcode library X
-
-=item get_string_name sx
-
-Get the name of the string encoding that the library X handles
-
-=item find_string_lib sx, sy
-
-Find the string library that handles strings of type Y. Return its name in X.
-
-=back
-
-=head3 I/O operations
-
-Reads and writes read and write records, for some value of record.
-
-=over 4
-
-=item new_fh px
-
-Create a new filehandle px
-
-=item open px, sy
-
-Open the file Y on filehandle X
-
-=item read px, py, pz
-
-Issue a read on the filehandle in y, and put the result in PMC X. PMC Z is the
-sync object.
-
-=item write px, sy, pz
-
-Write the string Y to filehandle X. PMC Z is the sync object.
-
-=item wait px
-
-Wait for the I/O operation represented by sync object X to finish
-
-=item readw px, py
-
-Read from filehandle Y and put the results in PMC X. Blocks until the read
-completes.
-
-=item writew px, sy
-
-Write string Y to filehandle X, waiting for the write to complete.
-
-=item seek px, ty
-
-Seek filehandle X to position Y.
-
-=item tell tx, py
-
-Return the current position of filehandle Y and put it in X. Returns -1 for
-filehandles where this can't be determined. (Such as stream connections)
-
-=item status px, py, tz
-
-Get informational item Z for filehandle Y and put the result in X. This
-fetches things like the number of entries in the IO pipe, number of
-outstanding I/O ops, number of ops on the filehandle, and so forth.
-
-=back
-
-=head3 Threading ops
-
-=over 4
-
-=item lock Px
-
-Take out a high-level lock on the PMC in register X
-
-=item unlock Px
-
-Unlock the PMC in register X
-
-=item pushunlock Px
-
-Push an unlock request on the stack
-
-=back
-
-=head3 Interpreter ops
-
-=over 4
-
-=item newinterp Px, flags
-
-Create a new interpreter in X, using the passed flags.
-
-=item runinterp Px, iy
-
-Jump into interpreter X and run the code starting at offset Y from the current
-location. (This is temporary until we get something better)
-
-=item callout Pw, Px, sy, pz
-
-Call routine Y in interpreter x, passing it the list of parameters Z. W is a
-synchronization object returned. It can be waited on like the sync objects
-returned from async I/O routines.
-
-=item interpinfo Ix, iy
-
-Get information item Y and put it in register X. Currently defined are:
-
-=over 4
-
-=item 1 TOTAL_MEM_ALLOC
-
-The total amount of system memory allocated for later parceling out to
-Buffers.  Doesn't include any housekeeping memory, memory for Buffer or PMC
-structs, or things of that nature.
-
-=item 2 GC_MARK_RUNS
-
-The total number of garbage collection mark runs that have been made.
-
-=item 3 GC_COLLECT_RUNS
-
-The total number of garbage collection sweep runs that have been made.
-
-=item 4 ACTIVE_PMCS
-
-The number of PMCs considered active. This means the GC scan hasn't noted
-them as dead.
-
-=item 5 ACTIVE_BUFFERS
-
-The number of Buffers (usually STRINGs but could be other things) considered
-active.
-
-=item 6 TOTAL_PMCS
-
-The total number of PMCs the interpreter has available. Includes both active
-and free PMCs
-
-=item 7 TOTAL_BUFFERS
-
-The total number of Buffer structs the interpreter has available.
-
-=item 8 HEADERS_ALLOC_SINCE_COLLECT
-
-The number of new Buffer header block allocations that have been made since
-the last GC mark run. (Buffers, when allocated, are allocated in chunks)
-
-=item 9 MEM_ALLOCS_SINCE_COLLECT
-
-The number of times we've requested a block of memory from the system for
-allocation to Buffers since the last time we compacted the memory heap.
-
-=back
-
-=back
-
-=head3 Garbage collection
-
-=over 4
-
-=item sweep
-
-Fire off a dead object sweep
-
-=item collect
-
-Fire off a garbage collection sweep
-
-=item pausecollect
-
-Pause the garbage collector. No collections will be done for this interpreter
-until the collector is unpaused.
-
-=item resumecollect
-
-Unpause the collector. This doesn't necessarily do a GC run, merely allows the
-interpreter to fire one off when it deems it necessary.
-
-=back
-
-=head3 Key operations
-
-Keys are used to get access to individual elements of an aggregate variable.
-This is done to allow for opaque, packed, and multidimensional aggregate
-types.
-
-A key entry may be an integer, string, or PMC. Integers are used for array
-lookups, strings for hash lookups, and PMCs for either.
-
-=over 4
-
-=item new_key Sx
-
-Create a new key structure and put a pointer to it in register X.
-
-=item clone_key Sx, ky
-
-Make a copy of the key Y and put a pointer to it in register X. Y may be
-either an S register or a constant.
-
-=item size_key Sx, iy
-
-Make the key structure X large enough to hold Y key entries
-
-=item key_size Ix, ky
-
-Put the number of elements in key Y into integer register X.
-
-=item toss_key Sx
-
-Nuke key X. Throws the structure away and invalidates the register.
-
-=item ke_type Ix, ky, iz
-
-Put the type of key Y's entry Z in register X. Current values are 0, 1, and 2
-for Integer, String, and PMC, respectively.
-
-=item ke_value tx, ky, iz
-
-Put the value from key Y, entry Z into register X.
-
-=item chop_key Sx
-
-Toss the topmost entry from key X.
-
-=item inc_key Sx, iy
-
-Increment entry Y of key X by one.
-
-=item set_key Sw, [isp]x, iy[, iz]
-
-Set key W, offset Y, to value X. If X is a PMC, then the fourth operand must
-be specified. It can have a value of 0, 1, or 2, corresponding to integer,
-string, or object. Aggregates use this to figure out how to treat the key
-entry.
-
-=back
-
-=head3 Properties
-
-Properties are a sort of runtime note attached to a PMC. Any PMC can have
-properties on it. Properties live in a flat namespace, and they are not in any
-way associated with the class of the PMC that they are attached to.
-
-Properties may be used for runtime notes on variables, or other metadata that
-may change. They are not for object attributes.
-
-=over 4
-
-=item setprop Px, sy, Pz
-
-Set the property named Y of PMC X to the PMC in Z
-
-=item getprop Px, sy, Pz
-
-Get the property named Y from PMC Z and put the result in register X. Returns
-a NULL if the property doesn't exist.
-
-=item delprop Px, sy
-
-Delete the property Y from PMC X
-
-=item prophash Px, Py
-
-Fetch the properties from Y, put them in a Hash, and put the Hash in X.
-
-=back
-
-=head3 Symbolic support for HLLs
-
-=over 4
-
-=item setline ix
-
-Sets the 'current line' marker.
-
-=item setfile sx
-
-Sets the 'current file' marker.
-
-=item setpackage sx
-
-Sets the 'current package' marker.
-
-=item getline ix
-
-Fetches the 'current line' marker.
-
-=item getfile sx
-
-Fetches the 'current file' marker.
-
-=item getpackage sx
-
-Fetches the 'current package' marker.
-
-=back
-
-=head3 Foreign library access
-
-These are the ops we use to load in and interface to non-parrot libraries.
-
-=over 4
-
-=item loadlib Px, Sy
-
-Load in the library whose name is specified by y, and put a handle to it into
-P register x.
-
-=item dlfunc Pw, Px, Sy, Sz
-
-Find a routine named Y, in library X (which you did, of course, open with
-loadlib), and put a sub PMC onto W for it. You can call this sub as if it were
-any other parrot subroutine.
-
-Z has the function signature, which tells Parrot how to build the interface
-from parrot (and parrot's calling conventions) to the calling conventions of
-the library routine. Yes, this does mean that you must know the function
-signature, but if you don't know that why the heck would you be invoking the
-function, right?
-
-The signature is a series of 1 or more characters, representing the types for
-the call. The first character is the return type, while the rest are the
-parameters. The types are:
-
-=over 4
-
-=item v
-
-Void. As a return type indicates that there I<is> no return type. As a
-parameter indicates that there are no parameters. Can't be mixed with other
-parameter types.
-
-=item c
-
-Char. This is an integer type, taken from (or put into) an I register.
-
-=item s
-
-short. An integer type, taken from 0 or put into an I register
-
-=item i
-
-int. An integer type.
-
-=item l
-
-long. An integer type. You know the drill.
-
-=item f
-
-float. F register denizen.
-
-=item d
-
-double. F register, double-precision floating point type
-
-=item p
-
-PMC thingie. A generic pointer, taken from or stuck into a PMC's data pointer.
-If this is a return type, parrot will create a new UnManagedStruct PMC type,
-which is just a generic "pointer so some damn thing or other" PMC type which
-Parrot does I<no> management of.
-
-=item t
-
-string pointer. Taken from, or stuck into, a string register. (Converted to a
-null-terminated C string before passing in)
-
-=back
-
-So the signature for, for example, this SDL routine:
-
-   int SDL_BlitSurface(SDL_Surface *src,
-                       SDL_Rect    *srcrect,
-                       SDL_Surface *dst,
-                       SDL_Rect    *dstrect);
-
-would be C<ipppp>, since it returns an integer and takes four pointers.
-Presumably previous calls would have set those pointers up properly.
-
-Do note that parrot makes no guarantees as to the behaviour of the libraries,
-and currently does no type checking on the input parameters. We will fix that
-later.
-
-The generated routine follows the calling conventions in PDD03. Note that int,
-string, pmc, and float parameters are counted separately. So if you have a
-signature of C<ippiidd> the return goes into I5, and the parameters come from
-P5, P6, I5, I6, N5, and N6, respectively. A signature of C<ipdiidp> has the
-identical same set of registers used (and in the same order).
-
-=item invoke
-
-Invoke a subroutine in P0. Presumes that all the registers are set up right
-for the call. The invoked subroutine I<must> preserve any registers that are
-not explicitly return parameters or calling convention metadata parameters.
-(Such as the number of I reg parameters, for example)
-
-=back
-
-=head3 Runtime compilation
-
-These opcodes deal with runtime creation of bytecode and compilation of source
-code.
-
-=over 4
-
-=item compile Px, Py, Sz
-
-Compile source string Z, with compiler unit Y, and stick a handle to a
-subroutine for the resulting bytecode segment (already loaded into the current
-interpreter) into X.
-
-Y is a assembler/compiler object of some sort, as registered with the
-B<compreg> opcode or the Parrot_compreg function. This will be something like
-"Perl5", "Perl6", "Perl5RE", "Perl6RE", "Python", "Ruby"... you get the
-picture.
-
-Imcc registers "PASM" and "PIR" compilers automatically.
-
-This is a high-level op, with the assumption that the resulting sub will be
-called. It's the equivalent of perl 5's string eval, except for the actual
-execution of the resulting code.
-
-=item compreg Px, Sy
-
-Get a compiler for source type Y.
-
-=item compreg Sx, Py
-
-Register the sub Y as a parser/compiler function named X. It will be called
-whenever anyone invokes the compile op with the name X.
-
-=back
+L<docs/ops> for a list of current parrot opcodes, 
 
 =head2 References
 

Modified: branches/dynop_mapping/docs/pdds/draft/pdd11_extending.pod
==============================================================================
--- branches/dynop_mapping/docs/pdds/draft/pdd11_extending.pod	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/docs/pdds/draft/pdd11_extending.pod	Sun Jul  4 06:24:50 2010	(r47981)
@@ -73,13 +73,13 @@
 A keyed version of C<Parrot_PMC_get_pointer>. Returns the pointer value of
 whatever is stored at the element of the PMC indexed by C<key>.
 
-=item C<Parrot_PMC_get_intval(interp, pmc)>
+=item C<Parrot_PMC_get_integer(interp, pmc)>
 
 Returns the integer value of the PMC.
 
-=item C<Parrot_PMC_get_intval_intkey(interp, pmc, Parrot_Int key)>
+=item C<Parrot_PMC_get_integer_keyed_int(interp, pmc, Parrot_Int key)>
 
-A keyed version of C<Parrot_PMC_get_intval>. Returns the integer value of
+A keyed version of C<Parrot_PMC_get_integer>. Returns the integer value of
 whatever is stored at the element of the PMC indexed by C<key>.
 
 =item C<Parrot_PMC_get_numval(interp, pmc)>

Modified: branches/dynop_mapping/docs/pdds/pdd28_strings.pod
==============================================================================
--- branches/dynop_mapping/docs/pdds/pdd28_strings.pod	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/docs/pdds/pdd28_strings.pod	Sun Jul  4 06:24:50 2010	(r47981)
@@ -583,7 +583,7 @@
 =head4 string_make
 
 A crippled version of a string initializer, now replaced with the full version
-C<Parrot_string_new_init>.
+C<Parrot_str_new_init>.
 
 =head4 string_capacity
 

Modified: branches/dynop_mapping/docs/project/release_manager_guide.pod
==============================================================================
--- branches/dynop_mapping/docs/project/release_manager_guide.pod	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/docs/project/release_manager_guide.pod	Sun Jul  4 06:24:50 2010	(r47981)
@@ -118,10 +118,23 @@
 
 =item f
 
+In the two files F<src/ops/core_ops.c> and F<include/parrot/oplib/core_ops.h>
+is the function C<Parrot_DynOp_core_a_b_c>, which has a name that includes
+the version number. a_b_c is the version number. You have to update this
+version number on two places in the file F<src/ops/core_ops.c>.
+In the file F<include/parrot/oplib/core_ops.h> you have to change this line:
+
+ op_lib_t *Parrot_DynOp_core_a_b_c(PARROT_INTERP, long init);
+
+Ignore the warning to not edit this files. It is necessary to edit this files,
+so that "make" builds with the increased version number.
+
+=item g
+
 Configure parrot and run C<make distro_tests>, and either fix
 what those tests complain about, or fix them so they don't complain.
 
-=item g
+=item h
 
 If this is a developer release, or there have been no new entries to the
 F<PBC_COMPAT> file, skip this step.
@@ -142,7 +155,7 @@
 built for this to work, and that this script will reconfigure and rebuild
 Parrot with various primitive size options.
 
-=item h
+=item i
 
 Make sure everything works:
 
@@ -218,9 +231,11 @@
 
  $ mkdir ~/ftp/releases/supported/a.b.c
 
-Copy the different compressed tarballs from your machine into the new directory.
+Copy the different compressed tarballs and the according checksum files from
+your machine into the new directory.
 
  $ scp parrot-a.b.c.tar.gz parrot-a.b.c.tar.bz2 \
+       parrot-a.b.c.tar.gz.sha256 parrot-a.b.c.tar.bz2.sha256 \
    <USERNAME>@ftp-osl.osuosl.org:~/ftp/releases/devel/a.b.c/.
 
 (Or using C<wget> or whatever tool you prefer.)
@@ -394,10 +409,13 @@
 visible at
 L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
 
- - Jun 15, 2010 - 2.5  - gerd
- - Jul 20, 2010 - 2.6* - coke
- - Aug 17, 2010 - 2.7  - ??
- - Sep 21, 2010 - 2.8  - gerd
+ - Jul 20, 2010 - 2.6*  - coke
+ - Aug 17, 2010 - 2.7   - mikehh
+ - Sep 21, 2010 - 2.8   - gerd
+ - Oct 19, 2010 - 2.9*  - ??
+ - Nov 16, 2010 - 2.10  - ??
+ - Dec 21, 2010 - 2.11  - ??
+ - Jan 18, 2010 - 3.0*  - ??
 
 =cut
 

Modified: branches/dynop_mapping/editor/mk_skeleton.pir
==============================================================================
--- branches/dynop_mapping/editor/mk_skeleton.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/editor/mk_skeleton.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -4,6 +4,7 @@
 # Generate a skeleton PIR file that adheres to parrot developer standards.
 # intended for people who hack on parrot itself, not users of parrot.
 
+.loadlib 'sys_ops'
 .include 'tm.pasm'
 
 .sub 'main' :main

Modified: branches/dynop_mapping/examples/compilers/japhc.c
==============================================================================
--- branches/dynop_mapping/examples/compilers/japhc.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/examples/compilers/japhc.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -69,6 +69,8 @@
 
 =item C<static int unescape(char *string)>
 
+Unescape a string.
+
 =cut
 
 */

Modified: branches/dynop_mapping/examples/io/http.pir
==============================================================================
--- branches/dynop_mapping/examples/io/http.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/examples/io/http.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -13,9 +13,7 @@
 
 HTTP client, connects to WWW port and grabs a page (L<http://www.ibm.com>).
 
-You should be running the echo service on your box (port 7). Be sure to
-set C<PARROT_NET_DEVEL> to 1 in F<io/io_private.h> and rebuld Parrot or
-the network layer won't exist.
+You should be running the echo service on your box (port 7).
 
 =cut
 

Modified: branches/dynop_mapping/examples/io/httpd.pir
==============================================================================
--- branches/dynop_mapping/examples/io/httpd.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/examples/io/httpd.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -270,7 +270,6 @@
 
 ERR_NO_SOCKET:
     print "Could not open socket.\n"
-    print "Did you enable PARROT_NET_DEVEL in include/io_private.h?\n"
     end
 ERR_bind:
     print "bind failed\n"

Modified: branches/dynop_mapping/examples/pir/make_hello_pbc.pir
==============================================================================
--- branches/dynop_mapping/examples/pir/make_hello_pbc.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/examples/pir/make_hello_pbc.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -66,6 +66,7 @@
     $P0['ns_entry_name']= 'hello'
     $P0['method']       = ''
     $P0['HLL_id']       = 0
+    $P0['vtable_index'] = -1 # It required to store sub in namespace
 
     $P1 = new 'Sub', $P0
     # and store it in PackfileConstantTable
@@ -78,7 +79,7 @@
 
     $P1 = new 'PackfileFixupEntry'
     $P1 = 'hello'
-    $P1.'set_type'(2)
+    $P1.'set_type'(1)
     $P1 = 5 # offset
     pffixup[0] = $P1
 

Modified: branches/dynop_mapping/ext/Parrot-Embed/lib/Parrot/Embed.xs
==============================================================================
--- branches/dynop_mapping/ext/Parrot-Embed/lib/Parrot/Embed.xs	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/ext/Parrot-Embed/lib/Parrot/Embed.xs	Sun Jul  4 06:24:50 2010	(r47981)
@@ -153,26 +153,26 @@
             ns_str += 2;
 
             if (!ns)
-                ns = Parrot_find_global_cur(real_interp,
+                ns = Parrot_ns_find_current_namespace_global(real_interp,
                     Parrot_str_new_constant(real_interp, prev));
             else
-                ns = Parrot_find_global_n(real_interp, ns,
+                ns = Parrot_ns_find_namespace_global(real_interp, ns,
                     Parrot_str_new_constant(real_interp, prev));
             prev    = ns_str;
         }
 
         if (!ns)
-            ns = Parrot_find_global_cur(real_interp,
+            ns = Parrot_ns_find_current_namespace_global(real_interp,
                 Parrot_str_new_constant(real_interp, prev));
         else
-            ns = Parrot_find_global_n(real_interp, ns,
+            ns = Parrot_ns_find_namespace_global(real_interp, ns,
                 Parrot_str_new_constant(real_interp, prev));
 
-        pmc          = Parrot_find_global_n(real_interp, ns, p_global);
+        pmc          = Parrot_ns_find_namespace_global(real_interp, ns, p_global);
         Safefree(ns_copy);
     }
     else
-        pmc         = Parrot_find_global_cur( real_interp, p_global );
+        pmc         = Parrot_ns_find_current_namespace_global( real_interp, p_global );
 
     RETVAL = make_pmc( aTHX_ ST(0), pmc );
 OUTPUT:

Modified: branches/dynop_mapping/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/dynop_mapping/ext/nqp-rx/src/stage0/HLL-s0.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/ext/nqp-rx/src/stage0/HLL-s0.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -902,7 +902,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1275811471.14938")
+.sub "_block11"  :anon :subid("10_1277356884.2847")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
@@ -919,15 +919,15 @@
     $P348 = $P14()
 .annotate 'line', 1
     .return ($P348)
-    .const 'Sub' $P350 = "106_1275811471.14938" 
+    .const 'Sub' $P350 = "106_1277356884.2847" 
     .return ($P350)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post107") :outer("10_1275811471.14938")
+.sub "" :load :init :subid("post107") :outer("10_1277356884.2847")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1275811471.14938" 
+    .const 'Sub' $P12 = "10_1277356884.2847" 
     .local pmc block
     set block, $P12
     $P353 = get_root_global ["parrot"], "P6metaclass"
@@ -936,83 +936,83 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1275811471.14938") :outer("10_1275811471.14938")
+.sub "_block13"  :subid("11_1277356884.2847") :outer("10_1277356884.2847")
 .annotate 'line', 5
-    .const 'Sub' $P334 = "103_1275811471.14938" 
+    .const 'Sub' $P334 = "103_1277356884.2847" 
     capture_lex $P334
-    .const 'Sub' $P327 = "101_1275811471.14938" 
+    .const 'Sub' $P327 = "101_1277356884.2847" 
     capture_lex $P327
-    .const 'Sub' $P314 = "98_1275811471.14938" 
+    .const 'Sub' $P314 = "98_1277356884.2847" 
     capture_lex $P314
-    .const 'Sub' $P282 = "93_1275811471.14938" 
+    .const 'Sub' $P282 = "93_1277356884.2847" 
     capture_lex $P282
-    .const 'Sub' $P276 = "91_1275811471.14938" 
+    .const 'Sub' $P276 = "91_1277356884.2847" 
     capture_lex $P276
-    .const 'Sub' $P271 = "89_1275811471.14938" 
+    .const 'Sub' $P271 = "89_1277356884.2847" 
     capture_lex $P271
-    .const 'Sub' $P265 = "87_1275811471.14938" 
+    .const 'Sub' $P265 = "87_1277356884.2847" 
     capture_lex $P265
-    .const 'Sub' $P259 = "85_1275811471.14938" 
+    .const 'Sub' $P259 = "85_1277356884.2847" 
     capture_lex $P259
-    .const 'Sub' $P254 = "83_1275811471.14938" 
+    .const 'Sub' $P254 = "83_1277356884.2847" 
     capture_lex $P254
-    .const 'Sub' $P249 = "81_1275811471.14938" 
+    .const 'Sub' $P249 = "81_1277356884.2847" 
     capture_lex $P249
-    .const 'Sub' $P244 = "79_1275811471.14938" 
+    .const 'Sub' $P244 = "79_1277356884.2847" 
     capture_lex $P244
-    .const 'Sub' $P239 = "77_1275811471.14938" 
+    .const 'Sub' $P239 = "77_1277356884.2847" 
     capture_lex $P239
-    .const 'Sub' $P234 = "75_1275811471.14938" 
+    .const 'Sub' $P234 = "75_1277356884.2847" 
     capture_lex $P234
-    .const 'Sub' $P229 = "73_1275811471.14938" 
+    .const 'Sub' $P229 = "73_1277356884.2847" 
     capture_lex $P229
-    .const 'Sub' $P224 = "71_1275811471.14938" 
+    .const 'Sub' $P224 = "71_1277356884.2847" 
     capture_lex $P224
-    .const 'Sub' $P219 = "69_1275811471.14938" 
+    .const 'Sub' $P219 = "69_1277356884.2847" 
     capture_lex $P219
-    .const 'Sub' $P208 = "65_1275811471.14938" 
+    .const 'Sub' $P208 = "65_1277356884.2847" 
     capture_lex $P208
-    .const 'Sub' $P195 = "63_1275811471.14938" 
+    .const 'Sub' $P195 = "63_1277356884.2847" 
     capture_lex $P195
-    .const 'Sub' $P183 = "61_1275811471.14938" 
+    .const 'Sub' $P183 = "61_1277356884.2847" 
     capture_lex $P183
-    .const 'Sub' $P176 = "59_1275811471.14938" 
+    .const 'Sub' $P176 = "59_1277356884.2847" 
     capture_lex $P176
-    .const 'Sub' $P167 = "57_1275811471.14938" 
+    .const 'Sub' $P167 = "57_1277356884.2847" 
     capture_lex $P167
-    .const 'Sub' $P160 = "55_1275811471.14938" 
+    .const 'Sub' $P160 = "55_1277356884.2847" 
     capture_lex $P160
-    .const 'Sub' $P151 = "53_1275811471.14938" 
+    .const 'Sub' $P151 = "53_1277356884.2847" 
     capture_lex $P151
-    .const 'Sub' $P144 = "51_1275811471.14938" 
+    .const 'Sub' $P144 = "51_1277356884.2847" 
     capture_lex $P144
-    .const 'Sub' $P135 = "49_1275811471.14938" 
+    .const 'Sub' $P135 = "49_1277356884.2847" 
     capture_lex $P135
-    .const 'Sub' $P128 = "47_1275811471.14938" 
+    .const 'Sub' $P128 = "47_1277356884.2847" 
     capture_lex $P128
-    .const 'Sub' $P121 = "45_1275811471.14938" 
+    .const 'Sub' $P121 = "45_1277356884.2847" 
     capture_lex $P121
-    .const 'Sub' $P111 = "43_1275811471.14938" 
+    .const 'Sub' $P111 = "43_1277356884.2847" 
     capture_lex $P111
-    .const 'Sub' $P103 = "41_1275811471.14938" 
+    .const 'Sub' $P103 = "41_1277356884.2847" 
     capture_lex $P103
-    .const 'Sub' $P93 = "40_1275811471.14938" 
+    .const 'Sub' $P93 = "40_1277356884.2847" 
     capture_lex $P93
-    .const 'Sub' $P87 = "38_1275811471.14938" 
+    .const 'Sub' $P87 = "38_1277356884.2847" 
     capture_lex $P87
-    .const 'Sub' $P82 = "36_1275811471.14938" 
+    .const 'Sub' $P82 = "36_1277356884.2847" 
     capture_lex $P82
-    .const 'Sub' $P74 = "34_1275811471.14938" 
+    .const 'Sub' $P74 = "34_1277356884.2847" 
     capture_lex $P74
-    .const 'Sub' $P68 = "32_1275811471.14938" 
+    .const 'Sub' $P68 = "32_1277356884.2847" 
     capture_lex $P68
-    .const 'Sub' $P62 = "30_1275811471.14938" 
+    .const 'Sub' $P62 = "30_1277356884.2847" 
     capture_lex $P62
-    .const 'Sub' $P56 = "28_1275811471.14938" 
+    .const 'Sub' $P56 = "28_1277356884.2847" 
     capture_lex $P56
-    .const 'Sub' $P23 = "14_1275811471.14938" 
+    .const 'Sub' $P23 = "14_1277356884.2847" 
     capture_lex $P23
-    .const 'Sub' $P15 = "12_1275811471.14938" 
+    .const 'Sub' $P15 = "12_1277356884.2847" 
     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_1275811471.14938" 
+    .const 'Sub' $P334 = "103_1277356884.2847" 
     capture_lex $P334
 .annotate 'line', 5
     .return ($P334)
-    .const 'Sub' $P345 = "105_1275811471.14938" 
+    .const 'Sub' $P345 = "105_1277356884.2847" 
     .return ($P345)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "ws"  :subid("12_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1116,7 +1116,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1275811471.14938") :method
+.sub "!PREFIX__ws"  :subid("13_1277356884.2847") :method
 .annotate 'line', 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1125,7 +1125,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "termish"  :subid("14_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 5
     .local string rx24_tgt
     .local int rx24_pos
@@ -1218,7 +1218,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1275811471.14938") :method
+.sub "!PREFIX__termish"  :subid("15_1277356884.2847") :method
 .annotate 'line', 5
     new $P26, "ResizablePMCArray"
     push $P26, ""
@@ -1227,7 +1227,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1275811471.14938") :method
+.sub "term"  :subid("16_1277356884.2847") :method
 .annotate 'line', 13
     $P33 = self."!protoregex"("term")
     .return ($P33)
@@ -1235,7 +1235,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1275811471.14938") :method
+.sub "!PREFIX__term"  :subid("17_1277356884.2847") :method
 .annotate 'line', 13
     $P35 = self."!PREFIX__!protoregex"("term")
     .return ($P35)
@@ -1243,7 +1243,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1275811471.14938") :method
+.sub "infix"  :subid("18_1277356884.2847") :method
 .annotate 'line', 14
     $P37 = self."!protoregex"("infix")
     .return ($P37)
@@ -1251,7 +1251,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1275811471.14938") :method
+.sub "!PREFIX__infix"  :subid("19_1277356884.2847") :method
 .annotate 'line', 14
     $P39 = self."!PREFIX__!protoregex"("infix")
     .return ($P39)
@@ -1259,7 +1259,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1275811471.14938") :method
+.sub "prefix"  :subid("20_1277356884.2847") :method
 .annotate 'line', 15
     $P41 = self."!protoregex"("prefix")
     .return ($P41)
@@ -1267,7 +1267,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1275811471.14938") :method
+.sub "!PREFIX__prefix"  :subid("21_1277356884.2847") :method
 .annotate 'line', 15
     $P43 = self."!PREFIX__!protoregex"("prefix")
     .return ($P43)
@@ -1275,7 +1275,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1275811471.14938") :method
+.sub "postfix"  :subid("22_1277356884.2847") :method
 .annotate 'line', 16
     $P45 = self."!protoregex"("postfix")
     .return ($P45)
@@ -1283,7 +1283,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1275811471.14938") :method
+.sub "!PREFIX__postfix"  :subid("23_1277356884.2847") :method
 .annotate 'line', 16
     $P47 = self."!PREFIX__!protoregex"("postfix")
     .return ($P47)
@@ -1291,7 +1291,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1275811471.14938") :method
+.sub "circumfix"  :subid("24_1277356884.2847") :method
 .annotate 'line', 17
     $P49 = self."!protoregex"("circumfix")
     .return ($P49)
@@ -1299,7 +1299,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1275811471.14938") :method
+.sub "!PREFIX__circumfix"  :subid("25_1277356884.2847") :method
 .annotate 'line', 17
     $P51 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P51)
@@ -1307,7 +1307,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1275811471.14938") :method
+.sub "postcircumfix"  :subid("26_1277356884.2847") :method
 .annotate 'line', 18
     $P53 = self."!protoregex"("postcircumfix")
     .return ($P53)
@@ -1315,7 +1315,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1275811471.14938") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1277356884.2847") :method
 .annotate 'line', 18
     $P55 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P55)
@@ -1323,7 +1323,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "term:sym<circumfix>"  :subid("28_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 5
     .local string rx57_tgt
     .local int rx57_pos
@@ -1382,7 +1382,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1275811471.14938") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1277356884.2847") :method
 .annotate 'line', 5
     $P59 = self."!PREFIX__!subrule"("circumfix", "")
     new $P60, "ResizablePMCArray"
@@ -1392,7 +1392,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "infixish"  :subid("30_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 5
     .local string rx63_tgt
     .local int rx63_pos
@@ -1451,7 +1451,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1275811471.14938") :method
+.sub "!PREFIX__infixish"  :subid("31_1277356884.2847") :method
 .annotate 'line', 5
     $P65 = self."!PREFIX__!subrule"("infix", "")
     new $P66, "ResizablePMCArray"
@@ -1461,7 +1461,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "prefixish"  :subid("32_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 5
     .local string rx69_tgt
     .local int rx69_pos
@@ -1525,7 +1525,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1275811471.14938") :method
+.sub "!PREFIX__prefixish"  :subid("33_1277356884.2847") :method
 .annotate 'line', 5
     $P71 = self."!PREFIX__!subrule"("prefix", "")
     new $P72, "ResizablePMCArray"
@@ -1535,7 +1535,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "postfixish"  :subid("34_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 5
     .local string rx75_tgt
     .local int rx75_pos
@@ -1610,7 +1610,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1275811471.14938") :method
+.sub "!PREFIX__postfixish"  :subid("35_1277356884.2847") :method
 .annotate 'line', 5
     $P77 = self."!PREFIX__!subrule"("postcircumfix", "")
     $P78 = self."!PREFIX__!subrule"("postfix", "")
@@ -1622,7 +1622,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "nullterm"  :subid("36_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 5
     .local string rx83_tgt
     .local int rx83_pos
@@ -1674,7 +1674,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1275811471.14938") :method
+.sub "!PREFIX__nullterm"  :subid("37_1277356884.2847") :method
 .annotate 'line', 5
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -1683,7 +1683,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "nullterm_alt"  :subid("38_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 5
     .local string rx88_tgt
     .local int rx88_pos
@@ -1742,7 +1742,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1275811471.14938") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1277356884.2847") :method
 .annotate 'line', 5
     $P90 = self."!PREFIX__!subrule"("nullterm", "")
     new $P91, "ResizablePMCArray"
@@ -1753,7 +1753,7 @@
 
 .namespace ["HLL";"Grammar"]
 .include "except_types.pasm"
-.sub "nulltermish"  :subid("40_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "nulltermish"  :subid("40_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     new $P95, 'ExceptionHandler'
     set_addr $P95, control_94
@@ -1780,7 +1780,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_delimited"  :subid("41_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx104_tgt
     .local int rx104_pos
@@ -1863,7 +1863,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1275811471.14938") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1277356884.2847") :method
 .annotate 'line', 33
     $P106 = self."!PREFIX__!subrule"("starter", "")
     new $P107, "ResizablePMCArray"
@@ -1873,7 +1873,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_atom"  :subid("43_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx112_tgt
     .local int rx112_pos
@@ -1965,7 +1965,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1275811471.14938") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1277356884.2847") :method
 .annotate 'line', 33
     new $P114, "ResizablePMCArray"
     push $P114, ""
@@ -1974,7 +1974,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "decint"  :subid("45_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx122_tgt
     .local int rx122_pos
@@ -2047,7 +2047,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1275811471.14938") :method
+.sub "!PREFIX__decint"  :subid("46_1277356884.2847") :method
 .annotate 'line', 33
     new $P124, "ResizablePMCArray"
     push $P124, ""
@@ -2056,7 +2056,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "decints"  :subid("47_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx129_tgt
     .local int rx129_pos
@@ -2141,7 +2141,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1275811471.14938") :method
+.sub "!PREFIX__decints"  :subid("48_1277356884.2847") :method
 .annotate 'line', 33
     new $P131, "ResizablePMCArray"
     push $P131, ""
@@ -2150,7 +2150,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "hexint"  :subid("49_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx136_tgt
     .local int rx136_pos
@@ -2232,7 +2232,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1275811471.14938") :method
+.sub "!PREFIX__hexint"  :subid("50_1277356884.2847") :method
 .annotate 'line', 33
     new $P138, "ResizablePMCArray"
     push $P138, ""
@@ -2241,7 +2241,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "hexints"  :subid("51_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2326,7 +2326,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1275811471.14938") :method
+.sub "!PREFIX__hexints"  :subid("52_1277356884.2847") :method
 .annotate 'line', 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2335,7 +2335,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "octint"  :subid("53_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2417,7 +2417,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1275811471.14938") :method
+.sub "!PREFIX__octint"  :subid("54_1277356884.2847") :method
 .annotate 'line', 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2426,7 +2426,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "octints"  :subid("55_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx161_tgt
     .local int rx161_pos
@@ -2511,7 +2511,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1275811471.14938") :method
+.sub "!PREFIX__octints"  :subid("56_1277356884.2847") :method
 .annotate 'line', 33
     new $P163, "ResizablePMCArray"
     push $P163, ""
@@ -2520,7 +2520,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "binint"  :subid("57_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx168_tgt
     .local int rx168_pos
@@ -2602,7 +2602,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1275811471.14938") :method
+.sub "!PREFIX__binint"  :subid("58_1277356884.2847") :method
 .annotate 'line', 33
     new $P170, "ResizablePMCArray"
     push $P170, ""
@@ -2611,7 +2611,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "binints"  :subid("59_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx177_tgt
     .local int rx177_pos
@@ -2696,7 +2696,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1275811471.14938") :method
+.sub "!PREFIX__binints"  :subid("60_1277356884.2847") :method
 .annotate 'line', 33
     new $P179, "ResizablePMCArray"
     push $P179, ""
@@ -2705,7 +2705,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "integer"  :subid("61_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx184_tgt
     .local int rx184_pos
@@ -2854,7 +2854,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1275811471.14938") :method
+.sub "!PREFIX__integer"  :subid("62_1277356884.2847") :method
 .annotate 'line', 33
     $P186 = self."!PREFIX__!subrule"("decint", "")
     $P187 = self."!PREFIX__!subrule"("decint", "0d")
@@ -2872,7 +2872,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "dec_number"  :subid("63_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx196_tgt
     .local int rx196_pos
@@ -3052,7 +3052,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1275811471.14938") :method
+.sub "!PREFIX__dec_number"  :subid("64_1277356884.2847") :method
 .annotate 'line', 33
     new $P198, "ResizablePMCArray"
     push $P198, ""
@@ -3063,7 +3063,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "escale"  :subid("65_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx209_tgt
     .local int rx209_pos
@@ -3141,7 +3141,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1275811471.14938") :method
+.sub "!PREFIX__escale"  :subid("66_1277356884.2847") :method
 .annotate 'line', 33
     new $P211, "ResizablePMCArray"
     push $P211, "e"
@@ -3151,7 +3151,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1275811471.14938") :method
+.sub "quote_escape"  :subid("67_1277356884.2847") :method
 .annotate 'line', 79
     $P216 = self."!protoregex"("quote_escape")
     .return ($P216)
@@ -3159,7 +3159,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1275811471.14938") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1277356884.2847") :method
 .annotate 'line', 79
     $P218 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P218)
@@ -3167,7 +3167,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<backslash>"  :subid("69_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx220_tgt
     .local int rx220_pos
@@ -3230,7 +3230,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1277356884.2847") :method
 .annotate 'line', 33
     new $P222, "ResizablePMCArray"
     push $P222, "\\\\"
@@ -3239,7 +3239,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<stopper>"  :subid("71_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx225_tgt
     .local int rx225_pos
@@ -3309,7 +3309,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1277356884.2847") :method
 .annotate 'line', 33
     new $P227, "ResizablePMCArray"
     push $P227, "\\"
@@ -3318,7 +3318,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<bs>"  :subid("73_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx230_tgt
     .local int rx230_pos
@@ -3381,7 +3381,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1277356884.2847") :method
 .annotate 'line', 33
     new $P232, "ResizablePMCArray"
     push $P232, "\\b"
@@ -3390,7 +3390,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<nl>"  :subid("75_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx235_tgt
     .local int rx235_pos
@@ -3453,7 +3453,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1277356884.2847") :method
 .annotate 'line', 33
     new $P237, "ResizablePMCArray"
     push $P237, "\\n"
@@ -3462,7 +3462,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<cr>"  :subid("77_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx240_tgt
     .local int rx240_pos
@@ -3525,7 +3525,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1277356884.2847") :method
 .annotate 'line', 33
     new $P242, "ResizablePMCArray"
     push $P242, "\\r"
@@ -3534,7 +3534,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<tab>"  :subid("79_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx245_tgt
     .local int rx245_pos
@@ -3597,7 +3597,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1277356884.2847") :method
 .annotate 'line', 33
     new $P247, "ResizablePMCArray"
     push $P247, "\\t"
@@ -3606,7 +3606,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<ff>"  :subid("81_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx250_tgt
     .local int rx250_pos
@@ -3669,7 +3669,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1277356884.2847") :method
 .annotate 'line', 33
     new $P252, "ResizablePMCArray"
     push $P252, "\\f"
@@ -3678,7 +3678,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("83_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<esc>"  :subid("83_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx255_tgt
     .local int rx255_pos
@@ -3741,7 +3741,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1277356884.2847") :method
 .annotate 'line', 33
     new $P257, "ResizablePMCArray"
     push $P257, "\\e"
@@ -3750,7 +3750,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("85_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<hex>"  :subid("85_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx260_tgt
     .local int rx260_pos
@@ -3849,7 +3849,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1277356884.2847") :method
 .annotate 'line', 33
     new $P262, "ResizablePMCArray"
     push $P262, unicode:"\\x"
@@ -3858,7 +3858,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("87_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<oct>"  :subid("87_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx266_tgt
     .local int rx266_pos
@@ -3957,7 +3957,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1277356884.2847") :method
 .annotate 'line', 33
     new $P268, "ResizablePMCArray"
     push $P268, "\\o"
@@ -3966,7 +3966,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("89_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<chr>"  :subid("89_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx272_tgt
     .local int rx272_pos
@@ -4036,7 +4036,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1277356884.2847") :method
 .annotate 'line', 33
     new $P274, "ResizablePMCArray"
     push $P274, "\\c"
@@ -4045,7 +4045,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("91_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<0>"  :subid("91_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx277_tgt
     .local int rx277_pos
@@ -4129,7 +4129,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1277356884.2847") :method
 .annotate 'line', 33
     new $P279, "ResizablePMCArray"
     push $P279, "\\0"
@@ -4138,13 +4138,13 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("93_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "quote_escape:sym<misc>"  :subid("93_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
-    .const 'Sub' $P302 = "97_1275811471.14938" 
+    .const 'Sub' $P302 = "97_1277356884.2847" 
     capture_lex $P302
-    .const 'Sub' $P295 = "96_1275811471.14938" 
+    .const 'Sub' $P295 = "96_1277356884.2847" 
     capture_lex $P295
-    .const 'Sub' $P290 = "95_1275811471.14938" 
+    .const 'Sub' $P290 = "95_1277356884.2847" 
     capture_lex $P290
     .local string rx283_tgt
     .local int rx283_pos
@@ -4181,7 +4181,7 @@
     find_lex $P287, unicode:"$\x{a2}"
     $P288 = $P287."MATCH"()
     store_lex "$/", $P288
-    .const 'Sub' $P290 = "95_1275811471.14938" 
+    .const 'Sub' $P290 = "95_1277356884.2847" 
     capture_lex $P290
     $P291 = $P290()
   # rx literal  "\\"
@@ -4207,7 +4207,7 @@
 .annotate 'line', 104
   # rx subrule $P295 subtype=capture negate=
     rx283_cur."!cursor_pos"(rx283_pos)
-    .const 'Sub' $P295 = "96_1275811471.14938" 
+    .const 'Sub' $P295 = "96_1277356884.2847" 
     capture_lex $P295
     $P10 = rx283_cur.$P295()
     unless $P10, rx283_fail
@@ -4241,7 +4241,7 @@
     find_lex $P299, unicode:"$\x{a2}"
     $P300 = $P299."MATCH"()
     store_lex "$/", $P300
-    .const 'Sub' $P302 = "97_1275811471.14938" 
+    .const 'Sub' $P302 = "97_1277356884.2847" 
     capture_lex $P302
     $P312 = $P302()
   alt293_end:
@@ -4287,7 +4287,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1275811471.14938") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1277356884.2847") :method
 .annotate 'line', 33
     new $P285, "ResizablePMCArray"
     push $P285, ""
@@ -4296,14 +4296,14 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block289"  :anon :subid("95_1275811471.14938") :outer("93_1275811471.14938")
+.sub "_block289"  :anon :subid("95_1277356884.2847") :outer("93_1277356884.2847")
 .annotate 'line', 100
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block294"  :anon :subid("96_1275811471.14938") :method :outer("93_1275811471.14938")
+.sub "_block294"  :anon :subid("96_1277356884.2847") :method :outer("93_1277356884.2847")
 .annotate 'line', 104
     .local string rx296_tgt
     .local int rx296_pos
@@ -4359,7 +4359,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block301"  :anon :subid("97_1275811471.14938") :outer("93_1275811471.14938")
+.sub "_block301"  :anon :subid("97_1277356884.2847") :outer("93_1277356884.2847")
 .annotate 'line', 105
     find_lex $P303, "$/"
     $P304 = $P303."CURSOR"()
@@ -4382,9 +4382,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("98_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "charname"  :subid("98_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
-    .const 'Sub' $P324 = "100_1275811471.14938" 
+    .const 'Sub' $P324 = "100_1277356884.2847" 
     capture_lex $P324
     .local string rx315_tgt
     .local int rx315_pos
@@ -4463,7 +4463,7 @@
 .annotate 'line', 114
   # rx subrule "before" subtype=zerowidth negate=
     rx315_cur."!cursor_pos"(rx315_pos)
-    .const 'Sub' $P324 = "100_1275811471.14938" 
+    .const 'Sub' $P324 = "100_1277356884.2847" 
     capture_lex $P324
     $P10 = rx315_cur."before"($P324)
     unless $P10, rx315_fail
@@ -4488,7 +4488,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("99_1275811471.14938") :method
+.sub "!PREFIX__charname"  :subid("99_1277356884.2847") :method
 .annotate 'line', 33
     $P317 = self."!PREFIX__!subrule"("integer", "")
     new $P318, "ResizablePMCArray"
@@ -4550,7 +4550,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block323"  :anon :subid("100_1275811471.14938") :method :outer("98_1275811471.14938")
+.sub "_block323"  :anon :subid("100_1277356884.2847") :method :outer("98_1277356884.2847")
 .annotate 'line', 114
     .local string rx325_tgt
     .local int rx325_pos
@@ -4611,7 +4611,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("101_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "charnames"  :subid("101_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx328_tgt
     .local int rx328_pos
@@ -4696,7 +4696,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("102_1275811471.14938") :method
+.sub "!PREFIX__charnames"  :subid("102_1277356884.2847") :method
 .annotate 'line', 33
     new $P330, "ResizablePMCArray"
     push $P330, ""
@@ -4705,7 +4705,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("103_1275811471.14938") :method :outer("11_1275811471.14938")
+.sub "charspec"  :subid("103_1277356884.2847") :method :outer("11_1277356884.2847")
 .annotate 'line', 33
     .local string rx335_tgt
     .local int rx335_pos
@@ -4836,7 +4836,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("104_1275811471.14938") :method
+.sub "!PREFIX__charspec"  :subid("104_1277356884.2847") :method
 .annotate 'line', 33
     $P337 = self."!PREFIX__!subrule"("panic", "")
     $P338 = self."!PREFIX__!subrule"("charnames", "[")
@@ -4877,18 +4877,18 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block344" :load :anon :subid("105_1275811471.14938")
+.sub "_block344" :load :anon :subid("105_1277356884.2847")
 .annotate 'line', 5
-    .const 'Sub' $P346 = "11_1275811471.14938" 
+    .const 'Sub' $P346 = "11_1277356884.2847" 
     $P347 = $P346()
     .return ($P347)
 .end
 
 
 .namespace []
-.sub "_block349" :load :anon :subid("106_1275811471.14938")
+.sub "_block349" :load :anon :subid("106_1277356884.2847")
 .annotate 'line', 1
-    .const 'Sub' $P351 = "10_1275811471.14938" 
+    .const 'Sub' $P351 = "10_1277356884.2847" 
     $P352 = $P351()
     .return ($P352)
 .end
@@ -4896,7 +4896,7 @@
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1275811473.30481")
+.sub "_block11"  :anon :subid("10_1277356885.58319")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -4913,15 +4913,15 @@
     $P627 = $P14()
 .annotate 'line', 1
     .return ($P627)
-    .const 'Sub' $P629 = "55_1275811473.30481" 
+    .const 'Sub' $P629 = "55_1277356885.58319" 
     .return ($P629)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post56") :outer("10_1275811473.30481")
+.sub "" :load :init :subid("post56") :outer("10_1277356885.58319")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1275811473.30481" 
+    .const 'Sub' $P12 = "10_1277356885.58319" 
     .local pmc block
     set block, $P12
     $P632 = get_root_global ["parrot"], "P6metaclass"
@@ -4930,75 +4930,75 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1275811473.30481") :outer("10_1275811473.30481")
+.sub "_block13"  :subid("11_1277356885.58319") :outer("10_1277356885.58319")
 .annotate 'line', 3
-    .const 'Sub' $P605 = "53_1275811473.30481" 
+    .const 'Sub' $P605 = "53_1277356885.58319" 
     capture_lex $P605
-    .const 'Sub' $P580 = "51_1275811473.30481" 
+    .const 'Sub' $P580 = "51_1277356885.58319" 
     capture_lex $P580
-    .const 'Sub' $P550 = "50_1275811473.30481" 
+    .const 'Sub' $P550 = "50_1277356885.58319" 
     capture_lex $P550
-    .const 'Sub' $P531 = "49_1275811473.30481" 
+    .const 'Sub' $P531 = "49_1277356885.58319" 
     capture_lex $P531
-    .const 'Sub' $P524 = "48_1275811473.30481" 
+    .const 'Sub' $P524 = "48_1277356885.58319" 
     capture_lex $P524
-    .const 'Sub' $P514 = "47_1275811473.30481" 
+    .const 'Sub' $P514 = "47_1277356885.58319" 
     capture_lex $P514
-    .const 'Sub' $P497 = "46_1275811473.30481" 
+    .const 'Sub' $P497 = "46_1277356885.58319" 
     capture_lex $P497
-    .const 'Sub' $P480 = "45_1275811473.30481" 
+    .const 'Sub' $P480 = "45_1277356885.58319" 
     capture_lex $P480
-    .const 'Sub' $P473 = "44_1275811473.30481" 
+    .const 'Sub' $P473 = "44_1277356885.58319" 
     capture_lex $P473
-    .const 'Sub' $P466 = "43_1275811473.30481" 
+    .const 'Sub' $P466 = "43_1277356885.58319" 
     capture_lex $P466
-    .const 'Sub' $P459 = "42_1275811473.30481" 
+    .const 'Sub' $P459 = "42_1277356885.58319" 
     capture_lex $P459
-    .const 'Sub' $P452 = "41_1275811473.30481" 
+    .const 'Sub' $P452 = "41_1277356885.58319" 
     capture_lex $P452
-    .const 'Sub' $P445 = "40_1275811473.30481" 
+    .const 'Sub' $P445 = "40_1277356885.58319" 
     capture_lex $P445
-    .const 'Sub' $P438 = "39_1275811473.30481" 
+    .const 'Sub' $P438 = "39_1277356885.58319" 
     capture_lex $P438
-    .const 'Sub' $P428 = "38_1275811473.30481" 
+    .const 'Sub' $P428 = "38_1277356885.58319" 
     capture_lex $P428
-    .const 'Sub' $P421 = "37_1275811473.30481" 
+    .const 'Sub' $P421 = "37_1277356885.58319" 
     capture_lex $P421
-    .const 'Sub' $P405 = "36_1275811473.30481" 
+    .const 'Sub' $P405 = "36_1277356885.58319" 
     capture_lex $P405
-    .const 'Sub' $P330 = "34_1275811473.30481" 
+    .const 'Sub' $P330 = "34_1277356885.58319" 
     capture_lex $P330
-    .const 'Sub' $P267 = "31_1275811473.30481" 
+    .const 'Sub' $P267 = "31_1277356885.58319" 
     capture_lex $P267
-    .const 'Sub' $P258 = "30_1275811473.30481" 
+    .const 'Sub' $P258 = "30_1277356885.58319" 
     capture_lex $P258
-    .const 'Sub' $P249 = "29_1275811473.30481" 
+    .const 'Sub' $P249 = "29_1277356885.58319" 
     capture_lex $P249
-    .const 'Sub' $P240 = "28_1275811473.30481" 
+    .const 'Sub' $P240 = "28_1277356885.58319" 
     capture_lex $P240
-    .const 'Sub' $P231 = "27_1275811473.30481" 
+    .const 'Sub' $P231 = "27_1277356885.58319" 
     capture_lex $P231
-    .const 'Sub' $P222 = "26_1275811473.30481" 
+    .const 'Sub' $P222 = "26_1277356885.58319" 
     capture_lex $P222
-    .const 'Sub' $P212 = "25_1275811473.30481" 
+    .const 'Sub' $P212 = "25_1277356885.58319" 
     capture_lex $P212
-    .const 'Sub' $P202 = "24_1275811473.30481" 
+    .const 'Sub' $P202 = "24_1277356885.58319" 
     capture_lex $P202
-    .const 'Sub' $P194 = "23_1275811473.30481" 
+    .const 'Sub' $P194 = "23_1277356885.58319" 
     capture_lex $P194
-    .const 'Sub' $P184 = "22_1275811473.30481" 
+    .const 'Sub' $P184 = "22_1277356885.58319" 
     capture_lex $P184
-    .const 'Sub' $P174 = "21_1275811473.30481" 
+    .const 'Sub' $P174 = "21_1277356885.58319" 
     capture_lex $P174
-    .const 'Sub' $P73 = "18_1275811473.30481" 
+    .const 'Sub' $P73 = "18_1277356885.58319" 
     capture_lex $P73
-    .const 'Sub' $P35 = "15_1275811473.30481" 
+    .const 'Sub' $P35 = "15_1277356885.58319" 
     capture_lex $P35
-    .const 'Sub' $P28 = "14_1275811473.30481" 
+    .const 'Sub' $P28 = "14_1277356885.58319" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1275811473.30481" 
+    .const 'Sub' $P22 = "13_1277356885.58319" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1275811473.30481" 
+    .const 'Sub' $P15 = "12_1277356885.58319" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -5007,18 +5007,18 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 225
-    .const 'Sub' $P605 = "53_1275811473.30481" 
+    .const 'Sub' $P605 = "53_1277356885.58319" 
     newclosure $P622, $P605
 .annotate 'line', 3
     .return ($P622)
-    .const 'Sub' $P624 = "54_1275811473.30481" 
+    .const 'Sub' $P624 = "54_1277356885.58319" 
     .return ($P624)
 .end
 
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "string_to_int"  :subid("12_1275811473.30481") :outer("11_1275811473.30481")
+.sub "string_to_int"  :subid("12_1277356885.58319") :outer("11_1277356885.58319")
     .param pmc param_18
     .param pmc param_19
 .annotate 'line', 3
@@ -5072,7 +5072,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "ints_to_string"  :subid("13_1275811473.30481") :outer("11_1275811473.30481")
+.sub "ints_to_string"  :subid("13_1277356885.58319") :outer("11_1277356885.58319")
     .param pmc param_25
 .annotate 'line', 37
     new $P24, 'ExceptionHandler'
@@ -5114,7 +5114,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "CTXSAVE"  :subid("14_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "CTXSAVE"  :subid("14_1277356885.58319") :method :outer("11_1277356885.58319")
 .annotate 'line', 62
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
@@ -5144,10 +5144,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_38
 .annotate 'line', 76
-    .const 'Sub' $P48 = "16_1275811473.30481" 
+    .const 'Sub' $P48 = "16_1277356885.58319" 
     capture_lex $P48
     new $P37, 'ExceptionHandler'
     set_addr $P37, control_36
@@ -5182,7 +5182,7 @@
     set $P43, $I46
     goto if_44_end
   if_44:
-    .const 'Sub' $P48 = "16_1275811473.30481" 
+    .const 'Sub' $P48 = "16_1277356885.58319" 
     capture_lex $P48
     $P71 = $P48()
     set $P43, $P71
@@ -5199,9 +5199,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block47"  :anon :subid("16_1275811473.30481") :outer("15_1275811473.30481")
+.sub "_block47"  :anon :subid("16_1277356885.58319") :outer("15_1277356885.58319")
 .annotate 'line', 78
-    .const 'Sub' $P62 = "17_1275811473.30481" 
+    .const 'Sub' $P62 = "17_1277356885.58319" 
     capture_lex $P62
 .annotate 'line', 79
     $P49 = root_new ['parrot';'ResizablePMCArray']
@@ -5231,7 +5231,7 @@
     unless $P56, loop68_done
     shift $P60, $P56
   loop68_redo:
-    .const 'Sub' $P62 = "17_1275811473.30481" 
+    .const 'Sub' $P62 = "17_1277356885.58319" 
     capture_lex $P62
     $P62($P60)
   loop68_next:
@@ -5251,7 +5251,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block61"  :anon :subid("17_1275811473.30481") :outer("16_1275811473.30481")
+.sub "_block61"  :anon :subid("17_1277356885.58319") :outer("16_1277356885.58319")
     .param pmc param_63
 .annotate 'line', 82
     .lex "$_", param_63
@@ -5267,14 +5267,14 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "EXPR"  :subid("18_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "EXPR"  :subid("18_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_76
     .param pmc param_77 :optional
     .param int has_param_77 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P156 = "20_1275811473.30481" 
+    .const 'Sub' $P156 = "20_1277356885.58319" 
     capture_lex $P156
-    .const 'Sub' $P123 = "19_1275811473.30481" 
+    .const 'Sub' $P123 = "19_1277356885.58319" 
     capture_lex $P123
     new $P75, 'ExceptionHandler'
     set_addr $P75, control_74
@@ -5409,7 +5409,7 @@
     find_lex $P120, "$past"
     $P121 = $P120."name"()
     if $P121, unless_119_end
-    .const 'Sub' $P123 = "19_1275811473.30481" 
+    .const 'Sub' $P123 = "19_1277356885.58319" 
     capture_lex $P123
     $P123()
   unless_119_end:
@@ -5433,7 +5433,7 @@
     unless $P150, loop167_done
     shift $P154, $P150
   loop167_redo:
-    .const 'Sub' $P156 = "20_1275811473.30481" 
+    .const 'Sub' $P156 = "20_1277356885.58319" 
     capture_lex $P156
     $P156($P154)
   loop167_next:
@@ -5478,7 +5478,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block122"  :anon :subid("19_1275811473.30481") :outer("18_1275811473.30481")
+.sub "_block122"  :anon :subid("19_1277356885.58319") :outer("18_1277356885.58319")
 .annotate 'line', 98
     new $P124, "Undef"
     .lex "$name", $P124
@@ -5528,7 +5528,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block155"  :anon :subid("20_1275811473.30481") :outer("18_1275811473.30481")
+.sub "_block155"  :anon :subid("20_1277356885.58319") :outer("18_1277356885.58319")
     .param pmc param_157
 .annotate 'line', 109
     .lex "$_", param_157
@@ -5552,7 +5552,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<circumfix>"  :subid("21_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "term:sym<circumfix>"  :subid("21_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_177
 .annotate 'line', 114
     new $P176, 'ExceptionHandler'
@@ -5583,7 +5583,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("22_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "termish"  :subid("22_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_187
 .annotate 'line', 116
     new $P186, 'ExceptionHandler'
@@ -5614,7 +5614,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm"  :subid("23_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "nullterm"  :subid("23_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_197
 .annotate 'line', 117
     new $P196, 'ExceptionHandler'
@@ -5637,7 +5637,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm_alt"  :subid("24_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "nullterm_alt"  :subid("24_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_205
 .annotate 'line', 118
     new $P204, 'ExceptionHandler'
@@ -5668,7 +5668,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "integer"  :subid("25_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "integer"  :subid("25_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_215
 .annotate 'line', 120
     new $P214, 'ExceptionHandler'
@@ -5699,7 +5699,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "dec_number"  :subid("26_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "dec_number"  :subid("26_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_225
 .annotate 'line', 122
     new $P224, 'ExceptionHandler'
@@ -5723,7 +5723,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "decint"  :subid("27_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "decint"  :subid("27_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_234
 .annotate 'line', 124
     new $P233, 'ExceptionHandler'
@@ -5747,7 +5747,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "hexint"  :subid("28_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "hexint"  :subid("28_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_243
 .annotate 'line', 125
     new $P242, 'ExceptionHandler'
@@ -5771,7 +5771,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "octint"  :subid("29_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "octint"  :subid("29_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_252
 .annotate 'line', 126
     new $P251, 'ExceptionHandler'
@@ -5795,7 +5795,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "binint"  :subid("30_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "binint"  :subid("30_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_261
 .annotate 'line', 127
     new $P260, 'ExceptionHandler'
@@ -5819,10 +5819,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_EXPR"  :subid("31_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_EXPR"  :subid("31_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_270
 .annotate 'line', 129
-    .const 'Sub' $P286 = "32_1275811473.30481" 
+    .const 'Sub' $P286 = "32_1277356885.58319" 
     capture_lex $P286
     new $P269, 'ExceptionHandler'
     set_addr $P269, control_268
@@ -5854,7 +5854,7 @@
     $P282 = $P280."ACCEPTS"($P281)
     if $P282, if_279
 .annotate 'line', 135
-    .const 'Sub' $P286 = "32_1275811473.30481" 
+    .const 'Sub' $P286 = "32_1277356885.58319" 
     capture_lex $P286
     $P286()
     goto if_279_end
@@ -5894,9 +5894,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block285"  :anon :subid("32_1275811473.30481") :outer("31_1275811473.30481")
+.sub "_block285"  :anon :subid("32_1277356885.58319") :outer("31_1277356885.58319")
 .annotate 'line', 135
-    .const 'Sub' $P305 = "33_1275811473.30481" 
+    .const 'Sub' $P305 = "33_1277356885.58319" 
     capture_lex $P305
 .annotate 'line', 136
     $P287 = root_new ['parrot';'ResizablePMCArray']
@@ -5909,7 +5909,7 @@
 .annotate 'line', 137
     find_lex $P294, "@words"
     set $N295, $P294
-    isgt $I296, $N295, 1.0
+    isne $I296, $N295, 1.0
     if $I296, if_293
 .annotate 'line', 142
     find_lex $P313, "@words"
@@ -5947,7 +5947,7 @@
     unless $P300, loop310_done
     shift $P303, $P300
   loop310_redo:
-    .const 'Sub' $P305 = "33_1275811473.30481" 
+    .const 'Sub' $P305 = "33_1277356885.58319" 
     capture_lex $P305
     $P305($P303)
   loop310_next:
@@ -5970,7 +5970,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block304"  :anon :subid("33_1275811473.30481") :outer("32_1275811473.30481")
+.sub "_block304"  :anon :subid("33_1277356885.58319") :outer("32_1277356885.58319")
     .param pmc param_306
 .annotate 'line', 139
     .lex "$_", param_306
@@ -5983,10 +5983,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_delimited"  :subid("34_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_delimited"  :subid("34_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_333
 .annotate 'line', 152
-    .const 'Sub' $P345 = "35_1275811473.30481" 
+    .const 'Sub' $P345 = "35_1277356885.58319" 
     capture_lex $P345
     new $P332, 'ExceptionHandler'
     set_addr $P332, control_331
@@ -6029,7 +6029,7 @@
     unless $P339, loop377_done
     shift $P343, $P339
   loop377_redo:
-    .const 'Sub' $P345 = "35_1275811473.30481" 
+    .const 'Sub' $P345 = "35_1277356885.58319" 
     capture_lex $P345
     $P345($P343)
   loop377_next:
@@ -6107,7 +6107,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block344"  :anon :subid("35_1275811473.30481") :outer("34_1275811473.30481")
+.sub "_block344"  :anon :subid("35_1277356885.58319") :outer("34_1277356885.58319")
     .param pmc param_347
 .annotate 'line', 156
     new $P346, "Undef"
@@ -6177,7 +6177,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_atom"  :subid("36_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_atom"  :subid("36_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_408
 .annotate 'line', 177
     new $P407, 'ExceptionHandler'
@@ -6227,7 +6227,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<backslash>"  :subid("37_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<backslash>"  :subid("37_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_424
 .annotate 'line', 181
     new $P423, 'ExceptionHandler'
@@ -6249,7 +6249,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<stopper>"  :subid("38_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<stopper>"  :subid("38_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_431
 .annotate 'line', 182
     new $P430, 'ExceptionHandler'
@@ -6280,7 +6280,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<bs>"  :subid("39_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<bs>"  :subid("39_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_441
 .annotate 'line', 184
     new $P440, 'ExceptionHandler'
@@ -6302,7 +6302,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<nl>"  :subid("40_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<nl>"  :subid("40_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_448
 .annotate 'line', 185
     new $P447, 'ExceptionHandler'
@@ -6324,7 +6324,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<cr>"  :subid("41_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<cr>"  :subid("41_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_455
 .annotate 'line', 186
     new $P454, 'ExceptionHandler'
@@ -6346,7 +6346,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<tab>"  :subid("42_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<tab>"  :subid("42_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_462
 .annotate 'line', 187
     new $P461, 'ExceptionHandler'
@@ -6368,7 +6368,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<ff>"  :subid("43_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<ff>"  :subid("43_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_469
 .annotate 'line', 188
     new $P468, 'ExceptionHandler'
@@ -6390,7 +6390,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("44_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<esc>"  :subid("44_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_476
 .annotate 'line', 189
     new $P475, 'ExceptionHandler'
@@ -6412,7 +6412,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<hex>"  :subid("45_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<hex>"  :subid("45_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_483
 .annotate 'line', 191
     new $P482, 'ExceptionHandler'
@@ -6471,7 +6471,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<oct>"  :subid("46_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<oct>"  :subid("46_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_500
 .annotate 'line', 195
     new $P499, 'ExceptionHandler'
@@ -6530,7 +6530,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<chr>"  :subid("47_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<chr>"  :subid("47_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_517
 .annotate 'line', 199
     new $P516, 'ExceptionHandler'
@@ -6563,7 +6563,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<0>"  :subid("48_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<0>"  :subid("48_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_527
 .annotate 'line', 203
     new $P526, 'ExceptionHandler'
@@ -6587,7 +6587,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<misc>"  :subid("49_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "quote_escape:sym<misc>"  :subid("49_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_534
 .annotate 'line', 207
     new $P533, 'ExceptionHandler'
@@ -6646,7 +6646,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charname"  :subid("50_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "charname"  :subid("50_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_553
 .annotate 'line', 211
     new $P552, 'ExceptionHandler'
@@ -6720,10 +6720,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charnames"  :subid("51_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "charnames"  :subid("51_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_583
 .annotate 'line', 219
-    .const 'Sub' $P592 = "52_1275811473.30481" 
+    .const 'Sub' $P592 = "52_1277356885.58319" 
     capture_lex $P592
     new $P582, 'ExceptionHandler'
     set_addr $P582, control_581
@@ -6757,7 +6757,7 @@
     unless $P586, loop598_done
     shift $P590, $P586
   loop598_redo:
-    .const 'Sub' $P592 = "52_1275811473.30481" 
+    .const 'Sub' $P592 = "52_1277356885.58319" 
     capture_lex $P592
     $P592($P590)
   loop598_next:
@@ -6786,7 +6786,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block591"  :anon :subid("52_1275811473.30481") :outer("51_1275811473.30481")
+.sub "_block591"  :anon :subid("52_1277356885.58319") :outer("51_1277356885.58319")
     .param pmc param_593
 .annotate 'line', 221
     .lex "$_", param_593
@@ -6801,7 +6801,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charspec"  :subid("53_1275811473.30481") :method :outer("11_1275811473.30481")
+.sub "charspec"  :subid("53_1277356885.58319") :method :outer("11_1277356885.58319")
     .param pmc param_608
 .annotate 'line', 225
     new $P607, 'ExceptionHandler'
@@ -6851,18 +6851,18 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block623" :load :anon :subid("54_1275811473.30481")
+.sub "_block623" :load :anon :subid("54_1277356885.58319")
 .annotate 'line', 3
-    .const 'Sub' $P625 = "11_1275811473.30481" 
+    .const 'Sub' $P625 = "11_1277356885.58319" 
     $P626 = $P625()
     .return ($P626)
 .end
 
 
 .namespace []
-.sub "_block628" :load :anon :subid("55_1275811473.30481")
+.sub "_block628" :load :anon :subid("55_1277356885.58319")
 .annotate 'line', 1
-    .const 'Sub' $P630 = "10_1275811473.30481" 
+    .const 'Sub' $P630 = "10_1277356885.58319" 
     $P631 = $P630()
     .return ($P631)
 .end
@@ -6870,7 +6870,7 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1275811474.72541")
+.sub "_block11"  :anon :subid("10_1277356886.38597")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -6887,15 +6887,15 @@
     $P492 = $P14()
 .annotate 'line', 1
     .return ($P492)
-    .const 'Sub' $P494 = "35_1275811474.72541" 
+    .const 'Sub' $P494 = "35_1277356886.38597" 
     .return ($P494)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post36") :outer("10_1275811474.72541")
+.sub "" :load :init :subid("post36") :outer("10_1277356886.38597")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1275811474.72541" 
+    .const 'Sub' $P12 = "10_1277356886.38597" 
     .local pmc block
     set block, $P12
 .annotate 'line', 2
@@ -6909,36 +6909,36 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1275811474.72541") :outer("10_1275811474.72541")
+.sub "_block13"  :subid("11_1277356886.38597") :outer("10_1277356886.38597")
 .annotate 'line', 6
-    .const 'Sub' $P484 = "34_1275811474.72541" 
+    .const 'Sub' $P484 = "34_1277356886.38597" 
     capture_lex $P484
-    .const 'Sub' $P442 = "32_1275811474.72541" 
+    .const 'Sub' $P442 = "32_1277356886.38597" 
     capture_lex $P442
-    .const 'Sub' $P298 = "26_1275811474.72541" 
+    .const 'Sub' $P298 = "26_1277356886.38597" 
     capture_lex $P298
-    .const 'Sub' $P283 = "25_1275811474.72541" 
+    .const 'Sub' $P283 = "25_1277356886.38597" 
     capture_lex $P283
-    .const 'Sub' $P188 = "20_1275811474.72541" 
+    .const 'Sub' $P188 = "20_1277356886.38597" 
     capture_lex $P188
-    .const 'Sub' $P153 = "18_1275811474.72541" 
+    .const 'Sub' $P153 = "18_1277356886.38597" 
     capture_lex $P153
-    .const 'Sub' $P138 = "17_1275811474.72541" 
+    .const 'Sub' $P138 = "17_1277356886.38597" 
     capture_lex $P138
-    .const 'Sub' $P122 = "16_1275811474.72541" 
+    .const 'Sub' $P122 = "16_1277356886.38597" 
     capture_lex $P122
-    .const 'Sub' $P33 = "13_1275811474.72541" 
+    .const 'Sub' $P33 = "13_1277356886.38597" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1275811474.72541" 
+    .const 'Sub' $P15 = "12_1277356886.38597" 
     capture_lex $P15
 .annotate 'line', 14
-    .const 'Sub' $P15 = "12_1275811474.72541" 
+    .const 'Sub' $P15 = "12_1277356886.38597" 
     newclosure $P31, $P15
     .lex "value_type", $P31
 .annotate 'line', 10
     find_lex $P32, "value_type"
 .annotate 'line', 163
-    .const 'Sub' $P484 = "34_1275811474.72541" 
+    .const 'Sub' $P484 = "34_1277356886.38597" 
     newclosure $P490, $P484
 .annotate 'line', 6
     .return ($P490)
@@ -6946,7 +6946,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post37") :outer("11_1275811474.72541")
+.sub "" :load :init :subid("post37") :outer("11_1277356886.38597")
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
@@ -6959,7 +6959,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "value_type"  :subid("12_1275811474.72541") :outer("11_1275811474.72541")
+.sub "value_type"  :subid("12_1277356886.38597") :outer("11_1277356886.38597")
     .param pmc param_18
 .annotate 'line', 14
     new $P17, 'ExceptionHandler'
@@ -7004,15 +7004,15 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_exports"  :subid("13_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "get_exports"  :subid("13_1277356886.38597") :method :outer("11_1277356886.38597")
     .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_1275811474.72541" 
+    .const 'Sub' $P105 = "15_1277356886.38597" 
     capture_lex $P105
-    .const 'Sub' $P84 = "14_1275811474.72541" 
+    .const 'Sub' $P84 = "14_1277356886.38597" 
     capture_lex $P84
     new $P35, 'ExceptionHandler'
     set_addr $P35, control_34
@@ -7118,7 +7118,7 @@
     unless $P100, loop117_done
     shift $P103, $P100
   loop117_redo:
-    .const 'Sub' $P105 = "15_1275811474.72541" 
+    .const 'Sub' $P105 = "15_1277356886.38597" 
     capture_lex $P105
     $P105($P103)
   loop117_next:
@@ -7148,7 +7148,7 @@
     unless $P79, loop97_done
     shift $P82, $P79
   loop97_redo:
-    .const 'Sub' $P84 = "14_1275811474.72541" 
+    .const 'Sub' $P84 = "14_1277356886.38597" 
     capture_lex $P84
     $P84($P82)
   loop97_next:
@@ -7176,7 +7176,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block104"  :anon :subid("15_1275811474.72541") :outer("13_1275811474.72541")
+.sub "_block104"  :anon :subid("15_1277356886.38597") :outer("13_1277356886.38597")
     .param pmc param_107
 .annotate 'line', 40
     new $P106, "Undef"
@@ -7208,7 +7208,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block83"  :anon :subid("14_1275811474.72541") :outer("13_1275811474.72541")
+.sub "_block83"  :anon :subid("14_1277356886.38597") :outer("13_1277356886.38597")
     .param pmc param_86
 .annotate 'line', 34
     new $P85, "Undef"
@@ -7248,7 +7248,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_module"  :subid("16_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "get_module"  :subid("16_1277356886.38597") :method :outer("11_1277356886.38597")
     .param pmc param_125
 .annotate 'line', 47
     new $P124, 'ExceptionHandler'
@@ -7289,7 +7289,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "language"  :subid("17_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "language"  :subid("17_1277356886.38597") :method :outer("11_1277356886.38597")
     .param pmc param_141 :optional
     .param int has_param_141 :opt_flag
 .annotate 'line', 53
@@ -7334,10 +7334,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "load_module"  :subid("18_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "load_module"  :subid("18_1277356886.38597") :method :outer("11_1277356886.38597")
     .param pmc param_156
 .annotate 'line', 61
-    .const 'Sub' $P166 = "19_1275811474.72541" 
+    .const 'Sub' $P166 = "19_1277356886.38597" 
     capture_lex $P166
     new $P155, 'ExceptionHandler'
     set_addr $P155, control_154
@@ -7364,7 +7364,7 @@
     assign $P164, 0
     store_lex "$loaded", $P164
 .annotate 'line', 64
-    .const 'Sub' $P166 = "19_1275811474.72541" 
+    .const 'Sub' $P166 = "19_1277356886.38597" 
     capture_lex $P166
     $P166()
 .annotate 'line', 65
@@ -7394,7 +7394,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block165"  :anon :subid("19_1275811474.72541") :outer("18_1275811474.72541")
+.sub "_block165"  :anon :subid("19_1277356886.38597") :outer("18_1277356886.38597")
 .annotate 'line', 64
     new $P173, 'ExceptionHandler'
     set_addr $P173, control_172
@@ -7428,11 +7428,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "import"  :subid("20_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "import"  :subid("20_1277356886.38597") :method :outer("11_1277356886.38597")
     .param pmc param_191
     .param pmc param_192
 .annotate 'line', 69
-    .const 'Sub' $P198 = "21_1275811474.72541" 
+    .const 'Sub' $P198 = "21_1277356886.38597" 
     capture_lex $P198
     new $P190, 'ExceptionHandler'
     set_addr $P190, control_189
@@ -7454,7 +7454,7 @@
     unless $P193, loop279_done
     shift $P196, $P193
   loop279_redo:
-    .const 'Sub' $P198 = "21_1275811474.72541" 
+    .const 'Sub' $P198 = "21_1277356886.38597" 
     capture_lex $P198
     $P198($P196)
   loop279_next:
@@ -7480,14 +7480,14 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block197"  :anon :subid("21_1275811474.72541") :outer("20_1275811474.72541")
+.sub "_block197"  :anon :subid("21_1277356886.38597") :outer("20_1277356886.38597")
     .param pmc param_201
 .annotate 'line', 70
-    .const 'Sub' $P268 = "24_1275811474.72541" 
+    .const 'Sub' $P268 = "24_1277356886.38597" 
     capture_lex $P268
-    .const 'Sub' $P248 = "23_1275811474.72541" 
+    .const 'Sub' $P248 = "23_1277356886.38597" 
     capture_lex $P248
-    .const 'Sub' $P219 = "22_1275811474.72541" 
+    .const 'Sub' $P219 = "22_1277356886.38597" 
     capture_lex $P219
 .annotate 'line', 71
     new $P199, "Undef"
@@ -7535,7 +7535,7 @@
     unless $P263, loop276_done
     shift $P266, $P263
   loop276_redo:
-    .const 'Sub' $P268 = "24_1275811474.72541" 
+    .const 'Sub' $P268 = "24_1277356886.38597" 
     capture_lex $P268
     $P268($P266)
   loop276_next:
@@ -7567,7 +7567,7 @@
     unless $P243, loop260_done
     shift $P246, $P243
   loop260_redo:
-    .const 'Sub' $P248 = "23_1275811474.72541" 
+    .const 'Sub' $P248 = "23_1277356886.38597" 
     capture_lex $P248
     $P248($P246)
   loop260_next:
@@ -7601,7 +7601,7 @@
     unless $P214, loop232_done
     shift $P217, $P214
   loop232_redo:
-    .const 'Sub' $P219 = "22_1275811474.72541" 
+    .const 'Sub' $P219 = "22_1277356886.38597" 
     capture_lex $P219
     $P219($P217)
   loop232_next:
@@ -7624,7 +7624,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block267"  :anon :subid("24_1275811474.72541") :outer("21_1275811474.72541")
+.sub "_block267"  :anon :subid("24_1277356886.38597") :outer("21_1277356886.38597")
     .param pmc param_269
 .annotate 'line', 80
     .lex "$_", param_269
@@ -7644,7 +7644,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block247"  :anon :subid("23_1275811474.72541") :outer("21_1275811474.72541")
+.sub "_block247"  :anon :subid("23_1277356886.38597") :outer("21_1277356886.38597")
     .param pmc param_249
 .annotate 'line', 77
     .lex "$_", param_249
@@ -7664,7 +7664,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block218"  :anon :subid("22_1275811474.72541") :outer("21_1275811474.72541")
+.sub "_block218"  :anon :subid("22_1277356886.38597") :outer("21_1277356886.38597")
     .param pmc param_220
 .annotate 'line', 74
     .lex "$_", param_220
@@ -7686,7 +7686,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "autoprint"  :subid("25_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "autoprint"  :subid("25_1277356886.38597") :method :outer("11_1277356886.38597")
     .param pmc param_286
 .annotate 'line', 85
     new $P285, 'ExceptionHandler'
@@ -7730,10 +7730,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "interactive"  :subid("26_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "interactive"  :subid("26_1277356886.38597") :method :outer("11_1277356886.38597")
     .param pmc param_301 :slurpy :named
 .annotate 'line', 90
-    .const 'Sub' $P331 = "27_1275811474.72541" 
+    .const 'Sub' $P331 = "27_1277356886.38597" 
     capture_lex $P331
     new $P300, 'ExceptionHandler'
     set_addr $P300, control_299
@@ -7815,7 +7815,7 @@
     assign $P329, 1
     unless $P329, loop438_done
   loop438_redo:
-    .const 'Sub' $P331 = "27_1275811474.72541" 
+    .const 'Sub' $P331 = "27_1277356886.38597" 
     capture_lex $P331
     $P331()
   loop438_next:
@@ -7840,9 +7840,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block330"  :anon :subid("27_1275811474.72541") :outer("26_1275811474.72541")
+.sub "_block330"  :anon :subid("27_1277356886.38597") :outer("26_1277356886.38597")
 .annotate 'line', 101
-    .const 'Sub' $P367 = "28_1275811474.72541" 
+    .const 'Sub' $P367 = "28_1277356886.38597" 
     capture_lex $P367
 .annotate 'line', 104
     new $P332, "Undef"
@@ -7924,7 +7924,7 @@
     set $P363, $P365
     goto if_364_end
   if_364:
-    .const 'Sub' $P367 = "28_1275811474.72541" 
+    .const 'Sub' $P367 = "28_1277356886.38597" 
     capture_lex $P367
     $P437 = $P367()
     set $P363, $P437
@@ -7936,11 +7936,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block366"  :anon :subid("28_1275811474.72541") :outer("27_1275811474.72541")
+.sub "_block366"  :anon :subid("28_1277356886.38597") :outer("27_1277356886.38597")
 .annotate 'line', 116
-    .const 'Sub' $P405 = "31_1275811474.72541" 
+    .const 'Sub' $P405 = "31_1277356886.38597" 
     capture_lex $P405
-    .const 'Sub' $P373 = "29_1275811474.72541" 
+    .const 'Sub' $P373 = "29_1277356886.38597" 
     capture_lex $P373
 .annotate 'line', 118
     new $P368, "Undef"
@@ -7951,7 +7951,7 @@
     store_lex "$code", $P370
     find_lex $P371, "$output"
 .annotate 'line', 119
-    .const 'Sub' $P373 = "29_1275811474.72541" 
+    .const 'Sub' $P373 = "29_1277356886.38597" 
     capture_lex $P373
     $P373()
 .annotate 'line', 126
@@ -7984,7 +7984,7 @@
     unless $P399, loop412_done
     shift $P403, $P399
   loop412_redo:
-    .const 'Sub' $P405 = "31_1275811474.72541" 
+    .const 'Sub' $P405 = "31_1277356886.38597" 
     capture_lex $P405
     $P405($P403)
   loop412_next:
@@ -8049,9 +8049,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block372"  :anon :subid("29_1275811474.72541") :outer("28_1275811474.72541")
+.sub "_block372"  :anon :subid("29_1277356886.38597") :outer("28_1277356886.38597")
 .annotate 'line', 119
-    .const 'Sub' $P385 = "30_1275811474.72541" 
+    .const 'Sub' $P385 = "30_1277356886.38597" 
     capture_lex $P385
     new $P381, 'ExceptionHandler'
     set_addr $P381, control_380
@@ -8071,7 +8071,7 @@
 .annotate 'line', 121
     .local pmc exception 
     .get_results (exception) 
-    .const 'Sub' $P385 = "30_1275811474.72541" 
+    .const 'Sub' $P385 = "30_1277356886.38597" 
     newclosure $P393, $P385
     $P393(exception)
     new $P394, 'Integer'
@@ -8091,7 +8091,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block384"  :anon :subid("30_1275811474.72541") :outer("29_1275811474.72541")
+.sub "_block384"  :anon :subid("30_1277356886.38597") :outer("29_1277356886.38597")
     .param pmc param_386
 .annotate 'line', 121
     .lex "$_", param_386
@@ -8113,7 +8113,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block404"  :anon :subid("31_1275811474.72541") :outer("28_1275811474.72541")
+.sub "_block404"  :anon :subid("31_1277356886.38597") :outer("28_1277356886.38597")
     .param pmc param_406
 .annotate 'line', 127
     .lex "$_", param_406
@@ -8135,12 +8135,12 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "eval"  :subid("32_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "eval"  :subid("32_1277356886.38597") :method :outer("11_1277356886.38597")
     .param pmc param_445
     .param pmc param_446 :slurpy
     .param pmc param_447 :slurpy :named
 .annotate 'line', 144
-    .const 'Sub' $P466 = "33_1275811474.72541" 
+    .const 'Sub' $P466 = "33_1277356886.38597" 
     capture_lex $P466
     new $P444, 'ExceptionHandler'
     set_addr $P444, control_443
@@ -8187,7 +8187,7 @@
     set $P455, $I464
   if_456_end:
     unless $P455, if_454_end
-    .const 'Sub' $P466 = "33_1275811474.72541" 
+    .const 'Sub' $P466 = "33_1277356886.38597" 
     capture_lex $P466
     $P466()
   if_454_end:
@@ -8204,7 +8204,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block465"  :anon :subid("33_1275811474.72541") :outer("32_1275811474.72541")
+.sub "_block465"  :anon :subid("33_1277356886.38597") :outer("32_1277356886.38597")
 .annotate 'line', 150
     new $P467, "Undef"
     .lex "$outer_ctx", $P467
@@ -8258,7 +8258,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "ctxsave"  :subid("34_1275811474.72541") :method :outer("11_1275811474.72541")
+.sub "ctxsave"  :subid("34_1277356886.38597") :method :outer("11_1277356886.38597")
 .annotate 'line', 163
     new $P486, 'ExceptionHandler'
     set_addr $P486, control_485
@@ -8286,9 +8286,9 @@
 
 
 .namespace []
-.sub "_block493" :load :anon :subid("35_1275811474.72541")
+.sub "_block493" :load :anon :subid("35_1277356886.38597")
 .annotate 'line', 1
-    .const 'Sub' $P495 = "10_1275811474.72541" 
+    .const 'Sub' $P495 = "10_1277356886.38597" 
     $P496 = $P495()
     .return ($P496)
 .end

Modified: branches/dynop_mapping/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/dynop_mapping/ext/nqp-rx/src/stage0/NQP-s0.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/ext/nqp-rx/src/stage0/NQP-s0.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -15,7 +15,7 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1275811487.95429")
+.sub "_block11"  :anon :subid("10_1277356913.9538")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
@@ -29,333 +29,333 @@
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
-    $P1424 = $P14()
+    $P1426 = $P14()
 .annotate 'line', 1
-    .return ($P1424)
-    .const 'Sub' $P1426 = "363_1275811487.95429" 
     .return ($P1426)
+    .const 'Sub' $P1428 = "363_1277356913.9538" 
+    .return ($P1428)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post364") :outer("10_1275811487.95429")
+.sub "" :load :init :subid("post364") :outer("10_1277356913.9538")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1275811487.95429" 
+    .const 'Sub' $P12 = "10_1277356913.9538" 
     .local pmc block
     set block, $P12
-    $P1429 = get_root_global ["parrot"], "P6metaclass"
-    $P1429."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+    $P1431 = get_root_global ["parrot"], "P6metaclass"
+    $P1431."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1275811487.95429") :outer("10_1275811487.95429")
+.sub "_block13"  :subid("11_1277356913.9538") :outer("10_1277356913.9538")
 .annotate 'line', 4
-    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
-    capture_lex $P1340
-    .const 'Sub' $P1326 = "340_1275811487.95429" 
-    capture_lex $P1326
-    .const 'Sub' $P1320 = "338_1275811487.95429" 
-    capture_lex $P1320
-    .const 'Sub' $P1314 = "336_1275811487.95429" 
-    capture_lex $P1314
-    .const 'Sub' $P1308 = "334_1275811487.95429" 
-    capture_lex $P1308
-    .const 'Sub' $P1302 = "332_1275811487.95429" 
-    capture_lex $P1302
-    .const 'Sub' $P1296 = "330_1275811487.95429" 
-    capture_lex $P1296
-    .const 'Sub' $P1289 = "328_1275811487.95429" 
-    capture_lex $P1289
-    .const 'Sub' $P1282 = "326_1275811487.95429" 
-    capture_lex $P1282
-    .const 'Sub' $P1275 = "324_1275811487.95429" 
-    capture_lex $P1275
-    .const 'Sub' $P1268 = "322_1275811487.95429" 
-    capture_lex $P1268
-    .const 'Sub' $P1262 = "320_1275811487.95429" 
-    capture_lex $P1262
-    .const 'Sub' $P1255 = "318_1275811487.95429" 
-    capture_lex $P1255
-    .const 'Sub' $P1248 = "316_1275811487.95429" 
-    capture_lex $P1248
-    .const 'Sub' $P1241 = "314_1275811487.95429" 
-    capture_lex $P1241
-    .const 'Sub' $P1234 = "312_1275811487.95429" 
-    capture_lex $P1234
-    .const 'Sub' $P1227 = "310_1275811487.95429" 
-    capture_lex $P1227
-    .const 'Sub' $P1220 = "308_1275811487.95429" 
-    capture_lex $P1220
-    .const 'Sub' $P1213 = "306_1275811487.95429" 
-    capture_lex $P1213
-    .const 'Sub' $P1206 = "304_1275811487.95429" 
-    capture_lex $P1206
-    .const 'Sub' $P1199 = "302_1275811487.95429" 
-    capture_lex $P1199
-    .const 'Sub' $P1192 = "300_1275811487.95429" 
-    capture_lex $P1192
-    .const 'Sub' $P1185 = "298_1275811487.95429" 
-    capture_lex $P1185
-    .const 'Sub' $P1178 = "296_1275811487.95429" 
-    capture_lex $P1178
-    .const 'Sub' $P1171 = "294_1275811487.95429" 
-    capture_lex $P1171
-    .const 'Sub' $P1164 = "292_1275811487.95429" 
-    capture_lex $P1164
-    .const 'Sub' $P1157 = "290_1275811487.95429" 
-    capture_lex $P1157
-    .const 'Sub' $P1150 = "288_1275811487.95429" 
-    capture_lex $P1150
-    .const 'Sub' $P1143 = "286_1275811487.95429" 
-    capture_lex $P1143
-    .const 'Sub' $P1136 = "284_1275811487.95429" 
-    capture_lex $P1136
-    .const 'Sub' $P1129 = "282_1275811487.95429" 
-    capture_lex $P1129
-    .const 'Sub' $P1122 = "280_1275811487.95429" 
-    capture_lex $P1122
-    .const 'Sub' $P1115 = "278_1275811487.95429" 
-    capture_lex $P1115
-    .const 'Sub' $P1108 = "276_1275811487.95429" 
-    capture_lex $P1108
-    .const 'Sub' $P1101 = "274_1275811487.95429" 
-    capture_lex $P1101
-    .const 'Sub' $P1094 = "272_1275811487.95429" 
-    capture_lex $P1094
-    .const 'Sub' $P1087 = "270_1275811487.95429" 
-    capture_lex $P1087
-    .const 'Sub' $P1080 = "268_1275811487.95429" 
-    capture_lex $P1080
-    .const 'Sub' $P1074 = "266_1275811487.95429" 
-    capture_lex $P1074
-    .const 'Sub' $P1067 = "264_1275811487.95429" 
-    capture_lex $P1067
-    .const 'Sub' $P1060 = "262_1275811487.95429" 
-    capture_lex $P1060
-    .const 'Sub' $P1053 = "260_1275811487.95429" 
-    capture_lex $P1053
-    .const 'Sub' $P1046 = "258_1275811487.95429" 
-    capture_lex $P1046
-    .const 'Sub' $P1039 = "256_1275811487.95429" 
-    capture_lex $P1039
-    .const 'Sub' $P1032 = "254_1275811487.95429" 
-    capture_lex $P1032
-    .const 'Sub' $P1025 = "252_1275811487.95429" 
-    capture_lex $P1025
-    .const 'Sub' $P1019 = "250_1275811487.95429" 
-    capture_lex $P1019
-    .const 'Sub' $P1013 = "248_1275811487.95429" 
-    capture_lex $P1013
-    .const 'Sub' $P1008 = "246_1275811487.95429" 
-    capture_lex $P1008
-    .const 'Sub' $P1002 = "244_1275811487.95429" 
-    capture_lex $P1002
-    .const 'Sub' $P996 = "242_1275811487.95429" 
-    capture_lex $P996
-    .const 'Sub' $P991 = "240_1275811487.95429" 
-    capture_lex $P991
-    .const 'Sub' $P986 = "238_1275811487.95429" 
-    capture_lex $P986
-    .const 'Sub' $P978 = "236_1275811487.95429" 
-    capture_lex $P978
-    .const 'Sub' $P970 = "234_1275811487.95429" 
-    capture_lex $P970
-    .const 'Sub' $P965 = "232_1275811487.95429" 
-    capture_lex $P965
-    .const 'Sub' $P960 = "230_1275811487.95429" 
-    capture_lex $P960
-    .const 'Sub' $P955 = "228_1275811487.95429" 
-    capture_lex $P955
-    .const 'Sub' $P947 = "226_1275811487.95429" 
-    capture_lex $P947
-    .const 'Sub' $P939 = "224_1275811487.95429" 
-    capture_lex $P939
-    .const 'Sub' $P934 = "222_1275811487.95429" 
-    capture_lex $P934
-    .const 'Sub' $P929 = "220_1275811487.95429" 
-    capture_lex $P929
-    .const 'Sub' $P924 = "218_1275811487.95429" 
-    capture_lex $P924
-    .const 'Sub' $P918 = "216_1275811487.95429" 
-    capture_lex $P918
-    .const 'Sub' $P912 = "214_1275811487.95429" 
-    capture_lex $P912
-    .const 'Sub' $P906 = "212_1275811487.95429" 
-    capture_lex $P906
-    .const 'Sub' $P900 = "210_1275811487.95429" 
-    capture_lex $P900
-    .const 'Sub' $P894 = "208_1275811487.95429" 
-    capture_lex $P894
-    .const 'Sub' $P889 = "206_1275811487.95429" 
-    capture_lex $P889
-    .const 'Sub' $P884 = "204_1275811487.95429" 
-    capture_lex $P884
-    .const 'Sub' $P871 = "200_1275811487.95429" 
-    capture_lex $P871
-    .const 'Sub' $P863 = "198_1275811487.95429" 
-    capture_lex $P863
-    .const 'Sub' $P857 = "196_1275811487.95429" 
-    capture_lex $P857
-    .const 'Sub' $P850 = "194_1275811487.95429" 
-    capture_lex $P850
-    .const 'Sub' $P844 = "192_1275811487.95429" 
-    capture_lex $P844
-    .const 'Sub' $P836 = "190_1275811487.95429" 
-    capture_lex $P836
-    .const 'Sub' $P828 = "188_1275811487.95429" 
-    capture_lex $P828
-    .const 'Sub' $P822 = "186_1275811487.95429" 
-    capture_lex $P822
-    .const 'Sub' $P816 = "184_1275811487.95429" 
-    capture_lex $P816
-    .const 'Sub' $P801 = "180_1275811487.95429" 
-    capture_lex $P801
-    .const 'Sub' $P763 = "178_1275811487.95429" 
-    capture_lex $P763
-    .const 'Sub' $P754 = "176_1275811487.95429" 
-    capture_lex $P754
-    .const 'Sub' $P748 = "174_1275811487.95429" 
-    capture_lex $P748
-    .const 'Sub' $P738 = "172_1275811487.95429" 
-    capture_lex $P738
-    .const 'Sub' $P724 = "170_1275811487.95429" 
-    capture_lex $P724
-    .const 'Sub' $P715 = "168_1275811487.95429" 
-    capture_lex $P715
-    .const 'Sub' $P707 = "166_1275811487.95429" 
-    capture_lex $P707
-    .const 'Sub' $P697 = "164_1275811487.95429" 
-    capture_lex $P697
-    .const 'Sub' $P673 = "160_1275811487.95429" 
-    capture_lex $P673
-    .const 'Sub' $P648 = "158_1275811487.95429" 
-    capture_lex $P648
-    .const 'Sub' $P641 = "156_1275811487.95429" 
-    capture_lex $P641
-    .const 'Sub' $P634 = "154_1275811487.95429" 
-    capture_lex $P634
-    .const 'Sub' $P624 = "150_1275811487.95429" 
-    capture_lex $P624
-    .const 'Sub' $P616 = "148_1275811487.95429" 
-    capture_lex $P616
-    .const 'Sub' $P610 = "146_1275811487.95429" 
-    capture_lex $P610
-    .const 'Sub' $P597 = "144_1275811487.95429" 
-    capture_lex $P597
-    .const 'Sub' $P590 = "142_1275811487.95429" 
-    capture_lex $P590
-    .const 'Sub' $P583 = "140_1275811487.95429" 
-    capture_lex $P583
-    .const 'Sub' $P576 = "138_1275811487.95429" 
-    capture_lex $P576
-    .const 'Sub' $P548 = "134_1275811487.95429" 
-    capture_lex $P548
-    .const 'Sub' $P539 = "132_1275811487.95429" 
-    capture_lex $P539
-    .const 'Sub' $P532 = "130_1275811487.95429" 
-    capture_lex $P532
-    .const 'Sub' $P523 = "126_1275811487.95429" 
-    capture_lex $P523
-    .const 'Sub' $P518 = "124_1275811487.95429" 
-    capture_lex $P518
-    .const 'Sub' $P506 = "122_1275811487.95429" 
-    capture_lex $P506
-    .const 'Sub' $P494 = "120_1275811487.95429" 
-    capture_lex $P494
-    .const 'Sub' $P486 = "118_1275811487.95429" 
-    capture_lex $P486
-    .const 'Sub' $P481 = "116_1275811487.95429" 
-    capture_lex $P481
-    .const 'Sub' $P475 = "114_1275811487.95429" 
-    capture_lex $P475
-    .const 'Sub' $P469 = "112_1275811487.95429" 
-    capture_lex $P469
-    .const 'Sub' $P459 = "109_1275811487.95429" 
-    capture_lex $P459
-    .const 'Sub' $P453 = "107_1275811487.95429" 
-    capture_lex $P453
-    .const 'Sub' $P447 = "105_1275811487.95429" 
-    capture_lex $P447
-    .const 'Sub' $P441 = "103_1275811487.95429" 
-    capture_lex $P441
-    .const 'Sub' $P435 = "101_1275811487.95429" 
-    capture_lex $P435
-    .const 'Sub' $P429 = "99_1275811487.95429" 
-    capture_lex $P429
-    .const 'Sub' $P423 = "97_1275811487.95429" 
-    capture_lex $P423
-    .const 'Sub' $P414 = "95_1275811487.95429" 
-    capture_lex $P414
-    .const 'Sub' $P405 = "93_1275811487.95429" 
-    capture_lex $P405
-    .const 'Sub' $P392 = "89_1275811487.95429" 
-    capture_lex $P392
-    .const 'Sub' $P383 = "87_1275811487.95429" 
-    capture_lex $P383
-    .const 'Sub' $P373 = "83_1275811487.95429" 
-    capture_lex $P373
-    .const 'Sub' $P366 = "81_1275811487.95429" 
-    capture_lex $P366
-    .const 'Sub' $P359 = "79_1275811487.95429" 
-    capture_lex $P359
-    .const 'Sub' $P347 = "75_1275811487.95429" 
-    capture_lex $P347
-    .const 'Sub' $P339 = "73_1275811487.95429" 
-    capture_lex $P339
-    .const 'Sub' $P331 = "71_1275811487.95429" 
-    capture_lex $P331
-    .const 'Sub' $P311 = "69_1275811487.95429" 
-    capture_lex $P311
-    .const 'Sub' $P302 = "67_1275811487.95429" 
-    capture_lex $P302
-    .const 'Sub' $P284 = "64_1275811487.95429" 
-    capture_lex $P284
-    .const 'Sub' $P264 = "62_1275811487.95429" 
-    capture_lex $P264
-    .const 'Sub' $P255 = "58_1275811487.95429" 
-    capture_lex $P255
-    .const 'Sub' $P250 = "56_1275811487.95429" 
-    capture_lex $P250
-    .const 'Sub' $P241 = "52_1275811487.95429" 
-    capture_lex $P241
-    .const 'Sub' $P236 = "50_1275811487.95429" 
-    capture_lex $P236
-    .const 'Sub' $P231 = "48_1275811487.95429" 
-    capture_lex $P231
-    .const 'Sub' $P223 = "46_1275811487.95429" 
-    capture_lex $P223
-    .const 'Sub' $P216 = "44_1275811487.95429" 
-    capture_lex $P216
-    .const 'Sub' $P210 = "42_1275811487.95429" 
-    capture_lex $P210
-    .const 'Sub' $P202 = "40_1275811487.95429" 
-    capture_lex $P202
-    .const 'Sub' $P196 = "38_1275811487.95429" 
-    capture_lex $P196
-    .const 'Sub' $P190 = "36_1275811487.95429" 
-    capture_lex $P190
-    .const 'Sub' $P174 = "33_1275811487.95429" 
-    capture_lex $P174
-    .const 'Sub' $P159 = "31_1275811487.95429" 
-    capture_lex $P159
-    .const 'Sub' $P152 = "29_1275811487.95429" 
-    capture_lex $P152
-    .const 'Sub' $P102 = "26_1275811487.95429" 
-    capture_lex $P102
-    .const 'Sub' $P84 = "23_1275811487.95429" 
-    capture_lex $P84
-    .const 'Sub' $P70 = "21_1275811487.95429" 
-    capture_lex $P70
-    .const 'Sub' $P56 = "19_1275811487.95429" 
-    capture_lex $P56
-    .const 'Sub' $P48 = "17_1275811487.95429" 
-    capture_lex $P48
-    .const 'Sub' $P41 = "15_1275811487.95429" 
-    capture_lex $P41
-    .const 'Sub' $P35 = "13_1275811487.95429" 
+    get_hll_global $P1342, ["NQP";"Regex"], "_block1341" 
+    capture_lex $P1342
+    .const 'Sub' $P1328 = "340_1277356913.9538" 
+    capture_lex $P1328
+    .const 'Sub' $P1322 = "338_1277356913.9538" 
+    capture_lex $P1322
+    .const 'Sub' $P1316 = "336_1277356913.9538" 
+    capture_lex $P1316
+    .const 'Sub' $P1310 = "334_1277356913.9538" 
+    capture_lex $P1310
+    .const 'Sub' $P1304 = "332_1277356913.9538" 
+    capture_lex $P1304
+    .const 'Sub' $P1298 = "330_1277356913.9538" 
+    capture_lex $P1298
+    .const 'Sub' $P1291 = "328_1277356913.9538" 
+    capture_lex $P1291
+    .const 'Sub' $P1284 = "326_1277356913.9538" 
+    capture_lex $P1284
+    .const 'Sub' $P1277 = "324_1277356913.9538" 
+    capture_lex $P1277
+    .const 'Sub' $P1270 = "322_1277356913.9538" 
+    capture_lex $P1270
+    .const 'Sub' $P1264 = "320_1277356913.9538" 
+    capture_lex $P1264
+    .const 'Sub' $P1257 = "318_1277356913.9538" 
+    capture_lex $P1257
+    .const 'Sub' $P1250 = "316_1277356913.9538" 
+    capture_lex $P1250
+    .const 'Sub' $P1243 = "314_1277356913.9538" 
+    capture_lex $P1243
+    .const 'Sub' $P1236 = "312_1277356913.9538" 
+    capture_lex $P1236
+    .const 'Sub' $P1229 = "310_1277356913.9538" 
+    capture_lex $P1229
+    .const 'Sub' $P1222 = "308_1277356913.9538" 
+    capture_lex $P1222
+    .const 'Sub' $P1215 = "306_1277356913.9538" 
+    capture_lex $P1215
+    .const 'Sub' $P1208 = "304_1277356913.9538" 
+    capture_lex $P1208
+    .const 'Sub' $P1201 = "302_1277356913.9538" 
+    capture_lex $P1201
+    .const 'Sub' $P1194 = "300_1277356913.9538" 
+    capture_lex $P1194
+    .const 'Sub' $P1187 = "298_1277356913.9538" 
+    capture_lex $P1187
+    .const 'Sub' $P1180 = "296_1277356913.9538" 
+    capture_lex $P1180
+    .const 'Sub' $P1173 = "294_1277356913.9538" 
+    capture_lex $P1173
+    .const 'Sub' $P1166 = "292_1277356913.9538" 
+    capture_lex $P1166
+    .const 'Sub' $P1159 = "290_1277356913.9538" 
+    capture_lex $P1159
+    .const 'Sub' $P1152 = "288_1277356913.9538" 
+    capture_lex $P1152
+    .const 'Sub' $P1145 = "286_1277356913.9538" 
+    capture_lex $P1145
+    .const 'Sub' $P1138 = "284_1277356913.9538" 
+    capture_lex $P1138
+    .const 'Sub' $P1131 = "282_1277356913.9538" 
+    capture_lex $P1131
+    .const 'Sub' $P1124 = "280_1277356913.9538" 
+    capture_lex $P1124
+    .const 'Sub' $P1117 = "278_1277356913.9538" 
+    capture_lex $P1117
+    .const 'Sub' $P1110 = "276_1277356913.9538" 
+    capture_lex $P1110
+    .const 'Sub' $P1103 = "274_1277356913.9538" 
+    capture_lex $P1103
+    .const 'Sub' $P1096 = "272_1277356913.9538" 
+    capture_lex $P1096
+    .const 'Sub' $P1089 = "270_1277356913.9538" 
+    capture_lex $P1089
+    .const 'Sub' $P1082 = "268_1277356913.9538" 
+    capture_lex $P1082
+    .const 'Sub' $P1076 = "266_1277356913.9538" 
+    capture_lex $P1076
+    .const 'Sub' $P1069 = "264_1277356913.9538" 
+    capture_lex $P1069
+    .const 'Sub' $P1062 = "262_1277356913.9538" 
+    capture_lex $P1062
+    .const 'Sub' $P1055 = "260_1277356913.9538" 
+    capture_lex $P1055
+    .const 'Sub' $P1048 = "258_1277356913.9538" 
+    capture_lex $P1048
+    .const 'Sub' $P1041 = "256_1277356913.9538" 
+    capture_lex $P1041
+    .const 'Sub' $P1034 = "254_1277356913.9538" 
+    capture_lex $P1034
+    .const 'Sub' $P1027 = "252_1277356913.9538" 
+    capture_lex $P1027
+    .const 'Sub' $P1021 = "250_1277356913.9538" 
+    capture_lex $P1021
+    .const 'Sub' $P1015 = "248_1277356913.9538" 
+    capture_lex $P1015
+    .const 'Sub' $P1010 = "246_1277356913.9538" 
+    capture_lex $P1010
+    .const 'Sub' $P1004 = "244_1277356913.9538" 
+    capture_lex $P1004
+    .const 'Sub' $P998 = "242_1277356913.9538" 
+    capture_lex $P998
+    .const 'Sub' $P993 = "240_1277356913.9538" 
+    capture_lex $P993
+    .const 'Sub' $P988 = "238_1277356913.9538" 
+    capture_lex $P988
+    .const 'Sub' $P980 = "236_1277356913.9538" 
+    capture_lex $P980
+    .const 'Sub' $P972 = "234_1277356913.9538" 
+    capture_lex $P972
+    .const 'Sub' $P967 = "232_1277356913.9538" 
+    capture_lex $P967
+    .const 'Sub' $P962 = "230_1277356913.9538" 
+    capture_lex $P962
+    .const 'Sub' $P957 = "228_1277356913.9538" 
+    capture_lex $P957
+    .const 'Sub' $P949 = "226_1277356913.9538" 
+    capture_lex $P949
+    .const 'Sub' $P941 = "224_1277356913.9538" 
+    capture_lex $P941
+    .const 'Sub' $P936 = "222_1277356913.9538" 
+    capture_lex $P936
+    .const 'Sub' $P931 = "220_1277356913.9538" 
+    capture_lex $P931
+    .const 'Sub' $P926 = "218_1277356913.9538" 
+    capture_lex $P926
+    .const 'Sub' $P920 = "216_1277356913.9538" 
+    capture_lex $P920
+    .const 'Sub' $P914 = "214_1277356913.9538" 
+    capture_lex $P914
+    .const 'Sub' $P908 = "212_1277356913.9538" 
+    capture_lex $P908
+    .const 'Sub' $P902 = "210_1277356913.9538" 
+    capture_lex $P902
+    .const 'Sub' $P896 = "208_1277356913.9538" 
+    capture_lex $P896
+    .const 'Sub' $P891 = "206_1277356913.9538" 
+    capture_lex $P891
+    .const 'Sub' $P886 = "204_1277356913.9538" 
+    capture_lex $P886
+    .const 'Sub' $P873 = "200_1277356913.9538" 
+    capture_lex $P873
+    .const 'Sub' $P865 = "198_1277356913.9538" 
+    capture_lex $P865
+    .const 'Sub' $P859 = "196_1277356913.9538" 
+    capture_lex $P859
+    .const 'Sub' $P852 = "194_1277356913.9538" 
+    capture_lex $P852
+    .const 'Sub' $P846 = "192_1277356913.9538" 
+    capture_lex $P846
+    .const 'Sub' $P838 = "190_1277356913.9538" 
+    capture_lex $P838
+    .const 'Sub' $P830 = "188_1277356913.9538" 
+    capture_lex $P830
+    .const 'Sub' $P824 = "186_1277356913.9538" 
+    capture_lex $P824
+    .const 'Sub' $P818 = "184_1277356913.9538" 
+    capture_lex $P818
+    .const 'Sub' $P803 = "180_1277356913.9538" 
+    capture_lex $P803
+    .const 'Sub' $P765 = "178_1277356913.9538" 
+    capture_lex $P765
+    .const 'Sub' $P756 = "176_1277356913.9538" 
+    capture_lex $P756
+    .const 'Sub' $P750 = "174_1277356913.9538" 
+    capture_lex $P750
+    .const 'Sub' $P740 = "172_1277356913.9538" 
+    capture_lex $P740
+    .const 'Sub' $P726 = "170_1277356913.9538" 
+    capture_lex $P726
+    .const 'Sub' $P717 = "168_1277356913.9538" 
+    capture_lex $P717
+    .const 'Sub' $P709 = "166_1277356913.9538" 
+    capture_lex $P709
+    .const 'Sub' $P699 = "164_1277356913.9538" 
+    capture_lex $P699
+    .const 'Sub' $P675 = "160_1277356913.9538" 
+    capture_lex $P675
+    .const 'Sub' $P650 = "158_1277356913.9538" 
+    capture_lex $P650
+    .const 'Sub' $P643 = "156_1277356913.9538" 
+    capture_lex $P643
+    .const 'Sub' $P636 = "154_1277356913.9538" 
+    capture_lex $P636
+    .const 'Sub' $P626 = "150_1277356913.9538" 
+    capture_lex $P626
+    .const 'Sub' $P618 = "148_1277356913.9538" 
+    capture_lex $P618
+    .const 'Sub' $P612 = "146_1277356913.9538" 
+    capture_lex $P612
+    .const 'Sub' $P599 = "144_1277356913.9538" 
+    capture_lex $P599
+    .const 'Sub' $P592 = "142_1277356913.9538" 
+    capture_lex $P592
+    .const 'Sub' $P585 = "140_1277356913.9538" 
+    capture_lex $P585
+    .const 'Sub' $P578 = "138_1277356913.9538" 
+    capture_lex $P578
+    .const 'Sub' $P550 = "134_1277356913.9538" 
+    capture_lex $P550
+    .const 'Sub' $P541 = "132_1277356913.9538" 
+    capture_lex $P541
+    .const 'Sub' $P534 = "130_1277356913.9538" 
+    capture_lex $P534
+    .const 'Sub' $P525 = "126_1277356913.9538" 
+    capture_lex $P525
+    .const 'Sub' $P520 = "124_1277356913.9538" 
+    capture_lex $P520
+    .const 'Sub' $P508 = "122_1277356913.9538" 
+    capture_lex $P508
+    .const 'Sub' $P496 = "120_1277356913.9538" 
+    capture_lex $P496
+    .const 'Sub' $P488 = "118_1277356913.9538" 
+    capture_lex $P488
+    .const 'Sub' $P483 = "116_1277356913.9538" 
+    capture_lex $P483
+    .const 'Sub' $P477 = "114_1277356913.9538" 
+    capture_lex $P477
+    .const 'Sub' $P471 = "112_1277356913.9538" 
+    capture_lex $P471
+    .const 'Sub' $P461 = "109_1277356913.9538" 
+    capture_lex $P461
+    .const 'Sub' $P455 = "107_1277356913.9538" 
+    capture_lex $P455
+    .const 'Sub' $P449 = "105_1277356913.9538" 
+    capture_lex $P449
+    .const 'Sub' $P443 = "103_1277356913.9538" 
+    capture_lex $P443
+    .const 'Sub' $P437 = "101_1277356913.9538" 
+    capture_lex $P437
+    .const 'Sub' $P431 = "99_1277356913.9538" 
+    capture_lex $P431
+    .const 'Sub' $P425 = "97_1277356913.9538" 
+    capture_lex $P425
+    .const 'Sub' $P416 = "95_1277356913.9538" 
+    capture_lex $P416
+    .const 'Sub' $P407 = "93_1277356913.9538" 
+    capture_lex $P407
+    .const 'Sub' $P394 = "89_1277356913.9538" 
+    capture_lex $P394
+    .const 'Sub' $P385 = "87_1277356913.9538" 
+    capture_lex $P385
+    .const 'Sub' $P375 = "83_1277356913.9538" 
+    capture_lex $P375
+    .const 'Sub' $P368 = "81_1277356913.9538" 
+    capture_lex $P368
+    .const 'Sub' $P361 = "79_1277356913.9538" 
+    capture_lex $P361
+    .const 'Sub' $P349 = "75_1277356913.9538" 
+    capture_lex $P349
+    .const 'Sub' $P341 = "73_1277356913.9538" 
+    capture_lex $P341
+    .const 'Sub' $P333 = "71_1277356913.9538" 
+    capture_lex $P333
+    .const 'Sub' $P313 = "69_1277356913.9538" 
+    capture_lex $P313
+    .const 'Sub' $P304 = "67_1277356913.9538" 
+    capture_lex $P304
+    .const 'Sub' $P286 = "64_1277356913.9538" 
+    capture_lex $P286
+    .const 'Sub' $P266 = "62_1277356913.9538" 
+    capture_lex $P266
+    .const 'Sub' $P257 = "58_1277356913.9538" 
+    capture_lex $P257
+    .const 'Sub' $P252 = "56_1277356913.9538" 
+    capture_lex $P252
+    .const 'Sub' $P243 = "52_1277356913.9538" 
+    capture_lex $P243
+    .const 'Sub' $P238 = "50_1277356913.9538" 
+    capture_lex $P238
+    .const 'Sub' $P233 = "48_1277356913.9538" 
+    capture_lex $P233
+    .const 'Sub' $P225 = "46_1277356913.9538" 
+    capture_lex $P225
+    .const 'Sub' $P218 = "44_1277356913.9538" 
+    capture_lex $P218
+    .const 'Sub' $P212 = "42_1277356913.9538" 
+    capture_lex $P212
+    .const 'Sub' $P204 = "40_1277356913.9538" 
+    capture_lex $P204
+    .const 'Sub' $P198 = "38_1277356913.9538" 
+    capture_lex $P198
+    .const 'Sub' $P192 = "36_1277356913.9538" 
+    capture_lex $P192
+    .const 'Sub' $P176 = "33_1277356913.9538" 
+    capture_lex $P176
+    .const 'Sub' $P161 = "31_1277356913.9538" 
+    capture_lex $P161
+    .const 'Sub' $P154 = "29_1277356913.9538" 
+    capture_lex $P154
+    .const 'Sub' $P104 = "26_1277356913.9538" 
+    capture_lex $P104
+    .const 'Sub' $P86 = "23_1277356913.9538" 
+    capture_lex $P86
+    .const 'Sub' $P72 = "21_1277356913.9538" 
+    capture_lex $P72
+    .const 'Sub' $P58 = "19_1277356913.9538" 
+    capture_lex $P58
+    .const 'Sub' $P50 = "17_1277356913.9538" 
+    capture_lex $P50
+    .const 'Sub' $P43 = "15_1277356913.9538" 
+    capture_lex $P43
+    .const 'Sub' $P35 = "13_1277356913.9538" 
     capture_lex $P35
-    .const 'Sub' $P15 = "12_1275811487.95429" 
+    .const 'Sub' $P15 = "12_1277356913.9538" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -364,76 +364,76 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 563
-    get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
-    capture_lex $P1340
-    $P1403 = $P1340()
+    get_hll_global $P1342, ["NQP";"Regex"], "_block1341" 
+    capture_lex $P1342
+    $P1405 = $P1342()
 .annotate 'line', 4
-    .return ($P1403)
-    .const 'Sub' $P1405 = "362_1275811487.95429" 
     .return ($P1405)
+    .const 'Sub' $P1407 = "362_1277356913.9538" 
+    .return ($P1407)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post365") :outer("11_1275811487.95429")
+.sub "" :load :init :subid("post365") :outer("11_1277356913.9538")
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 447
-    get_hll_global $P1408, ["NQP"], "Grammar"
-    $P1408."O"(":prec<y=>, :assoc<unary>", "%methodop")
+    get_hll_global $P1410, ["NQP"], "Grammar"
+    $P1410."O"(":prec<y=>, :assoc<unary>", "%methodop")
 .annotate 'line', 448
-    get_hll_global $P1409, ["NQP"], "Grammar"
-    $P1409."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
+    get_hll_global $P1411, ["NQP"], "Grammar"
+    $P1411."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
 .annotate 'line', 449
-    get_hll_global $P1410, ["NQP"], "Grammar"
-    $P1410."O"(":prec<w=>, :assoc<left>", "%exponentiation")
+    get_hll_global $P1412, ["NQP"], "Grammar"
+    $P1412."O"(":prec<w=>, :assoc<left>", "%exponentiation")
 .annotate 'line', 450
-    get_hll_global $P1411, ["NQP"], "Grammar"
-    $P1411."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
+    get_hll_global $P1413, ["NQP"], "Grammar"
+    $P1413."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
 .annotate 'line', 451
-    get_hll_global $P1412, ["NQP"], "Grammar"
-    $P1412."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+    get_hll_global $P1414, ["NQP"], "Grammar"
+    $P1414."O"(":prec<u=>, :assoc<left>", "%multiplicative")
 .annotate 'line', 452
-    get_hll_global $P1413, ["NQP"], "Grammar"
-    $P1413."O"(":prec<t=>, :assoc<left>", "%additive")
+    get_hll_global $P1415, ["NQP"], "Grammar"
+    $P1415."O"(":prec<t=>, :assoc<left>", "%additive")
 .annotate 'line', 453
-    get_hll_global $P1414, ["NQP"], "Grammar"
-    $P1414."O"(":prec<r=>, :assoc<left>", "%concatenation")
+    get_hll_global $P1416, ["NQP"], "Grammar"
+    $P1416."O"(":prec<r=>, :assoc<left>", "%concatenation")
 .annotate 'line', 454
-    get_hll_global $P1415, ["NQP"], "Grammar"
-    $P1415."O"(":prec<m=>, :assoc<left>", "%relational")
+    get_hll_global $P1417, ["NQP"], "Grammar"
+    $P1417."O"(":prec<m=>, :assoc<left>", "%relational")
 .annotate 'line', 455
-    get_hll_global $P1416, ["NQP"], "Grammar"
-    $P1416."O"(":prec<l=>, :assoc<left>", "%tight_and")
+    get_hll_global $P1418, ["NQP"], "Grammar"
+    $P1418."O"(":prec<l=>, :assoc<left>", "%tight_and")
 .annotate 'line', 456
-    get_hll_global $P1417, ["NQP"], "Grammar"
-    $P1417."O"(":prec<k=>, :assoc<left>", "%tight_or")
+    get_hll_global $P1419, ["NQP"], "Grammar"
+    $P1419."O"(":prec<k=>, :assoc<left>", "%tight_or")
 .annotate 'line', 457
-    get_hll_global $P1418, ["NQP"], "Grammar"
-    $P1418."O"(":prec<j=>, :assoc<right>", "%conditional")
+    get_hll_global $P1420, ["NQP"], "Grammar"
+    $P1420."O"(":prec<j=>, :assoc<right>", "%conditional")
 .annotate 'line', 458
-    get_hll_global $P1419, ["NQP"], "Grammar"
-    $P1419."O"(":prec<i=>, :assoc<right>", "%assignment")
+    get_hll_global $P1421, ["NQP"], "Grammar"
+    $P1421."O"(":prec<i=>, :assoc<right>", "%assignment")
 .annotate 'line', 459
-    get_hll_global $P1420, ["NQP"], "Grammar"
-    $P1420."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+    get_hll_global $P1422, ["NQP"], "Grammar"
+    $P1422."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
 .annotate 'line', 460
-    get_hll_global $P1421, ["NQP"], "Grammar"
-    $P1421."O"(":prec<f=>, :assoc<list>", "%list_infix")
+    get_hll_global $P1423, ["NQP"], "Grammar"
+    $P1423."O"(":prec<f=>, :assoc<list>", "%list_infix")
 .annotate 'line', 461
-    get_hll_global $P1422, ["NQP"], "Grammar"
-    $P1422."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+    get_hll_global $P1424, ["NQP"], "Grammar"
+    $P1424."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
 .annotate 'line', 446
-    $P1423 = get_root_global ["parrot"], "P6metaclass"
-    $P1423."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+    $P1425 = get_root_global ["parrot"], "P6metaclass"
+    $P1425."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("12_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "TOP"  :subid("12_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
@@ -523,7 +523,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "identifier"  :subid("13_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
     .local string rx36_tgt
     .local int rx36_pos
@@ -556,13 +556,31 @@
     rx36_cur."!mark_push"(0, rx36_pos, $I10)
   rxscan40_done:
 .annotate 'line', 17
-  # rx subrule "ident" subtype=capture negate=
+  # rx subrule "ident" subtype=method negate=
+    rx36_cur."!cursor_pos"(rx36_pos)
+    $P10 = rx36_cur."ident"()
+    unless $P10, rx36_fail
+    rx36_pos = $P10."pos"()
+  # rx rxquantr41 ** 0..*
+    set_addr $I42, rxquantr41_done
+    rx36_cur."!mark_push"(0, rx36_pos, $I42)
+  rxquantr41_loop:
+  # rx enumcharlist negate=0 
+    ge rx36_pos, rx36_eos, rx36_fail
+    sub $I10, rx36_pos, rx36_off
+    substr $S10, rx36_tgt, $I10, 1
+    index $I11, "-'", $S10
+    lt $I11, 0, rx36_fail
+    inc rx36_pos
+  # rx subrule "ident" subtype=method negate=
     rx36_cur."!cursor_pos"(rx36_pos)
     $P10 = rx36_cur."ident"()
     unless $P10, rx36_fail
-    rx36_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("ident")
     rx36_pos = $P10."pos"()
+    (rx36_rep) = rx36_cur."!mark_commit"($I42)
+    rx36_cur."!mark_push"(rx36_rep, rx36_pos, $I42)
+    goto rxquantr41_loop
+  rxquantr41_done:
   # rx pass
     rx36_cur."!cursor_pass"(rx36_pos, "identifier")
     rx36_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx36_pos)
@@ -582,7 +600,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1275811487.95429") :method
+.sub "!PREFIX__identifier"  :subid("14_1277356913.9538") :method
 .annotate 'line', 4
     $P38 = self."!PREFIX__!subrule"("ident", "")
     new $P39, "ResizablePMCArray"
@@ -592,16848 +610,16836 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "name"  :subid("15_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx42_tgt
-    .local int rx42_pos
-    .local int rx42_off
-    .local int rx42_eos
-    .local int rx42_rep
-    .local pmc rx42_cur
-    (rx42_cur, rx42_pos, rx42_tgt) = self."!cursor_start"()
-    rx42_cur."!cursor_debug"("START ", "name")
-    rx42_cur."!cursor_caparray"("identifier")
-    .lex unicode:"$\x{a2}", rx42_cur
-    .local pmc match
-    .lex "$/", match
-    length rx42_eos, rx42_tgt
-    gt rx42_pos, rx42_eos, rx42_done
-    set rx42_off, 0
-    lt rx42_pos, 2, rx42_start
-    sub rx42_off, rx42_pos, 1
-    substr rx42_tgt, rx42_tgt, rx42_off
-  rx42_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan45_done
-    goto rxscan45_scan
-  rxscan45_loop:
-    ($P10) = rx42_cur."from"()
-    inc $P10
-    set rx42_pos, $P10
-    ge rx42_pos, rx42_eos, rxscan45_done
-  rxscan45_scan:
-    set_addr $I10, rxscan45_loop
-    rx42_cur."!mark_push"(0, rx42_pos, $I10)
-  rxscan45_done:
+    .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:
 .annotate 'line', 19
-  # rx rxquantr46 ** 1..*
-    set_addr $I47, rxquantr46_done
-    rx42_cur."!mark_push"(0, -1, $I47)
-  rxquantr46_loop:
+  # rx rxquantr48 ** 1..*
+    set_addr $I49, rxquantr48_done
+    rx44_cur."!mark_push"(0, -1, $I49)
+  rxquantr48_loop:
   # rx subrule "identifier" subtype=capture negate=
-    rx42_cur."!cursor_pos"(rx42_pos)
-    $P10 = rx42_cur."identifier"()
-    unless $P10, rx42_fail
-    rx42_cur."!mark_push"(0, -1, 0, $P10)
+    rx44_cur."!cursor_pos"(rx44_pos)
+    $P10 = rx44_cur."identifier"()
+    unless $P10, rx44_fail
+    rx44_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx42_pos = $P10."pos"()
-    (rx42_rep) = rx42_cur."!mark_commit"($I47)
-    rx42_cur."!mark_push"(rx42_rep, rx42_pos, $I47)
+    rx44_pos = $P10."pos"()
+    (rx44_rep) = rx44_cur."!mark_commit"($I49)
+    rx44_cur."!mark_push"(rx44_rep, rx44_pos, $I49)
   # rx literal  "::"
-    add $I11, rx42_pos, 2
-    gt $I11, rx42_eos, rx42_fail
-    sub $I11, rx42_pos, rx42_off
-    substr $S10, rx42_tgt, $I11, 2
-    ne $S10, "::", rx42_fail
-    add rx42_pos, 2
-    goto rxquantr46_loop
-  rxquantr46_done:
+    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
-    rx42_cur."!cursor_pass"(rx42_pos, "name")
-    rx42_cur."!cursor_debug"("PASS  ", "name", " at pos=", rx42_pos)
-    .return (rx42_cur)
-  rx42_fail:
+    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
-    (rx42_rep, rx42_pos, $I10, $P10) = rx42_cur."!mark_fail"(0)
-    lt rx42_pos, -1, rx42_done
-    eq rx42_pos, -1, rx42_fail
+    (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
-  rx42_done:
-    rx42_cur."!cursor_fail"()
-    rx42_cur."!cursor_debug"("FAIL  ", "name")
-    .return (rx42_cur)
+  rx44_done:
+    rx44_cur."!cursor_fail"()
+    rx44_cur."!cursor_debug"("FAIL  ", "name")
+    .return (rx44_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1275811487.95429") :method
+.sub "!PREFIX__name"  :subid("16_1277356913.9538") :method
 .annotate 'line', 4
-    new $P44, "ResizablePMCArray"
-    push $P44, ""
-    .return ($P44)
+    new $P46, "ResizablePMCArray"
+    push $P46, ""
+    .return ($P46)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "deflongname"  :subid("17_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx49_tgt
-    .local int rx49_pos
-    .local int rx49_off
-    .local int rx49_eos
-    .local int rx49_rep
-    .local pmc rx49_cur
-    (rx49_cur, rx49_pos, rx49_tgt) = self."!cursor_start"()
-    rx49_cur."!cursor_debug"("START ", "deflongname")
-    rx49_cur."!cursor_caparray"("colonpair")
-    .lex unicode:"$\x{a2}", rx49_cur
+    .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 rx49_eos, rx49_tgt
-    gt rx49_pos, rx49_eos, rx49_done
-    set rx49_off, 0
-    lt rx49_pos, 2, rx49_start
-    sub rx49_off, rx49_pos, 1
-    substr rx49_tgt, rx49_tgt, rx49_off
-  rx49_start:
+    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, rxscan53_done
-    goto rxscan53_scan
-  rxscan53_loop:
-    ($P10) = rx49_cur."from"()
+    ne $I10, -1, rxscan55_done
+    goto rxscan55_scan
+  rxscan55_loop:
+    ($P10) = rx51_cur."from"()
     inc $P10
-    set rx49_pos, $P10
-    ge rx49_pos, rx49_eos, rxscan53_done
-  rxscan53_scan:
-    set_addr $I10, rxscan53_loop
-    rx49_cur."!mark_push"(0, rx49_pos, $I10)
-  rxscan53_done:
+    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:
 .annotate 'line', 22
   # rx subrule "identifier" subtype=capture negate=
-    rx49_cur."!cursor_pos"(rx49_pos)
-    $P10 = rx49_cur."identifier"()
-    unless $P10, rx49_fail
-    rx49_cur."!mark_push"(0, -1, 0, $P10)
+    rx51_cur."!cursor_pos"(rx51_pos)
+    $P10 = rx51_cur."identifier"()
+    unless $P10, rx51_fail
+    rx51_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx49_pos = $P10."pos"()
-  # rx rxquantr54 ** 0..1
-    set_addr $I55, rxquantr54_done
-    rx49_cur."!mark_push"(0, rx49_pos, $I55)
-  rxquantr54_loop:
+    rx51_pos = $P10."pos"()
+  # rx rxquantr56 ** 0..1
+    set_addr $I57, rxquantr56_done
+    rx51_cur."!mark_push"(0, rx51_pos, $I57)
+  rxquantr56_loop:
   # rx subrule "colonpair" subtype=capture negate=
-    rx49_cur."!cursor_pos"(rx49_pos)
-    $P10 = rx49_cur."colonpair"()
-    unless $P10, rx49_fail
-    rx49_cur."!mark_push"(0, -1, 0, $P10)
+    rx51_cur."!cursor_pos"(rx51_pos)
+    $P10 = rx51_cur."colonpair"()
+    unless $P10, rx51_fail
+    rx51_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("colonpair")
-    rx49_pos = $P10."pos"()
-    (rx49_rep) = rx49_cur."!mark_commit"($I55)
-  rxquantr54_done:
+    rx51_pos = $P10."pos"()
+    (rx51_rep) = rx51_cur."!mark_commit"($I57)
+  rxquantr56_done:
 .annotate 'line', 21
   # rx pass
-    rx49_cur."!cursor_pass"(rx49_pos, "deflongname")
-    rx49_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx49_pos)
-    .return (rx49_cur)
-  rx49_fail:
+    rx51_cur."!cursor_pass"(rx51_pos, "deflongname")
+    rx51_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx51_pos)
+    .return (rx51_cur)
+  rx51_fail:
 .annotate 'line', 4
-    (rx49_rep, rx49_pos, $I10, $P10) = rx49_cur."!mark_fail"(0)
-    lt rx49_pos, -1, rx49_done
-    eq rx49_pos, -1, rx49_fail
+    (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0)
+    lt rx51_pos, -1, rx51_done
+    eq rx51_pos, -1, rx51_fail
     jump $I10
-  rx49_done:
-    rx49_cur."!cursor_fail"()
-    rx49_cur."!cursor_debug"("FAIL  ", "deflongname")
-    .return (rx49_cur)
+  rx51_done:
+    rx51_cur."!cursor_fail"()
+    rx51_cur."!cursor_debug"("FAIL  ", "deflongname")
+    .return (rx51_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1275811487.95429") :method
+.sub "!PREFIX__deflongname"  :subid("18_1277356913.9538") :method
 .annotate 'line', 4
-    $P51 = self."!PREFIX__!subrule"("identifier", "")
-    new $P52, "ResizablePMCArray"
-    push $P52, $P51
-    .return ($P52)
+    $P53 = self."!PREFIX__!subrule"("identifier", "")
+    new $P54, "ResizablePMCArray"
+    push $P54, $P53
+    .return ($P54)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "ENDSTMT"  :subid("19_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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 ", "ENDSTMT")
-    .lex unicode:"$\x{a2}", rx57_cur
+    .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 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 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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan60_done
-    goto rxscan60_scan
-  rxscan60_loop:
-    ($P10) = rx57_cur."from"()
+    ne $I10, -1, rxscan62_done
+    goto rxscan62_scan
+  rxscan62_loop:
+    ($P10) = rx59_cur."from"()
     inc $P10
-    set rx57_pos, $P10
-    ge rx57_pos, rx57_eos, rxscan60_done
-  rxscan60_scan:
-    set_addr $I10, rxscan60_loop
-    rx57_cur."!mark_push"(0, rx57_pos, $I10)
-  rxscan60_done:
+    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:
 .annotate 'line', 29
-  # rx rxquantr61 ** 0..1
-    set_addr $I69, rxquantr61_done
-    rx57_cur."!mark_push"(0, rx57_pos, $I69)
-  rxquantr61_loop:
-  alt62_0:
+  # rx rxquantr63 ** 0..1
+    set_addr $I71, rxquantr63_done
+    rx59_cur."!mark_push"(0, rx59_pos, $I71)
+  rxquantr63_loop:
+  alt64_0:
 .annotate 'line', 26
-    set_addr $I10, alt62_1
-    rx57_cur."!mark_push"(0, rx57_pos, $I10)
+    set_addr $I10, alt64_1
+    rx59_cur."!mark_push"(0, rx59_pos, $I10)
 .annotate 'line', 27
-  # rx rxquantr63 ** 0..*
-    set_addr $I64, rxquantr63_done
-    rx57_cur."!mark_push"(0, rx57_pos, $I64)
-  rxquantr63_loop:
+  # rx rxquantr65 ** 0..*
+    set_addr $I66, rxquantr65_done
+    rx59_cur."!mark_push"(0, rx59_pos, $I66)
+  rxquantr65_loop:
   # rx enumcharlist negate=0 
-    ge rx57_pos, rx57_eos, rx57_fail
-    sub $I10, rx57_pos, rx57_off
-    substr $S10, rx57_tgt, $I10, 1
+    ge rx59_pos, rx59_eos, rx59_fail
+    sub $I10, rx59_pos, rx59_off
+    substr $S10, rx59_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, rx57_fail
-    inc rx57_pos
-    (rx57_rep) = rx57_cur."!mark_commit"($I64)
-    rx57_cur."!mark_push"(rx57_rep, rx57_pos, $I64)
-    goto rxquantr63_loop
-  rxquantr63_done:
+    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:
   # rxanchor eol
-    sub $I10, rx57_pos, rx57_off
-    is_cclass $I11, 4096, rx57_tgt, $I10
-    if $I11, rxanchor65_done
-    ne rx57_pos, rx57_eos, rx57_fail
-    eq rx57_pos, 0, rxanchor65_done
+    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
     dec $I10
-    is_cclass $I11, 4096, rx57_tgt, $I10
-    if $I11, rx57_fail
-  rxanchor65_done:
-  # rx subrule "ws" subtype=method negate=
-    rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."ws"()
-    unless $P10, rx57_fail
-    rx57_pos = $P10."pos"()
+    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"()
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."MARKER"("endstmt")
-    unless $P10, rx57_fail
-    goto alt62_end
-  alt62_1:
+    rx59_cur."!cursor_pos"(rx59_pos)
+    $P10 = rx59_cur."MARKER"("endstmt")
+    unless $P10, rx59_fail
+    goto alt64_end
+  alt64_1:
 .annotate 'line', 28
-  # rx rxquantr66 ** 0..1
-    set_addr $I67, rxquantr66_done
-    rx57_cur."!mark_push"(0, rx57_pos, $I67)
-  rxquantr66_loop:
+  # rx rxquantr68 ** 0..1
+    set_addr $I69, rxquantr68_done
+    rx59_cur."!mark_push"(0, rx59_pos, $I69)
+  rxquantr68_loop:
   # rx subrule "unv" subtype=method negate=
-    rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."unv"()
-    unless $P10, rx57_fail
-    rx57_pos = $P10."pos"()
-    (rx57_rep) = rx57_cur."!mark_commit"($I67)
-  rxquantr66_done:
+    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:
   # rxanchor eol
-    sub $I10, rx57_pos, rx57_off
-    is_cclass $I11, 4096, rx57_tgt, $I10
-    if $I11, rxanchor68_done
-    ne rx57_pos, rx57_eos, rx57_fail
-    eq rx57_pos, 0, rxanchor68_done
+    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
     dec $I10
-    is_cclass $I11, 4096, rx57_tgt, $I10
-    if $I11, rx57_fail
-  rxanchor68_done:
-  # rx subrule "ws" subtype=method negate=
-    rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."ws"()
-    unless $P10, rx57_fail
-    rx57_pos = $P10."pos"()
+    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"()
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."MARKER"("endstmt")
-    unless $P10, rx57_fail
-  alt62_end:
+    rx59_cur."!cursor_pos"(rx59_pos)
+    $P10 = rx59_cur."MARKER"("endstmt")
+    unless $P10, rx59_fail
+  alt64_end:
 .annotate 'line', 29
-    (rx57_rep) = rx57_cur."!mark_commit"($I69)
-  rxquantr61_done:
+    (rx59_rep) = rx59_cur."!mark_commit"($I71)
+  rxquantr63_done:
 .annotate 'line', 25
   # rx pass
-    rx57_cur."!cursor_pass"(rx57_pos, "ENDSTMT")
-    rx57_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx57_pos)
-    .return (rx57_cur)
-  rx57_fail:
+    rx59_cur."!cursor_pass"(rx59_pos, "ENDSTMT")
+    rx59_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx59_pos)
+    .return (rx59_cur)
+  rx59_fail:
 .annotate 'line', 4
-    (rx57_rep, rx57_pos, $I10, $P10) = rx57_cur."!mark_fail"(0)
-    lt rx57_pos, -1, rx57_done
-    eq rx57_pos, -1, rx57_fail
+    (rx59_rep, rx59_pos, $I10, $P10) = rx59_cur."!mark_fail"(0)
+    lt rx59_pos, -1, rx59_done
+    eq rx59_pos, -1, rx59_fail
     jump $I10
-  rx57_done:
-    rx57_cur."!cursor_fail"()
-    rx57_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
-    .return (rx57_cur)
+  rx59_done:
+    rx59_cur."!cursor_fail"()
+    rx59_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
+    .return (rx59_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1275811487.95429") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1277356913.9538") :method
 .annotate 'line', 4
-    new $P59, "ResizablePMCArray"
-    push $P59, ""
-    .return ($P59)
+    new $P61, "ResizablePMCArray"
+    push $P61, ""
+    .return ($P61)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "ws"  :subid("21_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx71_tgt
-    .local int rx71_pos
-    .local int rx71_off
-    .local int rx71_eos
-    .local int rx71_rep
-    .local pmc rx71_cur
-    (rx71_cur, rx71_pos, rx71_tgt) = self."!cursor_start"()
-    rx71_cur."!cursor_debug"("START ", "ws")
-    .lex unicode:"$\x{a2}", rx71_cur
-    .local pmc match
-    .lex "$/", match
-    length rx71_eos, rx71_tgt
-    gt rx71_pos, rx71_eos, rx71_done
-    set rx71_off, 0
-    lt rx71_pos, 2, rx71_start
-    sub rx71_off, rx71_pos, 1
-    substr rx71_tgt, rx71_tgt, rx71_off
-  rx71_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan74_done
-    goto rxscan74_scan
-  rxscan74_loop:
-    ($P10) = rx71_cur."from"()
-    inc $P10
-    set rx71_pos, $P10
-    ge rx71_pos, rx71_eos, rxscan74_done
-  rxscan74_scan:
-    set_addr $I10, rxscan74_loop
-    rx71_cur."!mark_push"(0, rx71_pos, $I10)
-  rxscan74_done:
-  alt75_0:
+    .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:
 .annotate 'line', 32
-    set_addr $I10, alt75_1
-    rx71_cur."!mark_push"(0, rx71_pos, $I10)
+    set_addr $I10, alt77_1
+    rx73_cur."!mark_push"(0, rx73_pos, $I10)
 .annotate 'line', 33
   # rx subrule "MARKED" subtype=zerowidth negate=
-    rx71_cur."!cursor_pos"(rx71_pos)
-    $P10 = rx71_cur."MARKED"("ws")
-    unless $P10, rx71_fail
-    goto alt75_end
-  alt75_1:
+    rx73_cur."!cursor_pos"(rx73_pos)
+    $P10 = rx73_cur."MARKED"("ws")
+    unless $P10, rx73_fail
+    goto alt77_end
+  alt77_1:
 .annotate 'line', 34
   # rx subrule "ww" subtype=zerowidth negate=1
-    rx71_cur."!cursor_pos"(rx71_pos)
-    $P10 = rx71_cur."ww"()
-    if $P10, rx71_fail
+    rx73_cur."!cursor_pos"(rx73_pos)
+    $P10 = rx73_cur."ww"()
+    if $P10, rx73_fail
 .annotate 'line', 39
-  # rx rxquantr76 ** 0..*
-    set_addr $I83, rxquantr76_done
-    rx71_cur."!mark_push"(0, rx71_pos, $I83)
-  rxquantr76_loop:
-  alt77_0:
-.annotate 'line', 35
-    set_addr $I10, alt77_1
-    rx71_cur."!mark_push"(0, rx71_pos, $I10)
-  # rx rxquantr78 ** 1..*
-    set_addr $I79, rxquantr78_done
-    rx71_cur."!mark_push"(0, -1, $I79)
+  # rx rxquantr78 ** 0..*
+    set_addr $I85, rxquantr78_done
+    rx73_cur."!mark_push"(0, rx73_pos, $I85)
   rxquantr78_loop:
+  alt79_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:
   # rx enumcharlist negate=0 
-    ge rx71_pos, rx71_eos, rx71_fail
-    sub $I10, rx71_pos, rx71_off
-    substr $S10, rx71_tgt, $I10, 1
+    ge rx73_pos, rx73_eos, rx73_fail
+    sub $I10, rx73_pos, rx73_off
+    substr $S10, rx73_tgt, $I10, 1
     index $I11, unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", $S10
-    lt $I11, 0, rx71_fail
-    inc rx71_pos
-    (rx71_rep) = rx71_cur."!mark_commit"($I79)
-    rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I79)
-    goto rxquantr78_loop
-  rxquantr78_done:
-    goto alt77_end
-  alt77_1:
-    set_addr $I10, alt77_2
-    rx71_cur."!mark_push"(0, rx71_pos, $I10)
+    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)
 .annotate 'line', 36
   # rx literal  "#"
-    add $I11, rx71_pos, 1
-    gt $I11, rx71_eos, rx71_fail
-    sub $I11, rx71_pos, rx71_off
-    substr $S10, rx71_tgt, $I11, 1
-    ne $S10, "#", rx71_fail
-    add rx71_pos, 1
+    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
   # rx charclass_q N r 0..-1
-    sub $I10, rx71_pos, rx71_off
-    find_cclass $I11, 4096, rx71_tgt, $I10, rx71_eos
-    add rx71_pos, rx71_off, $I11
-    goto alt77_end
-  alt77_2:
-    set_addr $I10, alt77_3
-    rx71_cur."!mark_push"(0, rx71_pos, $I10)
+    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)
 .annotate 'line', 37
   # rxanchor bol
-    eq rx71_pos, 0, rxanchor80_done
-    ge rx71_pos, rx71_eos, rx71_fail
-    sub $I10, rx71_pos, rx71_off
+    eq rx73_pos, 0, rxanchor82_done
+    ge rx73_pos, rx73_eos, rx73_fail
+    sub $I10, rx73_pos, rx73_off
     dec $I10
-    is_cclass $I11, 4096, rx71_tgt, $I10
-    unless $I11, rx71_fail
-  rxanchor80_done:
+    is_cclass $I11, 4096, rx73_tgt, $I10
+    unless $I11, rx73_fail
+  rxanchor82_done:
   # rx subrule "pod_comment" subtype=method negate=
-    rx71_cur."!cursor_pos"(rx71_pos)
-    $P10 = rx71_cur."pod_comment"()
-    unless $P10, rx71_fail
-    rx71_pos = $P10."pos"()
-    goto alt77_end
-  alt77_3:
+    rx73_cur."!cursor_pos"(rx73_pos)
+    $P10 = rx73_cur."pod_comment"()
+    unless $P10, rx73_fail
+    rx73_pos = $P10."pos"()
+    goto alt79_end
+  alt79_3:
 .annotate 'line', 38
-  # rx rxquantr81 ** 1..*
-    set_addr $I82, rxquantr81_done
-    rx71_cur."!mark_push"(0, -1, $I82)
-  rxquantr81_loop:
+  # rx rxquantr83 ** 1..*
+    set_addr $I84, rxquantr83_done
+    rx73_cur."!mark_push"(0, -1, $I84)
+  rxquantr83_loop:
   # rx enumcharlist negate=0 
-    ge rx71_pos, rx71_eos, rx71_fail
-    sub $I10, rx71_pos, rx71_off
-    substr $S10, rx71_tgt, $I10, 1
+    ge rx73_pos, rx73_eos, rx73_fail
+    sub $I10, rx73_pos, rx73_off
+    substr $S10, rx73_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, rx71_fail
-    inc rx71_pos
-    (rx71_rep) = rx71_cur."!mark_commit"($I82)
-    rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I82)
-    goto rxquantr81_loop
-  rxquantr81_done:
-  alt77_end:
+    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:
 .annotate 'line', 39
-    (rx71_rep) = rx71_cur."!mark_commit"($I83)
-    rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I83)
-    goto rxquantr76_loop
-  rxquantr76_done:
+    (rx73_rep) = rx73_cur."!mark_commit"($I85)
+    rx73_cur."!mark_push"(rx73_rep, rx73_pos, $I85)
+    goto rxquantr78_loop
+  rxquantr78_done:
 .annotate 'line', 40
   # rx subrule "MARKER" subtype=zerowidth negate=
-    rx71_cur."!cursor_pos"(rx71_pos)
-    $P10 = rx71_cur."MARKER"("ws")
-    unless $P10, rx71_fail
-  alt75_end:
+    rx73_cur."!cursor_pos"(rx73_pos)
+    $P10 = rx73_cur."MARKER"("ws")
+    unless $P10, rx73_fail
+  alt77_end:
 .annotate 'line', 32
   # rx pass
-    rx71_cur."!cursor_pass"(rx71_pos, "ws")
-    rx71_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx71_pos)
-    .return (rx71_cur)
-  rx71_fail:
+    rx73_cur."!cursor_pass"(rx73_pos, "ws")
+    rx73_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx73_pos)
+    .return (rx73_cur)
+  rx73_fail:
 .annotate 'line', 4
-    (rx71_rep, rx71_pos, $I10, $P10) = rx71_cur."!mark_fail"(0)
-    lt rx71_pos, -1, rx71_done
-    eq rx71_pos, -1, rx71_fail
+    (rx73_rep, rx73_pos, $I10, $P10) = rx73_cur."!mark_fail"(0)
+    lt rx73_pos, -1, rx73_done
+    eq rx73_pos, -1, rx73_fail
     jump $I10
-  rx71_done:
-    rx71_cur."!cursor_fail"()
-    rx71_cur."!cursor_debug"("FAIL  ", "ws")
-    .return (rx71_cur)
+  rx73_done:
+    rx73_cur."!cursor_fail"()
+    rx73_cur."!cursor_debug"("FAIL  ", "ws")
+    .return (rx73_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1275811487.95429") :method
+.sub "!PREFIX__ws"  :subid("22_1277356913.9538") :method
 .annotate 'line', 4
-    new $P73, "ResizablePMCArray"
-    push $P73, ""
-    push $P73, ""
-    .return ($P73)
+    new $P75, "ResizablePMCArray"
+    push $P75, ""
+    push $P75, ""
+    .return ($P75)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "unv"  :subid("23_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .const 'Sub' $P92 = "25_1275811487.95429" 
-    capture_lex $P92
-    .local string rx85_tgt
-    .local int rx85_pos
-    .local int rx85_off
-    .local int rx85_eos
-    .local int rx85_rep
-    .local pmc rx85_cur
-    (rx85_cur, rx85_pos, rx85_tgt) = self."!cursor_start"()
-    rx85_cur."!cursor_debug"("START ", "unv")
-    .lex unicode:"$\x{a2}", rx85_cur
+    .const 'Sub' $P94 = "25_1277356913.9538" 
+    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
     .local pmc match
     .lex "$/", match
-    length rx85_eos, rx85_tgt
-    gt rx85_pos, rx85_eos, rx85_done
-    set rx85_off, 0
-    lt rx85_pos, 2, rx85_start
-    sub rx85_off, rx85_pos, 1
-    substr rx85_tgt, rx85_tgt, rx85_off
-  rx85_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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan88_done
-    goto rxscan88_scan
-  rxscan88_loop:
-    ($P10) = rx85_cur."from"()
+    ne $I10, -1, rxscan90_done
+    goto rxscan90_scan
+  rxscan90_loop:
+    ($P10) = rx87_cur."from"()
     inc $P10
-    set rx85_pos, $P10
-    ge rx85_pos, rx85_eos, rxscan88_done
-  rxscan88_scan:
-    set_addr $I10, rxscan88_loop
-    rx85_cur."!mark_push"(0, rx85_pos, $I10)
-  rxscan88_done:
-  alt89_0:
+    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:
 .annotate 'line', 45
-    set_addr $I10, alt89_1
-    rx85_cur."!mark_push"(0, rx85_pos, $I10)
+    set_addr $I10, alt91_1
+    rx87_cur."!mark_push"(0, rx87_pos, $I10)
 .annotate 'line', 46
   # rxanchor bol
-    eq rx85_pos, 0, rxanchor90_done
-    ge rx85_pos, rx85_eos, rx85_fail
-    sub $I10, rx85_pos, rx85_off
+    eq rx87_pos, 0, rxanchor92_done
+    ge rx87_pos, rx87_eos, rx87_fail
+    sub $I10, rx87_pos, rx87_off
     dec $I10
-    is_cclass $I11, 4096, rx85_tgt, $I10
-    unless $I11, rx85_fail
-  rxanchor90_done:
+    is_cclass $I11, 4096, rx87_tgt, $I10
+    unless $I11, rx87_fail
+  rxanchor92_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx85_cur."!cursor_pos"(rx85_pos)
-    .const 'Sub' $P92 = "25_1275811487.95429" 
-    capture_lex $P92
-    $P10 = rx85_cur."before"($P92)
-    unless $P10, rx85_fail
+    rx87_cur."!cursor_pos"(rx87_pos)
+    .const 'Sub' $P94 = "25_1277356913.9538" 
+    capture_lex $P94
+    $P10 = rx87_cur."before"($P94)
+    unless $P10, rx87_fail
   # rx subrule "pod_comment" subtype=method negate=
-    rx85_cur."!cursor_pos"(rx85_pos)
-    $P10 = rx85_cur."pod_comment"()
-    unless $P10, rx85_fail
-    rx85_pos = $P10."pos"()
-    goto alt89_end
-  alt89_1:
-    set_addr $I10, alt89_2
-    rx85_cur."!mark_push"(0, rx85_pos, $I10)
+    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)
 .annotate 'line', 47
-  # rx rxquantr98 ** 0..*
-    set_addr $I99, rxquantr98_done
-    rx85_cur."!mark_push"(0, rx85_pos, $I99)
-  rxquantr98_loop:
+  # rx rxquantr100 ** 0..*
+    set_addr $I101, rxquantr100_done
+    rx87_cur."!mark_push"(0, rx87_pos, $I101)
+  rxquantr100_loop:
   # rx enumcharlist negate=0 
-    ge rx85_pos, rx85_eos, rx85_fail
-    sub $I10, rx85_pos, rx85_off
-    substr $S10, rx85_tgt, $I10, 1
+    ge rx87_pos, rx87_eos, rx87_fail
+    sub $I10, rx87_pos, rx87_off
+    substr $S10, rx87_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, rx85_fail
-    inc rx85_pos
-    (rx85_rep) = rx85_cur."!mark_commit"($I99)
-    rx85_cur."!mark_push"(rx85_rep, rx85_pos, $I99)
-    goto rxquantr98_loop
-  rxquantr98_done:
+    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:
   # rx literal  "#"
-    add $I11, rx85_pos, 1
-    gt $I11, rx85_eos, rx85_fail
-    sub $I11, rx85_pos, rx85_off
-    substr $S10, rx85_tgt, $I11, 1
-    ne $S10, "#", rx85_fail
-    add rx85_pos, 1
+    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
   # rx charclass_q N r 0..-1
-    sub $I10, rx85_pos, rx85_off
-    find_cclass $I11, 4096, rx85_tgt, $I10, rx85_eos
-    add rx85_pos, rx85_off, $I11
-    goto alt89_end
-  alt89_2:
+    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:
 .annotate 'line', 48
-  # rx rxquantr100 ** 1..*
-    set_addr $I101, rxquantr100_done
-    rx85_cur."!mark_push"(0, -1, $I101)
-  rxquantr100_loop:
+  # rx rxquantr102 ** 1..*
+    set_addr $I103, rxquantr102_done
+    rx87_cur."!mark_push"(0, -1, $I103)
+  rxquantr102_loop:
   # rx enumcharlist negate=0 
-    ge rx85_pos, rx85_eos, rx85_fail
-    sub $I10, rx85_pos, rx85_off
-    substr $S10, rx85_tgt, $I10, 1
+    ge rx87_pos, rx87_eos, rx87_fail
+    sub $I10, rx87_pos, rx87_off
+    substr $S10, rx87_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, rx85_fail
-    inc rx85_pos
-    (rx85_rep) = rx85_cur."!mark_commit"($I101)
-    rx85_cur."!mark_push"(rx85_rep, rx85_pos, $I101)
-    goto rxquantr100_loop
-  rxquantr100_done:
-  alt89_end:
+    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:
 .annotate 'line', 43
   # rx pass
-    rx85_cur."!cursor_pass"(rx85_pos, "unv")
-    rx85_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx85_pos)
-    .return (rx85_cur)
-  rx85_fail:
+    rx87_cur."!cursor_pass"(rx87_pos, "unv")
+    rx87_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx87_pos)
+    .return (rx87_cur)
+  rx87_fail:
 .annotate 'line', 4
-    (rx85_rep, rx85_pos, $I10, $P10) = rx85_cur."!mark_fail"(0)
-    lt rx85_pos, -1, rx85_done
-    eq rx85_pos, -1, rx85_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
-  rx85_done:
-    rx85_cur."!cursor_fail"()
-    rx85_cur."!cursor_debug"("FAIL  ", "unv")
-    .return (rx85_cur)
+  rx87_done:
+    rx87_cur."!cursor_fail"()
+    rx87_cur."!cursor_debug"("FAIL  ", "unv")
+    .return (rx87_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1275811487.95429") :method
+.sub "!PREFIX__unv"  :subid("24_1277356913.9538") :method
 .annotate 'line', 4
-    new $P87, "ResizablePMCArray"
-    push $P87, ""
-    push $P87, ""
-    push $P87, ""
-    .return ($P87)
+    new $P89, "ResizablePMCArray"
+    push $P89, ""
+    push $P89, ""
+    push $P89, ""
+    .return ($P89)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block91"  :anon :subid("25_1275811487.95429") :method :outer("23_1275811487.95429")
+.sub "_block93"  :anon :subid("25_1277356913.9538") :method :outer("23_1277356913.9538")
 .annotate 'line', 46
-    .local string rx93_tgt
-    .local int rx93_pos
-    .local int rx93_off
-    .local int rx93_eos
-    .local int rx93_rep
-    .local pmc rx93_cur
-    (rx93_cur, rx93_pos, rx93_tgt) = self."!cursor_start"()
-    rx93_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx93_cur
-    .local pmc match
-    .lex "$/", match
-    length rx93_eos, rx93_tgt
-    gt rx93_pos, rx93_eos, rx93_done
-    set rx93_off, 0
-    lt rx93_pos, 2, rx93_start
-    sub rx93_off, rx93_pos, 1
-    substr rx93_tgt, rx93_tgt, rx93_off
-  rx93_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan94_done
-    goto rxscan94_scan
-  rxscan94_loop:
-    ($P10) = rx93_cur."from"()
-    inc $P10
-    set rx93_pos, $P10
-    ge rx93_pos, rx93_eos, rxscan94_done
-  rxscan94_scan:
-    set_addr $I10, rxscan94_loop
-    rx93_cur."!mark_push"(0, rx93_pos, $I10)
-  rxscan94_done:
-  # rx rxquantr95 ** 0..*
-    set_addr $I96, rxquantr95_done
-    rx93_cur."!mark_push"(0, rx93_pos, $I96)
-  rxquantr95_loop:
+    .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:
   # rx enumcharlist negate=0 
-    ge rx93_pos, rx93_eos, rx93_fail
-    sub $I10, rx93_pos, rx93_off
-    substr $S10, rx93_tgt, $I10, 1
+    ge rx95_pos, rx95_eos, rx95_fail
+    sub $I10, rx95_pos, rx95_off
+    substr $S10, rx95_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, rx93_fail
-    inc rx93_pos
-    (rx93_rep) = rx93_cur."!mark_commit"($I96)
-    rx93_cur."!mark_push"(rx93_rep, rx93_pos, $I96)
-    goto rxquantr95_loop
-  rxquantr95_done:
+    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:
   # rx literal  "="
-    add $I11, rx93_pos, 1
-    gt $I11, rx93_eos, rx93_fail
-    sub $I11, rx93_pos, rx93_off
-    substr $S10, rx93_tgt, $I11, 1
-    ne $S10, "=", rx93_fail
-    add rx93_pos, 1
-  alt97_0:
-    set_addr $I10, alt97_1
-    rx93_cur."!mark_push"(0, rx93_pos, $I10)
+    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)
   # rx charclass w
-    ge rx93_pos, rx93_eos, rx93_fail
-    sub $I10, rx93_pos, rx93_off
-    is_cclass $I11, 8192, rx93_tgt, $I10
-    unless $I11, rx93_fail
-    inc rx93_pos
-    goto alt97_end
-  alt97_1:
+    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:
   # rx literal  "\\"
-    add $I11, rx93_pos, 1
-    gt $I11, rx93_eos, rx93_fail
-    sub $I11, rx93_pos, rx93_off
-    substr $S10, rx93_tgt, $I11, 1
-    ne $S10, "\\", rx93_fail
-    add rx93_pos, 1
-  alt97_end:
-  # rx pass
-    rx93_cur."!cursor_pass"(rx93_pos, "")
-    rx93_cur."!cursor_debug"("PASS  ", "", " at pos=", rx93_pos)
-    .return (rx93_cur)
-  rx93_fail:
-    (rx93_rep, rx93_pos, $I10, $P10) = rx93_cur."!mark_fail"(0)
-    lt rx93_pos, -1, rx93_done
-    eq rx93_pos, -1, rx93_fail
-    jump $I10
-  rx93_done:
-    rx93_cur."!cursor_fail"()
-    rx93_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx93_cur)
+    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)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
-    .const 'Sub' $P143 = "28_1275811487.95429" 
-    capture_lex $P143
-    .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) = self."!cursor_start"()
-    rx103_cur."!cursor_debug"("START ", "pod_comment")
-    .lex unicode:"$\x{a2}", rx103_cur
-    .local pmc match
-    .lex "$/", match
-    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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan106_done
-    goto rxscan106_scan
-  rxscan106_loop:
-    ($P10) = rx103_cur."from"()
-    inc $P10
-    set rx103_pos, $P10
-    ge rx103_pos, rx103_eos, rxscan106_done
-  rxscan106_scan:
-    set_addr $I10, rxscan106_loop
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
-  rxscan106_done:
+.sub "pod_comment"  :subid("26_1277356913.9538") :method :outer("11_1277356913.9538")
+.annotate 'line', 4
+    .const 'Sub' $P145 = "28_1277356913.9538" 
+    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:
 .annotate 'line', 53
   # rxanchor bol
-    eq rx103_pos, 0, rxanchor107_done
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
+    eq rx105_pos, 0, rxanchor109_done
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
     dec $I10
-    is_cclass $I11, 4096, rx103_tgt, $I10
-    unless $I11, rx103_fail
-  rxanchor107_done:
-  # rx rxquantr108 ** 0..*
-    set_addr $I109, rxquantr108_done
-    rx103_cur."!mark_push"(0, rx103_pos, $I109)
-  rxquantr108_loop:
+    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:
   # rx enumcharlist negate=0 
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I10, 1
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    substr $S10, rx105_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, rx103_fail
-    inc rx103_pos
-    (rx103_rep) = rx103_cur."!mark_commit"($I109)
-    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I109)
-    goto rxquantr108_loop
-  rxquantr108_done:
+    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:
   # rx literal  "="
-    add $I11, rx103_pos, 1
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 1
-    ne $S10, "=", rx103_fail
-    add rx103_pos, 1
-  alt110_0:
+    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:
 .annotate 'line', 54
-    set_addr $I10, alt110_1
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    set_addr $I10, alt112_1
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
 .annotate 'line', 55
   # rx literal  "begin"
-    add $I11, rx103_pos, 5
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 5
-    ne $S10, "begin", rx103_fail
-    add rx103_pos, 5
-  # rx rxquantr111 ** 1..*
-    set_addr $I112, rxquantr111_done
-    rx103_cur."!mark_push"(0, -1, $I112)
-  rxquantr111_loop:
+    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:
   # rx enumcharlist negate=0 
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I10, 1
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    substr $S10, rx105_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, rx103_fail
-    inc rx103_pos
-    (rx103_rep) = rx103_cur."!mark_commit"($I112)
-    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I112)
-    goto rxquantr111_loop
-  rxquantr111_done:
+    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:
   # rx literal  "END"
-    add $I11, rx103_pos, 3
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 3
-    ne $S10, "END", rx103_fail
-    add rx103_pos, 3
+    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
   # rxanchor rwb
-    le rx103_pos, 0, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    if $I11, rx103_fail
+    le rx105_pos, 0, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    is_cclass $I11, 8192, rx105_tgt, $I10
+    if $I11, rx105_fail
     dec $I10
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    unless $I11, rx103_fail
-  alt113_0:
+    is_cclass $I11, 8192, rx105_tgt, $I10
+    unless $I11, rx105_fail
+  alt115_0:
 .annotate 'line', 56
-    set_addr $I10, alt113_1
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
-  # rx rxquantf114 ** 0..*
-    set_addr $I10, rxquantf114_loop
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
-    goto rxquantf114_done
-  rxquantf114_loop:
+    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:
   # rx charclass .
-    ge rx103_pos, rx103_eos, rx103_fail
-    inc rx103_pos
-    set_addr $I10, rxquantf114_loop
-    rx103_cur."!mark_push"($I115, rx103_pos, $I10)
-  rxquantf114_done:
+    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:
   # rx charclass nl
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 4096, rx103_tgt, $I10
-    unless $I11, rx103_fail
-    substr $S10, rx103_tgt, $I10, 2
+    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
     iseq $I11, $S10, "\r\n"
-    add rx103_pos, $I11
-    inc rx103_pos
-  # rx rxquantr116 ** 0..*
-    set_addr $I117, rxquantr116_done
-    rx103_cur."!mark_push"(0, rx103_pos, $I117)
-  rxquantr116_loop:
-  # rx enumcharlist negate=0 
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    substr $S10, rx103_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, rx103_fail
-    inc rx103_pos
-    (rx103_rep) = rx103_cur."!mark_commit"($I117)
-    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I117)
-    goto rxquantr116_loop
-  rxquantr116_done:
-  # rx literal  "=end"
-    add $I11, rx103_pos, 4
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 4
-    ne $S10, "=end", rx103_fail
-    add rx103_pos, 4
-  # rx rxquantr118 ** 1..*
+    add rx105_pos, $I11
+    inc rx105_pos
+  # rx rxquantr118 ** 0..*
     set_addr $I119, rxquantr118_done
-    rx103_cur."!mark_push"(0, -1, $I119)
+    rx105_cur."!mark_push"(0, rx105_pos, $I119)
   rxquantr118_loop:
   # rx enumcharlist negate=0 
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I10, 1
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    substr $S10, rx105_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, rx103_fail
-    inc rx103_pos
-    (rx103_rep) = rx103_cur."!mark_commit"($I119)
-    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I119)
+    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:
+  # 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:
+  # rx enumcharlist negate=0 
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    substr $S10, rx105_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:
   # rx literal  "END"
-    add $I11, rx103_pos, 3
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 3
-    ne $S10, "END", rx103_fail
-    add rx103_pos, 3
+    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
   # rxanchor rwb
-    le rx103_pos, 0, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    if $I11, rx103_fail
+    le rx105_pos, 0, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    is_cclass $I11, 8192, rx105_tgt, $I10
+    if $I11, rx105_fail
     dec $I10
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    unless $I11, rx103_fail
+    is_cclass $I11, 8192, rx105_tgt, $I10
+    unless $I11, rx105_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx103_pos, rx103_off
-    find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
-    add rx103_pos, rx103_off, $I11
-    goto alt113_end
-  alt113_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:
   # rx charclass_q . r 0..-1
-    sub $I10, rx103_pos, rx103_off
-    find_not_cclass $I11, 65535, rx103_tgt, $I10, rx103_eos
-    add rx103_pos, rx103_off, $I11
-  alt113_end:
+    sub $I10, rx105_pos, rx105_off
+    find_not_cclass $I11, 65535, rx105_tgt, $I10, rx105_eos
+    add rx105_pos, rx105_off, $I11
+  alt115_end:
 .annotate 'line', 55
-    goto alt110_end
-  alt110_1:
-    set_addr $I10, alt110_2
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    goto alt112_end
+  alt112_1:
+    set_addr $I10, alt112_2
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
 .annotate 'line', 57
   # rx literal  "begin"
-    add $I11, rx103_pos, 5
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 5
-    ne $S10, "begin", rx103_fail
-    add rx103_pos, 5
-  # rx rxquantr120 ** 1..*
-    set_addr $I121, rxquantr120_done
-    rx103_cur."!mark_push"(0, -1, $I121)
-  rxquantr120_loop:
+    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:
   # rx enumcharlist negate=0 
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I10, 1
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    substr $S10, rx105_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, rx103_fail
-    inc rx103_pos
-    (rx103_rep) = rx103_cur."!mark_commit"($I121)
-    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I121)
-    goto rxquantr120_loop
-  rxquantr120_done:
+    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:
   # rx subrule "identifier" subtype=capture negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."identifier"()
-    unless $P10, rx103_fail
-    rx103_cur."!mark_push"(0, -1, 0, $P10)
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."identifier"()
+    unless $P10, rx105_fail
+    rx105_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx103_pos = $P10."pos"()
-  alt122_0:
+    rx105_pos = $P10."pos"()
+  alt124_0:
 .annotate 'line', 58
-    set_addr $I10, alt122_1
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    set_addr $I10, alt124_1
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
 .annotate 'line', 59
-  # rx rxquantf123 ** 0..*
-    set_addr $I10, rxquantf123_loop
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
-    goto rxquantf123_done
-  rxquantf123_loop:
+  # rx rxquantf125 ** 0..*
+    set_addr $I10, rxquantf125_loop
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    goto rxquantf125_done
+  rxquantf125_loop:
   # rx charclass .
-    ge rx103_pos, rx103_eos, rx103_fail
-    inc rx103_pos
-    set_addr $I10, rxquantf123_loop
-    rx103_cur."!mark_push"($I124, rx103_pos, $I10)
-  rxquantf123_done:
+    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:
   # rx charclass nl
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 4096, rx103_tgt, $I10
-    unless $I11, rx103_fail
-    substr $S10, rx103_tgt, $I10, 2
+    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
     iseq $I11, $S10, "\r\n"
-    add rx103_pos, $I11
-    inc rx103_pos
-  # rx rxquantr125 ** 0..*
-    set_addr $I126, rxquantr125_done
-    rx103_cur."!mark_push"(0, rx103_pos, $I126)
-  rxquantr125_loop:
-  # rx enumcharlist negate=0 
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    substr $S10, rx103_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, rx103_fail
-    inc rx103_pos
-    (rx103_rep) = rx103_cur."!mark_commit"($I126)
-    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I126)
-    goto rxquantr125_loop
-  rxquantr125_done:
-  # rx literal  "=end"
-    add $I11, rx103_pos, 4
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 4
-    ne $S10, "=end", rx103_fail
-    add rx103_pos, 4
-  # rx rxquantr127 ** 1..*
+    add rx105_pos, $I11
+    inc rx105_pos
+  # rx rxquantr127 ** 0..*
     set_addr $I128, rxquantr127_done
-    rx103_cur."!mark_push"(0, -1, $I128)
+    rx105_cur."!mark_push"(0, rx105_pos, $I128)
   rxquantr127_loop:
   # rx enumcharlist negate=0 
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I10, 1
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    substr $S10, rx105_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, rx103_fail
-    inc rx103_pos
-    (rx103_rep) = rx103_cur."!mark_commit"($I128)
-    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I128)
+    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:
+  # 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:
+  # rx enumcharlist negate=0 
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    substr $S10, rx105_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:
   # rx subrule "!BACKREF" subtype=method negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."!BACKREF"("identifier")
-    unless $P10, rx103_fail
-    rx103_pos = $P10."pos"()
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."!BACKREF"("identifier")
+    unless $P10, rx105_fail
+    rx105_pos = $P10."pos"()
   # rxanchor rwb
-    le rx103_pos, 0, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    if $I11, rx103_fail
+    le rx105_pos, 0, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    is_cclass $I11, 8192, rx105_tgt, $I10
+    if $I11, rx105_fail
     dec $I10
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    unless $I11, rx103_fail
+    is_cclass $I11, 8192, rx105_tgt, $I10
+    unless $I11, rx105_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx103_pos, rx103_off
-    find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
-    add rx103_pos, rx103_off, $I11
-    goto alt122_end
-  alt122_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:
 .annotate 'line', 60
   # rx subrule "panic" subtype=method negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."panic"("=begin without matching =end")
-    unless $P10, rx103_fail
-    rx103_pos = $P10."pos"()
-  alt122_end:
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."panic"("=begin without matching =end")
+    unless $P10, rx105_fail
+    rx105_pos = $P10."pos"()
+  alt124_end:
 .annotate 'line', 57
-    goto alt110_end
-  alt110_2:
-    set_addr $I10, alt110_3
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    goto alt112_end
+  alt112_2:
+    set_addr $I10, alt112_3
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
 .annotate 'line', 62
   # rx literal  "begin"
-    add $I11, rx103_pos, 5
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 5
-    ne $S10, "begin", rx103_fail
-    add rx103_pos, 5
+    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
   # rxanchor rwb
-    le rx103_pos, 0, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    if $I11, rx103_fail
+    le rx105_pos, 0, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    is_cclass $I11, 8192, rx105_tgt, $I10
+    if $I11, rx105_fail
     dec $I10
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    unless $I11, rx103_fail
-  # rx rxquantr130 ** 0..*
-    set_addr $I131, rxquantr130_done
-    rx103_cur."!mark_push"(0, rx103_pos, $I131)
-  rxquantr130_loop:
+    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:
   # rx enumcharlist negate=0 
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I10, 1
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    substr $S10, rx105_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, rx103_fail
-    inc rx103_pos
-    (rx103_rep) = rx103_cur."!mark_commit"($I131)
-    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I131)
-    goto rxquantr130_loop
-  rxquantr130_done:
-  alt132_0:
+    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:
 .annotate 'line', 63
-    set_addr $I10, alt132_1
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    set_addr $I10, alt134_1
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
   # rxanchor eol
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 4096, rx103_tgt, $I10
-    if $I11, rxanchor133_done
-    ne rx103_pos, rx103_eos, rx103_fail
-    eq rx103_pos, 0, rxanchor133_done
+    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
     dec $I10
-    is_cclass $I11, 4096, rx103_tgt, $I10
-    if $I11, rx103_fail
-  rxanchor133_done:
-    goto alt132_end
-  alt132_1:
-    set_addr $I10, alt132_2
-    rx103_cur."!mark_push"(0, rx103_pos, $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)
   # rx literal  "#"
-    add $I11, rx103_pos, 1
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 1
-    ne $S10, "#", rx103_fail
-    add rx103_pos, 1
-    goto alt132_end
-  alt132_2:
+    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:
   # rx subrule "panic" subtype=method negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."panic"("Unrecognized token after =begin")
-    unless $P10, rx103_fail
-    rx103_pos = $P10."pos"()
-  alt132_end:
-  alt134_0:
+    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:
 .annotate 'line', 64
-    set_addr $I10, alt134_1
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    set_addr $I10, alt136_1
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
 .annotate 'line', 65
-  # rx rxquantf135 ** 0..*
-    set_addr $I10, rxquantf135_loop
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
-    goto rxquantf135_done
-  rxquantf135_loop:
+  # rx rxquantf137 ** 0..*
+    set_addr $I10, rxquantf137_loop
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    goto rxquantf137_done
+  rxquantf137_loop:
   # rx charclass .
-    ge rx103_pos, rx103_eos, rx103_fail
-    inc rx103_pos
-    set_addr $I10, rxquantf135_loop
-    rx103_cur."!mark_push"($I136, rx103_pos, $I10)
-  rxquantf135_done:
+    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:
   # rx charclass nl
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 4096, rx103_tgt, $I10
-    unless $I11, rx103_fail
-    substr $S10, rx103_tgt, $I10, 2
+    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
     iseq $I11, $S10, "\r\n"
-    add rx103_pos, $I11
-    inc rx103_pos
-  # rx rxquantr137 ** 0..*
-    set_addr $I138, rxquantr137_done
-    rx103_cur."!mark_push"(0, rx103_pos, $I138)
-  rxquantr137_loop:
+    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:
   # rx enumcharlist negate=0 
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I10, 1
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    substr $S10, rx105_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, rx103_fail
-    inc rx103_pos
-    (rx103_rep) = rx103_cur."!mark_commit"($I138)
-    rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I138)
-    goto rxquantr137_loop
-  rxquantr137_done:
+    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:
   # rx literal  "=end"
-    add $I11, rx103_pos, 4
-    gt $I11, rx103_eos, rx103_fail
-    sub $I11, rx103_pos, rx103_off
-    substr $S10, rx103_tgt, $I11, 4
-    ne $S10, "=end", rx103_fail
-    add rx103_pos, 4
+    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
   # rxanchor rwb
-    le rx103_pos, 0, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    if $I11, rx103_fail
+    le rx105_pos, 0, rx105_fail
+    sub $I10, rx105_pos, rx105_off
+    is_cclass $I11, 8192, rx105_tgt, $I10
+    if $I11, rx105_fail
     dec $I10
-    is_cclass $I11, 8192, rx103_tgt, $I10
-    unless $I11, rx103_fail
+    is_cclass $I11, 8192, rx105_tgt, $I10
+    unless $I11, rx105_fail
   # rx charclass_q N r 0..-1
-    sub $I10, rx103_pos, rx103_off
-    find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
-    add rx103_pos, rx103_off, $I11
-    goto alt134_end
-  alt134_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:
 .annotate 'line', 66
   # rx subrule "panic" subtype=method negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."panic"("=begin without matching =end")
-    unless $P10, rx103_fail
-    rx103_pos = $P10."pos"()
-  alt134_end:
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."panic"("=begin without matching =end")
+    unless $P10, rx105_fail
+    rx105_pos = $P10."pos"()
+  alt136_end:
 .annotate 'line', 62
-    goto alt110_end
-  alt110_3:
-    set_addr $I10, alt110_4
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    goto alt112_end
+  alt112_3:
+    set_addr $I10, alt112_4
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
 .annotate 'line', 68
   # rx subrule "identifier" subtype=capture negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."identifier"()
-    unless $P10, rx103_fail
-    rx103_cur."!mark_push"(0, -1, 0, $P10)
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."identifier"()
+    unless $P10, rx105_fail
+    rx105_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx103_pos = $P10."pos"()
+    rx105_pos = $P10."pos"()
 .annotate 'line', 69
-  # rx rxquantf139 ** 0..*
-    set_addr $I10, rxquantf139_loop
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
-    goto rxquantf139_done
-  rxquantf139_loop:
+  # rx rxquantf141 ** 0..*
+    set_addr $I10, rxquantf141_loop
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
+    goto rxquantf141_done
+  rxquantf141_loop:
   # rx charclass .
-    ge rx103_pos, rx103_eos, rx103_fail
-    inc rx103_pos
-    set_addr $I10, rxquantf139_loop
-    rx103_cur."!mark_push"($I140, rx103_pos, $I10)
-  rxquantf139_done:
+    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:
   # rxanchor bol
-    eq rx103_pos, 0, rxanchor141_done
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
+    eq rx105_pos, 0, rxanchor143_done
+    ge rx105_pos, rx105_eos, rx105_fail
+    sub $I10, rx105_pos, rx105_off
     dec $I10
-    is_cclass $I11, 4096, rx103_tgt, $I10
-    unless $I11, rx103_fail
-  rxanchor141_done:
+    is_cclass $I11, 4096, rx105_tgt, $I10
+    unless $I11, rx105_fail
+  rxanchor143_done:
   # rx subrule "before" subtype=zerowidth negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    .const 'Sub' $P143 = "28_1275811487.95429" 
-    capture_lex $P143
-    $P10 = rx103_cur."before"($P143)
-    unless $P10, rx103_fail
+    rx105_cur."!cursor_pos"(rx105_pos)
+    .const 'Sub' $P145 = "28_1277356913.9538" 
+    capture_lex $P145
+    $P10 = rx105_cur."before"($P145)
+    unless $P10, rx105_fail
 .annotate 'line', 68
-    goto alt110_end
-  alt110_4:
-  alt151_0:
+    goto alt112_end
+  alt112_4:
+  alt153_0:
 .annotate 'line', 75
-    set_addr $I10, alt151_1
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    set_addr $I10, alt153_1
+    rx105_cur."!mark_push"(0, rx105_pos, $I10)
   # rx charclass s
-    ge rx103_pos, rx103_eos, rx103_fail
-    sub $I10, rx103_pos, rx103_off
-    is_cclass $I11, 32, rx103_tgt, $I10
-    unless $I11, rx103_fail
-    inc rx103_pos
-    goto alt151_end
-  alt151_1:
+    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:
   # rx subrule "panic" subtype=method negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."panic"("Illegal pod directive")
-    unless $P10, rx103_fail
-    rx103_pos = $P10."pos"()
-  alt151_end:
+    rx105_cur."!cursor_pos"(rx105_pos)
+    $P10 = rx105_cur."panic"("Illegal pod directive")
+    unless $P10, rx105_fail
+    rx105_pos = $P10."pos"()
+  alt153_end:
 .annotate 'line', 76
   # rx charclass_q N r 0..-1
-    sub $I10, rx103_pos, rx103_off
-    find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
-    add rx103_pos, rx103_off, $I11
-  alt110_end:
+    sub $I10, rx105_pos, rx105_off
+    find_cclass $I11, 4096, rx105_tgt, $I10, rx105_eos
+    add rx105_pos, rx105_off, $I11
+  alt112_end:
 .annotate 'line', 52
   # rx pass
-    rx103_cur."!cursor_pass"(rx103_pos, "pod_comment")
-    rx103_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx103_pos)
-    .return (rx103_cur)
-  rx103_fail:
+    rx105_cur."!cursor_pass"(rx105_pos, "pod_comment")
+    rx105_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx105_pos)
+    .return (rx105_cur)
+  rx105_fail:
 .annotate 'line', 4
-    (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
-    lt rx103_pos, -1, rx103_done
-    eq rx103_pos, -1, rx103_fail
+    (rx105_rep, rx105_pos, $I10, $P10) = rx105_cur."!mark_fail"(0)
+    lt rx105_pos, -1, rx105_done
+    eq rx105_pos, -1, rx105_fail
     jump $I10
-  rx103_done:
-    rx103_cur."!cursor_fail"()
-    rx103_cur."!cursor_debug"("FAIL  ", "pod_comment")
-    .return (rx103_cur)
+  rx105_done:
+    rx105_cur."!cursor_fail"()
+    rx105_cur."!cursor_debug"("FAIL  ", "pod_comment")
+    .return (rx105_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1275811487.95429") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1277356913.9538") :method
 .annotate 'line', 4
-    new $P105, "ResizablePMCArray"
-    push $P105, ""
-    .return ($P105)
+    new $P107, "ResizablePMCArray"
+    push $P107, ""
+    .return ($P107)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block142"  :anon :subid("28_1275811487.95429") :method :outer("26_1275811487.95429")
+.sub "_block144"  :anon :subid("28_1277356913.9538") :method :outer("26_1277356913.9538")
 .annotate 'line', 69
-    .local string rx144_tgt
-    .local int rx144_pos
-    .local int rx144_off
-    .local int rx144_eos
-    .local int rx144_rep
-    .local pmc rx144_cur
-    (rx144_cur, rx144_pos, rx144_tgt) = self."!cursor_start"()
-    rx144_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx144_cur
-    .local pmc match
-    .lex "$/", match
-    length rx144_eos, rx144_tgt
-    gt rx144_pos, rx144_eos, rx144_done
-    set rx144_off, 0
-    lt rx144_pos, 2, rx144_start
-    sub rx144_off, rx144_pos, 1
-    substr rx144_tgt, rx144_tgt, rx144_off
-  rx144_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan145_done
-    goto rxscan145_scan
-  rxscan145_loop:
-    ($P10) = rx144_cur."from"()
-    inc $P10
-    set rx144_pos, $P10
-    ge rx144_pos, rx144_eos, rxscan145_done
-  rxscan145_scan:
-    set_addr $I10, rxscan145_loop
-    rx144_cur."!mark_push"(0, rx144_pos, $I10)
-  rxscan145_done:
-  # rx rxquantr146 ** 0..*
-    set_addr $I147, rxquantr146_done
-    rx144_cur."!mark_push"(0, rx144_pos, $I147)
-  rxquantr146_loop:
+    .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:
   # rx enumcharlist negate=0 
-    ge rx144_pos, rx144_eos, rx144_fail
-    sub $I10, rx144_pos, rx144_off
-    substr $S10, rx144_tgt, $I10, 1
+    ge rx146_pos, rx146_eos, rx146_fail
+    sub $I10, rx146_pos, rx146_off
+    substr $S10, rx146_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, rx144_fail
-    inc rx144_pos
-    (rx144_rep) = rx144_cur."!mark_commit"($I147)
-    rx144_cur."!mark_push"(rx144_rep, rx144_pos, $I147)
-    goto rxquantr146_loop
-  rxquantr146_done:
-  alt148_0:
-    set_addr $I10, alt148_1
-    rx144_cur."!mark_push"(0, rx144_pos, $I10)
+    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)
 .annotate 'line', 70
   # rx literal  "="
-    add $I11, rx144_pos, 1
-    gt $I11, rx144_eos, rx144_fail
-    sub $I11, rx144_pos, rx144_off
-    substr $S10, rx144_tgt, $I11, 1
-    ne $S10, "=", rx144_fail
-    add rx144_pos, 1
+    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
 .annotate 'line', 72
-  # rx rxquantr149 ** 0..1
-    set_addr $I150, rxquantr149_done
-    rx144_cur."!mark_push"(0, rx144_pos, $I150)
-  rxquantr149_loop:
+  # rx rxquantr151 ** 0..1
+    set_addr $I152, rxquantr151_done
+    rx146_cur."!mark_push"(0, rx146_pos, $I152)
+  rxquantr151_loop:
 .annotate 'line', 71
   # rx literal  "cut"
-    add $I11, rx144_pos, 3
-    gt $I11, rx144_eos, rx144_fail
-    sub $I11, rx144_pos, rx144_off
-    substr $S10, rx144_tgt, $I11, 3
-    ne $S10, "cut", rx144_fail
-    add rx144_pos, 3
+    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
   # rxanchor rwb
-    le rx144_pos, 0, rx144_fail
-    sub $I10, rx144_pos, rx144_off
-    is_cclass $I11, 8192, rx144_tgt, $I10
-    if $I11, rx144_fail
+    le rx146_pos, 0, rx146_fail
+    sub $I10, rx146_pos, rx146_off
+    is_cclass $I11, 8192, rx146_tgt, $I10
+    if $I11, rx146_fail
     dec $I10
-    is_cclass $I11, 8192, rx144_tgt, $I10
-    unless $I11, rx144_fail
+    is_cclass $I11, 8192, rx146_tgt, $I10
+    unless $I11, rx146_fail
 .annotate 'line', 72
   # rx subrule "panic" subtype=method negate=
-    rx144_cur."!cursor_pos"(rx144_pos)
-    $P10 = rx144_cur."panic"("Obsolete pod format, please use =begin/=end instead")
-    unless $P10, rx144_fail
-    rx144_pos = $P10."pos"()
-    (rx144_rep) = rx144_cur."!mark_commit"($I150)
-  rxquantr149_done:
+    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:
 .annotate 'line', 69
-    goto alt148_end
-  alt148_1:
+    goto alt150_end
+  alt150_1:
 .annotate 'line', 73
   # rx charclass nl
-    ge rx144_pos, rx144_eos, rx144_fail
-    sub $I10, rx144_pos, rx144_off
-    is_cclass $I11, 4096, rx144_tgt, $I10
-    unless $I11, rx144_fail
-    substr $S10, rx144_tgt, $I10, 2
+    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
     iseq $I11, $S10, "\r\n"
-    add rx144_pos, $I11
-    inc rx144_pos
-  alt148_end:
+    add rx146_pos, $I11
+    inc rx146_pos
+  alt150_end:
 .annotate 'line', 69
   # rx pass
-    rx144_cur."!cursor_pass"(rx144_pos, "")
-    rx144_cur."!cursor_debug"("PASS  ", "", " at pos=", rx144_pos)
-    .return (rx144_cur)
-  rx144_fail:
-    (rx144_rep, rx144_pos, $I10, $P10) = rx144_cur."!mark_fail"(0)
-    lt rx144_pos, -1, rx144_done
-    eq rx144_pos, -1, rx144_fail
-    jump $I10
-  rx144_done:
-    rx144_cur."!cursor_fail"()
-    rx144_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx144_cur)
+    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)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
-    .local string rx153_tgt
-    .local int rx153_pos
-    .local int rx153_off
-    .local int rx153_eos
-    .local int rx153_rep
-    .local pmc rx153_cur
-    (rx153_cur, rx153_pos, rx153_tgt) = self."!cursor_start"()
-    rx153_cur."!cursor_debug"("START ", "comp_unit")
-    .lex unicode:"$\x{a2}", rx153_cur
-    .local pmc match
-    .lex "$/", match
-    length rx153_eos, rx153_tgt
-    gt rx153_pos, rx153_eos, rx153_done
-    set rx153_off, 0
-    lt rx153_pos, 2, rx153_start
-    sub rx153_off, rx153_pos, 1
-    substr rx153_tgt, rx153_tgt, rx153_off
-  rx153_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan157_done
-    goto rxscan157_scan
-  rxscan157_loop:
-    ($P10) = rx153_cur."from"()
-    inc $P10
-    set rx153_pos, $P10
-    ge rx153_pos, rx153_eos, rxscan157_done
-  rxscan157_scan:
-    set_addr $I10, rxscan157_loop
-    rx153_cur."!mark_push"(0, rx153_pos, $I10)
-  rxscan157_done:
+.sub "comp_unit"  :subid("29_1277356913.9538") :method :outer("11_1277356913.9538")
+.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:
 .annotate 'line', 84
   # rx subrule "newpad" subtype=method negate=
-    rx153_cur."!cursor_pos"(rx153_pos)
-    $P10 = rx153_cur."newpad"()
-    unless $P10, rx153_fail
-    rx153_pos = $P10."pos"()
+    rx155_cur."!cursor_pos"(rx155_pos)
+    $P10 = rx155_cur."newpad"()
+    unless $P10, rx155_fail
+    rx155_pos = $P10."pos"()
 .annotate 'line', 85
   # rx subrule "outerctx" subtype=method negate=
-    rx153_cur."!cursor_pos"(rx153_pos)
-    $P10 = rx153_cur."outerctx"()
-    unless $P10, rx153_fail
-    rx153_pos = $P10."pos"()
+    rx155_cur."!cursor_pos"(rx155_pos)
+    $P10 = rx155_cur."outerctx"()
+    unless $P10, rx155_fail
+    rx155_pos = $P10."pos"()
 .annotate 'line', 86
   # rx subrule "statementlist" subtype=capture negate=
-    rx153_cur."!cursor_pos"(rx153_pos)
-    $P10 = rx153_cur."statementlist"()
-    unless $P10, rx153_fail
-    rx153_cur."!mark_push"(0, -1, 0, $P10)
+    rx155_cur."!cursor_pos"(rx155_pos)
+    $P10 = rx155_cur."statementlist"()
+    unless $P10, rx155_fail
+    rx155_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statementlist")
-    rx153_pos = $P10."pos"()
-  alt158_0:
+    rx155_pos = $P10."pos"()
+  alt160_0:
 .annotate 'line', 87
-    set_addr $I10, alt158_1
-    rx153_cur."!mark_push"(0, rx153_pos, $I10)
+    set_addr $I10, alt160_1
+    rx155_cur."!mark_push"(0, rx155_pos, $I10)
   # rxanchor eos
-    ne rx153_pos, rx153_eos, rx153_fail
-    goto alt158_end
-  alt158_1:
+    ne rx155_pos, rx155_eos, rx155_fail
+    goto alt160_end
+  alt160_1:
   # rx subrule "panic" subtype=method negate=
-    rx153_cur."!cursor_pos"(rx153_pos)
-    $P10 = rx153_cur."panic"("Confused")
-    unless $P10, rx153_fail
-    rx153_pos = $P10."pos"()
-  alt158_end:
+    rx155_cur."!cursor_pos"(rx155_pos)
+    $P10 = rx155_cur."panic"("Confused")
+    unless $P10, rx155_fail
+    rx155_pos = $P10."pos"()
+  alt160_end:
 .annotate 'line', 83
   # rx pass
-    rx153_cur."!cursor_pass"(rx153_pos, "comp_unit")
-    rx153_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx153_pos)
-    .return (rx153_cur)
-  rx153_fail:
+    rx155_cur."!cursor_pass"(rx155_pos, "comp_unit")
+    rx155_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx155_pos)
+    .return (rx155_cur)
+  rx155_fail:
 .annotate 'line', 4
-    (rx153_rep, rx153_pos, $I10, $P10) = rx153_cur."!mark_fail"(0)
-    lt rx153_pos, -1, rx153_done
-    eq rx153_pos, -1, rx153_fail
+    (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0)
+    lt rx155_pos, -1, rx155_done
+    eq rx155_pos, -1, rx155_fail
     jump $I10
-  rx153_done:
-    rx153_cur."!cursor_fail"()
-    rx153_cur."!cursor_debug"("FAIL  ", "comp_unit")
-    .return (rx153_cur)
+  rx155_done:
+    rx155_cur."!cursor_fail"()
+    rx155_cur."!cursor_debug"("FAIL  ", "comp_unit")
+    .return (rx155_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1275811487.95429") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1277356913.9538") :method
 .annotate 'line', 4
-    $P155 = self."!PREFIX__!subrule"("newpad", "")
-    new $P156, "ResizablePMCArray"
-    push $P156, $P155
-    .return ($P156)
+    $P157 = self."!PREFIX__!subrule"("newpad", "")
+    new $P158, "ResizablePMCArray"
+    push $P158, $P157
+    .return ($P158)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statementlist"  :subid("31_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx160_tgt
-    .local int rx160_pos
-    .local int rx160_off
-    .local int rx160_eos
-    .local int rx160_rep
-    .local pmc rx160_cur
-    (rx160_cur, rx160_pos, rx160_tgt) = self."!cursor_start"()
-    rx160_cur."!cursor_debug"("START ", "statementlist")
-    rx160_cur."!cursor_caparray"("statement")
-    .lex unicode:"$\x{a2}", rx160_cur
+    .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")
+    .lex unicode:"$\x{a2}", rx162_cur
     .local pmc match
     .lex "$/", match
-    length rx160_eos, rx160_tgt
-    gt rx160_pos, rx160_eos, rx160_done
-    set rx160_off, 0
-    lt rx160_pos, 2, rx160_start
-    sub rx160_off, rx160_pos, 1
-    substr rx160_tgt, rx160_tgt, rx160_off
-  rx160_start:
+    length rx162_eos, rx162_tgt
+    gt rx162_pos, rx162_eos, rx162_done
+    set rx162_off, 0
+    lt rx162_pos, 2, rx162_start
+    sub rx162_off, rx162_pos, 1
+    substr rx162_tgt, rx162_tgt, rx162_off
+  rx162_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan165_done
-    goto rxscan165_scan
-  rxscan165_loop:
-    ($P10) = rx160_cur."from"()
+    ne $I10, -1, rxscan167_done
+    goto rxscan167_scan
+  rxscan167_loop:
+    ($P10) = rx162_cur."from"()
     inc $P10
-    set rx160_pos, $P10
-    ge rx160_pos, rx160_eos, rxscan165_done
-  rxscan165_scan:
-    set_addr $I10, rxscan165_loop
-    rx160_cur."!mark_push"(0, rx160_pos, $I10)
-  rxscan165_done:
-  alt166_0:
+    set rx162_pos, $P10
+    ge rx162_pos, rx162_eos, rxscan167_done
+  rxscan167_scan:
+    set_addr $I10, rxscan167_loop
+    rx162_cur."!mark_push"(0, rx162_pos, $I10)
+  rxscan167_done:
+  alt168_0:
 .annotate 'line', 90
-    set_addr $I10, alt166_1
-    rx160_cur."!mark_push"(0, rx160_pos, $I10)
+    set_addr $I10, alt168_1
+    rx162_cur."!mark_push"(0, rx162_pos, $I10)
 .annotate 'line', 91
   # rx subrule "ws" subtype=method negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."ws"()
-    unless $P10, rx160_fail
-    rx160_pos = $P10."pos"()
+    rx162_cur."!cursor_pos"(rx162_pos)
+    $P10 = rx162_cur."ws"()
+    unless $P10, rx162_fail
+    rx162_pos = $P10."pos"()
   # rxanchor eos
-    ne rx160_pos, rx160_eos, rx160_fail
+    ne rx162_pos, rx162_eos, rx162_fail
   # rx subrule "ws" subtype=method negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."ws"()
-    unless $P10, rx160_fail
-    rx160_pos = $P10."pos"()
-    goto alt166_end
-  alt166_1:
+    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=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."ws"()
-    unless $P10, rx160_fail
-    rx160_pos = $P10."pos"()
-  # rx rxquantr170 ** 0..*
-    set_addr $I172, rxquantr170_done
-    rx160_cur."!mark_push"(0, rx160_pos, $I172)
-  rxquantr170_loop:
+    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=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."statement"()
-    unless $P10, rx160_fail
-    rx160_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx160_pos = $P10."pos"()
+    rx162_pos = $P10."pos"()
   # rx subrule "eat_terminator" subtype=method negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."eat_terminator"()
-    unless $P10, rx160_fail
-    rx160_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."ws"()
-    unless $P10, rx160_fail
-    rx160_pos = $P10."pos"()
-    (rx160_rep) = rx160_cur."!mark_commit"($I172)
-    rx160_cur."!mark_push"(rx160_rep, rx160_pos, $I172)
-    goto rxquantr170_loop
-  rxquantr170_done:
-  # rx subrule "ws" subtype=method negate=
-    rx160_cur."!cursor_pos"(rx160_pos)
-    $P10 = rx160_cur."ws"()
-    unless $P10, rx160_fail
-    rx160_pos = $P10."pos"()
-  alt166_end:
+    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
   # rx pass
-    rx160_cur."!cursor_pass"(rx160_pos, "statementlist")
-    rx160_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx160_pos)
-    .return (rx160_cur)
-  rx160_fail:
+    rx162_cur."!cursor_pass"(rx162_pos, "statementlist")
+    rx162_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx162_pos)
+    .return (rx162_cur)
+  rx162_fail:
 .annotate 'line', 4
-    (rx160_rep, rx160_pos, $I10, $P10) = rx160_cur."!mark_fail"(0)
-    lt rx160_pos, -1, rx160_done
-    eq rx160_pos, -1, rx160_fail
+    (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
-  rx160_done:
-    rx160_cur."!cursor_fail"()
-    rx160_cur."!cursor_debug"("FAIL  ", "statementlist")
-    .return (rx160_cur)
+  rx162_done:
+    rx162_cur."!cursor_fail"()
+    rx162_cur."!cursor_debug"("FAIL  ", "statementlist")
+    .return (rx162_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1275811487.95429") :method
+.sub "!PREFIX__statementlist"  :subid("32_1277356913.9538") :method
 .annotate 'line', 4
-    $P162 = self."!PREFIX__!subrule"("ws", "")
-    $P163 = self."!PREFIX__!subrule"("ws", "")
-    new $P164, "ResizablePMCArray"
-    push $P164, $P162
-    push $P164, $P163
-    .return ($P164)
+    $P164 = self."!PREFIX__!subrule"("ws", "")
+    $P165 = self."!PREFIX__!subrule"("ws", "")
+    new $P166, "ResizablePMCArray"
+    push $P166, $P164
+    push $P166, $P165
+    .return ($P166)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement"  :subid("33_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .const 'Sub' $P180 = "35_1275811487.95429" 
-    capture_lex $P180
-    .local string rx175_tgt
-    .local int rx175_pos
-    .local int rx175_off
-    .local int rx175_eos
-    .local int rx175_rep
-    .local pmc rx175_cur
-    (rx175_cur, rx175_pos, rx175_tgt) = self."!cursor_start"()
-    rx175_cur."!cursor_debug"("START ", "statement")
-    rx175_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
-    .lex unicode:"$\x{a2}", rx175_cur
-    .local pmc match
-    .lex "$/", match
-    length rx175_eos, rx175_tgt
-    gt rx175_pos, rx175_eos, rx175_done
-    set rx175_off, 0
-    lt rx175_pos, 2, rx175_start
-    sub rx175_off, rx175_pos, 1
-    substr rx175_tgt, rx175_tgt, rx175_off
-  rx175_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan178_done
-    goto rxscan178_scan
-  rxscan178_loop:
-    ($P10) = rx175_cur."from"()
-    inc $P10
-    set rx175_pos, $P10
-    ge rx175_pos, rx175_eos, rxscan178_done
-  rxscan178_scan:
-    set_addr $I10, rxscan178_loop
-    rx175_cur."!mark_push"(0, rx175_pos, $I10)
-  rxscan178_done:
+    .const 'Sub' $P182 = "35_1277356913.9538" 
+    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_loop", "statement_mod_cond")
+    .lex unicode:"$\x{a2}", rx177_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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan180_done
+    goto rxscan180_scan
+  rxscan180_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
-    rx175_cur."!cursor_pos"(rx175_pos)
-    .const 'Sub' $P180 = "35_1275811487.95429" 
-    capture_lex $P180
-    $P10 = rx175_cur."before"($P180)
-    if $P10, rx175_fail
-  alt184_0:
+    rx177_cur."!cursor_pos"(rx177_pos)
+    .const 'Sub' $P182 = "35_1277356913.9538" 
+    capture_lex $P182
+    $P10 = rx177_cur."before"($P182)
+    if $P10, rx177_fail
+  alt186_0:
 .annotate 'line', 97
-    set_addr $I10, alt184_1
-    rx175_cur."!mark_push"(0, rx175_pos, $I10)
+    set_addr $I10, alt186_1
+    rx177_cur."!mark_push"(0, rx177_pos, $I10)
 .annotate 'line', 98
   # rx subrule "statement_control" subtype=capture negate=
-    rx175_cur."!cursor_pos"(rx175_pos)
-    $P10 = rx175_cur."statement_control"()
-    unless $P10, rx175_fail
-    rx175_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx175_pos = $P10."pos"()
-    goto alt184_end
-  alt184_1:
+    rx177_pos = $P10."pos"()
+    goto alt186_end
+  alt186_1:
 .annotate 'line', 99
   # rx subrule "EXPR" subtype=capture negate=
-    rx175_cur."!cursor_pos"(rx175_pos)
-    $P10 = rx175_cur."EXPR"()
-    unless $P10, rx175_fail
-    rx175_cur."!mark_push"(0, -1, 0, $P10)
+    rx177_cur."!cursor_pos"(rx177_pos)
+    $P10 = rx177_cur."EXPR"()
+    unless $P10, rx177_fail
+    rx177_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx175_pos = $P10."pos"()
+    rx177_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx175_cur."!cursor_pos"(rx175_pos)
-    $P10 = rx175_cur."ws"()
-    unless $P10, rx175_fail
-    rx175_pos = $P10."pos"()
+    rx177_cur."!cursor_pos"(rx177_pos)
+    $P10 = rx177_cur."ws"()
+    unless $P10, rx177_fail
+    rx177_pos = $P10."pos"()
 .annotate 'line', 104
-  # rx rxquantr185 ** 0..1
-    set_addr $I189, rxquantr185_done
-    rx175_cur."!mark_push"(0, rx175_pos, $I189)
-  rxquantr185_loop:
-  alt186_0:
+  # 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, alt186_1
-    rx175_cur."!mark_push"(0, rx175_pos, $I10)
+    set_addr $I10, alt188_1
+    rx177_cur."!mark_push"(0, rx177_pos, $I10)
 .annotate 'line', 101
   # rx subrule "MARKED" subtype=zerowidth negate=
-    rx175_cur."!cursor_pos"(rx175_pos)
-    $P10 = rx175_cur."MARKED"("endstmt")
-    unless $P10, rx175_fail
-    goto alt186_end
-  alt186_1:
-    set_addr $I10, alt186_2
-    rx175_cur."!mark_push"(0, rx175_pos, $I10)
+    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=
-    rx175_cur."!cursor_pos"(rx175_pos)
-    $P10 = rx175_cur."statement_mod_cond"()
-    unless $P10, rx175_fail
-    rx175_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx175_pos = $P10."pos"()
-  # rx rxquantr187 ** 0..1
-    set_addr $I188, rxquantr187_done
-    rx175_cur."!mark_push"(0, rx175_pos, $I188)
-  rxquantr187_loop:
+    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=
-    rx175_cur."!cursor_pos"(rx175_pos)
-    $P10 = rx175_cur."statement_mod_loop"()
-    unless $P10, rx175_fail
-    rx175_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx175_pos = $P10."pos"()
-    (rx175_rep) = rx175_cur."!mark_commit"($I188)
-  rxquantr187_done:
-    goto alt186_end
-  alt186_2:
+    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=
-    rx175_cur."!cursor_pos"(rx175_pos)
-    $P10 = rx175_cur."statement_mod_loop"()
-    unless $P10, rx175_fail
-    rx175_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx175_pos = $P10."pos"()
-  alt186_end:
+    rx177_pos = $P10."pos"()
+  alt188_end:
 .annotate 'line', 104
-    (rx175_rep) = rx175_cur."!mark_commit"($I189)
-  rxquantr185_done:
-  alt184_end:
+    (rx177_rep) = rx177_cur."!mark_commit"($I191)
+  rxquantr187_done:
+  alt186_end:
 .annotate 'line', 95
   # rx pass
-    rx175_cur."!cursor_pass"(rx175_pos, "statement")
-    rx175_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx175_pos)
-    .return (rx175_cur)
-  rx175_fail:
+    rx177_cur."!cursor_pass"(rx177_pos, "statement")
+    rx177_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx177_pos)
+    .return (rx177_cur)
+  rx177_fail:
 .annotate 'line', 4
-    (rx175_rep, rx175_pos, $I10, $P10) = rx175_cur."!mark_fail"(0)
-    lt rx175_pos, -1, rx175_done
-    eq rx175_pos, -1, rx175_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
-  rx175_done:
-    rx175_cur."!cursor_fail"()
-    rx175_cur."!cursor_debug"("FAIL  ", "statement")
-    .return (rx175_cur)
+  rx177_done:
+    rx177_cur."!cursor_fail"()
+    rx177_cur."!cursor_debug"("FAIL  ", "statement")
+    .return (rx177_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1275811487.95429") :method
+.sub "!PREFIX__statement"  :subid("34_1277356913.9538") :method
 .annotate 'line', 4
-    new $P177, "ResizablePMCArray"
-    push $P177, ""
-    .return ($P177)
+    new $P179, "ResizablePMCArray"
+    push $P179, ""
+    .return ($P179)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block179"  :anon :subid("35_1275811487.95429") :method :outer("33_1275811487.95429")
+.sub "_block181"  :anon :subid("35_1277356913.9538") :method :outer("33_1277356913.9538")
 .annotate 'line', 96
-    .local string rx181_tgt
-    .local int rx181_pos
-    .local int rx181_off
-    .local int rx181_eos
-    .local int rx181_rep
-    .local pmc rx181_cur
-    (rx181_cur, rx181_pos, rx181_tgt) = self."!cursor_start"()
-    rx181_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx181_cur
-    .local pmc match
-    .lex "$/", match
-    length rx181_eos, rx181_tgt
-    gt rx181_pos, rx181_eos, rx181_done
-    set rx181_off, 0
-    lt rx181_pos, 2, rx181_start
-    sub rx181_off, rx181_pos, 1
-    substr rx181_tgt, rx181_tgt, rx181_off
-  rx181_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan182_done
-    goto rxscan182_scan
-  rxscan182_loop:
-    ($P10) = rx181_cur."from"()
-    inc $P10
-    set rx181_pos, $P10
-    ge rx181_pos, rx181_eos, rxscan182_done
-  rxscan182_scan:
-    set_addr $I10, rxscan182_loop
-    rx181_cur."!mark_push"(0, rx181_pos, $I10)
-  rxscan182_done:
-  alt183_0:
-    set_addr $I10, alt183_1
-    rx181_cur."!mark_push"(0, rx181_pos, $I10)
+    .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 ", "")
+    .lex unicode:"$\x{a2}", rx183_cur
+    .local pmc match
+    .lex "$/", match
+    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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan184_done
+    goto rxscan184_scan
+  rxscan184_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
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
+  rxscan184_done:
+  alt185_0:
+    set_addr $I10, alt185_1
+    rx183_cur."!mark_push"(0, rx183_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx181_pos, rx181_eos, rx181_fail
-    sub $I10, rx181_pos, rx181_off
-    substr $S10, rx181_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, rx181_fail
-    inc rx181_pos
-    goto alt183_end
-  alt183_1:
+    lt $I11, 0, rx183_fail
+    inc rx183_pos
+    goto alt185_end
+  alt185_1:
   # rxanchor eos
-    ne rx181_pos, rx181_eos, rx181_fail
-  alt183_end:
+    ne rx183_pos, rx183_eos, rx183_fail
+  alt185_end:
   # rx pass
-    rx181_cur."!cursor_pass"(rx181_pos, "")
-    rx181_cur."!cursor_debug"("PASS  ", "", " at pos=", rx181_pos)
-    .return (rx181_cur)
-  rx181_fail:
-    (rx181_rep, rx181_pos, $I10, $P10) = rx181_cur."!mark_fail"(0)
-    lt rx181_pos, -1, rx181_done
-    eq rx181_pos, -1, rx181_fail
-    jump $I10
-  rx181_done:
-    rx181_cur."!cursor_fail"()
-    rx181_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx181_cur)
+    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_1275811487.95429") :method :outer("11_1275811487.95429")
-.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) = self."!cursor_start"()
-    rx191_cur."!cursor_debug"("START ", "eat_terminator")
-    .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:
-    $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:
+.sub "eat_terminator"  :subid("36_1277356913.9538") :method :outer("11_1277356913.9538")
+.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, alt195_1
-    rx191_cur."!mark_push"(0, rx191_pos, $I10)
+    set_addr $I10, alt197_1
+    rx193_cur."!mark_push"(0, rx193_pos, $I10)
 .annotate 'line', 109
   # rx literal  ";"
-    add $I11, rx191_pos, 1
-    gt $I11, rx191_eos, rx191_fail
-    sub $I11, rx191_pos, rx191_off
-    substr $S10, rx191_tgt, $I11, 1
-    ne $S10, ";", rx191_fail
-    add rx191_pos, 1
-    goto alt195_end
-  alt195_1:
-    set_addr $I10, alt195_2
-    rx191_cur."!mark_push"(0, rx191_pos, $I10)
+    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=
-    rx191_cur."!cursor_pos"(rx191_pos)
-    $P10 = rx191_cur."MARKED"("endstmt")
-    unless $P10, rx191_fail
-    goto alt195_end
-  alt195_2:
-    set_addr $I10, alt195_3
-    rx191_cur."!mark_push"(0, rx191_pos, $I10)
+    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=
-    rx191_cur."!cursor_pos"(rx191_pos)
-    $P10 = rx191_cur."terminator"()
-    unless $P10, rx191_fail
-    goto alt195_end
-  alt195_3:
+    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 rx191_pos, rx191_eos, rx191_fail
-  alt195_end:
+    ne rx193_pos, rx193_eos, rx193_fail
+  alt197_end:
 .annotate 'line', 108
   # rx pass
-    rx191_cur."!cursor_pass"(rx191_pos, "eat_terminator")
-    rx191_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx191_pos)
-    .return (rx191_cur)
-  rx191_fail:
+    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
-    (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
-    lt rx191_pos, -1, rx191_done
-    eq rx191_pos, -1, rx191_fail
+    (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
-  rx191_done:
-    rx191_cur."!cursor_fail"()
-    rx191_cur."!cursor_debug"("FAIL  ", "eat_terminator")
-    .return (rx191_cur)
+  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_1275811487.95429") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1277356913.9538") :method
 .annotate 'line', 4
-    new $P193, "ResizablePMCArray"
-    push $P193, ""
-    push $P193, ""
-    push $P193, ""
-    push $P193, ";"
-    .return ($P193)
+    new $P195, "ResizablePMCArray"
+    push $P195, ""
+    push $P195, ""
+    push $P195, ""
+    push $P195, ";"
+    .return ($P195)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "xblock"  :subid("38_1277356913.9538") :method :outer("11_1277356913.9538")
 .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) = self."!cursor_start"()
-    rx197_cur."!cursor_debug"("START ", "xblock")
-    .lex unicode:"$\x{a2}", rx197_cur
+    .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 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:
+    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, rxscan201_done
-    goto rxscan201_scan
-  rxscan201_loop:
-    ($P10) = rx197_cur."from"()
+    ne $I10, -1, rxscan203_done
+    goto rxscan203_scan
+  rxscan203_loop:
+    ($P10) = rx199_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:
+    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=
-    rx197_cur."!cursor_pos"(rx197_pos)
-    $P10 = rx197_cur."EXPR"()
-    unless $P10, rx197_fail
-    rx197_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx197_pos = $P10."pos"()
+    rx199_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx197_cur."!cursor_pos"(rx197_pos)
-    $P10 = rx197_cur."ws"()
-    unless $P10, rx197_fail
-    rx197_pos = $P10."pos"()
+    rx199_cur."!cursor_pos"(rx199_pos)
+    $P10 = rx199_cur."ws"()
+    unless $P10, rx199_fail
+    rx199_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx197_cur."!cursor_pos"(rx197_pos)
-    $P10 = rx197_cur."pblock"()
-    unless $P10, rx197_fail
-    rx197_cur."!mark_push"(0, -1, 0, $P10)
+    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")
-    rx197_pos = $P10."pos"()
+    rx199_pos = $P10."pos"()
 .annotate 'line', 115
   # rx pass
-    rx197_cur."!cursor_pass"(rx197_pos, "xblock")
-    rx197_cur."!cursor_debug"("PASS  ", "xblock", " at pos=", rx197_pos)
-    .return (rx197_cur)
-  rx197_fail:
+    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
-    (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
-    lt rx197_pos, -1, rx197_done
-    eq rx197_pos, -1, rx197_fail
+    (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
-  rx197_done:
-    rx197_cur."!cursor_fail"()
-    rx197_cur."!cursor_debug"("FAIL  ", "xblock")
-    .return (rx197_cur)
+  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_1275811487.95429") :method
+.sub "!PREFIX__xblock"  :subid("39_1277356913.9538") :method
 .annotate 'line', 4
-    $P199 = self."!PREFIX__!subrule"("EXPR", "")
-    new $P200, "ResizablePMCArray"
-    push $P200, $P199
-    .return ($P200)
+    $P201 = self."!PREFIX__!subrule"("EXPR", "")
+    new $P202, "ResizablePMCArray"
+    push $P202, $P201
+    .return ($P202)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "pblock"  :subid("40_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx203_tgt
-    .local int rx203_pos
-    .local int rx203_off
-    .local int rx203_eos
-    .local int rx203_rep
-    .local pmc rx203_cur
-    (rx203_cur, rx203_pos, rx203_tgt) = self."!cursor_start"()
-    rx203_cur."!cursor_debug"("START ", "pblock")
-    .lex unicode:"$\x{a2}", rx203_cur
+    .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 rx203_eos, rx203_tgt
-    gt rx203_pos, rx203_eos, rx203_done
-    set rx203_off, 0
-    lt rx203_pos, 2, rx203_start
-    sub rx203_off, rx203_pos, 1
-    substr rx203_tgt, rx203_tgt, rx203_off
-  rx203_start:
+    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, rxscan208_done
-    goto rxscan208_scan
-  rxscan208_loop:
-    ($P10) = rx203_cur."from"()
+    ne $I10, -1, rxscan210_done
+    goto rxscan210_scan
+  rxscan210_loop:
+    ($P10) = rx205_cur."from"()
     inc $P10
-    set rx203_pos, $P10
-    ge rx203_pos, rx203_eos, rxscan208_done
-  rxscan208_scan:
-    set_addr $I10, rxscan208_loop
-    rx203_cur."!mark_push"(0, rx203_pos, $I10)
-  rxscan208_done:
-  alt209_0:
+    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, alt209_1
-    rx203_cur."!mark_push"(0, rx203_pos, $I10)
+    set_addr $I10, alt211_1
+    rx205_cur."!mark_push"(0, rx205_pos, $I10)
 .annotate 'line', 120
   # rx subrule "lambda" subtype=method negate=
-    rx203_cur."!cursor_pos"(rx203_pos)
-    $P10 = rx203_cur."lambda"()
-    unless $P10, rx203_fail
-    rx203_pos = $P10."pos"()
+    rx205_cur."!cursor_pos"(rx205_pos)
+    $P10 = rx205_cur."lambda"()
+    unless $P10, rx205_fail
+    rx205_pos = $P10."pos"()
 .annotate 'line', 121
   # rx subrule "newpad" subtype=method negate=
-    rx203_cur."!cursor_pos"(rx203_pos)
-    $P10 = rx203_cur."newpad"()
-    unless $P10, rx203_fail
-    rx203_pos = $P10."pos"()
+    rx205_cur."!cursor_pos"(rx205_pos)
+    $P10 = rx205_cur."newpad"()
+    unless $P10, rx205_fail
+    rx205_pos = $P10."pos"()
 .annotate 'line', 122
   # rx subrule "signature" subtype=capture negate=
-    rx203_cur."!cursor_pos"(rx203_pos)
-    $P10 = rx203_cur."signature"()
-    unless $P10, rx203_fail
-    rx203_cur."!mark_push"(0, -1, 0, $P10)
+    rx205_cur."!cursor_pos"(rx205_pos)
+    $P10 = rx205_cur."signature"()
+    unless $P10, rx205_fail
+    rx205_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx203_pos = $P10."pos"()
+    rx205_pos = $P10."pos"()
 .annotate 'line', 123
   # rx subrule "blockoid" subtype=capture negate=
-    rx203_cur."!cursor_pos"(rx203_pos)
-    $P10 = rx203_cur."blockoid"()
-    unless $P10, rx203_fail
-    rx203_cur."!mark_push"(0, -1, 0, $P10)
+    rx205_cur."!cursor_pos"(rx205_pos)
+    $P10 = rx205_cur."blockoid"()
+    unless $P10, rx205_fail
+    rx205_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx203_pos = $P10."pos"()
+    rx205_pos = $P10."pos"()
 .annotate 'line', 120
-    goto alt209_end
-  alt209_1:
-    set_addr $I10, alt209_2
-    rx203_cur."!mark_push"(0, rx203_pos, $I10)
+    goto alt211_end
+  alt211_1:
+    set_addr $I10, alt211_2
+    rx205_cur."!mark_push"(0, rx205_pos, $I10)
 .annotate 'line', 124
   # rx enumcharlist negate=0 zerowidth
-    ge rx203_pos, rx203_eos, rx203_fail
-    sub $I10, rx203_pos, rx203_off
-    substr $S10, rx203_tgt, $I10, 1
+    ge rx205_pos, rx205_eos, rx205_fail
+    sub $I10, rx205_pos, rx205_off
+    substr $S10, rx205_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx203_fail
+    lt $I11, 0, rx205_fail
 .annotate 'line', 125
   # rx subrule "newpad" subtype=method negate=
-    rx203_cur."!cursor_pos"(rx203_pos)
-    $P10 = rx203_cur."newpad"()
-    unless $P10, rx203_fail
-    rx203_pos = $P10."pos"()
+    rx205_cur."!cursor_pos"(rx205_pos)
+    $P10 = rx205_cur."newpad"()
+    unless $P10, rx205_fail
+    rx205_pos = $P10."pos"()
 .annotate 'line', 126
   # rx subrule "blockoid" subtype=capture negate=
-    rx203_cur."!cursor_pos"(rx203_pos)
-    $P10 = rx203_cur."blockoid"()
-    unless $P10, rx203_fail
-    rx203_cur."!mark_push"(0, -1, 0, $P10)
+    rx205_cur."!cursor_pos"(rx205_pos)
+    $P10 = rx205_cur."blockoid"()
+    unless $P10, rx205_fail
+    rx205_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx203_pos = $P10."pos"()
+    rx205_pos = $P10."pos"()
 .annotate 'line', 124
-    goto alt209_end
-  alt209_2:
+    goto alt211_end
+  alt211_2:
 .annotate 'line', 127
   # rx subrule "panic" subtype=method negate=
-    rx203_cur."!cursor_pos"(rx203_pos)
-    $P10 = rx203_cur."panic"("Missing block")
-    unless $P10, rx203_fail
-    rx203_pos = $P10."pos"()
-  alt209_end:
+    rx205_cur."!cursor_pos"(rx205_pos)
+    $P10 = rx205_cur."panic"("Missing block")
+    unless $P10, rx205_fail
+    rx205_pos = $P10."pos"()
+  alt211_end:
 .annotate 'line', 119
   # rx pass
-    rx203_cur."!cursor_pass"(rx203_pos, "pblock")
-    rx203_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx203_pos)
-    .return (rx203_cur)
-  rx203_fail:
+    rx205_cur."!cursor_pass"(rx205_pos, "pblock")
+    rx205_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx205_pos)
+    .return (rx205_cur)
+  rx205_fail:
 .annotate 'line', 4
-    (rx203_rep, rx203_pos, $I10, $P10) = rx203_cur."!mark_fail"(0)
-    lt rx203_pos, -1, rx203_done
-    eq rx203_pos, -1, rx203_fail
+    (rx205_rep, rx205_pos, $I10, $P10) = rx205_cur."!mark_fail"(0)
+    lt rx205_pos, -1, rx205_done
+    eq rx205_pos, -1, rx205_fail
     jump $I10
-  rx203_done:
-    rx203_cur."!cursor_fail"()
-    rx203_cur."!cursor_debug"("FAIL  ", "pblock")
-    .return (rx203_cur)
+  rx205_done:
+    rx205_cur."!cursor_fail"()
+    rx205_cur."!cursor_debug"("FAIL  ", "pblock")
+    .return (rx205_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1275811487.95429") :method
+.sub "!PREFIX__pblock"  :subid("41_1277356913.9538") :method
 .annotate 'line', 4
-    $P205 = self."!PREFIX__!subrule"("panic", "")
-    $P206 = self."!PREFIX__!subrule"("lambda", "")
-    new $P207, "ResizablePMCArray"
-    push $P207, $P205
-    push $P207, "{"
-    push $P207, $P206
-    .return ($P207)
+    $P207 = self."!PREFIX__!subrule"("panic", "")
+    $P208 = self."!PREFIX__!subrule"("lambda", "")
+    new $P209, "ResizablePMCArray"
+    push $P209, $P207
+    push $P209, "{"
+    push $P209, $P208
+    .return ($P209)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "lambda"  :subid("42_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx211_cur."!cursor_debug"("START ", "lambda")
-    .lex unicode:"$\x{a2}", rx211_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) = self."!cursor_start"()
+    rx213_cur."!cursor_debug"("START ", "lambda")
+    .lex unicode:"$\x{a2}", rx213_cur
     .local pmc match
     .lex "$/", match
-    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:
+    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, rxscan214_done
-    goto rxscan214_scan
-  rxscan214_loop:
-    ($P10) = rx211_cur."from"()
+    ne $I10, -1, rxscan216_done
+    goto rxscan216_scan
+  rxscan216_loop:
+    ($P10) = rx213_cur."from"()
     inc $P10
-    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:
-  alt215_0:
+    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:
 .annotate 'line', 130
-    set_addr $I10, alt215_1
-    rx211_cur."!mark_push"(0, rx211_pos, $I10)
+    set_addr $I10, alt217_1
+    rx213_cur."!mark_push"(0, rx213_pos, $I10)
   # rx literal  "->"
-    add $I11, rx211_pos, 2
-    gt $I11, rx211_eos, rx211_fail
-    sub $I11, rx211_pos, rx211_off
-    substr $S10, rx211_tgt, $I11, 2
-    ne $S10, "->", rx211_fail
-    add rx211_pos, 2
-    goto alt215_end
-  alt215_1:
+    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:
   # rx literal  "<->"
-    add $I11, rx211_pos, 3
-    gt $I11, rx211_eos, rx211_fail
-    sub $I11, rx211_pos, rx211_off
-    substr $S10, rx211_tgt, $I11, 3
-    ne $S10, "<->", rx211_fail
-    add rx211_pos, 3
-  alt215_end:
+    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
-    rx211_cur."!cursor_pass"(rx211_pos, "lambda")
-    rx211_cur."!cursor_debug"("PASS  ", "lambda", " at pos=", rx211_pos)
-    .return (rx211_cur)
-  rx211_fail:
+    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
-    (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
-    lt rx211_pos, -1, rx211_done
-    eq rx211_pos, -1, rx211_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
-  rx211_done:
-    rx211_cur."!cursor_fail"()
-    rx211_cur."!cursor_debug"("FAIL  ", "lambda")
-    .return (rx211_cur)
+  rx213_done:
+    rx213_cur."!cursor_fail"()
+    rx213_cur."!cursor_debug"("FAIL  ", "lambda")
+    .return (rx213_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1275811487.95429") :method
+.sub "!PREFIX__lambda"  :subid("43_1277356913.9538") :method
 .annotate 'line', 4
-    new $P213, "ResizablePMCArray"
-    push $P213, "<->"
-    push $P213, "->"
-    .return ($P213)
+    new $P215, "ResizablePMCArray"
+    push $P215, "<->"
+    push $P215, "->"
+    .return ($P215)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "block"  :subid("44_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx217_tgt
-    .local int rx217_pos
-    .local int rx217_off
-    .local int rx217_eos
-    .local int rx217_rep
-    .local pmc rx217_cur
-    (rx217_cur, rx217_pos, rx217_tgt) = self."!cursor_start"()
-    rx217_cur."!cursor_debug"("START ", "block")
-    .lex unicode:"$\x{a2}", rx217_cur
+    .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 rx217_eos, rx217_tgt
-    gt rx217_pos, rx217_eos, rx217_done
-    set rx217_off, 0
-    lt rx217_pos, 2, rx217_start
-    sub rx217_off, rx217_pos, 1
-    substr rx217_tgt, rx217_tgt, rx217_off
-  rx217_start:
+    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, rxscan221_done
-    goto rxscan221_scan
-  rxscan221_loop:
-    ($P10) = rx217_cur."from"()
+    ne $I10, -1, rxscan223_done
+    goto rxscan223_scan
+  rxscan223_loop:
+    ($P10) = rx219_cur."from"()
     inc $P10
-    set rx217_pos, $P10
-    ge rx217_pos, rx217_eos, rxscan221_done
-  rxscan221_scan:
-    set_addr $I10, rxscan221_loop
-    rx217_cur."!mark_push"(0, rx217_pos, $I10)
-  rxscan221_done:
-  alt222_0:
+    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:
 .annotate 'line', 133
-    set_addr $I10, alt222_1
-    rx217_cur."!mark_push"(0, rx217_pos, $I10)
+    set_addr $I10, alt224_1
+    rx219_cur."!mark_push"(0, rx219_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx217_pos, rx217_eos, rx217_fail
-    sub $I10, rx217_pos, rx217_off
-    substr $S10, rx217_tgt, $I10, 1
+    ge rx219_pos, rx219_eos, rx219_fail
+    sub $I10, rx219_pos, rx219_off
+    substr $S10, rx219_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx217_fail
-    goto alt222_end
-  alt222_1:
+    lt $I11, 0, rx219_fail
+    goto alt224_end
+  alt224_1:
   # rx subrule "panic" subtype=method negate=
-    rx217_cur."!cursor_pos"(rx217_pos)
-    $P10 = rx217_cur."panic"("Missing block")
-    unless $P10, rx217_fail
-    rx217_pos = $P10."pos"()
-  alt222_end:
+    rx219_cur."!cursor_pos"(rx219_pos)
+    $P10 = rx219_cur."panic"("Missing block")
+    unless $P10, rx219_fail
+    rx219_pos = $P10."pos"()
+  alt224_end:
 .annotate 'line', 134
   # rx subrule "newpad" subtype=method negate=
-    rx217_cur."!cursor_pos"(rx217_pos)
-    $P10 = rx217_cur."newpad"()
-    unless $P10, rx217_fail
-    rx217_pos = $P10."pos"()
+    rx219_cur."!cursor_pos"(rx219_pos)
+    $P10 = rx219_cur."newpad"()
+    unless $P10, rx219_fail
+    rx219_pos = $P10."pos"()
 .annotate 'line', 135
   # rx subrule "blockoid" subtype=capture negate=
-    rx217_cur."!cursor_pos"(rx217_pos)
-    $P10 = rx217_cur."blockoid"()
-    unless $P10, rx217_fail
-    rx217_cur."!mark_push"(0, -1, 0, $P10)
+    rx219_cur."!cursor_pos"(rx219_pos)
+    $P10 = rx219_cur."blockoid"()
+    unless $P10, rx219_fail
+    rx219_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx217_pos = $P10."pos"()
+    rx219_pos = $P10."pos"()
 .annotate 'line', 132
   # rx pass
-    rx217_cur."!cursor_pass"(rx217_pos, "block")
-    rx217_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx217_pos)
-    .return (rx217_cur)
-  rx217_fail:
+    rx219_cur."!cursor_pass"(rx219_pos, "block")
+    rx219_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx219_pos)
+    .return (rx219_cur)
+  rx219_fail:
 .annotate 'line', 4
-    (rx217_rep, rx217_pos, $I10, $P10) = rx217_cur."!mark_fail"(0)
-    lt rx217_pos, -1, rx217_done
-    eq rx217_pos, -1, rx217_fail
+    (rx219_rep, rx219_pos, $I10, $P10) = rx219_cur."!mark_fail"(0)
+    lt rx219_pos, -1, rx219_done
+    eq rx219_pos, -1, rx219_fail
     jump $I10
-  rx217_done:
-    rx217_cur."!cursor_fail"()
-    rx217_cur."!cursor_debug"("FAIL  ", "block")
-    .return (rx217_cur)
+  rx219_done:
+    rx219_cur."!cursor_fail"()
+    rx219_cur."!cursor_debug"("FAIL  ", "block")
+    .return (rx219_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1275811487.95429") :method
+.sub "!PREFIX__block"  :subid("45_1277356913.9538") :method
 .annotate 'line', 4
-    $P219 = self."!PREFIX__!subrule"("panic", "")
-    new $P220, "ResizablePMCArray"
-    push $P220, $P219
-    push $P220, "{"
-    .return ($P220)
+    $P221 = self."!PREFIX__!subrule"("panic", "")
+    new $P222, "ResizablePMCArray"
+    push $P222, $P221
+    push $P222, "{"
+    .return ($P222)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "blockoid"  :subid("46_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx224_tgt
-    .local int rx224_pos
-    .local int rx224_off
-    .local int rx224_eos
-    .local int rx224_rep
-    .local pmc rx224_cur
-    (rx224_cur, rx224_pos, rx224_tgt) = self."!cursor_start"()
-    rx224_cur."!cursor_debug"("START ", "blockoid")
-    .lex unicode:"$\x{a2}", rx224_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) = self."!cursor_start"()
+    rx226_cur."!cursor_debug"("START ", "blockoid")
+    .lex unicode:"$\x{a2}", rx226_cur
     .local pmc match
     .lex "$/", match
-    length rx224_eos, rx224_tgt
-    gt rx224_pos, rx224_eos, rx224_done
-    set rx224_off, 0
-    lt rx224_pos, 2, rx224_start
-    sub rx224_off, rx224_pos, 1
-    substr rx224_tgt, rx224_tgt, rx224_off
-  rx224_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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan228_done
-    goto rxscan228_scan
-  rxscan228_loop:
-    ($P10) = rx224_cur."from"()
+    ne $I10, -1, rxscan230_done
+    goto rxscan230_scan
+  rxscan230_loop:
+    ($P10) = rx226_cur."from"()
     inc $P10
-    set rx224_pos, $P10
-    ge rx224_pos, rx224_eos, rxscan228_done
-  rxscan228_scan:
-    set_addr $I10, rxscan228_loop
-    rx224_cur."!mark_push"(0, rx224_pos, $I10)
-  rxscan228_done:
+    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:
 .annotate 'line', 139
   # rx subrule "finishpad" subtype=method negate=
-    rx224_cur."!cursor_pos"(rx224_pos)
-    $P10 = rx224_cur."finishpad"()
-    unless $P10, rx224_fail
-    rx224_pos = $P10."pos"()
+    rx226_cur."!cursor_pos"(rx226_pos)
+    $P10 = rx226_cur."finishpad"()
+    unless $P10, rx226_fail
+    rx226_pos = $P10."pos"()
 .annotate 'line', 140
   # rx literal  "{"
-    add $I11, rx224_pos, 1
-    gt $I11, rx224_eos, rx224_fail
-    sub $I11, rx224_pos, rx224_off
-    substr $S10, rx224_tgt, $I11, 1
-    ne $S10, "{", rx224_fail
-    add rx224_pos, 1
+    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
   # rx subrule "statementlist" subtype=capture negate=
-    rx224_cur."!cursor_pos"(rx224_pos)
-    $P10 = rx224_cur."statementlist"()
-    unless $P10, rx224_fail
-    rx224_cur."!mark_push"(0, -1, 0, $P10)
+    rx226_cur."!cursor_pos"(rx226_pos)
+    $P10 = rx226_cur."statementlist"()
+    unless $P10, rx226_fail
+    rx226_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statementlist")
-    rx224_pos = $P10."pos"()
-  alt229_0:
-    set_addr $I10, alt229_1
-    rx224_cur."!mark_push"(0, rx224_pos, $I10)
+    rx226_pos = $P10."pos"()
+  alt231_0:
+    set_addr $I10, alt231_1
+    rx226_cur."!mark_push"(0, rx226_pos, $I10)
   # rx literal  "}"
-    add $I11, rx224_pos, 1
-    gt $I11, rx224_eos, rx224_fail
-    sub $I11, rx224_pos, rx224_off
-    substr $S10, rx224_tgt, $I11, 1
-    ne $S10, "}", rx224_fail
-    add rx224_pos, 1
-    goto alt229_end
-  alt229_1:
+    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:
   # rx subrule "FAILGOAL" subtype=method negate=
-    rx224_cur."!cursor_pos"(rx224_pos)
-    $P10 = rx224_cur."FAILGOAL"("'}'")
-    unless $P10, rx224_fail
-    rx224_pos = $P10."pos"()
-  alt229_end:
+    rx226_cur."!cursor_pos"(rx226_pos)
+    $P10 = rx226_cur."FAILGOAL"("'}'")
+    unless $P10, rx226_fail
+    rx226_pos = $P10."pos"()
+  alt231_end:
 .annotate 'line', 141
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
-    rx224_cur."!cursor_pos"(rx224_pos)
-    $P10 = rx224_cur."ENDSTMT"()
-    unless $P10, rx224_fail
+    rx226_cur."!cursor_pos"(rx226_pos)
+    $P10 = rx226_cur."ENDSTMT"()
+    unless $P10, rx226_fail
 .annotate 'line', 138
   # rx pass
-    rx224_cur."!cursor_pass"(rx224_pos, "blockoid")
-    rx224_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx224_pos)
-    .return (rx224_cur)
-  rx224_fail:
+    rx226_cur."!cursor_pass"(rx226_pos, "blockoid")
+    rx226_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx226_pos)
+    .return (rx226_cur)
+  rx226_fail:
 .annotate 'line', 4
-    (rx224_rep, rx224_pos, $I10, $P10) = rx224_cur."!mark_fail"(0)
-    lt rx224_pos, -1, rx224_done
-    eq rx224_pos, -1, rx224_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
-  rx224_done:
-    rx224_cur."!cursor_fail"()
-    rx224_cur."!cursor_debug"("FAIL  ", "blockoid")
-    .return (rx224_cur)
+  rx226_done:
+    rx226_cur."!cursor_fail"()
+    rx226_cur."!cursor_debug"("FAIL  ", "blockoid")
+    .return (rx226_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1275811487.95429") :method
+.sub "!PREFIX__blockoid"  :subid("47_1277356913.9538") :method
 .annotate 'line', 4
-    $P226 = self."!PREFIX__!subrule"("finishpad", "")
-    new $P227, "ResizablePMCArray"
-    push $P227, $P226
-    .return ($P227)
+    $P228 = self."!PREFIX__!subrule"("finishpad", "")
+    new $P229, "ResizablePMCArray"
+    push $P229, $P228
+    .return ($P229)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "newpad"  :subid("48_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx232_cur."!cursor_debug"("START ", "newpad")
-    .lex unicode:"$\x{a2}", rx232_cur
+    .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 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:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan235_done
-    goto rxscan235_scan
-  rxscan235_loop:
-    ($P10) = rx232_cur."from"()
+    ne $I10, -1, rxscan237_done
+    goto rxscan237_scan
+  rxscan237_loop:
+    ($P10) = rx234_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:
+    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:
 .annotate 'line', 144
   # rx pass
-    rx232_cur."!cursor_pass"(rx232_pos, "newpad")
-    rx232_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx232_pos)
-    .return (rx232_cur)
-  rx232_fail:
+    rx234_cur."!cursor_pass"(rx234_pos, "newpad")
+    rx234_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx234_pos)
+    .return (rx234_cur)
+  rx234_fail:
 .annotate 'line', 4
-    (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
-    lt rx232_pos, -1, rx232_done
-    eq rx232_pos, -1, rx232_fail
+    (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0)
+    lt rx234_pos, -1, rx234_done
+    eq rx234_pos, -1, rx234_fail
     jump $I10
-  rx232_done:
-    rx232_cur."!cursor_fail"()
-    rx232_cur."!cursor_debug"("FAIL  ", "newpad")
-    .return (rx232_cur)
+  rx234_done:
+    rx234_cur."!cursor_fail"()
+    rx234_cur."!cursor_debug"("FAIL  ", "newpad")
+    .return (rx234_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1275811487.95429") :method
+.sub "!PREFIX__newpad"  :subid("49_1277356913.9538") :method
 .annotate 'line', 4
-    new $P234, "ResizablePMCArray"
-    push $P234, ""
-    .return ($P234)
+    new $P236, "ResizablePMCArray"
+    push $P236, ""
+    .return ($P236)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "outerctx"  :subid("50_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "outerctx"  :subid("50_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx237_cur."!cursor_debug"("START ", "outerctx")
-    .lex unicode:"$\x{a2}", rx237_cur
+    .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 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:
+    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, rxscan240_done
-    goto rxscan240_scan
-  rxscan240_loop:
-    ($P10) = rx237_cur."from"()
+    ne $I10, -1, rxscan242_done
+    goto rxscan242_scan
+  rxscan242_loop:
+    ($P10) = rx239_cur."from"()
     inc $P10
-    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:
+    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:
 .annotate 'line', 145
   # rx pass
-    rx237_cur."!cursor_pass"(rx237_pos, "outerctx")
-    rx237_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx237_pos)
-    .return (rx237_cur)
-  rx237_fail:
+    rx239_cur."!cursor_pass"(rx239_pos, "outerctx")
+    rx239_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx239_pos)
+    .return (rx239_cur)
+  rx239_fail:
 .annotate 'line', 4
-    (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
-    lt rx237_pos, -1, rx237_done
-    eq rx237_pos, -1, rx237_fail
+    (rx239_rep, rx239_pos, $I10, $P10) = rx239_cur."!mark_fail"(0)
+    lt rx239_pos, -1, rx239_done
+    eq rx239_pos, -1, rx239_fail
     jump $I10
-  rx237_done:
-    rx237_cur."!cursor_fail"()
-    rx237_cur."!cursor_debug"("FAIL  ", "outerctx")
-    .return (rx237_cur)
+  rx239_done:
+    rx239_cur."!cursor_fail"()
+    rx239_cur."!cursor_debug"("FAIL  ", "outerctx")
+    .return (rx239_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx"  :subid("51_1275811487.95429") :method
+.sub "!PREFIX__outerctx"  :subid("51_1277356913.9538") :method
 .annotate 'line', 4
-    new $P239, "ResizablePMCArray"
-    push $P239, ""
-    .return ($P239)
+    new $P241, "ResizablePMCArray"
+    push $P241, ""
+    .return ($P241)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("52_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "finishpad"  :subid("52_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx242_tgt
-    .local int rx242_pos
-    .local int rx242_off
-    .local int rx242_eos
-    .local int rx242_rep
-    .local pmc rx242_cur
-    (rx242_cur, rx242_pos, rx242_tgt) = self."!cursor_start"()
-    rx242_cur."!cursor_debug"("START ", "finishpad")
-    .lex unicode:"$\x{a2}", rx242_cur
+    .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 pmc match
     .lex "$/", match
-    length rx242_eos, rx242_tgt
-    gt rx242_pos, rx242_eos, rx242_done
-    set rx242_off, 0
-    lt rx242_pos, 2, rx242_start
-    sub rx242_off, rx242_pos, 1
-    substr rx242_tgt, rx242_tgt, rx242_off
-  rx242_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan245_done
-    goto rxscan245_scan
-  rxscan245_loop:
-    ($P10) = rx242_cur."from"()
+    ne $I10, -1, rxscan247_done
+    goto rxscan247_scan
+  rxscan247_loop:
+    ($P10) = rx244_cur."from"()
     inc $P10
-    set rx242_pos, $P10
-    ge rx242_pos, rx242_eos, rxscan245_done
-  rxscan245_scan:
-    set_addr $I10, rxscan245_loop
-    rx242_cur."!mark_push"(0, rx242_pos, $I10)
-  rxscan245_done:
+    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:
 .annotate 'line', 146
   # rx pass
-    rx242_cur."!cursor_pass"(rx242_pos, "finishpad")
-    rx242_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx242_pos)
-    .return (rx242_cur)
-  rx242_fail:
+    rx244_cur."!cursor_pass"(rx244_pos, "finishpad")
+    rx244_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx244_pos)
+    .return (rx244_cur)
+  rx244_fail:
 .annotate 'line', 4
-    (rx242_rep, rx242_pos, $I10, $P10) = rx242_cur."!mark_fail"(0)
-    lt rx242_pos, -1, rx242_done
-    eq rx242_pos, -1, rx242_fail
+    (rx244_rep, rx244_pos, $I10, $P10) = rx244_cur."!mark_fail"(0)
+    lt rx244_pos, -1, rx244_done
+    eq rx244_pos, -1, rx244_fail
     jump $I10
-  rx242_done:
-    rx242_cur."!cursor_fail"()
-    rx242_cur."!cursor_debug"("FAIL  ", "finishpad")
-    .return (rx242_cur)
+  rx244_done:
+    rx244_cur."!cursor_fail"()
+    rx244_cur."!cursor_debug"("FAIL  ", "finishpad")
+    .return (rx244_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("53_1275811487.95429") :method
+.sub "!PREFIX__finishpad"  :subid("53_1277356913.9538") :method
 .annotate 'line', 4
-    new $P244, "ResizablePMCArray"
-    push $P244, ""
-    .return ($P244)
+    new $P246, "ResizablePMCArray"
+    push $P246, ""
+    .return ($P246)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("54_1275811487.95429") :method
+.sub "terminator"  :subid("54_1277356913.9538") :method
 .annotate 'line', 148
-    $P247 = self."!protoregex"("terminator")
-    .return ($P247)
+    $P249 = self."!protoregex"("terminator")
+    .return ($P249)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("55_1275811487.95429") :method
+.sub "!PREFIX__terminator"  :subid("55_1277356913.9538") :method
 .annotate 'line', 148
-    $P249 = self."!PREFIX__!protoregex"("terminator")
-    .return ($P249)
+    $P251 = self."!PREFIX__!protoregex"("terminator")
+    .return ($P251)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("56_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "terminator:sym<;>"  :subid("56_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx251_tgt
-    .local int rx251_pos
-    .local int rx251_off
-    .local int rx251_eos
-    .local int rx251_rep
-    .local pmc rx251_cur
-    (rx251_cur, rx251_pos, rx251_tgt) = self."!cursor_start"()
-    rx251_cur."!cursor_debug"("START ", "terminator:sym<;>")
-    .lex unicode:"$\x{a2}", rx251_cur
-    .local pmc match
-    .lex "$/", match
-    length rx251_eos, rx251_tgt
-    gt rx251_pos, rx251_eos, rx251_done
-    set rx251_off, 0
-    lt rx251_pos, 2, rx251_start
-    sub rx251_off, rx251_pos, 1
-    substr rx251_tgt, rx251_tgt, rx251_off
-  rx251_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan254_done
-    goto rxscan254_scan
-  rxscan254_loop:
-    ($P10) = rx251_cur."from"()
-    inc $P10
-    set rx251_pos, $P10
-    ge rx251_pos, rx251_eos, rxscan254_done
-  rxscan254_scan:
-    set_addr $I10, rxscan254_loop
-    rx251_cur."!mark_push"(0, rx251_pos, $I10)
-  rxscan254_done:
+    .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:
 .annotate 'line', 150
   # rx enumcharlist negate=0 zerowidth
-    ge rx251_pos, rx251_eos, rx251_fail
-    sub $I10, rx251_pos, rx251_off
-    substr $S10, rx251_tgt, $I10, 1
+    ge rx253_pos, rx253_eos, rx253_fail
+    sub $I10, rx253_pos, rx253_off
+    substr $S10, rx253_tgt, $I10, 1
     index $I11, ";", $S10
-    lt $I11, 0, rx251_fail
+    lt $I11, 0, rx253_fail
   # rx pass
-    rx251_cur."!cursor_pass"(rx251_pos, "terminator:sym<;>")
-    rx251_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx251_pos)
-    .return (rx251_cur)
-  rx251_fail:
+    rx253_cur."!cursor_pass"(rx253_pos, "terminator:sym<;>")
+    rx253_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx253_pos)
+    .return (rx253_cur)
+  rx253_fail:
 .annotate 'line', 4
-    (rx251_rep, rx251_pos, $I10, $P10) = rx251_cur."!mark_fail"(0)
-    lt rx251_pos, -1, rx251_done
-    eq rx251_pos, -1, rx251_fail
+    (rx253_rep, rx253_pos, $I10, $P10) = rx253_cur."!mark_fail"(0)
+    lt rx253_pos, -1, rx253_done
+    eq rx253_pos, -1, rx253_fail
     jump $I10
-  rx251_done:
-    rx251_cur."!cursor_fail"()
-    rx251_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
-    .return (rx251_cur)
+  rx253_done:
+    rx253_cur."!cursor_fail"()
+    rx253_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
+    .return (rx253_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("57_1275811487.95429") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("57_1277356913.9538") :method
 .annotate 'line', 4
-    new $P253, "ResizablePMCArray"
-    push $P253, ";"
-    .return ($P253)
+    new $P255, "ResizablePMCArray"
+    push $P255, ";"
+    .return ($P255)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("58_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "terminator:sym<}>"  :subid("58_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx256_tgt
-    .local int rx256_pos
-    .local int rx256_off
-    .local int rx256_eos
-    .local int rx256_rep
-    .local pmc rx256_cur
-    (rx256_cur, rx256_pos, rx256_tgt) = self."!cursor_start"()
-    rx256_cur."!cursor_debug"("START ", "terminator:sym<}>")
-    .lex unicode:"$\x{a2}", rx256_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) = self."!cursor_start"()
+    rx258_cur."!cursor_debug"("START ", "terminator:sym<}>")
+    .lex unicode:"$\x{a2}", rx258_cur
     .local pmc match
     .lex "$/", match
-    length rx256_eos, rx256_tgt
-    gt rx256_pos, rx256_eos, rx256_done
-    set rx256_off, 0
-    lt rx256_pos, 2, rx256_start
-    sub rx256_off, rx256_pos, 1
-    substr rx256_tgt, rx256_tgt, rx256_off
-  rx256_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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan259_done
-    goto rxscan259_scan
-  rxscan259_loop:
-    ($P10) = rx256_cur."from"()
+    ne $I10, -1, rxscan261_done
+    goto rxscan261_scan
+  rxscan261_loop:
+    ($P10) = rx258_cur."from"()
     inc $P10
-    set rx256_pos, $P10
-    ge rx256_pos, rx256_eos, rxscan259_done
-  rxscan259_scan:
-    set_addr $I10, rxscan259_loop
-    rx256_cur."!mark_push"(0, rx256_pos, $I10)
-  rxscan259_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', 151
   # rx enumcharlist negate=0 zerowidth
-    ge rx256_pos, rx256_eos, rx256_fail
-    sub $I10, rx256_pos, rx256_off
-    substr $S10, rx256_tgt, $I10, 1
+    ge rx258_pos, rx258_eos, rx258_fail
+    sub $I10, rx258_pos, rx258_off
+    substr $S10, rx258_tgt, $I10, 1
     index $I11, "}", $S10
-    lt $I11, 0, rx256_fail
+    lt $I11, 0, rx258_fail
   # rx pass
-    rx256_cur."!cursor_pass"(rx256_pos, "terminator:sym<}>")
-    rx256_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx256_pos)
-    .return (rx256_cur)
-  rx256_fail:
+    rx258_cur."!cursor_pass"(rx258_pos, "terminator:sym<}>")
+    rx258_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx258_pos)
+    .return (rx258_cur)
+  rx258_fail:
 .annotate 'line', 4
-    (rx256_rep, rx256_pos, $I10, $P10) = rx256_cur."!mark_fail"(0)
-    lt rx256_pos, -1, rx256_done
-    eq rx256_pos, -1, rx256_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
-  rx256_done:
-    rx256_cur."!cursor_fail"()
-    rx256_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
-    .return (rx256_cur)
+  rx258_done:
+    rx258_cur."!cursor_fail"()
+    rx258_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
+    .return (rx258_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("59_1275811487.95429") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("59_1277356913.9538") :method
 .annotate 'line', 4
-    new $P258, "ResizablePMCArray"
-    push $P258, "}"
-    .return ($P258)
+    new $P260, "ResizablePMCArray"
+    push $P260, "}"
+    .return ($P260)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("60_1275811487.95429") :method
+.sub "statement_control"  :subid("60_1277356913.9538") :method
 .annotate 'line', 155
-    $P261 = self."!protoregex"("statement_control")
-    .return ($P261)
+    $P263 = self."!protoregex"("statement_control")
+    .return ($P263)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("61_1275811487.95429") :method
+.sub "!PREFIX__statement_control"  :subid("61_1277356913.9538") :method
 .annotate 'line', 155
-    $P263 = self."!PREFIX__!protoregex"("statement_control")
-    .return ($P263)
+    $P265 = self."!PREFIX__!protoregex"("statement_control")
+    .return ($P265)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("62_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<if>"  :subid("62_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx265_tgt
-    .local int rx265_pos
-    .local int rx265_off
-    .local int rx265_eos
-    .local int rx265_rep
-    .local pmc rx265_cur
-    (rx265_cur, rx265_pos, rx265_tgt) = self."!cursor_start"()
-    rx265_cur."!cursor_debug"("START ", "statement_control:sym<if>")
-    rx265_cur."!cursor_caparray"("else", "xblock")
-    .lex unicode:"$\x{a2}", rx265_cur
-    .local pmc match
-    .lex "$/", match
-    length rx265_eos, rx265_tgt
-    gt rx265_pos, rx265_eos, rx265_done
-    set rx265_off, 0
-    lt rx265_pos, 2, rx265_start
-    sub rx265_off, rx265_pos, 1
-    substr rx265_tgt, rx265_tgt, rx265_off
-  rx265_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan268_done
-    goto rxscan268_scan
-  rxscan268_loop:
-    ($P10) = rx265_cur."from"()
-    inc $P10
-    set rx265_pos, $P10
-    ge rx265_pos, rx265_eos, rxscan268_done
-  rxscan268_scan:
-    set_addr $I10, rxscan268_loop
-    rx265_cur."!mark_push"(0, rx265_pos, $I10)
-  rxscan268_done:
+    .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:
 .annotate 'line', 158
   # rx subcapture "sym"
-    set_addr $I10, rxcap_269_fail
-    rx265_cur."!mark_push"(0, rx265_pos, $I10)
+    set_addr $I10, rxcap_271_fail
+    rx267_cur."!mark_push"(0, rx267_pos, $I10)
   # rx literal  "if"
-    add $I11, rx265_pos, 2
-    gt $I11, rx265_eos, rx265_fail
-    sub $I11, rx265_pos, rx265_off
-    substr $S10, rx265_tgt, $I11, 2
-    ne $S10, "if", rx265_fail
-    add rx265_pos, 2
-    set_addr $I10, rxcap_269_fail
-    ($I12, $I11) = rx265_cur."!mark_peek"($I10)
-    rx265_cur."!cursor_pos"($I11)
-    ($P10) = rx265_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx265_pos, "")
-    rx265_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_269_done
-  rxcap_269_fail:
-    goto rx265_fail
-  rxcap_269_done:
+    goto rxcap_271_done
+  rxcap_271_fail:
+    goto rx267_fail
+  rxcap_271_done:
   # rx charclass s
-    ge rx265_pos, rx265_eos, rx265_fail
-    sub $I10, rx265_pos, rx265_off
-    is_cclass $I11, 32, rx265_tgt, $I10
-    unless $I11, rx265_fail
-    inc rx265_pos
-  # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
+    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"()
 .annotate 'line', 159
   # rx subrule "xblock" subtype=capture negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."xblock"()
-    unless $P10, rx265_fail
-    rx265_cur."!mark_push"(0, -1, 0, $P10)
+    rx267_cur."!cursor_pos"(rx267_pos)
+    $P10 = rx267_cur."xblock"()
+    unless $P10, rx267_fail
+    rx267_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx265_pos = $P10."pos"()
+    rx267_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
+    rx267_cur."!cursor_pos"(rx267_pos)
+    $P10 = rx267_cur."ws"()
+    unless $P10, rx267_fail
+    rx267_pos = $P10."pos"()
 .annotate 'line', 160
-  # rx rxquantr272 ** 0..*
-    set_addr $I276, rxquantr272_done
-    rx265_cur."!mark_push"(0, rx265_pos, $I276)
-  rxquantr272_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
+  # 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 literal  "elsif"
-    add $I11, rx265_pos, 5
-    gt $I11, rx265_eos, rx265_fail
-    sub $I11, rx265_pos, rx265_off
-    substr $S10, rx265_tgt, $I11, 5
-    ne $S10, "elsif", rx265_fail
-    add rx265_pos, 5
+    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
   # rx charclass s
-    ge rx265_pos, rx265_eos, rx265_fail
-    sub $I10, rx265_pos, rx265_off
-    is_cclass $I11, 32, rx265_tgt, $I10
-    unless $I11, rx265_fail
-    inc rx265_pos
-  # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
+    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"()
   # rx subrule "xblock" subtype=capture negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."xblock"()
-    unless $P10, rx265_fail
-    rx265_cur."!mark_push"(0, -1, 0, $P10)
+    rx267_cur."!cursor_pos"(rx267_pos)
+    $P10 = rx267_cur."xblock"()
+    unless $P10, rx267_fail
+    rx267_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx265_pos = $P10."pos"()
+    rx267_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
-    (rx265_rep) = rx265_cur."!mark_commit"($I276)
-    rx265_cur."!mark_push"(rx265_rep, rx265_pos, $I276)
-    goto rxquantr272_loop
-  rxquantr272_done:
-  # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
+    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"()
 .annotate 'line', 161
-  # rx rxquantr278 ** 0..1
-    set_addr $I282, rxquantr278_done
-    rx265_cur."!mark_push"(0, rx265_pos, $I282)
-  rxquantr278_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
+  # 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 literal  "else"
-    add $I11, rx265_pos, 4
-    gt $I11, rx265_eos, rx265_fail
-    sub $I11, rx265_pos, rx265_off
-    substr $S10, rx265_tgt, $I11, 4
-    ne $S10, "else", rx265_fail
-    add rx265_pos, 4
+    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
   # rx charclass s
-    ge rx265_pos, rx265_eos, rx265_fail
-    sub $I10, rx265_pos, rx265_off
-    is_cclass $I11, 32, rx265_tgt, $I10
-    unless $I11, rx265_fail
-    inc rx265_pos
-  # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
+    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"()
   # rx subrule "pblock" subtype=capture negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."pblock"()
-    unless $P10, rx265_fail
-    rx265_cur."!mark_push"(0, -1, 0, $P10)
+    rx267_cur."!cursor_pos"(rx267_pos)
+    $P10 = rx267_cur."pblock"()
+    unless $P10, rx267_fail
+    rx267_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("else")
-    rx265_pos = $P10."pos"()
+    rx267_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
-    (rx265_rep) = rx265_cur."!mark_commit"($I282)
-  rxquantr278_done:
-  # rx subrule "ws" subtype=method negate=
-    rx265_cur."!cursor_pos"(rx265_pos)
-    $P10 = rx265_cur."ws"()
-    unless $P10, rx265_fail
-    rx265_pos = $P10."pos"()
+    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"()
 .annotate 'line', 157
   # rx pass
-    rx265_cur."!cursor_pass"(rx265_pos, "statement_control:sym<if>")
-    rx265_cur."!cursor_debug"("PASS  ", "statement_control:sym<if>", " at pos=", rx265_pos)
-    .return (rx265_cur)
-  rx265_fail:
+    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:
 .annotate 'line', 4
-    (rx265_rep, rx265_pos, $I10, $P10) = rx265_cur."!mark_fail"(0)
-    lt rx265_pos, -1, rx265_done
-    eq rx265_pos, -1, rx265_fail
+    (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
+    lt rx267_pos, -1, rx267_done
+    eq rx267_pos, -1, rx267_fail
     jump $I10
-  rx265_done:
-    rx265_cur."!cursor_fail"()
-    rx265_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
-    .return (rx265_cur)
+  rx267_done:
+    rx267_cur."!cursor_fail"()
+    rx267_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
+    .return (rx267_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1277356913.9538") :method
 .annotate 'line', 4
-    new $P267, "ResizablePMCArray"
-    push $P267, "if"
-    .return ($P267)
+    new $P269, "ResizablePMCArray"
+    push $P269, "if"
+    .return ($P269)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("64_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<unless>"  :subid("64_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .const 'Sub' $P295 = "66_1275811487.95429" 
-    capture_lex $P295
-    .local string rx285_tgt
-    .local int rx285_pos
-    .local int rx285_off
-    .local int rx285_eos
-    .local int rx285_rep
-    .local pmc rx285_cur
-    (rx285_cur, rx285_pos, rx285_tgt) = self."!cursor_start"()
-    rx285_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
-    .lex unicode:"$\x{a2}", rx285_cur
+    .const 'Sub' $P297 = "66_1277356913.9538" 
+    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
     .local pmc match
     .lex "$/", match
-    length rx285_eos, rx285_tgt
-    gt rx285_pos, rx285_eos, rx285_done
-    set rx285_off, 0
-    lt rx285_pos, 2, rx285_start
-    sub rx285_off, rx285_pos, 1
-    substr rx285_tgt, rx285_tgt, rx285_off
-  rx285_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan288_done
-    goto rxscan288_scan
-  rxscan288_loop:
-    ($P10) = rx285_cur."from"()
+    ne $I10, -1, rxscan290_done
+    goto rxscan290_scan
+  rxscan290_loop:
+    ($P10) = rx287_cur."from"()
     inc $P10
-    set rx285_pos, $P10
-    ge rx285_pos, rx285_eos, rxscan288_done
-  rxscan288_scan:
-    set_addr $I10, rxscan288_loop
-    rx285_cur."!mark_push"(0, rx285_pos, $I10)
-  rxscan288_done:
+    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:
 .annotate 'line', 165
   # rx subcapture "sym"
-    set_addr $I10, rxcap_289_fail
-    rx285_cur."!mark_push"(0, rx285_pos, $I10)
+    set_addr $I10, rxcap_291_fail
+    rx287_cur."!mark_push"(0, rx287_pos, $I10)
   # rx literal  "unless"
-    add $I11, rx285_pos, 6
-    gt $I11, rx285_eos, rx285_fail
-    sub $I11, rx285_pos, rx285_off
-    substr $S10, rx285_tgt, $I11, 6
-    ne $S10, "unless", rx285_fail
-    add rx285_pos, 6
-    set_addr $I10, rxcap_289_fail
-    ($I12, $I11) = rx285_cur."!mark_peek"($I10)
-    rx285_cur."!cursor_pos"($I11)
-    ($P10) = rx285_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx285_pos, "")
-    rx285_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_289_done
-  rxcap_289_fail:
-    goto rx285_fail
-  rxcap_289_done:
+    goto rxcap_291_done
+  rxcap_291_fail:
+    goto rx287_fail
+  rxcap_291_done:
   # rx charclass s
-    ge rx285_pos, rx285_eos, rx285_fail
-    sub $I10, rx285_pos, rx285_off
-    is_cclass $I11, 32, rx285_tgt, $I10
-    unless $I11, rx285_fail
-    inc rx285_pos
-  # rx subrule "ws" subtype=method negate=
-    rx285_cur."!cursor_pos"(rx285_pos)
-    $P10 = rx285_cur."ws"()
-    unless $P10, rx285_fail
-    rx285_pos = $P10."pos"()
+    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"()
 .annotate 'line', 166
   # rx subrule "xblock" subtype=capture negate=
-    rx285_cur."!cursor_pos"(rx285_pos)
-    $P10 = rx285_cur."xblock"()
-    unless $P10, rx285_fail
-    rx285_cur."!mark_push"(0, -1, 0, $P10)
+    rx287_cur."!cursor_pos"(rx287_pos)
+    $P10 = rx287_cur."xblock"()
+    unless $P10, rx287_fail
+    rx287_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx285_pos = $P10."pos"()
+    rx287_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx285_cur."!cursor_pos"(rx285_pos)
-    $P10 = rx285_cur."ws"()
-    unless $P10, rx285_fail
-    rx285_pos = $P10."pos"()
-  alt292_0:
+    rx287_cur."!cursor_pos"(rx287_pos)
+    $P10 = rx287_cur."ws"()
+    unless $P10, rx287_fail
+    rx287_pos = $P10."pos"()
+  alt294_0:
 .annotate 'line', 167
-    set_addr $I10, alt292_1
-    rx285_cur."!mark_push"(0, rx285_pos, $I10)
+    set_addr $I10, alt294_1
+    rx287_cur."!mark_push"(0, rx287_pos, $I10)
   # rx subrule "ws" subtype=method negate=
-    rx285_cur."!cursor_pos"(rx285_pos)
-    $P10 = rx285_cur."ws"()
-    unless $P10, rx285_fail
-    rx285_pos = $P10."pos"()
+    rx287_cur."!cursor_pos"(rx287_pos)
+    $P10 = rx287_cur."ws"()
+    unless $P10, rx287_fail
+    rx287_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
-    rx285_cur."!cursor_pos"(rx285_pos)
-    .const 'Sub' $P295 = "66_1275811487.95429" 
-    capture_lex $P295
-    $P10 = rx285_cur."before"($P295)
-    if $P10, rx285_fail
-  # rx subrule "ws" subtype=method negate=
-    rx285_cur."!cursor_pos"(rx285_pos)
-    $P10 = rx285_cur."ws"()
-    unless $P10, rx285_fail
-    rx285_pos = $P10."pos"()
-    goto alt292_end
-  alt292_1:
-  # rx subrule "ws" subtype=method negate=
-    rx285_cur."!cursor_pos"(rx285_pos)
-    $P10 = rx285_cur."ws"()
-    unless $P10, rx285_fail
-    rx285_pos = $P10."pos"()
+    rx287_cur."!cursor_pos"(rx287_pos)
+    .const 'Sub' $P297 = "66_1277356913.9538" 
+    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"()
   # rx subrule "panic" subtype=method negate=
-    rx285_cur."!cursor_pos"(rx285_pos)
-    $P10 = rx285_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
-    unless $P10, rx285_fail
-    rx285_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx285_cur."!cursor_pos"(rx285_pos)
-    $P10 = rx285_cur."ws"()
-    unless $P10, rx285_fail
-    rx285_pos = $P10."pos"()
-  alt292_end:
-  # rx subrule "ws" subtype=method negate=
-    rx285_cur."!cursor_pos"(rx285_pos)
-    $P10 = rx285_cur."ws"()
-    unless $P10, rx285_fail
-    rx285_pos = $P10."pos"()
+    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"()
 .annotate 'line', 164
   # rx pass
-    rx285_cur."!cursor_pass"(rx285_pos, "statement_control:sym<unless>")
-    rx285_cur."!cursor_debug"("PASS  ", "statement_control:sym<unless>", " at pos=", rx285_pos)
-    .return (rx285_cur)
-  rx285_fail:
+    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:
 .annotate 'line', 4
-    (rx285_rep, rx285_pos, $I10, $P10) = rx285_cur."!mark_fail"(0)
-    lt rx285_pos, -1, rx285_done
-    eq rx285_pos, -1, rx285_fail
+    (rx287_rep, rx287_pos, $I10, $P10) = rx287_cur."!mark_fail"(0)
+    lt rx287_pos, -1, rx287_done
+    eq rx287_pos, -1, rx287_fail
     jump $I10
-  rx285_done:
-    rx285_cur."!cursor_fail"()
-    rx285_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
-    .return (rx285_cur)
+  rx287_done:
+    rx287_cur."!cursor_fail"()
+    rx287_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
+    .return (rx287_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1277356913.9538") :method
 .annotate 'line', 4
-    new $P287, "ResizablePMCArray"
-    push $P287, "unless"
-    .return ($P287)
+    new $P289, "ResizablePMCArray"
+    push $P289, "unless"
+    .return ($P289)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block294"  :anon :subid("66_1275811487.95429") :method :outer("64_1275811487.95429")
+.sub "_block296"  :anon :subid("66_1277356913.9538") :method :outer("64_1277356913.9538")
 .annotate 'line', 167
-    .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 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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan297_done
-    goto rxscan297_scan
-  rxscan297_loop:
-    ($P10) = rx296_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:
+    .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:
   # rx literal  "else"
-    add $I11, rx296_pos, 4
-    gt $I11, rx296_eos, rx296_fail
-    sub $I11, rx296_pos, rx296_off
-    substr $S10, rx296_tgt, $I11, 4
-    ne $S10, "else", rx296_fail
-    add rx296_pos, 4
-  # 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
-    jump $I10
-  rx296_done:
-    rx296_cur."!cursor_fail"()
-    rx296_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx296_cur)
+    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)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("67_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
-    .local string rx303_tgt
-    .local int rx303_pos
-    .local int rx303_off
-    .local int rx303_eos
-    .local int rx303_rep
-    .local pmc rx303_cur
-    (rx303_cur, rx303_pos, rx303_tgt) = self."!cursor_start"()
-    rx303_cur."!cursor_debug"("START ", "statement_control:sym<while>")
-    .lex unicode:"$\x{a2}", rx303_cur
-    .local pmc match
-    .lex "$/", match
-    length rx303_eos, rx303_tgt
-    gt rx303_pos, rx303_eos, rx303_done
-    set rx303_off, 0
-    lt rx303_pos, 2, rx303_start
-    sub rx303_off, rx303_pos, 1
-    substr rx303_tgt, rx303_tgt, rx303_off
-  rx303_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan306_done
-    goto rxscan306_scan
-  rxscan306_loop:
-    ($P10) = rx303_cur."from"()
-    inc $P10
-    set rx303_pos, $P10
-    ge rx303_pos, rx303_eos, rxscan306_done
-  rxscan306_scan:
-    set_addr $I10, rxscan306_loop
-    rx303_cur."!mark_push"(0, rx303_pos, $I10)
-  rxscan306_done:
+.sub "statement_control:sym<while>"  :subid("67_1277356913.9538") :method :outer("11_1277356913.9538")
+.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:
 .annotate 'line', 171
   # rx subcapture "sym"
-    set_addr $I10, rxcap_308_fail
-    rx303_cur."!mark_push"(0, rx303_pos, $I10)
-  alt307_0:
-    set_addr $I10, alt307_1
-    rx303_cur."!mark_push"(0, rx303_pos, $I10)
+    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)
   # rx literal  "while"
-    add $I11, rx303_pos, 5
-    gt $I11, rx303_eos, rx303_fail
-    sub $I11, rx303_pos, rx303_off
-    substr $S10, rx303_tgt, $I11, 5
-    ne $S10, "while", rx303_fail
-    add rx303_pos, 5
-    goto alt307_end
-  alt307_1:
+    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:
   # rx literal  "until"
-    add $I11, rx303_pos, 5
-    gt $I11, rx303_eos, rx303_fail
-    sub $I11, rx303_pos, rx303_off
-    substr $S10, rx303_tgt, $I11, 5
-    ne $S10, "until", rx303_fail
-    add rx303_pos, 5
-  alt307_end:
-    set_addr $I10, rxcap_308_fail
-    ($I12, $I11) = rx303_cur."!mark_peek"($I10)
-    rx303_cur."!cursor_pos"($I11)
-    ($P10) = rx303_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx303_pos, "")
-    rx303_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_308_done
-  rxcap_308_fail:
-    goto rx303_fail
-  rxcap_308_done:
+    goto rxcap_310_done
+  rxcap_310_fail:
+    goto rx305_fail
+  rxcap_310_done:
   # rx charclass s
-    ge rx303_pos, rx303_eos, rx303_fail
-    sub $I10, rx303_pos, rx303_off
-    is_cclass $I11, 32, rx303_tgt, $I10
-    unless $I11, rx303_fail
-    inc rx303_pos
-  # rx subrule "ws" subtype=method negate=
-    rx303_cur."!cursor_pos"(rx303_pos)
-    $P10 = rx303_cur."ws"()
-    unless $P10, rx303_fail
-    rx303_pos = $P10."pos"()
+    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"()
 .annotate 'line', 172
   # rx subrule "xblock" subtype=capture negate=
-    rx303_cur."!cursor_pos"(rx303_pos)
-    $P10 = rx303_cur."xblock"()
-    unless $P10, rx303_fail
-    rx303_cur."!mark_push"(0, -1, 0, $P10)
+    rx305_cur."!cursor_pos"(rx305_pos)
+    $P10 = rx305_cur."xblock"()
+    unless $P10, rx305_fail
+    rx305_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx303_pos = $P10."pos"()
+    rx305_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx303_cur."!cursor_pos"(rx303_pos)
-    $P10 = rx303_cur."ws"()
-    unless $P10, rx303_fail
-    rx303_pos = $P10."pos"()
+    rx305_cur."!cursor_pos"(rx305_pos)
+    $P10 = rx305_cur."ws"()
+    unless $P10, rx305_fail
+    rx305_pos = $P10."pos"()
 .annotate 'line', 170
   # rx pass
-    rx303_cur."!cursor_pass"(rx303_pos, "statement_control:sym<while>")
-    rx303_cur."!cursor_debug"("PASS  ", "statement_control:sym<while>", " at pos=", rx303_pos)
-    .return (rx303_cur)
-  rx303_fail:
+    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:
 .annotate 'line', 4
-    (rx303_rep, rx303_pos, $I10, $P10) = rx303_cur."!mark_fail"(0)
-    lt rx303_pos, -1, rx303_done
-    eq rx303_pos, -1, rx303_fail
+    (rx305_rep, rx305_pos, $I10, $P10) = rx305_cur."!mark_fail"(0)
+    lt rx305_pos, -1, rx305_done
+    eq rx305_pos, -1, rx305_fail
     jump $I10
-  rx303_done:
-    rx303_cur."!cursor_fail"()
-    rx303_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
-    .return (rx303_cur)
+  rx305_done:
+    rx305_cur."!cursor_fail"()
+    rx305_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
+    .return (rx305_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1277356913.9538") :method
 .annotate 'line', 4
-    new $P305, "ResizablePMCArray"
-    push $P305, "until"
-    push $P305, "while"
-    .return ($P305)
+    new $P307, "ResizablePMCArray"
+    push $P307, "until"
+    push $P307, "while"
+    .return ($P307)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("69_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<repeat>"  :subid("69_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx312_tgt
-    .local int rx312_pos
-    .local int rx312_off
-    .local int rx312_eos
-    .local int rx312_rep
-    .local pmc rx312_cur
-    (rx312_cur, rx312_pos, rx312_tgt) = self."!cursor_start"()
-    rx312_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
-    .lex unicode:"$\x{a2}", rx312_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) = self."!cursor_start"()
+    rx314_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
+    .lex unicode:"$\x{a2}", rx314_cur
     .local pmc match
     .lex "$/", match
-    length rx312_eos, rx312_tgt
-    gt rx312_pos, rx312_eos, rx312_done
-    set rx312_off, 0
-    lt rx312_pos, 2, rx312_start
-    sub rx312_off, rx312_pos, 1
-    substr rx312_tgt, rx312_tgt, rx312_off
-  rx312_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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan315_done
-    goto rxscan315_scan
-  rxscan315_loop:
-    ($P10) = rx312_cur."from"()
+    ne $I10, -1, rxscan317_done
+    goto rxscan317_scan
+  rxscan317_loop:
+    ($P10) = rx314_cur."from"()
     inc $P10
-    set rx312_pos, $P10
-    ge rx312_pos, rx312_eos, rxscan315_done
-  rxscan315_scan:
-    set_addr $I10, rxscan315_loop
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
-  rxscan315_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', 176
   # rx subcapture "sym"
-    set_addr $I10, rxcap_316_fail
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+    set_addr $I10, rxcap_318_fail
+    rx314_cur."!mark_push"(0, rx314_pos, $I10)
   # rx literal  "repeat"
-    add $I11, rx312_pos, 6
-    gt $I11, rx312_eos, rx312_fail
-    sub $I11, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I11, 6
-    ne $S10, "repeat", rx312_fail
-    add rx312_pos, 6
-    set_addr $I10, rxcap_316_fail
-    ($I12, $I11) = rx312_cur."!mark_peek"($I10)
-    rx312_cur."!cursor_pos"($I11)
-    ($P10) = rx312_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx312_pos, "")
-    rx312_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_316_done
-  rxcap_316_fail:
-    goto rx312_fail
-  rxcap_316_done:
+    goto rxcap_318_done
+  rxcap_318_fail:
+    goto rx314_fail
+  rxcap_318_done:
   # rx charclass s
-    ge rx312_pos, rx312_eos, rx312_fail
-    sub $I10, rx312_pos, rx312_off
-    is_cclass $I11, 32, rx312_tgt, $I10
-    unless $I11, rx312_fail
-    inc rx312_pos
-  # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
-  alt318_0:
+    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:
 .annotate 'line', 177
-    set_addr $I10, alt318_1
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+    set_addr $I10, alt320_1
+    rx314_cur."!mark_push"(0, rx314_pos, $I10)
 .annotate 'line', 178
   # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
   # rx subcapture "wu"
-    set_addr $I10, rxcap_321_fail
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
-  alt320_0:
-    set_addr $I10, alt320_1
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+    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)
   # rx literal  "while"
-    add $I11, rx312_pos, 5
-    gt $I11, rx312_eos, rx312_fail
-    sub $I11, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I11, 5
-    ne $S10, "while", rx312_fail
-    add rx312_pos, 5
-    goto alt320_end
-  alt320_1:
+    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:
   # rx literal  "until"
-    add $I11, rx312_pos, 5
-    gt $I11, rx312_eos, rx312_fail
-    sub $I11, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I11, 5
-    ne $S10, "until", rx312_fail
-    add rx312_pos, 5
-  alt320_end:
-    set_addr $I10, rxcap_321_fail
-    ($I12, $I11) = rx312_cur."!mark_peek"($I10)
-    rx312_cur."!cursor_pos"($I11)
-    ($P10) = rx312_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx312_pos, "")
-    rx312_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("wu")
-    goto rxcap_321_done
-  rxcap_321_fail:
-    goto rx312_fail
-  rxcap_321_done:
+    goto rxcap_323_done
+  rxcap_323_fail:
+    goto rx314_fail
+  rxcap_323_done:
   # rx charclass s
-    ge rx312_pos, rx312_eos, rx312_fail
-    sub $I10, rx312_pos, rx312_off
-    is_cclass $I11, 32, rx312_tgt, $I10
-    unless $I11, rx312_fail
-    inc rx312_pos
-  # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
+    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"()
   # rx subrule "xblock" subtype=capture negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."xblock"()
-    unless $P10, rx312_fail
-    rx312_cur."!mark_push"(0, -1, 0, $P10)
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."xblock"()
+    unless $P10, rx314_fail
+    rx314_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx312_pos = $P10."pos"()
+    rx314_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
-    goto alt318_end
-  alt318_1:
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
+    goto alt320_end
+  alt320_1:
 .annotate 'line', 179
   # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
   # rx subrule "pblock" subtype=capture negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."pblock"()
-    unless $P10, rx312_fail
-    rx312_cur."!mark_push"(0, -1, 0, $P10)
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."pblock"()
+    unless $P10, rx314_fail
+    rx314_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx312_pos = $P10."pos"()
+    rx314_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
   # rx subcapture "wu"
-    set_addr $I10, rxcap_327_fail
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
-  alt326_0:
-    set_addr $I10, alt326_1
-    rx312_cur."!mark_push"(0, rx312_pos, $I10)
+    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)
   # rx literal  "while"
-    add $I11, rx312_pos, 5
-    gt $I11, rx312_eos, rx312_fail
-    sub $I11, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I11, 5
-    ne $S10, "while", rx312_fail
-    add rx312_pos, 5
-    goto alt326_end
-  alt326_1:
+    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:
   # rx literal  "until"
-    add $I11, rx312_pos, 5
-    gt $I11, rx312_eos, rx312_fail
-    sub $I11, rx312_pos, rx312_off
-    substr $S10, rx312_tgt, $I11, 5
-    ne $S10, "until", rx312_fail
-    add rx312_pos, 5
-  alt326_end:
-    set_addr $I10, rxcap_327_fail
-    ($I12, $I11) = rx312_cur."!mark_peek"($I10)
-    rx312_cur."!cursor_pos"($I11)
-    ($P10) = rx312_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx312_pos, "")
-    rx312_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("wu")
-    goto rxcap_327_done
-  rxcap_327_fail:
-    goto rx312_fail
-  rxcap_327_done:
+    goto rxcap_329_done
+  rxcap_329_fail:
+    goto rx314_fail
+  rxcap_329_done:
   # rx charclass s
-    ge rx312_pos, rx312_eos, rx312_fail
-    sub $I10, rx312_pos, rx312_off
-    is_cclass $I11, 32, rx312_tgt, $I10
-    unless $I11, rx312_fail
-    inc rx312_pos
-  # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
+    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"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."EXPR"()
-    unless $P10, rx312_fail
-    rx312_cur."!mark_push"(0, -1, 0, $P10)
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."EXPR"()
+    unless $P10, rx314_fail
+    rx314_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx312_pos = $P10."pos"()
+    rx314_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
-  alt318_end:
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
+  alt320_end:
 .annotate 'line', 180
   # rx subrule "ws" subtype=method negate=
-    rx312_cur."!cursor_pos"(rx312_pos)
-    $P10 = rx312_cur."ws"()
-    unless $P10, rx312_fail
-    rx312_pos = $P10."pos"()
+    rx314_cur."!cursor_pos"(rx314_pos)
+    $P10 = rx314_cur."ws"()
+    unless $P10, rx314_fail
+    rx314_pos = $P10."pos"()
 .annotate 'line', 175
   # rx pass
-    rx312_cur."!cursor_pass"(rx312_pos, "statement_control:sym<repeat>")
-    rx312_cur."!cursor_debug"("PASS  ", "statement_control:sym<repeat>", " at pos=", rx312_pos)
-    .return (rx312_cur)
-  rx312_fail:
+    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:
 .annotate 'line', 4
-    (rx312_rep, rx312_pos, $I10, $P10) = rx312_cur."!mark_fail"(0)
-    lt rx312_pos, -1, rx312_done
-    eq rx312_pos, -1, rx312_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
-  rx312_done:
-    rx312_cur."!cursor_fail"()
-    rx312_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
-    .return (rx312_cur)
+  rx314_done:
+    rx314_cur."!cursor_fail"()
+    rx314_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
+    .return (rx314_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1277356913.9538") :method
 .annotate 'line', 4
-    new $P314, "ResizablePMCArray"
-    push $P314, "repeat"
-    .return ($P314)
+    new $P316, "ResizablePMCArray"
+    push $P316, "repeat"
+    .return ($P316)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("71_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<for>"  :subid("71_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx332_tgt
-    .local int rx332_pos
-    .local int rx332_off
-    .local int rx332_eos
-    .local int rx332_rep
-    .local pmc rx332_cur
-    (rx332_cur, rx332_pos, rx332_tgt) = self."!cursor_start"()
-    rx332_cur."!cursor_debug"("START ", "statement_control:sym<for>")
-    .lex unicode:"$\x{a2}", rx332_cur
+    .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 pmc match
     .lex "$/", match
-    length rx332_eos, rx332_tgt
-    gt rx332_pos, rx332_eos, rx332_done
-    set rx332_off, 0
-    lt rx332_pos, 2, rx332_start
-    sub rx332_off, rx332_pos, 1
-    substr rx332_tgt, rx332_tgt, rx332_off
-  rx332_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan335_done
-    goto rxscan335_scan
-  rxscan335_loop:
-    ($P10) = rx332_cur."from"()
+    ne $I10, -1, rxscan337_done
+    goto rxscan337_scan
+  rxscan337_loop:
+    ($P10) = rx334_cur."from"()
     inc $P10
-    set rx332_pos, $P10
-    ge rx332_pos, rx332_eos, rxscan335_done
-  rxscan335_scan:
-    set_addr $I10, rxscan335_loop
-    rx332_cur."!mark_push"(0, rx332_pos, $I10)
-  rxscan335_done:
+    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:
 .annotate 'line', 184
   # rx subcapture "sym"
-    set_addr $I10, rxcap_336_fail
-    rx332_cur."!mark_push"(0, rx332_pos, $I10)
+    set_addr $I10, rxcap_338_fail
+    rx334_cur."!mark_push"(0, rx334_pos, $I10)
   # rx literal  "for"
-    add $I11, rx332_pos, 3
-    gt $I11, rx332_eos, rx332_fail
-    sub $I11, rx332_pos, rx332_off
-    substr $S10, rx332_tgt, $I11, 3
-    ne $S10, "for", rx332_fail
-    add rx332_pos, 3
-    set_addr $I10, rxcap_336_fail
-    ($I12, $I11) = rx332_cur."!mark_peek"($I10)
-    rx332_cur."!cursor_pos"($I11)
-    ($P10) = rx332_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx332_pos, "")
-    rx332_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_336_done
-  rxcap_336_fail:
-    goto rx332_fail
-  rxcap_336_done:
+    goto rxcap_338_done
+  rxcap_338_fail:
+    goto rx334_fail
+  rxcap_338_done:
   # rx charclass s
-    ge rx332_pos, rx332_eos, rx332_fail
-    sub $I10, rx332_pos, rx332_off
-    is_cclass $I11, 32, rx332_tgt, $I10
-    unless $I11, rx332_fail
-    inc rx332_pos
-  # rx subrule "ws" subtype=method negate=
-    rx332_cur."!cursor_pos"(rx332_pos)
-    $P10 = rx332_cur."ws"()
-    unless $P10, rx332_fail
-    rx332_pos = $P10."pos"()
+    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"()
 .annotate 'line', 185
   # rx subrule "xblock" subtype=capture negate=
-    rx332_cur."!cursor_pos"(rx332_pos)
-    $P10 = rx332_cur."xblock"()
-    unless $P10, rx332_fail
-    rx332_cur."!mark_push"(0, -1, 0, $P10)
+    rx334_cur."!cursor_pos"(rx334_pos)
+    $P10 = rx334_cur."xblock"()
+    unless $P10, rx334_fail
+    rx334_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("xblock")
-    rx332_pos = $P10."pos"()
+    rx334_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx332_cur."!cursor_pos"(rx332_pos)
-    $P10 = rx332_cur."ws"()
-    unless $P10, rx332_fail
-    rx332_pos = $P10."pos"()
+    rx334_cur."!cursor_pos"(rx334_pos)
+    $P10 = rx334_cur."ws"()
+    unless $P10, rx334_fail
+    rx334_pos = $P10."pos"()
 .annotate 'line', 183
   # rx pass
-    rx332_cur."!cursor_pass"(rx332_pos, "statement_control:sym<for>")
-    rx332_cur."!cursor_debug"("PASS  ", "statement_control:sym<for>", " at pos=", rx332_pos)
-    .return (rx332_cur)
-  rx332_fail:
+    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:
 .annotate 'line', 4
-    (rx332_rep, rx332_pos, $I10, $P10) = rx332_cur."!mark_fail"(0)
-    lt rx332_pos, -1, rx332_done
-    eq rx332_pos, -1, rx332_fail
+    (rx334_rep, rx334_pos, $I10, $P10) = rx334_cur."!mark_fail"(0)
+    lt rx334_pos, -1, rx334_done
+    eq rx334_pos, -1, rx334_fail
     jump $I10
-  rx332_done:
-    rx332_cur."!cursor_fail"()
-    rx332_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
-    .return (rx332_cur)
+  rx334_done:
+    rx334_cur."!cursor_fail"()
+    rx334_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
+    .return (rx334_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1277356913.9538") :method
 .annotate 'line', 4
-    new $P334, "ResizablePMCArray"
-    push $P334, "for"
-    .return ($P334)
+    new $P336, "ResizablePMCArray"
+    push $P336, "for"
+    .return ($P336)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("73_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<CATCH>"  :subid("73_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx340_tgt
-    .local int rx340_pos
-    .local int rx340_off
-    .local int rx340_eos
-    .local int rx340_rep
-    .local pmc rx340_cur
-    (rx340_cur, rx340_pos, rx340_tgt) = self."!cursor_start"()
-    rx340_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
-    .lex unicode:"$\x{a2}", rx340_cur
+    .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 pmc match
     .lex "$/", match
-    length rx340_eos, rx340_tgt
-    gt rx340_pos, rx340_eos, rx340_done
-    set rx340_off, 0
-    lt rx340_pos, 2, rx340_start
-    sub rx340_off, rx340_pos, 1
-    substr rx340_tgt, rx340_tgt, rx340_off
-  rx340_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan343_done
-    goto rxscan343_scan
-  rxscan343_loop:
-    ($P10) = rx340_cur."from"()
+    ne $I10, -1, rxscan345_done
+    goto rxscan345_scan
+  rxscan345_loop:
+    ($P10) = rx342_cur."from"()
     inc $P10
-    set rx340_pos, $P10
-    ge rx340_pos, rx340_eos, rxscan343_done
-  rxscan343_scan:
-    set_addr $I10, rxscan343_loop
-    rx340_cur."!mark_push"(0, rx340_pos, $I10)
-  rxscan343_done:
+    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:
 .annotate 'line', 189
   # rx subcapture "sym"
-    set_addr $I10, rxcap_344_fail
-    rx340_cur."!mark_push"(0, rx340_pos, $I10)
+    set_addr $I10, rxcap_346_fail
+    rx342_cur."!mark_push"(0, rx342_pos, $I10)
   # rx literal  "CATCH"
-    add $I11, rx340_pos, 5
-    gt $I11, rx340_eos, rx340_fail
-    sub $I11, rx340_pos, rx340_off
-    substr $S10, rx340_tgt, $I11, 5
-    ne $S10, "CATCH", rx340_fail
-    add rx340_pos, 5
-    set_addr $I10, rxcap_344_fail
-    ($I12, $I11) = rx340_cur."!mark_peek"($I10)
-    rx340_cur."!cursor_pos"($I11)
-    ($P10) = rx340_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx340_pos, "")
-    rx340_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_344_done
-  rxcap_344_fail:
-    goto rx340_fail
-  rxcap_344_done:
+    goto rxcap_346_done
+  rxcap_346_fail:
+    goto rx342_fail
+  rxcap_346_done:
   # rx charclass s
-    ge rx340_pos, rx340_eos, rx340_fail
-    sub $I10, rx340_pos, rx340_off
-    is_cclass $I11, 32, rx340_tgt, $I10
-    unless $I11, rx340_fail
-    inc rx340_pos
-  # rx subrule "ws" subtype=method negate=
-    rx340_cur."!cursor_pos"(rx340_pos)
-    $P10 = rx340_cur."ws"()
-    unless $P10, rx340_fail
-    rx340_pos = $P10."pos"()
+    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"()
 .annotate 'line', 190
   # rx subrule "block" subtype=capture negate=
-    rx340_cur."!cursor_pos"(rx340_pos)
-    $P10 = rx340_cur."block"()
-    unless $P10, rx340_fail
-    rx340_cur."!mark_push"(0, -1, 0, $P10)
+    rx342_cur."!cursor_pos"(rx342_pos)
+    $P10 = rx342_cur."block"()
+    unless $P10, rx342_fail
+    rx342_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx340_pos = $P10."pos"()
+    rx342_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx340_cur."!cursor_pos"(rx340_pos)
-    $P10 = rx340_cur."ws"()
-    unless $P10, rx340_fail
-    rx340_pos = $P10."pos"()
+    rx342_cur."!cursor_pos"(rx342_pos)
+    $P10 = rx342_cur."ws"()
+    unless $P10, rx342_fail
+    rx342_pos = $P10."pos"()
 .annotate 'line', 188
   # rx pass
-    rx340_cur."!cursor_pass"(rx340_pos, "statement_control:sym<CATCH>")
-    rx340_cur."!cursor_debug"("PASS  ", "statement_control:sym<CATCH>", " at pos=", rx340_pos)
-    .return (rx340_cur)
-  rx340_fail:
+    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:
 .annotate 'line', 4
-    (rx340_rep, rx340_pos, $I10, $P10) = rx340_cur."!mark_fail"(0)
-    lt rx340_pos, -1, rx340_done
-    eq rx340_pos, -1, rx340_fail
+    (rx342_rep, rx342_pos, $I10, $P10) = rx342_cur."!mark_fail"(0)
+    lt rx342_pos, -1, rx342_done
+    eq rx342_pos, -1, rx342_fail
     jump $I10
-  rx340_done:
-    rx340_cur."!cursor_fail"()
-    rx340_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
-    .return (rx340_cur)
+  rx342_done:
+    rx342_cur."!cursor_fail"()
+    rx342_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
+    .return (rx342_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1277356913.9538") :method
 .annotate 'line', 4
-    new $P342, "ResizablePMCArray"
-    push $P342, "CATCH"
-    .return ($P342)
+    new $P344, "ResizablePMCArray"
+    push $P344, "CATCH"
+    .return ($P344)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("75_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_control:sym<CONTROL>"  :subid("75_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx348_tgt
-    .local int rx348_pos
-    .local int rx348_off
-    .local int rx348_eos
-    .local int rx348_rep
-    .local pmc rx348_cur
-    (rx348_cur, rx348_pos, rx348_tgt) = self."!cursor_start"()
-    rx348_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
-    .lex unicode:"$\x{a2}", rx348_cur
+    .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 pmc match
     .lex "$/", match
-    length rx348_eos, rx348_tgt
-    gt rx348_pos, rx348_eos, rx348_done
-    set rx348_off, 0
-    lt rx348_pos, 2, rx348_start
-    sub rx348_off, rx348_pos, 1
-    substr rx348_tgt, rx348_tgt, rx348_off
-  rx348_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan351_done
-    goto rxscan351_scan
-  rxscan351_loop:
-    ($P10) = rx348_cur."from"()
+    ne $I10, -1, rxscan353_done
+    goto rxscan353_scan
+  rxscan353_loop:
+    ($P10) = rx350_cur."from"()
     inc $P10
-    set rx348_pos, $P10
-    ge rx348_pos, rx348_eos, rxscan351_done
-  rxscan351_scan:
-    set_addr $I10, rxscan351_loop
-    rx348_cur."!mark_push"(0, rx348_pos, $I10)
-  rxscan351_done:
+    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:
 .annotate 'line', 194
   # rx subcapture "sym"
-    set_addr $I10, rxcap_352_fail
-    rx348_cur."!mark_push"(0, rx348_pos, $I10)
+    set_addr $I10, rxcap_354_fail
+    rx350_cur."!mark_push"(0, rx350_pos, $I10)
   # rx literal  "CONTROL"
-    add $I11, rx348_pos, 7
-    gt $I11, rx348_eos, rx348_fail
-    sub $I11, rx348_pos, rx348_off
-    substr $S10, rx348_tgt, $I11, 7
-    ne $S10, "CONTROL", rx348_fail
-    add rx348_pos, 7
-    set_addr $I10, rxcap_352_fail
-    ($I12, $I11) = rx348_cur."!mark_peek"($I10)
-    rx348_cur."!cursor_pos"($I11)
-    ($P10) = rx348_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx348_pos, "")
-    rx348_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_352_done
-  rxcap_352_fail:
-    goto rx348_fail
-  rxcap_352_done:
+    goto rxcap_354_done
+  rxcap_354_fail:
+    goto rx350_fail
+  rxcap_354_done:
   # rx charclass s
-    ge rx348_pos, rx348_eos, rx348_fail
-    sub $I10, rx348_pos, rx348_off
-    is_cclass $I11, 32, rx348_tgt, $I10
-    unless $I11, rx348_fail
-    inc rx348_pos
-  # rx subrule "ws" subtype=method negate=
-    rx348_cur."!cursor_pos"(rx348_pos)
-    $P10 = rx348_cur."ws"()
-    unless $P10, rx348_fail
-    rx348_pos = $P10."pos"()
+    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"()
 .annotate 'line', 195
   # rx subrule "block" subtype=capture negate=
-    rx348_cur."!cursor_pos"(rx348_pos)
-    $P10 = rx348_cur."block"()
-    unless $P10, rx348_fail
-    rx348_cur."!mark_push"(0, -1, 0, $P10)
+    rx350_cur."!cursor_pos"(rx350_pos)
+    $P10 = rx350_cur."block"()
+    unless $P10, rx350_fail
+    rx350_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx348_pos = $P10."pos"()
+    rx350_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx348_cur."!cursor_pos"(rx348_pos)
-    $P10 = rx348_cur."ws"()
-    unless $P10, rx348_fail
-    rx348_pos = $P10."pos"()
+    rx350_cur."!cursor_pos"(rx350_pos)
+    $P10 = rx350_cur."ws"()
+    unless $P10, rx350_fail
+    rx350_pos = $P10."pos"()
 .annotate 'line', 193
   # rx pass
-    rx348_cur."!cursor_pass"(rx348_pos, "statement_control:sym<CONTROL>")
-    rx348_cur."!cursor_debug"("PASS  ", "statement_control:sym<CONTROL>", " at pos=", rx348_pos)
-    .return (rx348_cur)
-  rx348_fail:
+    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:
 .annotate 'line', 4
-    (rx348_rep, rx348_pos, $I10, $P10) = rx348_cur."!mark_fail"(0)
-    lt rx348_pos, -1, rx348_done
-    eq rx348_pos, -1, rx348_fail
+    (rx350_rep, rx350_pos, $I10, $P10) = rx350_cur."!mark_fail"(0)
+    lt rx350_pos, -1, rx350_done
+    eq rx350_pos, -1, rx350_fail
     jump $I10
-  rx348_done:
-    rx348_cur."!cursor_fail"()
-    rx348_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
-    .return (rx348_cur)
+  rx350_done:
+    rx350_cur."!cursor_fail"()
+    rx350_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
+    .return (rx350_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1275811487.95429") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1277356913.9538") :method
 .annotate 'line', 4
-    new $P350, "ResizablePMCArray"
-    push $P350, "CONTROL"
-    .return ($P350)
+    new $P352, "ResizablePMCArray"
+    push $P352, "CONTROL"
+    .return ($P352)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("77_1275811487.95429") :method
+.sub "statement_prefix"  :subid("77_1277356913.9538") :method
 .annotate 'line', 198
-    $P356 = self."!protoregex"("statement_prefix")
-    .return ($P356)
+    $P358 = self."!protoregex"("statement_prefix")
+    .return ($P358)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("78_1275811487.95429") :method
+.sub "!PREFIX__statement_prefix"  :subid("78_1277356913.9538") :method
 .annotate 'line', 198
-    $P358 = self."!PREFIX__!protoregex"("statement_prefix")
-    .return ($P358)
+    $P360 = self."!PREFIX__!protoregex"("statement_prefix")
+    .return ($P360)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("79_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_prefix:sym<INIT>"  :subid("79_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx360_tgt
-    .local int rx360_pos
-    .local int rx360_off
-    .local int rx360_eos
-    .local int rx360_rep
-    .local pmc rx360_cur
-    (rx360_cur, rx360_pos, rx360_tgt) = self."!cursor_start"()
-    rx360_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
-    .lex unicode:"$\x{a2}", rx360_cur
-    .local pmc match
-    .lex "$/", match
-    length rx360_eos, rx360_tgt
-    gt rx360_pos, rx360_eos, rx360_done
-    set rx360_off, 0
-    lt rx360_pos, 2, rx360_start
-    sub rx360_off, rx360_pos, 1
-    substr rx360_tgt, rx360_tgt, rx360_off
-  rx360_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan364_done
-    goto rxscan364_scan
-  rxscan364_loop:
-    ($P10) = rx360_cur."from"()
-    inc $P10
-    set rx360_pos, $P10
-    ge rx360_pos, rx360_eos, rxscan364_done
-  rxscan364_scan:
-    set_addr $I10, rxscan364_loop
-    rx360_cur."!mark_push"(0, rx360_pos, $I10)
-  rxscan364_done:
+    .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:
 .annotate 'line', 199
   # rx subcapture "sym"
-    set_addr $I10, rxcap_365_fail
-    rx360_cur."!mark_push"(0, rx360_pos, $I10)
+    set_addr $I10, rxcap_367_fail
+    rx362_cur."!mark_push"(0, rx362_pos, $I10)
   # rx literal  "INIT"
-    add $I11, rx360_pos, 4
-    gt $I11, rx360_eos, rx360_fail
-    sub $I11, rx360_pos, rx360_off
-    substr $S10, rx360_tgt, $I11, 4
-    ne $S10, "INIT", rx360_fail
-    add rx360_pos, 4
-    set_addr $I10, rxcap_365_fail
-    ($I12, $I11) = rx360_cur."!mark_peek"($I10)
-    rx360_cur."!cursor_pos"($I11)
-    ($P10) = rx360_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx360_pos, "")
-    rx360_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_365_done
-  rxcap_365_fail:
-    goto rx360_fail
-  rxcap_365_done:
+    goto rxcap_367_done
+  rxcap_367_fail:
+    goto rx362_fail
+  rxcap_367_done:
   # rx subrule "blorst" subtype=capture negate=
-    rx360_cur."!cursor_pos"(rx360_pos)
-    $P10 = rx360_cur."blorst"()
-    unless $P10, rx360_fail
-    rx360_cur."!mark_push"(0, -1, 0, $P10)
+    rx362_cur."!cursor_pos"(rx362_pos)
+    $P10 = rx362_cur."blorst"()
+    unless $P10, rx362_fail
+    rx362_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blorst")
-    rx360_pos = $P10."pos"()
+    rx362_pos = $P10."pos"()
   # rx pass
-    rx360_cur."!cursor_pass"(rx360_pos, "statement_prefix:sym<INIT>")
-    rx360_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<INIT>", " at pos=", rx360_pos)
-    .return (rx360_cur)
-  rx360_fail:
+    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:
 .annotate 'line', 4
-    (rx360_rep, rx360_pos, $I10, $P10) = rx360_cur."!mark_fail"(0)
-    lt rx360_pos, -1, rx360_done
-    eq rx360_pos, -1, rx360_fail
+    (rx362_rep, rx362_pos, $I10, $P10) = rx362_cur."!mark_fail"(0)
+    lt rx362_pos, -1, rx362_done
+    eq rx362_pos, -1, rx362_fail
     jump $I10
-  rx360_done:
-    rx360_cur."!cursor_fail"()
-    rx360_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
-    .return (rx360_cur)
+  rx362_done:
+    rx362_cur."!cursor_fail"()
+    rx362_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
+    .return (rx362_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1275811487.95429") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1277356913.9538") :method
 .annotate 'line', 4
-    $P362 = self."!PREFIX__!subrule"("blorst", "INIT")
-    new $P363, "ResizablePMCArray"
-    push $P363, $P362
-    .return ($P363)
+    $P364 = self."!PREFIX__!subrule"("blorst", "INIT")
+    new $P365, "ResizablePMCArray"
+    push $P365, $P364
+    .return ($P365)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("81_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_prefix:sym<try>"  :subid("81_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx367_tgt
-    .local int rx367_pos
-    .local int rx367_off
-    .local int rx367_eos
-    .local int rx367_rep
-    .local pmc rx367_cur
-    (rx367_cur, rx367_pos, rx367_tgt) = self."!cursor_start"()
-    rx367_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
-    .lex unicode:"$\x{a2}", rx367_cur
-    .local pmc match
-    .lex "$/", match
-    length rx367_eos, rx367_tgt
-    gt rx367_pos, rx367_eos, rx367_done
-    set rx367_off, 0
-    lt rx367_pos, 2, rx367_start
-    sub rx367_off, rx367_pos, 1
-    substr rx367_tgt, rx367_tgt, rx367_off
-  rx367_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan371_done
-    goto rxscan371_scan
-  rxscan371_loop:
-    ($P10) = rx367_cur."from"()
-    inc $P10
-    set rx367_pos, $P10
-    ge rx367_pos, rx367_eos, rxscan371_done
-  rxscan371_scan:
-    set_addr $I10, rxscan371_loop
-    rx367_cur."!mark_push"(0, rx367_pos, $I10)
-  rxscan371_done:
+    .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 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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan373_done
+    goto rxscan373_scan
+  rxscan373_loop:
+    ($P10) = rx369_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:
 .annotate 'line', 202
   # rx subcapture "sym"
-    set_addr $I10, rxcap_372_fail
-    rx367_cur."!mark_push"(0, rx367_pos, $I10)
+    set_addr $I10, rxcap_374_fail
+    rx369_cur."!mark_push"(0, rx369_pos, $I10)
   # rx literal  "try"
-    add $I11, rx367_pos, 3
-    gt $I11, rx367_eos, rx367_fail
-    sub $I11, rx367_pos, rx367_off
-    substr $S10, rx367_tgt, $I11, 3
-    ne $S10, "try", rx367_fail
-    add rx367_pos, 3
-    set_addr $I10, rxcap_372_fail
-    ($I12, $I11) = rx367_cur."!mark_peek"($I10)
-    rx367_cur."!cursor_pos"($I11)
-    ($P10) = rx367_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx367_pos, "")
-    rx367_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_372_done
-  rxcap_372_fail:
-    goto rx367_fail
-  rxcap_372_done:
+    goto rxcap_374_done
+  rxcap_374_fail:
+    goto rx369_fail
+  rxcap_374_done:
 .annotate 'line', 203
   # rx subrule "blorst" subtype=capture negate=
-    rx367_cur."!cursor_pos"(rx367_pos)
-    $P10 = rx367_cur."blorst"()
-    unless $P10, rx367_fail
-    rx367_cur."!mark_push"(0, -1, 0, $P10)
+    rx369_cur."!cursor_pos"(rx369_pos)
+    $P10 = rx369_cur."blorst"()
+    unless $P10, rx369_fail
+    rx369_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blorst")
-    rx367_pos = $P10."pos"()
+    rx369_pos = $P10."pos"()
 .annotate 'line', 201
   # rx pass
-    rx367_cur."!cursor_pass"(rx367_pos, "statement_prefix:sym<try>")
-    rx367_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<try>", " at pos=", rx367_pos)
-    .return (rx367_cur)
-  rx367_fail:
+    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:
 .annotate 'line', 4
-    (rx367_rep, rx367_pos, $I10, $P10) = rx367_cur."!mark_fail"(0)
-    lt rx367_pos, -1, rx367_done
-    eq rx367_pos, -1, rx367_fail
+    (rx369_rep, rx369_pos, $I10, $P10) = rx369_cur."!mark_fail"(0)
+    lt rx369_pos, -1, rx369_done
+    eq rx369_pos, -1, rx369_fail
     jump $I10
-  rx367_done:
-    rx367_cur."!cursor_fail"()
-    rx367_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
-    .return (rx367_cur)
+  rx369_done:
+    rx369_cur."!cursor_fail"()
+    rx369_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
+    .return (rx369_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1275811487.95429") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1277356913.9538") :method
 .annotate 'line', 4
-    $P369 = self."!PREFIX__!subrule"("blorst", "try")
-    new $P370, "ResizablePMCArray"
-    push $P370, $P369
-    .return ($P370)
+    $P371 = self."!PREFIX__!subrule"("blorst", "try")
+    new $P372, "ResizablePMCArray"
+    push $P372, $P371
+    .return ($P372)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("83_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "blorst"  :subid("83_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx374_tgt
-    .local int rx374_pos
-    .local int rx374_off
-    .local int rx374_eos
-    .local int rx374_rep
-    .local pmc rx374_cur
-    (rx374_cur, rx374_pos, rx374_tgt) = self."!cursor_start"()
-    rx374_cur."!cursor_debug"("START ", "blorst")
-    .lex unicode:"$\x{a2}", rx374_cur
-    .local pmc match
-    .lex "$/", match
-    length rx374_eos, rx374_tgt
-    gt rx374_pos, rx374_eos, rx374_done
-    set rx374_off, 0
-    lt rx374_pos, 2, rx374_start
-    sub rx374_off, rx374_pos, 1
-    substr rx374_tgt, rx374_tgt, rx374_off
-  rx374_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan377_done
-    goto rxscan377_scan
-  rxscan377_loop:
-    ($P10) = rx374_cur."from"()
-    inc $P10
-    set rx374_pos, $P10
-    ge rx374_pos, rx374_eos, rxscan377_done
-  rxscan377_scan:
-    set_addr $I10, rxscan377_loop
-    rx374_cur."!mark_push"(0, rx374_pos, $I10)
-  rxscan377_done:
+    .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 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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan379_done
+    goto rxscan379_scan
+  rxscan379_loop:
+    ($P10) = rx376_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:
 .annotate 'line', 207
   # rx charclass s
-    ge rx374_pos, rx374_eos, rx374_fail
-    sub $I10, rx374_pos, rx374_off
-    is_cclass $I11, 32, rx374_tgt, $I10
-    unless $I11, rx374_fail
-    inc rx374_pos
-  # rx subrule "ws" subtype=method negate=
-    rx374_cur."!cursor_pos"(rx374_pos)
-    $P10 = rx374_cur."ws"()
-    unless $P10, rx374_fail
-    rx374_pos = $P10."pos"()
-  alt378_0:
-    set_addr $I10, alt378_1
-    rx374_cur."!mark_push"(0, rx374_pos, $I10)
+    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)
   # rx enumcharlist negate=0 zerowidth
-    ge rx374_pos, rx374_eos, rx374_fail
-    sub $I10, rx374_pos, rx374_off
-    substr $S10, rx374_tgt, $I10, 1
+    ge rx376_pos, rx376_eos, rx376_fail
+    sub $I10, rx376_pos, rx376_off
+    substr $S10, rx376_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx374_fail
+    lt $I11, 0, rx376_fail
   # rx subrule "block" subtype=capture negate=
-    rx374_cur."!cursor_pos"(rx374_pos)
-    $P10 = rx374_cur."block"()
-    unless $P10, rx374_fail
-    rx374_cur."!mark_push"(0, -1, 0, $P10)
+    rx376_cur."!cursor_pos"(rx376_pos)
+    $P10 = rx376_cur."block"()
+    unless $P10, rx376_fail
+    rx376_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx374_pos = $P10."pos"()
-    goto alt378_end
-  alt378_1:
+    rx376_pos = $P10."pos"()
+    goto alt380_end
+  alt380_1:
   # rx subrule "statement" subtype=capture negate=
-    rx374_cur."!cursor_pos"(rx374_pos)
-    $P10 = rx374_cur."statement"()
-    unless $P10, rx374_fail
-    rx374_cur."!mark_push"(0, -1, 0, $P10)
+    rx376_cur."!cursor_pos"(rx376_pos)
+    $P10 = rx376_cur."statement"()
+    unless $P10, rx376_fail
+    rx376_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx374_pos = $P10."pos"()
-  alt378_end:
+    rx376_pos = $P10."pos"()
+  alt380_end:
 .annotate 'line', 206
   # rx pass
-    rx374_cur."!cursor_pass"(rx374_pos, "blorst")
-    rx374_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx374_pos)
-    .return (rx374_cur)
-  rx374_fail:
+    rx376_cur."!cursor_pass"(rx376_pos, "blorst")
+    rx376_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx376_pos)
+    .return (rx376_cur)
+  rx376_fail:
 .annotate 'line', 4
-    (rx374_rep, rx374_pos, $I10, $P10) = rx374_cur."!mark_fail"(0)
-    lt rx374_pos, -1, rx374_done
-    eq rx374_pos, -1, rx374_fail
+    (rx376_rep, rx376_pos, $I10, $P10) = rx376_cur."!mark_fail"(0)
+    lt rx376_pos, -1, rx376_done
+    eq rx376_pos, -1, rx376_fail
     jump $I10
-  rx374_done:
-    rx374_cur."!cursor_fail"()
-    rx374_cur."!cursor_debug"("FAIL  ", "blorst")
-    .return (rx374_cur)
+  rx376_done:
+    rx376_cur."!cursor_fail"()
+    rx376_cur."!cursor_debug"("FAIL  ", "blorst")
+    .return (rx376_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("84_1275811487.95429") :method
+.sub "!PREFIX__blorst"  :subid("84_1277356913.9538") :method
 .annotate 'line', 4
-    new $P376, "ResizablePMCArray"
-    push $P376, ""
-    .return ($P376)
+    new $P378, "ResizablePMCArray"
+    push $P378, ""
+    .return ($P378)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("85_1275811487.95429") :method
+.sub "statement_mod_cond"  :subid("85_1277356913.9538") :method
 .annotate 'line', 212
-    $P380 = self."!protoregex"("statement_mod_cond")
-    .return ($P380)
+    $P382 = self."!protoregex"("statement_mod_cond")
+    .return ($P382)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("86_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_cond"  :subid("86_1277356913.9538") :method
 .annotate 'line', 212
-    $P382 = self."!PREFIX__!protoregex"("statement_mod_cond")
-    .return ($P382)
+    $P384 = self."!PREFIX__!protoregex"("statement_mod_cond")
+    .return ($P384)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("87_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_mod_cond:sym<if>"  :subid("87_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx384_tgt
-    .local int rx384_pos
-    .local int rx384_off
-    .local int rx384_eos
-    .local int rx384_rep
-    .local pmc rx384_cur
-    (rx384_cur, rx384_pos, rx384_tgt) = self."!cursor_start"()
-    rx384_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
-    .lex unicode:"$\x{a2}", rx384_cur
-    .local pmc match
-    .lex "$/", match
-    length rx384_eos, rx384_tgt
-    gt rx384_pos, rx384_eos, rx384_done
-    set rx384_off, 0
-    lt rx384_pos, 2, rx384_start
-    sub rx384_off, rx384_pos, 1
-    substr rx384_tgt, rx384_tgt, rx384_off
-  rx384_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan388_done
-    goto rxscan388_scan
-  rxscan388_loop:
-    ($P10) = rx384_cur."from"()
-    inc $P10
-    set rx384_pos, $P10
-    ge rx384_pos, rx384_eos, rxscan388_done
-  rxscan388_scan:
-    set_addr $I10, rxscan388_loop
-    rx384_cur."!mark_push"(0, rx384_pos, $I10)
-  rxscan388_done:
+    .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:
 .annotate 'line', 214
   # rx subcapture "sym"
-    set_addr $I10, rxcap_389_fail
-    rx384_cur."!mark_push"(0, rx384_pos, $I10)
+    set_addr $I10, rxcap_391_fail
+    rx386_cur."!mark_push"(0, rx386_pos, $I10)
   # rx literal  "if"
-    add $I11, rx384_pos, 2
-    gt $I11, rx384_eos, rx384_fail
-    sub $I11, rx384_pos, rx384_off
-    substr $S10, rx384_tgt, $I11, 2
-    ne $S10, "if", rx384_fail
-    add rx384_pos, 2
-    set_addr $I10, rxcap_389_fail
-    ($I12, $I11) = rx384_cur."!mark_peek"($I10)
-    rx384_cur."!cursor_pos"($I11)
-    ($P10) = rx384_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx384_pos, "")
-    rx384_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_389_done
-  rxcap_389_fail:
-    goto rx384_fail
-  rxcap_389_done:
-  # rx subrule "ws" subtype=method negate=
-    rx384_cur."!cursor_pos"(rx384_pos)
-    $P10 = rx384_cur."ws"()
-    unless $P10, rx384_fail
-    rx384_pos = $P10."pos"()
+    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"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx384_cur."!cursor_pos"(rx384_pos)
-    $P10 = rx384_cur."EXPR"()
-    unless $P10, rx384_fail
-    rx384_cur."!mark_push"(0, -1, 0, $P10)
+    rx386_cur."!cursor_pos"(rx386_pos)
+    $P10 = rx386_cur."EXPR"()
+    unless $P10, rx386_fail
+    rx386_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx384_pos = $P10."pos"()
+    rx386_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx384_cur."!cursor_pos"(rx384_pos)
-    $P10 = rx384_cur."ws"()
-    unless $P10, rx384_fail
-    rx384_pos = $P10."pos"()
+    rx386_cur."!cursor_pos"(rx386_pos)
+    $P10 = rx386_cur."ws"()
+    unless $P10, rx386_fail
+    rx386_pos = $P10."pos"()
   # rx pass
-    rx384_cur."!cursor_pass"(rx384_pos, "statement_mod_cond:sym<if>")
-    rx384_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<if>", " at pos=", rx384_pos)
-    .return (rx384_cur)
-  rx384_fail:
+    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:
 .annotate 'line', 4
-    (rx384_rep, rx384_pos, $I10, $P10) = rx384_cur."!mark_fail"(0)
-    lt rx384_pos, -1, rx384_done
-    eq rx384_pos, -1, rx384_fail
+    (rx386_rep, rx386_pos, $I10, $P10) = rx386_cur."!mark_fail"(0)
+    lt rx386_pos, -1, rx386_done
+    eq rx386_pos, -1, rx386_fail
     jump $I10
-  rx384_done:
-    rx384_cur."!cursor_fail"()
-    rx384_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
-    .return (rx384_cur)
+  rx386_done:
+    rx386_cur."!cursor_fail"()
+    rx386_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
+    .return (rx386_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1277356913.9538") :method
 .annotate 'line', 4
-    $P386 = self."!PREFIX__!subrule"("ws", "if")
-    new $P387, "ResizablePMCArray"
-    push $P387, $P386
-    .return ($P387)
+    $P388 = self."!PREFIX__!subrule"("ws", "if")
+    new $P389, "ResizablePMCArray"
+    push $P389, $P388
+    .return ($P389)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("89_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_mod_cond:sym<unless>"  :subid("89_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx393_tgt
-    .local int rx393_pos
-    .local int rx393_off
-    .local int rx393_eos
-    .local int rx393_rep
-    .local pmc rx393_cur
-    (rx393_cur, rx393_pos, rx393_tgt) = self."!cursor_start"()
-    rx393_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
-    .lex unicode:"$\x{a2}", rx393_cur
+    .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 pmc match
     .lex "$/", match
-    length rx393_eos, rx393_tgt
-    gt rx393_pos, rx393_eos, rx393_done
-    set rx393_off, 0
-    lt rx393_pos, 2, rx393_start
-    sub rx393_off, rx393_pos, 1
-    substr rx393_tgt, rx393_tgt, rx393_off
-  rx393_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan397_done
-    goto rxscan397_scan
-  rxscan397_loop:
-    ($P10) = rx393_cur."from"()
+    ne $I10, -1, rxscan399_done
+    goto rxscan399_scan
+  rxscan399_loop:
+    ($P10) = rx395_cur."from"()
     inc $P10
-    set rx393_pos, $P10
-    ge rx393_pos, rx393_eos, rxscan397_done
-  rxscan397_scan:
-    set_addr $I10, rxscan397_loop
-    rx393_cur."!mark_push"(0, rx393_pos, $I10)
-  rxscan397_done:
+    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:
 .annotate 'line', 215
   # rx subcapture "sym"
-    set_addr $I10, rxcap_398_fail
-    rx393_cur."!mark_push"(0, rx393_pos, $I10)
+    set_addr $I10, rxcap_400_fail
+    rx395_cur."!mark_push"(0, rx395_pos, $I10)
   # rx literal  "unless"
-    add $I11, rx393_pos, 6
-    gt $I11, rx393_eos, rx393_fail
-    sub $I11, rx393_pos, rx393_off
-    substr $S10, rx393_tgt, $I11, 6
-    ne $S10, "unless", rx393_fail
-    add rx393_pos, 6
-    set_addr $I10, rxcap_398_fail
-    ($I12, $I11) = rx393_cur."!mark_peek"($I10)
-    rx393_cur."!cursor_pos"($I11)
-    ($P10) = rx393_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx393_pos, "")
-    rx393_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_398_done
-  rxcap_398_fail:
-    goto rx393_fail
-  rxcap_398_done:
-  # rx subrule "ws" subtype=method negate=
-    rx393_cur."!cursor_pos"(rx393_pos)
-    $P10 = rx393_cur."ws"()
-    unless $P10, rx393_fail
-    rx393_pos = $P10."pos"()
+    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"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx393_cur."!cursor_pos"(rx393_pos)
-    $P10 = rx393_cur."EXPR"()
-    unless $P10, rx393_fail
-    rx393_cur."!mark_push"(0, -1, 0, $P10)
+    rx395_cur."!cursor_pos"(rx395_pos)
+    $P10 = rx395_cur."EXPR"()
+    unless $P10, rx395_fail
+    rx395_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx393_pos = $P10."pos"()
+    rx395_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx393_cur."!cursor_pos"(rx393_pos)
-    $P10 = rx393_cur."ws"()
-    unless $P10, rx393_fail
-    rx393_pos = $P10."pos"()
+    rx395_cur."!cursor_pos"(rx395_pos)
+    $P10 = rx395_cur."ws"()
+    unless $P10, rx395_fail
+    rx395_pos = $P10."pos"()
   # rx pass
-    rx393_cur."!cursor_pass"(rx393_pos, "statement_mod_cond:sym<unless>")
-    rx393_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<unless>", " at pos=", rx393_pos)
-    .return (rx393_cur)
-  rx393_fail:
+    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:
 .annotate 'line', 4
-    (rx393_rep, rx393_pos, $I10, $P10) = rx393_cur."!mark_fail"(0)
-    lt rx393_pos, -1, rx393_done
-    eq rx393_pos, -1, rx393_fail
+    (rx395_rep, rx395_pos, $I10, $P10) = rx395_cur."!mark_fail"(0)
+    lt rx395_pos, -1, rx395_done
+    eq rx395_pos, -1, rx395_fail
     jump $I10
-  rx393_done:
-    rx393_cur."!cursor_fail"()
-    rx393_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
-    .return (rx393_cur)
+  rx395_done:
+    rx395_cur."!cursor_fail"()
+    rx395_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
+    .return (rx395_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1277356913.9538") :method
 .annotate 'line', 4
-    $P395 = self."!PREFIX__!subrule"("ws", "unless")
-    new $P396, "ResizablePMCArray"
-    push $P396, $P395
-    .return ($P396)
+    $P397 = self."!PREFIX__!subrule"("ws", "unless")
+    new $P398, "ResizablePMCArray"
+    push $P398, $P397
+    .return ($P398)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("91_1275811487.95429") :method
+.sub "statement_mod_loop"  :subid("91_1277356913.9538") :method
 .annotate 'line', 217
-    $P402 = self."!protoregex"("statement_mod_loop")
-    .return ($P402)
+    $P404 = self."!protoregex"("statement_mod_loop")
+    .return ($P404)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("92_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_loop"  :subid("92_1277356913.9538") :method
 .annotate 'line', 217
-    $P404 = self."!PREFIX__!protoregex"("statement_mod_loop")
-    .return ($P404)
+    $P406 = self."!PREFIX__!protoregex"("statement_mod_loop")
+    .return ($P406)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("93_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_mod_loop:sym<while>"  :subid("93_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx406_tgt
-    .local int rx406_pos
-    .local int rx406_off
-    .local int rx406_eos
-    .local int rx406_rep
-    .local pmc rx406_cur
-    (rx406_cur, rx406_pos, rx406_tgt) = self."!cursor_start"()
-    rx406_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
-    .lex unicode:"$\x{a2}", rx406_cur
-    .local pmc match
-    .lex "$/", match
-    length rx406_eos, rx406_tgt
-    gt rx406_pos, rx406_eos, rx406_done
-    set rx406_off, 0
-    lt rx406_pos, 2, rx406_start
-    sub rx406_off, rx406_pos, 1
-    substr rx406_tgt, rx406_tgt, rx406_off
-  rx406_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan410_done
-    goto rxscan410_scan
-  rxscan410_loop:
-    ($P10) = rx406_cur."from"()
-    inc $P10
-    set rx406_pos, $P10
-    ge rx406_pos, rx406_eos, rxscan410_done
-  rxscan410_scan:
-    set_addr $I10, rxscan410_loop
-    rx406_cur."!mark_push"(0, rx406_pos, $I10)
-  rxscan410_done:
+    .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:
 .annotate 'line', 219
   # rx subcapture "sym"
-    set_addr $I10, rxcap_411_fail
-    rx406_cur."!mark_push"(0, rx406_pos, $I10)
+    set_addr $I10, rxcap_413_fail
+    rx408_cur."!mark_push"(0, rx408_pos, $I10)
   # rx literal  "while"
-    add $I11, rx406_pos, 5
-    gt $I11, rx406_eos, rx406_fail
-    sub $I11, rx406_pos, rx406_off
-    substr $S10, rx406_tgt, $I11, 5
-    ne $S10, "while", rx406_fail
-    add rx406_pos, 5
-    set_addr $I10, rxcap_411_fail
-    ($I12, $I11) = rx406_cur."!mark_peek"($I10)
-    rx406_cur."!cursor_pos"($I11)
-    ($P10) = rx406_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx406_pos, "")
-    rx406_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_411_done
-  rxcap_411_fail:
-    goto rx406_fail
-  rxcap_411_done:
-  # rx subrule "ws" subtype=method negate=
-    rx406_cur."!cursor_pos"(rx406_pos)
-    $P10 = rx406_cur."ws"()
-    unless $P10, rx406_fail
-    rx406_pos = $P10."pos"()
+    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"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx406_cur."!cursor_pos"(rx406_pos)
-    $P10 = rx406_cur."EXPR"()
-    unless $P10, rx406_fail
-    rx406_cur."!mark_push"(0, -1, 0, $P10)
+    rx408_cur."!cursor_pos"(rx408_pos)
+    $P10 = rx408_cur."EXPR"()
+    unless $P10, rx408_fail
+    rx408_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx406_pos = $P10."pos"()
+    rx408_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx406_cur."!cursor_pos"(rx406_pos)
-    $P10 = rx406_cur."ws"()
-    unless $P10, rx406_fail
-    rx406_pos = $P10."pos"()
+    rx408_cur."!cursor_pos"(rx408_pos)
+    $P10 = rx408_cur."ws"()
+    unless $P10, rx408_fail
+    rx408_pos = $P10."pos"()
   # rx pass
-    rx406_cur."!cursor_pass"(rx406_pos, "statement_mod_loop:sym<while>")
-    rx406_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<while>", " at pos=", rx406_pos)
-    .return (rx406_cur)
-  rx406_fail:
+    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:
 .annotate 'line', 4
-    (rx406_rep, rx406_pos, $I10, $P10) = rx406_cur."!mark_fail"(0)
-    lt rx406_pos, -1, rx406_done
-    eq rx406_pos, -1, rx406_fail
+    (rx408_rep, rx408_pos, $I10, $P10) = rx408_cur."!mark_fail"(0)
+    lt rx408_pos, -1, rx408_done
+    eq rx408_pos, -1, rx408_fail
     jump $I10
-  rx406_done:
-    rx406_cur."!cursor_fail"()
-    rx406_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
-    .return (rx406_cur)
+  rx408_done:
+    rx408_cur."!cursor_fail"()
+    rx408_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
+    .return (rx408_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1277356913.9538") :method
 .annotate 'line', 4
-    $P408 = self."!PREFIX__!subrule"("ws", "while")
-    new $P409, "ResizablePMCArray"
-    push $P409, $P408
-    .return ($P409)
+    $P410 = self."!PREFIX__!subrule"("ws", "while")
+    new $P411, "ResizablePMCArray"
+    push $P411, $P410
+    .return ($P411)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("95_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "statement_mod_loop:sym<until>"  :subid("95_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx415_tgt
-    .local int rx415_pos
-    .local int rx415_off
-    .local int rx415_eos
-    .local int rx415_rep
-    .local pmc rx415_cur
-    (rx415_cur, rx415_pos, rx415_tgt) = self."!cursor_start"()
-    rx415_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
-    .lex unicode:"$\x{a2}", rx415_cur
+    .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 pmc match
     .lex "$/", match
-    length rx415_eos, rx415_tgt
-    gt rx415_pos, rx415_eos, rx415_done
-    set rx415_off, 0
-    lt rx415_pos, 2, rx415_start
-    sub rx415_off, rx415_pos, 1
-    substr rx415_tgt, rx415_tgt, rx415_off
-  rx415_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan419_done
-    goto rxscan419_scan
-  rxscan419_loop:
-    ($P10) = rx415_cur."from"()
+    ne $I10, -1, rxscan421_done
+    goto rxscan421_scan
+  rxscan421_loop:
+    ($P10) = rx417_cur."from"()
     inc $P10
-    set rx415_pos, $P10
-    ge rx415_pos, rx415_eos, rxscan419_done
-  rxscan419_scan:
-    set_addr $I10, rxscan419_loop
-    rx415_cur."!mark_push"(0, rx415_pos, $I10)
-  rxscan419_done:
+    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:
 .annotate 'line', 220
   # rx subcapture "sym"
-    set_addr $I10, rxcap_420_fail
-    rx415_cur."!mark_push"(0, rx415_pos, $I10)
+    set_addr $I10, rxcap_422_fail
+    rx417_cur."!mark_push"(0, rx417_pos, $I10)
   # rx literal  "until"
-    add $I11, rx415_pos, 5
-    gt $I11, rx415_eos, rx415_fail
-    sub $I11, rx415_pos, rx415_off
-    substr $S10, rx415_tgt, $I11, 5
-    ne $S10, "until", rx415_fail
-    add rx415_pos, 5
-    set_addr $I10, rxcap_420_fail
-    ($I12, $I11) = rx415_cur."!mark_peek"($I10)
-    rx415_cur."!cursor_pos"($I11)
-    ($P10) = rx415_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx415_pos, "")
-    rx415_cur."!mark_push"(0, -1, 0, $P10)
+    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)
     $P10."!cursor_names"("sym")
-    goto rxcap_420_done
-  rxcap_420_fail:
-    goto rx415_fail
-  rxcap_420_done:
-  # rx subrule "ws" subtype=method negate=
-    rx415_cur."!cursor_pos"(rx415_pos)
-    $P10 = rx415_cur."ws"()
-    unless $P10, rx415_fail
-    rx415_pos = $P10."pos"()
+    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"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx415_cur."!cursor_pos"(rx415_pos)
-    $P10 = rx415_cur."EXPR"()
-    unless $P10, rx415_fail
-    rx415_cur."!mark_push"(0, -1, 0, $P10)
+    rx417_cur."!cursor_pos"(rx417_pos)
+    $P10 = rx417_cur."EXPR"()
+    unless $P10, rx417_fail
+    rx417_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cond")
-    rx415_pos = $P10."pos"()
+    rx417_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx415_cur."!cursor_pos"(rx415_pos)
-    $P10 = rx415_cur."ws"()
-    unless $P10, rx415_fail
-    rx415_pos = $P10."pos"()
+    rx417_cur."!cursor_pos"(rx417_pos)
+    $P10 = rx417_cur."ws"()
+    unless $P10, rx417_fail
+    rx417_pos = $P10."pos"()
   # rx pass
-    rx415_cur."!cursor_pass"(rx415_pos, "statement_mod_loop:sym<until>")
-    rx415_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<until>", " at pos=", rx415_pos)
-    .return (rx415_cur)
-  rx415_fail:
+    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:
 .annotate 'line', 4
-    (rx415_rep, rx415_pos, $I10, $P10) = rx415_cur."!mark_fail"(0)
-    lt rx415_pos, -1, rx415_done
-    eq rx415_pos, -1, rx415_fail
+    (rx417_rep, rx417_pos, $I10, $P10) = rx417_cur."!mark_fail"(0)
+    lt rx417_pos, -1, rx417_done
+    eq rx417_pos, -1, rx417_fail
     jump $I10
-  rx415_done:
-    rx415_cur."!cursor_fail"()
-    rx415_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
-    .return (rx415_cur)
+  rx417_done:
+    rx417_cur."!cursor_fail"()
+    rx417_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
+    .return (rx417_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1275811487.95429") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1277356913.9538") :method
 .annotate 'line', 4
-    $P417 = self."!PREFIX__!subrule"("ws", "until")
-    new $P418, "ResizablePMCArray"
-    push $P418, $P417
-    .return ($P418)
+    $P419 = self."!PREFIX__!subrule"("ws", "until")
+    new $P420, "ResizablePMCArray"
+    push $P420, $P419
+    .return ($P420)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("97_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<fatarrow>"  :subid("97_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx424_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
-    .lex unicode:"$\x{a2}", rx424_cur
+    .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 ", "term:sym<fatarrow>")
+    .lex unicode:"$\x{a2}", rx426_cur
     .local pmc match
     .lex "$/", match
-    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:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan428_done
-    goto rxscan428_scan
-  rxscan428_loop:
-    ($P10) = rx424_cur."from"()
+    ne $I10, -1, rxscan430_done
+    goto rxscan430_scan
+  rxscan430_loop:
+    ($P10) = rx426_cur."from"()
     inc $P10
-    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:
+    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:
 .annotate 'line', 224
   # rx subrule "fatarrow" subtype=capture negate=
-    rx424_cur."!cursor_pos"(rx424_pos)
-    $P10 = rx424_cur."fatarrow"()
-    unless $P10, rx424_fail
-    rx424_cur."!mark_push"(0, -1, 0, $P10)
+    rx426_cur."!cursor_pos"(rx426_pos)
+    $P10 = rx426_cur."fatarrow"()
+    unless $P10, rx426_fail
+    rx426_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("fatarrow")
-    rx424_pos = $P10."pos"()
+    rx426_pos = $P10."pos"()
   # rx pass
-    rx424_cur."!cursor_pass"(rx424_pos, "term:sym<fatarrow>")
-    rx424_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx424_pos)
-    .return (rx424_cur)
-  rx424_fail:
+    rx426_cur."!cursor_pass"(rx426_pos, "term:sym<fatarrow>")
+    rx426_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx426_pos)
+    .return (rx426_cur)
+  rx426_fail:
 .annotate 'line', 4
-    (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
-    lt rx424_pos, -1, rx424_done
-    eq rx424_pos, -1, rx424_fail
+    (rx426_rep, rx426_pos, $I10, $P10) = rx426_cur."!mark_fail"(0)
+    lt rx426_pos, -1, rx426_done
+    eq rx426_pos, -1, rx426_fail
     jump $I10
-  rx424_done:
-    rx424_cur."!cursor_fail"()
-    rx424_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
-    .return (rx424_cur)
+  rx426_done:
+    rx426_cur."!cursor_fail"()
+    rx426_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
+    .return (rx426_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("98_1275811487.95429") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("98_1277356913.9538") :method
 .annotate 'line', 4
-    $P426 = self."!PREFIX__!subrule"("fatarrow", "")
-    new $P427, "ResizablePMCArray"
-    push $P427, $P426
-    .return ($P427)
+    $P428 = self."!PREFIX__!subrule"("fatarrow", "")
+    new $P429, "ResizablePMCArray"
+    push $P429, $P428
+    .return ($P429)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("99_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<colonpair>"  :subid("99_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx430_cur."!cursor_debug"("START ", "term:sym<colonpair>")
-    .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:
-    $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:
+    .local string rx432_tgt
+    .local int rx432_pos
+    .local int rx432_off
+    .local int rx432_eos
+    .local int rx432_rep
+    .local pmc rx432_cur
+    (rx432_cur, rx432_pos, rx432_tgt) = self."!cursor_start"()
+    rx432_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+    .lex unicode:"$\x{a2}", rx432_cur
+    .local pmc match
+    .lex "$/", match
+    length rx432_eos, rx432_tgt
+    gt rx432_pos, rx432_eos, rx432_done
+    set rx432_off, 0
+    lt rx432_pos, 2, rx432_start
+    sub rx432_off, rx432_pos, 1
+    substr rx432_tgt, rx432_tgt, rx432_off
+  rx432_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan436_done
+    goto rxscan436_scan
+  rxscan436_loop:
+    ($P10) = rx432_cur."from"()
+    inc $P10
+    set rx432_pos, $P10
+    ge rx432_pos, rx432_eos, rxscan436_done
+  rxscan436_scan:
+    set_addr $I10, rxscan436_loop
+    rx432_cur."!mark_push"(0, rx432_pos, $I10)
+  rxscan436_done:
 .annotate 'line', 225
   # rx subrule "colonpair" subtype=capture negate=
-    rx430_cur."!cursor_pos"(rx430_pos)
-    $P10 = rx430_cur."colonpair"()
-    unless $P10, rx430_fail
-    rx430_cur."!mark_push"(0, -1, 0, $P10)
+    rx432_cur."!cursor_pos"(rx432_pos)
+    $P10 = rx432_cur."colonpair"()
+    unless $P10, rx432_fail
+    rx432_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("colonpair")
-    rx430_pos = $P10."pos"()
+    rx432_pos = $P10."pos"()
   # rx pass
-    rx430_cur."!cursor_pass"(rx430_pos, "term:sym<colonpair>")
-    rx430_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx430_pos)
-    .return (rx430_cur)
-  rx430_fail:
+    rx432_cur."!cursor_pass"(rx432_pos, "term:sym<colonpair>")
+    rx432_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx432_pos)
+    .return (rx432_cur)
+  rx432_fail:
 .annotate 'line', 4
-    (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
-    lt rx430_pos, -1, rx430_done
-    eq rx430_pos, -1, rx430_fail
+    (rx432_rep, rx432_pos, $I10, $P10) = rx432_cur."!mark_fail"(0)
+    lt rx432_pos, -1, rx432_done
+    eq rx432_pos, -1, rx432_fail
     jump $I10
-  rx430_done:
-    rx430_cur."!cursor_fail"()
-    rx430_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
-    .return (rx430_cur)
+  rx432_done:
+    rx432_cur."!cursor_fail"()
+    rx432_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
+    .return (rx432_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("100_1275811487.95429") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("100_1277356913.9538") :method
 .annotate 'line', 4
-    $P432 = self."!PREFIX__!subrule"("colonpair", "")
-    new $P433, "ResizablePMCArray"
-    push $P433, $P432
-    .return ($P433)
+    $P434 = self."!PREFIX__!subrule"("colonpair", "")
+    new $P435, "ResizablePMCArray"
+    push $P435, $P434
+    .return ($P435)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("101_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<variable>"  :subid("101_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx436_cur."!cursor_debug"("START ", "term:sym<variable>")
-    .lex unicode:"$\x{a2}", rx436_cur
+    .local string rx438_tgt
+    .local int rx438_pos
+    .local int rx438_off
+    .local int rx438_eos
+    .local int rx438_rep
+    .local pmc rx438_cur
+    (rx438_cur, rx438_pos, rx438_tgt) = self."!cursor_start"()
+    rx438_cur."!cursor_debug"("START ", "term:sym<variable>")
+    .lex unicode:"$\x{a2}", rx438_cur
     .local pmc match
     .lex "$/", match
-    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:
+    length rx438_eos, rx438_tgt
+    gt rx438_pos, rx438_eos, rx438_done
+    set rx438_off, 0
+    lt rx438_pos, 2, rx438_start
+    sub rx438_off, rx438_pos, 1
+    substr rx438_tgt, rx438_tgt, rx438_off
+  rx438_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan440_done
-    goto rxscan440_scan
-  rxscan440_loop:
-    ($P10) = rx436_cur."from"()
+    ne $I10, -1, rxscan442_done
+    goto rxscan442_scan
+  rxscan442_loop:
+    ($P10) = rx438_cur."from"()
     inc $P10
-    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:
+    set rx438_pos, $P10
+    ge rx438_pos, rx438_eos, rxscan442_done
+  rxscan442_scan:
+    set_addr $I10, rxscan442_loop
+    rx438_cur."!mark_push"(0, rx438_pos, $I10)
+  rxscan442_done:
 .annotate 'line', 226
   # rx subrule "variable" subtype=capture negate=
-    rx436_cur."!cursor_pos"(rx436_pos)
-    $P10 = rx436_cur."variable"()
-    unless $P10, rx436_fail
-    rx436_cur."!mark_push"(0, -1, 0, $P10)
+    rx438_cur."!cursor_pos"(rx438_pos)
+    $P10 = rx438_cur."variable"()
+    unless $P10, rx438_fail
+    rx438_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable")
-    rx436_pos = $P10."pos"()
+    rx438_pos = $P10."pos"()
   # rx pass
-    rx436_cur."!cursor_pass"(rx436_pos, "term:sym<variable>")
-    rx436_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx436_pos)
-    .return (rx436_cur)
-  rx436_fail:
+    rx438_cur."!cursor_pass"(rx438_pos, "term:sym<variable>")
+    rx438_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx438_pos)
+    .return (rx438_cur)
+  rx438_fail:
 .annotate 'line', 4
-    (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
-    lt rx436_pos, -1, rx436_done
-    eq rx436_pos, -1, rx436_fail
+    (rx438_rep, rx438_pos, $I10, $P10) = rx438_cur."!mark_fail"(0)
+    lt rx438_pos, -1, rx438_done
+    eq rx438_pos, -1, rx438_fail
     jump $I10
-  rx436_done:
-    rx436_cur."!cursor_fail"()
-    rx436_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
-    .return (rx436_cur)
+  rx438_done:
+    rx438_cur."!cursor_fail"()
+    rx438_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
+    .return (rx438_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("102_1275811487.95429") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("102_1277356913.9538") :method
 .annotate 'line', 4
-    $P438 = self."!PREFIX__!subrule"("variable", "")
-    new $P439, "ResizablePMCArray"
-    push $P439, $P438
-    .return ($P439)
+    $P440 = self."!PREFIX__!subrule"("variable", "")
+    new $P441, "ResizablePMCArray"
+    push $P441, $P440
+    .return ($P441)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("103_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<package_declarator>"  :subid("103_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx442_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
-    .lex unicode:"$\x{a2}", rx442_cur
+    .local string rx444_tgt
+    .local int rx444_pos
+    .local int rx444_off
+    .local int rx444_eos
+    .local int rx444_rep
+    .local pmc rx444_cur
+    (rx444_cur, rx444_pos, rx444_tgt) = self."!cursor_start"()
+    rx444_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+    .lex unicode:"$\x{a2}", rx444_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:
+    length rx444_eos, rx444_tgt
+    gt rx444_pos, rx444_eos, rx444_done
+    set rx444_off, 0
+    lt rx444_pos, 2, rx444_start
+    sub rx444_off, rx444_pos, 1
+    substr rx444_tgt, rx444_tgt, rx444_off
+  rx444_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan446_done
-    goto rxscan446_scan
-  rxscan446_loop:
-    ($P10) = rx442_cur."from"()
+    ne $I10, -1, rxscan448_done
+    goto rxscan448_scan
+  rxscan448_loop:
+    ($P10) = rx444_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:
+    set rx444_pos, $P10
+    ge rx444_pos, rx444_eos, rxscan448_done
+  rxscan448_scan:
+    set_addr $I10, rxscan448_loop
+    rx444_cur."!mark_push"(0, rx444_pos, $I10)
+  rxscan448_done:
 .annotate 'line', 227
   # rx subrule "package_declarator" subtype=capture negate=
-    rx442_cur."!cursor_pos"(rx442_pos)
-    $P10 = rx442_cur."package_declarator"()
-    unless $P10, rx442_fail
-    rx442_cur."!mark_push"(0, -1, 0, $P10)
+    rx444_cur."!cursor_pos"(rx444_pos)
+    $P10 = rx444_cur."package_declarator"()
+    unless $P10, rx444_fail
+    rx444_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_declarator")
-    rx442_pos = $P10."pos"()
+    rx444_pos = $P10."pos"()
   # rx pass
-    rx442_cur."!cursor_pass"(rx442_pos, "term:sym<package_declarator>")
-    rx442_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx442_pos)
-    .return (rx442_cur)
-  rx442_fail:
+    rx444_cur."!cursor_pass"(rx444_pos, "term:sym<package_declarator>")
+    rx444_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx444_pos)
+    .return (rx444_cur)
+  rx444_fail:
 .annotate 'line', 4
-    (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
-    lt rx442_pos, -1, rx442_done
-    eq rx442_pos, -1, rx442_fail
+    (rx444_rep, rx444_pos, $I10, $P10) = rx444_cur."!mark_fail"(0)
+    lt rx444_pos, -1, rx444_done
+    eq rx444_pos, -1, rx444_fail
     jump $I10
-  rx442_done:
-    rx442_cur."!cursor_fail"()
-    rx442_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
-    .return (rx442_cur)
+  rx444_done:
+    rx444_cur."!cursor_fail"()
+    rx444_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
+    .return (rx444_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("104_1275811487.95429") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("104_1277356913.9538") :method
 .annotate 'line', 4
-    $P444 = self."!PREFIX__!subrule"("package_declarator", "")
-    new $P445, "ResizablePMCArray"
-    push $P445, $P444
-    .return ($P445)
+    $P446 = self."!PREFIX__!subrule"("package_declarator", "")
+    new $P447, "ResizablePMCArray"
+    push $P447, $P446
+    .return ($P447)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("105_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<scope_declarator>"  :subid("105_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx448_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
-    .lex unicode:"$\x{a2}", rx448_cur
+    .local string rx450_tgt
+    .local int rx450_pos
+    .local int rx450_off
+    .local int rx450_eos
+    .local int rx450_rep
+    .local pmc rx450_cur
+    (rx450_cur, rx450_pos, rx450_tgt) = self."!cursor_start"()
+    rx450_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
+    .lex unicode:"$\x{a2}", rx450_cur
     .local pmc match
     .lex "$/", match
-    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:
+    length rx450_eos, rx450_tgt
+    gt rx450_pos, rx450_eos, rx450_done
+    set rx450_off, 0
+    lt rx450_pos, 2, rx450_start
+    sub rx450_off, rx450_pos, 1
+    substr rx450_tgt, rx450_tgt, rx450_off
+  rx450_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan452_done
-    goto rxscan452_scan
-  rxscan452_loop:
-    ($P10) = rx448_cur."from"()
+    ne $I10, -1, rxscan454_done
+    goto rxscan454_scan
+  rxscan454_loop:
+    ($P10) = rx450_cur."from"()
     inc $P10
-    set rx448_pos, $P10
-    ge rx448_pos, rx448_eos, rxscan452_done
-  rxscan452_scan:
-    set_addr $I10, rxscan452_loop
-    rx448_cur."!mark_push"(0, rx448_pos, $I10)
-  rxscan452_done:
+    set rx450_pos, $P10
+    ge rx450_pos, rx450_eos, rxscan454_done
+  rxscan454_scan:
+    set_addr $I10, rxscan454_loop
+    rx450_cur."!mark_push"(0, rx450_pos, $I10)
+  rxscan454_done:
 .annotate 'line', 228
   # rx subrule "scope_declarator" subtype=capture negate=
-    rx448_cur."!cursor_pos"(rx448_pos)
-    $P10 = rx448_cur."scope_declarator"()
-    unless $P10, rx448_fail
-    rx448_cur."!mark_push"(0, -1, 0, $P10)
+    rx450_cur."!cursor_pos"(rx450_pos)
+    $P10 = rx450_cur."scope_declarator"()
+    unless $P10, rx450_fail
+    rx450_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scope_declarator")
-    rx448_pos = $P10."pos"()
+    rx450_pos = $P10."pos"()
   # rx pass
-    rx448_cur."!cursor_pass"(rx448_pos, "term:sym<scope_declarator>")
-    rx448_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx448_pos)
-    .return (rx448_cur)
-  rx448_fail:
+    rx450_cur."!cursor_pass"(rx450_pos, "term:sym<scope_declarator>")
+    rx450_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx450_pos)
+    .return (rx450_cur)
+  rx450_fail:
 .annotate 'line', 4
-    (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
-    lt rx448_pos, -1, rx448_done
-    eq rx448_pos, -1, rx448_fail
+    (rx450_rep, rx450_pos, $I10, $P10) = rx450_cur."!mark_fail"(0)
+    lt rx450_pos, -1, rx450_done
+    eq rx450_pos, -1, rx450_fail
     jump $I10
-  rx448_done:
-    rx448_cur."!cursor_fail"()
-    rx448_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
-    .return (rx448_cur)
+  rx450_done:
+    rx450_cur."!cursor_fail"()
+    rx450_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
+    .return (rx450_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("106_1275811487.95429") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("106_1277356913.9538") :method
 .annotate 'line', 4
-    $P450 = self."!PREFIX__!subrule"("scope_declarator", "")
-    new $P451, "ResizablePMCArray"
-    push $P451, $P450
-    .return ($P451)
+    $P452 = self."!PREFIX__!subrule"("scope_declarator", "")
+    new $P453, "ResizablePMCArray"
+    push $P453, $P452
+    .return ($P453)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("107_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<routine_declarator>"  :subid("107_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx454_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
-    .lex unicode:"$\x{a2}", rx454_cur
+    .local string rx456_tgt
+    .local int rx456_pos
+    .local int rx456_off
+    .local int rx456_eos
+    .local int rx456_rep
+    .local pmc rx456_cur
+    (rx456_cur, rx456_pos, rx456_tgt) = self."!cursor_start"()
+    rx456_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
+    .lex unicode:"$\x{a2}", rx456_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:
+    length rx456_eos, rx456_tgt
+    gt rx456_pos, rx456_eos, rx456_done
+    set rx456_off, 0
+    lt rx456_pos, 2, rx456_start
+    sub rx456_off, rx456_pos, 1
+    substr rx456_tgt, rx456_tgt, rx456_off
+  rx456_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan458_done
-    goto rxscan458_scan
-  rxscan458_loop:
-    ($P10) = rx454_cur."from"()
+    ne $I10, -1, rxscan460_done
+    goto rxscan460_scan
+  rxscan460_loop:
+    ($P10) = rx456_cur."from"()
     inc $P10
-    set rx454_pos, $P10
-    ge rx454_pos, rx454_eos, rxscan458_done
-  rxscan458_scan:
-    set_addr $I10, rxscan458_loop
-    rx454_cur."!mark_push"(0, rx454_pos, $I10)
-  rxscan458_done:
+    set rx456_pos, $P10
+    ge rx456_pos, rx456_eos, rxscan460_done
+  rxscan460_scan:
+    set_addr $I10, rxscan460_loop
+    rx456_cur."!mark_push"(0, rx456_pos, $I10)
+  rxscan460_done:
 .annotate 'line', 229
   # rx subrule "routine_declarator" subtype=capture negate=
-    rx454_cur."!cursor_pos"(rx454_pos)
-    $P10 = rx454_cur."routine_declarator"()
-    unless $P10, rx454_fail
-    rx454_cur."!mark_push"(0, -1, 0, $P10)
+    rx456_cur."!cursor_pos"(rx456_pos)
+    $P10 = rx456_cur."routine_declarator"()
+    unless $P10, rx456_fail
+    rx456_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_declarator")
-    rx454_pos = $P10."pos"()
+    rx456_pos = $P10."pos"()
   # rx pass
-    rx454_cur."!cursor_pass"(rx454_pos, "term:sym<routine_declarator>")
-    rx454_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx454_pos)
-    .return (rx454_cur)
-  rx454_fail:
+    rx456_cur."!cursor_pass"(rx456_pos, "term:sym<routine_declarator>")
+    rx456_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx456_pos)
+    .return (rx456_cur)
+  rx456_fail:
 .annotate 'line', 4
-    (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
-    lt rx454_pos, -1, rx454_done
-    eq rx454_pos, -1, rx454_fail
+    (rx456_rep, rx456_pos, $I10, $P10) = rx456_cur."!mark_fail"(0)
+    lt rx456_pos, -1, rx456_done
+    eq rx456_pos, -1, rx456_fail
     jump $I10
-  rx454_done:
-    rx454_cur."!cursor_fail"()
-    rx454_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
-    .return (rx454_cur)
+  rx456_done:
+    rx456_cur."!cursor_fail"()
+    rx456_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
+    .return (rx456_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("108_1275811487.95429") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("108_1277356913.9538") :method
 .annotate 'line', 4
-    $P456 = self."!PREFIX__!subrule"("routine_declarator", "")
-    new $P457, "ResizablePMCArray"
-    push $P457, $P456
-    .return ($P457)
+    $P458 = self."!PREFIX__!subrule"("routine_declarator", "")
+    new $P459, "ResizablePMCArray"
+    push $P459, $P458
+    .return ($P459)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<multi_declarator>"  :subid("109_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<multi_declarator>"  :subid("109_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .const 'Sub' $P465 = "111_1275811487.95429" 
-    capture_lex $P465
-    .local string rx460_tgt
-    .local int rx460_pos
-    .local int rx460_off
-    .local int rx460_eos
-    .local int rx460_rep
-    .local pmc rx460_cur
-    (rx460_cur, rx460_pos, rx460_tgt) = self."!cursor_start"()
-    rx460_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
-    .lex unicode:"$\x{a2}", rx460_cur
+    .const 'Sub' $P467 = "111_1277356913.9538" 
+    capture_lex $P467
+    .local string rx462_tgt
+    .local int rx462_pos
+    .local int rx462_off
+    .local int rx462_eos
+    .local int rx462_rep
+    .local pmc rx462_cur
+    (rx462_cur, rx462_pos, rx462_tgt) = self."!cursor_start"()
+    rx462_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
+    .lex unicode:"$\x{a2}", rx462_cur
     .local pmc match
     .lex "$/", match
-    length rx460_eos, rx460_tgt
-    gt rx460_pos, rx460_eos, rx460_done
-    set rx460_off, 0
-    lt rx460_pos, 2, rx460_start
-    sub rx460_off, rx460_pos, 1
-    substr rx460_tgt, rx460_tgt, rx460_off
-  rx460_start:
+    length rx462_eos, rx462_tgt
+    gt rx462_pos, rx462_eos, rx462_done
+    set rx462_off, 0
+    lt rx462_pos, 2, rx462_start
+    sub rx462_off, rx462_pos, 1
+    substr rx462_tgt, rx462_tgt, rx462_off
+  rx462_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan463_done
-    goto rxscan463_scan
-  rxscan463_loop:
-    ($P10) = rx460_cur."from"()
+    ne $I10, -1, rxscan465_done
+    goto rxscan465_scan
+  rxscan465_loop:
+    ($P10) = rx462_cur."from"()
     inc $P10
-    set rx460_pos, $P10
-    ge rx460_pos, rx460_eos, rxscan463_done
-  rxscan463_scan:
-    set_addr $I10, rxscan463_loop
-    rx460_cur."!mark_push"(0, rx460_pos, $I10)
-  rxscan463_done:
+    set rx462_pos, $P10
+    ge rx462_pos, rx462_eos, rxscan465_done
+  rxscan465_scan:
+    set_addr $I10, rxscan465_loop
+    rx462_cur."!mark_push"(0, rx462_pos, $I10)
+  rxscan465_done:
 .annotate 'line', 230
   # rx subrule "before" subtype=zerowidth negate=
-    rx460_cur."!cursor_pos"(rx460_pos)
-    .const 'Sub' $P465 = "111_1275811487.95429" 
-    capture_lex $P465
-    $P10 = rx460_cur."before"($P465)
-    unless $P10, rx460_fail
+    rx462_cur."!cursor_pos"(rx462_pos)
+    .const 'Sub' $P467 = "111_1277356913.9538" 
+    capture_lex $P467
+    $P10 = rx462_cur."before"($P467)
+    unless $P10, rx462_fail
   # rx subrule "multi_declarator" subtype=capture negate=
-    rx460_cur."!cursor_pos"(rx460_pos)
-    $P10 = rx460_cur."multi_declarator"()
-    unless $P10, rx460_fail
-    rx460_cur."!mark_push"(0, -1, 0, $P10)
+    rx462_cur."!cursor_pos"(rx462_pos)
+    $P10 = rx462_cur."multi_declarator"()
+    unless $P10, rx462_fail
+    rx462_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("multi_declarator")
-    rx460_pos = $P10."pos"()
+    rx462_pos = $P10."pos"()
   # rx pass
-    rx460_cur."!cursor_pass"(rx460_pos, "term:sym<multi_declarator>")
-    rx460_cur."!cursor_debug"("PASS  ", "term:sym<multi_declarator>", " at pos=", rx460_pos)
-    .return (rx460_cur)
-  rx460_fail:
+    rx462_cur."!cursor_pass"(rx462_pos, "term:sym<multi_declarator>")
+    rx462_cur."!cursor_debug"("PASS  ", "term:sym<multi_declarator>", " at pos=", rx462_pos)
+    .return (rx462_cur)
+  rx462_fail:
 .annotate 'line', 4
-    (rx460_rep, rx460_pos, $I10, $P10) = rx460_cur."!mark_fail"(0)
-    lt rx460_pos, -1, rx460_done
-    eq rx460_pos, -1, rx460_fail
+    (rx462_rep, rx462_pos, $I10, $P10) = rx462_cur."!mark_fail"(0)
+    lt rx462_pos, -1, rx462_done
+    eq rx462_pos, -1, rx462_fail
     jump $I10
-  rx460_done:
-    rx460_cur."!cursor_fail"()
-    rx460_cur."!cursor_debug"("FAIL  ", "term:sym<multi_declarator>")
-    .return (rx460_cur)
+  rx462_done:
+    rx462_cur."!cursor_fail"()
+    rx462_cur."!cursor_debug"("FAIL  ", "term:sym<multi_declarator>")
+    .return (rx462_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<multi_declarator>"  :subid("110_1275811487.95429") :method
+.sub "!PREFIX__term:sym<multi_declarator>"  :subid("110_1277356913.9538") :method
 .annotate 'line', 4
-    new $P462, "ResizablePMCArray"
-    push $P462, ""
-    .return ($P462)
+    new $P464, "ResizablePMCArray"
+    push $P464, ""
+    .return ($P464)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block464"  :anon :subid("111_1275811487.95429") :method :outer("109_1275811487.95429")
+.sub "_block466"  :anon :subid("111_1277356913.9538") :method :outer("109_1277356913.9538")
 .annotate 'line', 230
-    .local string rx466_tgt
-    .local int rx466_pos
-    .local int rx466_off
-    .local int rx466_eos
-    .local int rx466_rep
-    .local pmc rx466_cur
-    (rx466_cur, rx466_pos, rx466_tgt) = self."!cursor_start"()
-    rx466_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx466_cur
-    .local pmc match
-    .lex "$/", match
-    length rx466_eos, rx466_tgt
-    gt rx466_pos, rx466_eos, rx466_done
-    set rx466_off, 0
-    lt rx466_pos, 2, rx466_start
-    sub rx466_off, rx466_pos, 1
-    substr rx466_tgt, rx466_tgt, rx466_off
-  rx466_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan467_done
-    goto rxscan467_scan
-  rxscan467_loop:
-    ($P10) = rx466_cur."from"()
-    inc $P10
-    set rx466_pos, $P10
-    ge rx466_pos, rx466_eos, rxscan467_done
-  rxscan467_scan:
-    set_addr $I10, rxscan467_loop
-    rx466_cur."!mark_push"(0, rx466_pos, $I10)
-  rxscan467_done:
-  alt468_0:
-    set_addr $I10, alt468_1
-    rx466_cur."!mark_push"(0, rx466_pos, $I10)
+    .local string rx468_tgt
+    .local int rx468_pos
+    .local int rx468_off
+    .local int rx468_eos
+    .local int rx468_rep
+    .local pmc rx468_cur
+    (rx468_cur, rx468_pos, rx468_tgt) = self."!cursor_start"()
+    rx468_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx468_cur
+    .local pmc match
+    .lex "$/", match
+    length rx468_eos, rx468_tgt
+    gt rx468_pos, rx468_eos, rx468_done
+    set rx468_off, 0
+    lt rx468_pos, 2, rx468_start
+    sub rx468_off, rx468_pos, 1
+    substr rx468_tgt, rx468_tgt, rx468_off
+  rx468_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan469_done
+    goto rxscan469_scan
+  rxscan469_loop:
+    ($P10) = rx468_cur."from"()
+    inc $P10
+    set rx468_pos, $P10
+    ge rx468_pos, rx468_eos, rxscan469_done
+  rxscan469_scan:
+    set_addr $I10, rxscan469_loop
+    rx468_cur."!mark_push"(0, rx468_pos, $I10)
+  rxscan469_done:
+  alt470_0:
+    set_addr $I10, alt470_1
+    rx468_cur."!mark_push"(0, rx468_pos, $I10)
   # rx literal  "multi"
-    add $I11, rx466_pos, 5
-    gt $I11, rx466_eos, rx466_fail
-    sub $I11, rx466_pos, rx466_off
-    substr $S10, rx466_tgt, $I11, 5
-    ne $S10, "multi", rx466_fail
-    add rx466_pos, 5
-    goto alt468_end
-  alt468_1:
-    set_addr $I10, alt468_2
-    rx466_cur."!mark_push"(0, rx466_pos, $I10)
+    add $I11, rx468_pos, 5
+    gt $I11, rx468_eos, rx468_fail
+    sub $I11, rx468_pos, rx468_off
+    substr $S10, rx468_tgt, $I11, 5
+    ne $S10, "multi", rx468_fail
+    add rx468_pos, 5
+    goto alt470_end
+  alt470_1:
+    set_addr $I10, alt470_2
+    rx468_cur."!mark_push"(0, rx468_pos, $I10)
   # rx literal  "proto"
-    add $I11, rx466_pos, 5
-    gt $I11, rx466_eos, rx466_fail
-    sub $I11, rx466_pos, rx466_off
-    substr $S10, rx466_tgt, $I11, 5
-    ne $S10, "proto", rx466_fail
-    add rx466_pos, 5
-    goto alt468_end
-  alt468_2:
+    add $I11, rx468_pos, 5
+    gt $I11, rx468_eos, rx468_fail
+    sub $I11, rx468_pos, rx468_off
+    substr $S10, rx468_tgt, $I11, 5
+    ne $S10, "proto", rx468_fail
+    add rx468_pos, 5
+    goto alt470_end
+  alt470_2:
   # rx literal  "only"
-    add $I11, rx466_pos, 4
-    gt $I11, rx466_eos, rx466_fail
-    sub $I11, rx466_pos, rx466_off
-    substr $S10, rx466_tgt, $I11, 4
-    ne $S10, "only", rx466_fail
-    add rx466_pos, 4
-  alt468_end:
-  # rx pass
-    rx466_cur."!cursor_pass"(rx466_pos, "")
-    rx466_cur."!cursor_debug"("PASS  ", "", " at pos=", rx466_pos)
-    .return (rx466_cur)
-  rx466_fail:
-    (rx466_rep, rx466_pos, $I10, $P10) = rx466_cur."!mark_fail"(0)
-    lt rx466_pos, -1, rx466_done
-    eq rx466_pos, -1, rx466_fail
-    jump $I10
-  rx466_done:
-    rx466_cur."!cursor_fail"()
-    rx466_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx466_cur)
+    add $I11, rx468_pos, 4
+    gt $I11, rx468_eos, rx468_fail
+    sub $I11, rx468_pos, rx468_off
+    substr $S10, rx468_tgt, $I11, 4
+    ne $S10, "only", rx468_fail
+    add rx468_pos, 4
+  alt470_end:
+  # rx pass
+    rx468_cur."!cursor_pass"(rx468_pos, "")
+    rx468_cur."!cursor_debug"("PASS  ", "", " at pos=", rx468_pos)
+    .return (rx468_cur)
+  rx468_fail:
+    (rx468_rep, rx468_pos, $I10, $P10) = rx468_cur."!mark_fail"(0)
+    lt rx468_pos, -1, rx468_done
+    eq rx468_pos, -1, rx468_fail
+    jump $I10
+  rx468_done:
+    rx468_cur."!cursor_fail"()
+    rx468_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx468_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("112_1275811487.95429") :method :outer("11_1275811487.95429")
-.annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx470_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
-    .lex unicode:"$\x{a2}", rx470_cur
-    .local pmc match
-    .lex "$/", match
-    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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan474_done
-    goto rxscan474_scan
-  rxscan474_loop:
-    ($P10) = rx470_cur."from"()
-    inc $P10
-    set rx470_pos, $P10
-    ge rx470_pos, rx470_eos, rxscan474_done
-  rxscan474_scan:
-    set_addr $I10, rxscan474_loop
-    rx470_cur."!mark_push"(0, rx470_pos, $I10)
-  rxscan474_done:
+.sub "term:sym<regex_declarator>"  :subid("112_1277356913.9538") :method :outer("11_1277356913.9538")
+.annotate 'line', 4
+    .local string rx472_tgt
+    .local int rx472_pos
+    .local int rx472_off
+    .local int rx472_eos
+    .local int rx472_rep
+    .local pmc rx472_cur
+    (rx472_cur, rx472_pos, rx472_tgt) = self."!cursor_start"()
+    rx472_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+    .lex unicode:"$\x{a2}", rx472_cur
+    .local pmc match
+    .lex "$/", match
+    length rx472_eos, rx472_tgt
+    gt rx472_pos, rx472_eos, rx472_done
+    set rx472_off, 0
+    lt rx472_pos, 2, rx472_start
+    sub rx472_off, rx472_pos, 1
+    substr rx472_tgt, rx472_tgt, rx472_off
+  rx472_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan476_done
+    goto rxscan476_scan
+  rxscan476_loop:
+    ($P10) = rx472_cur."from"()
+    inc $P10
+    set rx472_pos, $P10
+    ge rx472_pos, rx472_eos, rxscan476_done
+  rxscan476_scan:
+    set_addr $I10, rxscan476_loop
+    rx472_cur."!mark_push"(0, rx472_pos, $I10)
+  rxscan476_done:
 .annotate 'line', 231
   # rx subrule "regex_declarator" subtype=capture negate=
-    rx470_cur."!cursor_pos"(rx470_pos)
-    $P10 = rx470_cur."regex_declarator"()
-    unless $P10, rx470_fail
-    rx470_cur."!mark_push"(0, -1, 0, $P10)
+    rx472_cur."!cursor_pos"(rx472_pos)
+    $P10 = rx472_cur."regex_declarator"()
+    unless $P10, rx472_fail
+    rx472_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("regex_declarator")
-    rx470_pos = $P10."pos"()
+    rx472_pos = $P10."pos"()
   # rx pass
-    rx470_cur."!cursor_pass"(rx470_pos, "term:sym<regex_declarator>")
-    rx470_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx470_pos)
-    .return (rx470_cur)
-  rx470_fail:
+    rx472_cur."!cursor_pass"(rx472_pos, "term:sym<regex_declarator>")
+    rx472_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx472_pos)
+    .return (rx472_cur)
+  rx472_fail:
 .annotate 'line', 4
-    (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
-    lt rx470_pos, -1, rx470_done
-    eq rx470_pos, -1, rx470_fail
+    (rx472_rep, rx472_pos, $I10, $P10) = rx472_cur."!mark_fail"(0)
+    lt rx472_pos, -1, rx472_done
+    eq rx472_pos, -1, rx472_fail
     jump $I10
-  rx470_done:
-    rx470_cur."!cursor_fail"()
-    rx470_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
-    .return (rx470_cur)
+  rx472_done:
+    rx472_cur."!cursor_fail"()
+    rx472_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
+    .return (rx472_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("113_1275811487.95429") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("113_1277356913.9538") :method
 .annotate 'line', 4
-    $P472 = self."!PREFIX__!subrule"("regex_declarator", "")
-    new $P473, "ResizablePMCArray"
-    push $P473, $P472
-    .return ($P473)
+    $P474 = self."!PREFIX__!subrule"("regex_declarator", "")
+    new $P475, "ResizablePMCArray"
+    push $P475, $P474
+    .return ($P475)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("114_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<statement_prefix>"  :subid("114_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx476_tgt
-    .local int rx476_pos
-    .local int rx476_off
-    .local int rx476_eos
-    .local int rx476_rep
-    .local pmc rx476_cur
-    (rx476_cur, rx476_pos, rx476_tgt) = self."!cursor_start"()
-    rx476_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
-    .lex unicode:"$\x{a2}", rx476_cur
-    .local pmc match
-    .lex "$/", match
-    length rx476_eos, rx476_tgt
-    gt rx476_pos, rx476_eos, rx476_done
-    set rx476_off, 0
-    lt rx476_pos, 2, rx476_start
-    sub rx476_off, rx476_pos, 1
-    substr rx476_tgt, rx476_tgt, rx476_off
-  rx476_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan480_done
-    goto rxscan480_scan
-  rxscan480_loop:
-    ($P10) = rx476_cur."from"()
-    inc $P10
-    set rx476_pos, $P10
-    ge rx476_pos, rx476_eos, rxscan480_done
-  rxscan480_scan:
-    set_addr $I10, rxscan480_loop
-    rx476_cur."!mark_push"(0, rx476_pos, $I10)
-  rxscan480_done:
+    .local string rx478_tgt
+    .local int rx478_pos
+    .local int rx478_off
+    .local int rx478_eos
+    .local int rx478_rep
+    .local pmc rx478_cur
+    (rx478_cur, rx478_pos, rx478_tgt) = self."!cursor_start"()
+    rx478_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
+    .lex unicode:"$\x{a2}", rx478_cur
+    .local pmc match
+    .lex "$/", match
+    length rx478_eos, rx478_tgt
+    gt rx478_pos, rx478_eos, rx478_done
+    set rx478_off, 0
+    lt rx478_pos, 2, rx478_start
+    sub rx478_off, rx478_pos, 1
+    substr rx478_tgt, rx478_tgt, rx478_off
+  rx478_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan482_done
+    goto rxscan482_scan
+  rxscan482_loop:
+    ($P10) = rx478_cur."from"()
+    inc $P10
+    set rx478_pos, $P10
+    ge rx478_pos, rx478_eos, rxscan482_done
+  rxscan482_scan:
+    set_addr $I10, rxscan482_loop
+    rx478_cur."!mark_push"(0, rx478_pos, $I10)
+  rxscan482_done:
 .annotate 'line', 232
   # rx subrule "statement_prefix" subtype=capture negate=
-    rx476_cur."!cursor_pos"(rx476_pos)
-    $P10 = rx476_cur."statement_prefix"()
-    unless $P10, rx476_fail
-    rx476_cur."!mark_push"(0, -1, 0, $P10)
+    rx478_cur."!cursor_pos"(rx478_pos)
+    $P10 = rx478_cur."statement_prefix"()
+    unless $P10, rx478_fail
+    rx478_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement_prefix")
-    rx476_pos = $P10."pos"()
+    rx478_pos = $P10."pos"()
   # rx pass
-    rx476_cur."!cursor_pass"(rx476_pos, "term:sym<statement_prefix>")
-    rx476_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx476_pos)
-    .return (rx476_cur)
-  rx476_fail:
+    rx478_cur."!cursor_pass"(rx478_pos, "term:sym<statement_prefix>")
+    rx478_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx478_pos)
+    .return (rx478_cur)
+  rx478_fail:
 .annotate 'line', 4
-    (rx476_rep, rx476_pos, $I10, $P10) = rx476_cur."!mark_fail"(0)
-    lt rx476_pos, -1, rx476_done
-    eq rx476_pos, -1, rx476_fail
+    (rx478_rep, rx478_pos, $I10, $P10) = rx478_cur."!mark_fail"(0)
+    lt rx478_pos, -1, rx478_done
+    eq rx478_pos, -1, rx478_fail
     jump $I10
-  rx476_done:
-    rx476_cur."!cursor_fail"()
-    rx476_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
-    .return (rx476_cur)
+  rx478_done:
+    rx478_cur."!cursor_fail"()
+    rx478_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
+    .return (rx478_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("115_1275811487.95429") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("115_1277356913.9538") :method
 .annotate 'line', 4
-    $P478 = self."!PREFIX__!subrule"("statement_prefix", "")
-    new $P479, "ResizablePMCArray"
-    push $P479, $P478
-    .return ($P479)
+    $P480 = self."!PREFIX__!subrule"("statement_prefix", "")
+    new $P481, "ResizablePMCArray"
+    push $P481, $P480
+    .return ($P481)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("116_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<lambda>"  :subid("116_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx482_cur."!cursor_debug"("START ", "term:sym<lambda>")
-    .lex unicode:"$\x{a2}", rx482_cur
-    .local pmc match
-    .lex "$/", match
-    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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan485_done
-    goto rxscan485_scan
-  rxscan485_loop:
-    ($P10) = rx482_cur."from"()
-    inc $P10
-    set rx482_pos, $P10
-    ge rx482_pos, rx482_eos, rxscan485_done
-  rxscan485_scan:
-    set_addr $I10, rxscan485_loop
-    rx482_cur."!mark_push"(0, rx482_pos, $I10)
-  rxscan485_done:
+    .local string rx484_tgt
+    .local int rx484_pos
+    .local int rx484_off
+    .local int rx484_eos
+    .local int rx484_rep
+    .local pmc rx484_cur
+    (rx484_cur, rx484_pos, rx484_tgt) = self."!cursor_start"()
+    rx484_cur."!cursor_debug"("START ", "term:sym<lambda>")
+    .lex unicode:"$\x{a2}", rx484_cur
+    .local pmc match
+    .lex "$/", match
+    length rx484_eos, rx484_tgt
+    gt rx484_pos, rx484_eos, rx484_done
+    set rx484_off, 0
+    lt rx484_pos, 2, rx484_start
+    sub rx484_off, rx484_pos, 1
+    substr rx484_tgt, rx484_tgt, rx484_off
+  rx484_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan487_done
+    goto rxscan487_scan
+  rxscan487_loop:
+    ($P10) = rx484_cur."from"()
+    inc $P10
+    set rx484_pos, $P10
+    ge rx484_pos, rx484_eos, rxscan487_done
+  rxscan487_scan:
+    set_addr $I10, rxscan487_loop
+    rx484_cur."!mark_push"(0, rx484_pos, $I10)
+  rxscan487_done:
 .annotate 'line', 233
   # rx subrule "lambda" subtype=zerowidth negate=
-    rx482_cur."!cursor_pos"(rx482_pos)
-    $P10 = rx482_cur."lambda"()
-    unless $P10, rx482_fail
+    rx484_cur."!cursor_pos"(rx484_pos)
+    $P10 = rx484_cur."lambda"()
+    unless $P10, rx484_fail
   # rx subrule "pblock" subtype=capture negate=
-    rx482_cur."!cursor_pos"(rx482_pos)
-    $P10 = rx482_cur."pblock"()
-    unless $P10, rx482_fail
-    rx482_cur."!mark_push"(0, -1, 0, $P10)
+    rx484_cur."!cursor_pos"(rx484_pos)
+    $P10 = rx484_cur."pblock"()
+    unless $P10, rx484_fail
+    rx484_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx482_pos = $P10."pos"()
+    rx484_pos = $P10."pos"()
   # rx pass
-    rx482_cur."!cursor_pass"(rx482_pos, "term:sym<lambda>")
-    rx482_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx482_pos)
-    .return (rx482_cur)
-  rx482_fail:
+    rx484_cur."!cursor_pass"(rx484_pos, "term:sym<lambda>")
+    rx484_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx484_pos)
+    .return (rx484_cur)
+  rx484_fail:
 .annotate 'line', 4
-    (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
-    lt rx482_pos, -1, rx482_done
-    eq rx482_pos, -1, rx482_fail
+    (rx484_rep, rx484_pos, $I10, $P10) = rx484_cur."!mark_fail"(0)
+    lt rx484_pos, -1, rx484_done
+    eq rx484_pos, -1, rx484_fail
     jump $I10
-  rx482_done:
-    rx482_cur."!cursor_fail"()
-    rx482_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
-    .return (rx482_cur)
+  rx484_done:
+    rx484_cur."!cursor_fail"()
+    rx484_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
+    .return (rx484_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("117_1275811487.95429") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("117_1277356913.9538") :method
 .annotate 'line', 4
-    new $P484, "ResizablePMCArray"
-    push $P484, ""
-    .return ($P484)
+    new $P486, "ResizablePMCArray"
+    push $P486, ""
+    .return ($P486)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("118_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "fatarrow"  :subid("118_1277356913.9538") :method :outer("11_1277356913.9538")
 .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 ", "fatarrow")
-    .lex unicode:"$\x{a2}", rx487_cur
+    .local string rx489_tgt
+    .local int rx489_pos
+    .local int rx489_off
+    .local int rx489_eos
+    .local int rx489_rep
+    .local pmc rx489_cur
+    (rx489_cur, rx489_pos, rx489_tgt) = self."!cursor_start"()
+    rx489_cur."!cursor_debug"("START ", "fatarrow")
+    .lex unicode:"$\x{a2}", rx489_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 rx489_eos, rx489_tgt
+    gt rx489_pos, rx489_eos, rx489_done
+    set rx489_off, 0
+    lt rx489_pos, 2, rx489_start
+    sub rx489_off, rx489_pos, 1
+    substr rx489_tgt, rx489_tgt, rx489_off
+  rx489_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan491_done
-    goto rxscan491_scan
-  rxscan491_loop:
-    ($P10) = rx487_cur."from"()
+    ne $I10, -1, rxscan493_done
+    goto rxscan493_scan
+  rxscan493_loop:
+    ($P10) = rx489_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 rx489_pos, $P10
+    ge rx489_pos, rx489_eos, rxscan493_done
+  rxscan493_scan:
+    set_addr $I10, rxscan493_loop
+    rx489_cur."!mark_push"(0, rx489_pos, $I10)
+  rxscan493_done:
 .annotate 'line', 236
   # rx subrule "identifier" subtype=capture negate=
-    rx487_cur."!cursor_pos"(rx487_pos)
-    $P10 = rx487_cur."identifier"()
-    unless $P10, rx487_fail
-    rx487_cur."!mark_push"(0, -1, 0, $P10)
+    rx489_cur."!cursor_pos"(rx489_pos)
+    $P10 = rx489_cur."identifier"()
+    unless $P10, rx489_fail
+    rx489_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("key")
-    rx487_pos = $P10."pos"()
-  # rx rxquantr492 ** 0..*
-    set_addr $I493, rxquantr492_done
-    rx487_cur."!mark_push"(0, rx487_pos, $I493)
-  rxquantr492_loop:
+    rx489_pos = $P10."pos"()
+  # rx rxquantr494 ** 0..*
+    set_addr $I495, rxquantr494_done
+    rx489_cur."!mark_push"(0, rx489_pos, $I495)
+  rxquantr494_loop:
   # rx enumcharlist negate=0 
-    ge rx487_pos, rx487_eos, rx487_fail
-    sub $I10, rx487_pos, rx487_off
-    substr $S10, rx487_tgt, $I10, 1
+    ge rx489_pos, rx489_eos, rx489_fail
+    sub $I10, rx489_pos, rx489_off
+    substr $S10, rx489_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, rx487_fail
-    inc rx487_pos
-    (rx487_rep) = rx487_cur."!mark_commit"($I493)
-    rx487_cur."!mark_push"(rx487_rep, rx487_pos, $I493)
-    goto rxquantr492_loop
-  rxquantr492_done:
+    lt $I11, 0, rx489_fail
+    inc rx489_pos
+    (rx489_rep) = rx489_cur."!mark_commit"($I495)
+    rx489_cur."!mark_push"(rx489_rep, rx489_pos, $I495)
+    goto rxquantr494_loop
+  rxquantr494_done:
   # rx literal  "=>"
-    add $I11, rx487_pos, 2
-    gt $I11, rx487_eos, rx487_fail
-    sub $I11, rx487_pos, rx487_off
-    substr $S10, rx487_tgt, $I11, 2
-    ne $S10, "=>", rx487_fail
-    add rx487_pos, 2
-  # rx subrule "ws" subtype=method negate=
-    rx487_cur."!cursor_pos"(rx487_pos)
-    $P10 = rx487_cur."ws"()
-    unless $P10, rx487_fail
-    rx487_pos = $P10."pos"()
+    add $I11, rx489_pos, 2
+    gt $I11, rx489_eos, rx489_fail
+    sub $I11, rx489_pos, rx489_off
+    substr $S10, rx489_tgt, $I11, 2
+    ne $S10, "=>", rx489_fail
+    add rx489_pos, 2
+  # rx subrule "ws" subtype=method negate=
+    rx489_cur."!cursor_pos"(rx489_pos)
+    $P10 = rx489_cur."ws"()
+    unless $P10, rx489_fail
+    rx489_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx487_cur."!cursor_pos"(rx487_pos)
-    $P10 = rx487_cur."EXPR"("i=")
-    unless $P10, rx487_fail
-    rx487_cur."!mark_push"(0, -1, 0, $P10)
+    rx489_cur."!cursor_pos"(rx489_pos)
+    $P10 = rx489_cur."EXPR"("i=")
+    unless $P10, rx489_fail
+    rx489_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("val")
-    rx487_pos = $P10."pos"()
+    rx489_pos = $P10."pos"()
 .annotate 'line', 235
   # rx pass
-    rx487_cur."!cursor_pass"(rx487_pos, "fatarrow")
-    rx487_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx487_pos)
-    .return (rx487_cur)
-  rx487_fail:
+    rx489_cur."!cursor_pass"(rx489_pos, "fatarrow")
+    rx489_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx489_pos)
+    .return (rx489_cur)
+  rx489_fail:
 .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
+    (rx489_rep, rx489_pos, $I10, $P10) = rx489_cur."!mark_fail"(0)
+    lt rx489_pos, -1, rx489_done
+    eq rx489_pos, -1, rx489_fail
     jump $I10
-  rx487_done:
-    rx487_cur."!cursor_fail"()
-    rx487_cur."!cursor_debug"("FAIL  ", "fatarrow")
-    .return (rx487_cur)
+  rx489_done:
+    rx489_cur."!cursor_fail"()
+    rx489_cur."!cursor_debug"("FAIL  ", "fatarrow")
+    .return (rx489_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("119_1275811487.95429") :method
+.sub "!PREFIX__fatarrow"  :subid("119_1277356913.9538") :method
 .annotate 'line', 4
-    $P489 = self."!PREFIX__!subrule"("identifier", "")
-    new $P490, "ResizablePMCArray"
-    push $P490, $P489
-    .return ($P490)
+    $P491 = self."!PREFIX__!subrule"("identifier", "")
+    new $P492, "ResizablePMCArray"
+    push $P492, $P491
+    .return ($P492)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("120_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "colonpair"  :subid("120_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx495_tgt
-    .local int rx495_pos
-    .local int rx495_off
-    .local int rx495_eos
-    .local int rx495_rep
-    .local pmc rx495_cur
-    (rx495_cur, rx495_pos, rx495_tgt) = self."!cursor_start"()
-    rx495_cur."!cursor_debug"("START ", "colonpair")
-    rx495_cur."!cursor_caparray"("circumfix")
-    .lex unicode:"$\x{a2}", rx495_cur
+    .local string rx497_tgt
+    .local int rx497_pos
+    .local int rx497_off
+    .local int rx497_eos
+    .local int rx497_rep
+    .local pmc rx497_cur
+    (rx497_cur, rx497_pos, rx497_tgt) = self."!cursor_start"()
+    rx497_cur."!cursor_debug"("START ", "colonpair")
+    rx497_cur."!cursor_caparray"("circumfix")
+    .lex unicode:"$\x{a2}", rx497_cur
     .local pmc match
     .lex "$/", match
-    length rx495_eos, rx495_tgt
-    gt rx495_pos, rx495_eos, rx495_done
-    set rx495_off, 0
-    lt rx495_pos, 2, rx495_start
-    sub rx495_off, rx495_pos, 1
-    substr rx495_tgt, rx495_tgt, rx495_off
-  rx495_start:
+    length rx497_eos, rx497_tgt
+    gt rx497_pos, rx497_eos, rx497_done
+    set rx497_off, 0
+    lt rx497_pos, 2, rx497_start
+    sub rx497_off, rx497_pos, 1
+    substr rx497_tgt, rx497_tgt, rx497_off
+  rx497_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan501_done
-    goto rxscan501_scan
-  rxscan501_loop:
-    ($P10) = rx495_cur."from"()
+    ne $I10, -1, rxscan503_done
+    goto rxscan503_scan
+  rxscan503_loop:
+    ($P10) = rx497_cur."from"()
     inc $P10
-    set rx495_pos, $P10
-    ge rx495_pos, rx495_eos, rxscan501_done
-  rxscan501_scan:
-    set_addr $I10, rxscan501_loop
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
-  rxscan501_done:
+    set rx497_pos, $P10
+    ge rx497_pos, rx497_eos, rxscan503_done
+  rxscan503_scan:
+    set_addr $I10, rxscan503_loop
+    rx497_cur."!mark_push"(0, rx497_pos, $I10)
+  rxscan503_done:
 .annotate 'line', 240
   # rx literal  ":"
-    add $I11, rx495_pos, 1
-    gt $I11, rx495_eos, rx495_fail
-    sub $I11, rx495_pos, rx495_off
-    substr $S10, rx495_tgt, $I11, 1
-    ne $S10, ":", rx495_fail
-    add rx495_pos, 1
-  alt502_0:
+    add $I11, rx497_pos, 1
+    gt $I11, rx497_eos, rx497_fail
+    sub $I11, rx497_pos, rx497_off
+    substr $S10, rx497_tgt, $I11, 1
+    ne $S10, ":", rx497_fail
+    add rx497_pos, 1
+  alt504_0:
 .annotate 'line', 241
-    set_addr $I10, alt502_1
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+    set_addr $I10, alt504_1
+    rx497_cur."!mark_push"(0, rx497_pos, $I10)
 .annotate 'line', 242
   # rx subcapture "not"
-    set_addr $I10, rxcap_503_fail
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+    set_addr $I10, rxcap_505_fail
+    rx497_cur."!mark_push"(0, rx497_pos, $I10)
   # rx literal  "!"
-    add $I11, rx495_pos, 1
-    gt $I11, rx495_eos, rx495_fail
-    sub $I11, rx495_pos, rx495_off
-    substr $S10, rx495_tgt, $I11, 1
-    ne $S10, "!", rx495_fail
-    add rx495_pos, 1
-    set_addr $I10, rxcap_503_fail
-    ($I12, $I11) = rx495_cur."!mark_peek"($I10)
-    rx495_cur."!cursor_pos"($I11)
-    ($P10) = rx495_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx495_pos, "")
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx497_pos, 1
+    gt $I11, rx497_eos, rx497_fail
+    sub $I11, rx497_pos, rx497_off
+    substr $S10, rx497_tgt, $I11, 1
+    ne $S10, "!", rx497_fail
+    add rx497_pos, 1
+    set_addr $I10, rxcap_505_fail
+    ($I12, $I11) = rx497_cur."!mark_peek"($I10)
+    rx497_cur."!cursor_pos"($I11)
+    ($P10) = rx497_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx497_pos, "")
+    rx497_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("not")
-    goto rxcap_503_done
-  rxcap_503_fail:
-    goto rx495_fail
-  rxcap_503_done:
+    goto rxcap_505_done
+  rxcap_505_fail:
+    goto rx497_fail
+  rxcap_505_done:
   # rx subrule "identifier" subtype=capture negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."identifier"()
-    unless $P10, rx495_fail
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    rx497_cur."!cursor_pos"(rx497_pos)
+    $P10 = rx497_cur."identifier"()
+    unless $P10, rx497_fail
+    rx497_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx495_pos = $P10."pos"()
-    goto alt502_end
-  alt502_1:
-    set_addr $I10, alt502_2
-    rx495_cur."!mark_push"(0, rx495_pos, $I10)
+    rx497_pos = $P10."pos"()
+    goto alt504_end
+  alt504_1:
+    set_addr $I10, alt504_2
+    rx497_cur."!mark_push"(0, rx497_pos, $I10)
 .annotate 'line', 243
   # rx subrule "identifier" subtype=capture negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."identifier"()
-    unless $P10, rx495_fail
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    rx497_cur."!cursor_pos"(rx497_pos)
+    $P10 = rx497_cur."identifier"()
+    unless $P10, rx497_fail
+    rx497_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("identifier")
-    rx495_pos = $P10."pos"()
-  # rx rxquantr504 ** 0..1
-    set_addr $I505, rxquantr504_done
-    rx495_cur."!mark_push"(0, rx495_pos, $I505)
-  rxquantr504_loop:
+    rx497_pos = $P10."pos"()
+  # rx rxquantr506 ** 0..1
+    set_addr $I507, rxquantr506_done
+    rx497_cur."!mark_push"(0, rx497_pos, $I507)
+  rxquantr506_loop:
   # rx subrule "circumfix" subtype=capture negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."circumfix"()
-    unless $P10, rx495_fail
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    rx497_cur."!cursor_pos"(rx497_pos)
+    $P10 = rx497_cur."circumfix"()
+    unless $P10, rx497_fail
+    rx497_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("circumfix")
-    rx495_pos = $P10."pos"()
-    (rx495_rep) = rx495_cur."!mark_commit"($I505)
-  rxquantr504_done:
-    goto alt502_end
-  alt502_2:
+    rx497_pos = $P10."pos"()
+    (rx497_rep) = rx497_cur."!mark_commit"($I507)
+  rxquantr506_done:
+    goto alt504_end
+  alt504_2:
 .annotate 'line', 244
   # rx subrule "circumfix" subtype=capture negate=
-    rx495_cur."!cursor_pos"(rx495_pos)
-    $P10 = rx495_cur."circumfix"()
-    unless $P10, rx495_fail
-    rx495_cur."!mark_push"(0, -1, 0, $P10)
+    rx497_cur."!cursor_pos"(rx497_pos)
+    $P10 = rx497_cur."circumfix"()
+    unless $P10, rx497_fail
+    rx497_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("circumfix")
-    rx495_pos = $P10."pos"()
-  alt502_end:
+    rx497_pos = $P10."pos"()
+  alt504_end:
 .annotate 'line', 239
   # rx pass
-    rx495_cur."!cursor_pass"(rx495_pos, "colonpair")
-    rx495_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx495_pos)
-    .return (rx495_cur)
-  rx495_fail:
+    rx497_cur."!cursor_pass"(rx497_pos, "colonpair")
+    rx497_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx497_pos)
+    .return (rx497_cur)
+  rx497_fail:
 .annotate 'line', 4
-    (rx495_rep, rx495_pos, $I10, $P10) = rx495_cur."!mark_fail"(0)
-    lt rx495_pos, -1, rx495_done
-    eq rx495_pos, -1, rx495_fail
+    (rx497_rep, rx497_pos, $I10, $P10) = rx497_cur."!mark_fail"(0)
+    lt rx497_pos, -1, rx497_done
+    eq rx497_pos, -1, rx497_fail
     jump $I10
-  rx495_done:
-    rx495_cur."!cursor_fail"()
-    rx495_cur."!cursor_debug"("FAIL  ", "colonpair")
-    .return (rx495_cur)
+  rx497_done:
+    rx497_cur."!cursor_fail"()
+    rx497_cur."!cursor_debug"("FAIL  ", "colonpair")
+    .return (rx497_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("121_1275811487.95429") :method
+.sub "!PREFIX__colonpair"  :subid("121_1277356913.9538") :method
 .annotate 'line', 4
-    $P497 = self."!PREFIX__!subrule"("circumfix", ":")
-    $P498 = self."!PREFIX__!subrule"("identifier", ":")
-    $P499 = self."!PREFIX__!subrule"("identifier", ":!")
-    new $P500, "ResizablePMCArray"
-    push $P500, $P497
-    push $P500, $P498
-    push $P500, $P499
-    .return ($P500)
+    $P499 = self."!PREFIX__!subrule"("circumfix", ":")
+    $P500 = self."!PREFIX__!subrule"("identifier", ":")
+    $P501 = self."!PREFIX__!subrule"("identifier", ":!")
+    new $P502, "ResizablePMCArray"
+    push $P502, $P499
+    push $P502, $P500
+    push $P502, $P501
+    .return ($P502)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("122_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "variable"  :subid("122_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx507_tgt
-    .local int rx507_pos
-    .local int rx507_off
-    .local int rx507_eos
-    .local int rx507_rep
-    .local pmc rx507_cur
-    (rx507_cur, rx507_pos, rx507_tgt) = self."!cursor_start"()
-    rx507_cur."!cursor_debug"("START ", "variable")
-    rx507_cur."!cursor_caparray"("twigil")
-    .lex unicode:"$\x{a2}", rx507_cur
+    .local string rx509_tgt
+    .local int rx509_pos
+    .local int rx509_off
+    .local int rx509_eos
+    .local int rx509_rep
+    .local pmc rx509_cur
+    (rx509_cur, rx509_pos, rx509_tgt) = self."!cursor_start"()
+    rx509_cur."!cursor_debug"("START ", "variable")
+    rx509_cur."!cursor_caparray"("twigil")
+    .lex unicode:"$\x{a2}", rx509_cur
     .local pmc match
     .lex "$/", match
-    length rx507_eos, rx507_tgt
-    gt rx507_pos, rx507_eos, rx507_done
-    set rx507_off, 0
-    lt rx507_pos, 2, rx507_start
-    sub rx507_off, rx507_pos, 1
-    substr rx507_tgt, rx507_tgt, rx507_off
-  rx507_start:
+    length rx509_eos, rx509_tgt
+    gt rx509_pos, rx509_eos, rx509_done
+    set rx509_off, 0
+    lt rx509_pos, 2, rx509_start
+    sub rx509_off, rx509_pos, 1
+    substr rx509_tgt, rx509_tgt, rx509_off
+  rx509_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan512_done
-    goto rxscan512_scan
-  rxscan512_loop:
-    ($P10) = rx507_cur."from"()
+    ne $I10, -1, rxscan514_done
+    goto rxscan514_scan
+  rxscan514_loop:
+    ($P10) = rx509_cur."from"()
     inc $P10
-    set rx507_pos, $P10
-    ge rx507_pos, rx507_eos, rxscan512_done
-  rxscan512_scan:
-    set_addr $I10, rxscan512_loop
-    rx507_cur."!mark_push"(0, rx507_pos, $I10)
-  rxscan512_done:
-  alt513_0:
+    set rx509_pos, $P10
+    ge rx509_pos, rx509_eos, rxscan514_done
+  rxscan514_scan:
+    set_addr $I10, rxscan514_loop
+    rx509_cur."!mark_push"(0, rx509_pos, $I10)
+  rxscan514_done:
+  alt515_0:
 .annotate 'line', 248
-    set_addr $I10, alt513_1
-    rx507_cur."!mark_push"(0, rx507_pos, $I10)
+    set_addr $I10, alt515_1
+    rx509_cur."!mark_push"(0, rx509_pos, $I10)
 .annotate 'line', 249
   # rx subrule "sigil" subtype=capture negate=
-    rx507_cur."!cursor_pos"(rx507_pos)
-    $P10 = rx507_cur."sigil"()
-    unless $P10, rx507_fail
-    rx507_cur."!mark_push"(0, -1, 0, $P10)
+    rx509_cur."!cursor_pos"(rx509_pos)
+    $P10 = rx509_cur."sigil"()
+    unless $P10, rx509_fail
+    rx509_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx507_pos = $P10."pos"()
-  # rx rxquantr514 ** 0..1
-    set_addr $I515, rxquantr514_done
-    rx507_cur."!mark_push"(0, rx507_pos, $I515)
-  rxquantr514_loop:
+    rx509_pos = $P10."pos"()
+  # rx rxquantr516 ** 0..1
+    set_addr $I517, rxquantr516_done
+    rx509_cur."!mark_push"(0, rx509_pos, $I517)
+  rxquantr516_loop:
   # rx subrule "twigil" subtype=capture negate=
-    rx507_cur."!cursor_pos"(rx507_pos)
-    $P10 = rx507_cur."twigil"()
-    unless $P10, rx507_fail
-    rx507_cur."!mark_push"(0, -1, 0, $P10)
+    rx509_cur."!cursor_pos"(rx509_pos)
+    $P10 = rx509_cur."twigil"()
+    unless $P10, rx509_fail
+    rx509_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("twigil")
-    rx507_pos = $P10."pos"()
-    (rx507_rep) = rx507_cur."!mark_commit"($I515)
-  rxquantr514_done:
+    rx509_pos = $P10."pos"()
+    (rx509_rep) = rx509_cur."!mark_commit"($I517)
+  rxquantr516_done:
   # rx subrule "name" subtype=capture negate=
-    rx507_cur."!cursor_pos"(rx507_pos)
-    $P10 = rx507_cur."name"()
-    unless $P10, rx507_fail
-    rx507_cur."!mark_push"(0, -1, 0, $P10)
+    rx509_cur."!cursor_pos"(rx509_pos)
+    $P10 = rx509_cur."name"()
+    unless $P10, rx509_fail
+    rx509_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("desigilname")
-    rx507_pos = $P10."pos"()
-    goto alt513_end
-  alt513_1:
-    set_addr $I10, alt513_2
-    rx507_cur."!mark_push"(0, rx507_pos, $I10)
+    rx509_pos = $P10."pos"()
+    goto alt515_end
+  alt515_1:
+    set_addr $I10, alt515_2
+    rx509_cur."!mark_push"(0, rx509_pos, $I10)
 .annotate 'line', 250
   # rx subrule "sigil" subtype=capture negate=
-    rx507_cur."!cursor_pos"(rx507_pos)
-    $P10 = rx507_cur."sigil"()
-    unless $P10, rx507_fail
-    rx507_cur."!mark_push"(0, -1, 0, $P10)
+    rx509_cur."!cursor_pos"(rx509_pos)
+    $P10 = rx509_cur."sigil"()
+    unless $P10, rx509_fail
+    rx509_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx507_pos = $P10."pos"()
+    rx509_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx507_pos, rx507_eos, rx507_fail
-    sub $I10, rx507_pos, rx507_off
-    substr $S10, rx507_tgt, $I10, 1
+    ge rx509_pos, rx509_eos, rx509_fail
+    sub $I10, rx509_pos, rx509_off
+    substr $S10, rx509_tgt, $I10, 1
     index $I11, "<[", $S10
-    lt $I11, 0, rx507_fail
+    lt $I11, 0, rx509_fail
   # rx subrule "postcircumfix" subtype=capture negate=
-    rx507_cur."!cursor_pos"(rx507_pos)
-    $P10 = rx507_cur."postcircumfix"()
-    unless $P10, rx507_fail
-    rx507_cur."!mark_push"(0, -1, 0, $P10)
+    rx509_cur."!cursor_pos"(rx509_pos)
+    $P10 = rx509_cur."postcircumfix"()
+    unless $P10, rx509_fail
+    rx509_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("postcircumfix")
-    rx507_pos = $P10."pos"()
-    goto alt513_end
-  alt513_2:
+    rx509_pos = $P10."pos"()
+    goto alt515_end
+  alt515_2:
 .annotate 'line', 251
   # rx subcapture "sigil"
-    set_addr $I10, rxcap_516_fail
-    rx507_cur."!mark_push"(0, rx507_pos, $I10)
+    set_addr $I10, rxcap_518_fail
+    rx509_cur."!mark_push"(0, rx509_pos, $I10)
   # rx literal  "$"
-    add $I11, rx507_pos, 1
-    gt $I11, rx507_eos, rx507_fail
-    sub $I11, rx507_pos, rx507_off
-    substr $S10, rx507_tgt, $I11, 1
-    ne $S10, "$", rx507_fail
-    add rx507_pos, 1
-    set_addr $I10, rxcap_516_fail
-    ($I12, $I11) = rx507_cur."!mark_peek"($I10)
-    rx507_cur."!cursor_pos"($I11)
-    ($P10) = rx507_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx507_pos, "")
-    rx507_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx509_pos, 1
+    gt $I11, rx509_eos, rx509_fail
+    sub $I11, rx509_pos, rx509_off
+    substr $S10, rx509_tgt, $I11, 1
+    ne $S10, "$", rx509_fail
+    add rx509_pos, 1
+    set_addr $I10, rxcap_518_fail
+    ($I12, $I11) = rx509_cur."!mark_peek"($I10)
+    rx509_cur."!cursor_pos"($I11)
+    ($P10) = rx509_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx509_pos, "")
+    rx509_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    goto rxcap_516_done
-  rxcap_516_fail:
-    goto rx507_fail
-  rxcap_516_done:
+    goto rxcap_518_done
+  rxcap_518_fail:
+    goto rx509_fail
+  rxcap_518_done:
   # rx subcapture "desigilname"
-    set_addr $I10, rxcap_517_fail
-    rx507_cur."!mark_push"(0, rx507_pos, $I10)
+    set_addr $I10, rxcap_519_fail
+    rx509_cur."!mark_push"(0, rx509_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx507_pos, rx507_eos, rx507_fail
-    sub $I10, rx507_pos, rx507_off
-    substr $S10, rx507_tgt, $I10, 1
+    ge rx509_pos, rx509_eos, rx509_fail
+    sub $I10, rx509_pos, rx509_off
+    substr $S10, rx509_tgt, $I10, 1
     index $I11, "/_!", $S10
-    lt $I11, 0, rx507_fail
-    inc rx507_pos
-    set_addr $I10, rxcap_517_fail
-    ($I12, $I11) = rx507_cur."!mark_peek"($I10)
-    rx507_cur."!cursor_pos"($I11)
-    ($P10) = rx507_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx507_pos, "")
-    rx507_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx509_fail
+    inc rx509_pos
+    set_addr $I10, rxcap_519_fail
+    ($I12, $I11) = rx509_cur."!mark_peek"($I10)
+    rx509_cur."!cursor_pos"($I11)
+    ($P10) = rx509_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx509_pos, "")
+    rx509_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("desigilname")
-    goto rxcap_517_done
-  rxcap_517_fail:
-    goto rx507_fail
-  rxcap_517_done:
-  alt513_end:
+    goto rxcap_519_done
+  rxcap_519_fail:
+    goto rx509_fail
+  rxcap_519_done:
+  alt515_end:
 .annotate 'line', 248
   # rx pass
-    rx507_cur."!cursor_pass"(rx507_pos, "variable")
-    rx507_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx507_pos)
-    .return (rx507_cur)
-  rx507_fail:
+    rx509_cur."!cursor_pass"(rx509_pos, "variable")
+    rx509_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx509_pos)
+    .return (rx509_cur)
+  rx509_fail:
 .annotate 'line', 4
-    (rx507_rep, rx507_pos, $I10, $P10) = rx507_cur."!mark_fail"(0)
-    lt rx507_pos, -1, rx507_done
-    eq rx507_pos, -1, rx507_fail
+    (rx509_rep, rx509_pos, $I10, $P10) = rx509_cur."!mark_fail"(0)
+    lt rx509_pos, -1, rx509_done
+    eq rx509_pos, -1, rx509_fail
     jump $I10
-  rx507_done:
-    rx507_cur."!cursor_fail"()
-    rx507_cur."!cursor_debug"("FAIL  ", "variable")
-    .return (rx507_cur)
+  rx509_done:
+    rx509_cur."!cursor_fail"()
+    rx509_cur."!cursor_debug"("FAIL  ", "variable")
+    .return (rx509_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("123_1275811487.95429") :method
+.sub "!PREFIX__variable"  :subid("123_1277356913.9538") :method
 .annotate 'line', 4
-    $P509 = self."!PREFIX__!subrule"("sigil", "")
-    $P510 = self."!PREFIX__!subrule"("sigil", "")
-    new $P511, "ResizablePMCArray"
-    push $P511, "$!"
-    push $P511, "$_"
-    push $P511, "$/"
-    push $P511, $P509
-    push $P511, $P510
-    .return ($P511)
+    $P511 = self."!PREFIX__!subrule"("sigil", "")
+    $P512 = self."!PREFIX__!subrule"("sigil", "")
+    new $P513, "ResizablePMCArray"
+    push $P513, "$!"
+    push $P513, "$_"
+    push $P513, "$/"
+    push $P513, $P511
+    push $P513, $P512
+    .return ($P513)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("124_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "sigil"  :subid("124_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx519_tgt
-    .local int rx519_pos
-    .local int rx519_off
-    .local int rx519_eos
-    .local int rx519_rep
-    .local pmc rx519_cur
-    (rx519_cur, rx519_pos, rx519_tgt) = self."!cursor_start"()
-    rx519_cur."!cursor_debug"("START ", "sigil")
-    .lex unicode:"$\x{a2}", rx519_cur
-    .local pmc match
-    .lex "$/", match
-    length rx519_eos, rx519_tgt
-    gt rx519_pos, rx519_eos, rx519_done
-    set rx519_off, 0
-    lt rx519_pos, 2, rx519_start
-    sub rx519_off, rx519_pos, 1
-    substr rx519_tgt, rx519_tgt, rx519_off
-  rx519_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan522_done
-    goto rxscan522_scan
-  rxscan522_loop:
-    ($P10) = rx519_cur."from"()
-    inc $P10
-    set rx519_pos, $P10
-    ge rx519_pos, rx519_eos, rxscan522_done
-  rxscan522_scan:
-    set_addr $I10, rxscan522_loop
-    rx519_cur."!mark_push"(0, rx519_pos, $I10)
-  rxscan522_done:
+    .local string rx521_tgt
+    .local int rx521_pos
+    .local int rx521_off
+    .local int rx521_eos
+    .local int rx521_rep
+    .local pmc rx521_cur
+    (rx521_cur, rx521_pos, rx521_tgt) = self."!cursor_start"()
+    rx521_cur."!cursor_debug"("START ", "sigil")
+    .lex unicode:"$\x{a2}", rx521_cur
+    .local pmc match
+    .lex "$/", match
+    length rx521_eos, rx521_tgt
+    gt rx521_pos, rx521_eos, rx521_done
+    set rx521_off, 0
+    lt rx521_pos, 2, rx521_start
+    sub rx521_off, rx521_pos, 1
+    substr rx521_tgt, rx521_tgt, rx521_off
+  rx521_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan524_done
+    goto rxscan524_scan
+  rxscan524_loop:
+    ($P10) = rx521_cur."from"()
+    inc $P10
+    set rx521_pos, $P10
+    ge rx521_pos, rx521_eos, rxscan524_done
+  rxscan524_scan:
+    set_addr $I10, rxscan524_loop
+    rx521_cur."!mark_push"(0, rx521_pos, $I10)
+  rxscan524_done:
 .annotate 'line', 254
   # rx enumcharlist negate=0 
-    ge rx519_pos, rx519_eos, rx519_fail
-    sub $I10, rx519_pos, rx519_off
-    substr $S10, rx519_tgt, $I10, 1
+    ge rx521_pos, rx521_eos, rx521_fail
+    sub $I10, rx521_pos, rx521_off
+    substr $S10, rx521_tgt, $I10, 1
     index $I11, "$@%&", $S10
-    lt $I11, 0, rx519_fail
-    inc rx519_pos
+    lt $I11, 0, rx521_fail
+    inc rx521_pos
   # rx pass
-    rx519_cur."!cursor_pass"(rx519_pos, "sigil")
-    rx519_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx519_pos)
-    .return (rx519_cur)
-  rx519_fail:
+    rx521_cur."!cursor_pass"(rx521_pos, "sigil")
+    rx521_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx521_pos)
+    .return (rx521_cur)
+  rx521_fail:
 .annotate 'line', 4
-    (rx519_rep, rx519_pos, $I10, $P10) = rx519_cur."!mark_fail"(0)
-    lt rx519_pos, -1, rx519_done
-    eq rx519_pos, -1, rx519_fail
+    (rx521_rep, rx521_pos, $I10, $P10) = rx521_cur."!mark_fail"(0)
+    lt rx521_pos, -1, rx521_done
+    eq rx521_pos, -1, rx521_fail
     jump $I10
-  rx519_done:
-    rx519_cur."!cursor_fail"()
-    rx519_cur."!cursor_debug"("FAIL  ", "sigil")
-    .return (rx519_cur)
+  rx521_done:
+    rx521_cur."!cursor_fail"()
+    rx521_cur."!cursor_debug"("FAIL  ", "sigil")
+    .return (rx521_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("125_1275811487.95429") :method
+.sub "!PREFIX__sigil"  :subid("125_1277356913.9538") :method
 .annotate 'line', 4
-    new $P521, "ResizablePMCArray"
-    push $P521, "&"
-    push $P521, "%"
-    push $P521, "@"
-    push $P521, "$"
-    .return ($P521)
+    new $P523, "ResizablePMCArray"
+    push $P523, "&"
+    push $P523, "%"
+    push $P523, "@"
+    push $P523, "$"
+    .return ($P523)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("126_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "twigil"  :subid("126_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx524_tgt
-    .local int rx524_pos
-    .local int rx524_off
-    .local int rx524_eos
-    .local int rx524_rep
-    .local pmc rx524_cur
-    (rx524_cur, rx524_pos, rx524_tgt) = self."!cursor_start"()
-    rx524_cur."!cursor_debug"("START ", "twigil")
-    .lex unicode:"$\x{a2}", rx524_cur
+    .local string rx526_tgt
+    .local int rx526_pos
+    .local int rx526_off
+    .local int rx526_eos
+    .local int rx526_rep
+    .local pmc rx526_cur
+    (rx526_cur, rx526_pos, rx526_tgt) = self."!cursor_start"()
+    rx526_cur."!cursor_debug"("START ", "twigil")
+    .lex unicode:"$\x{a2}", rx526_cur
     .local pmc match
     .lex "$/", match
-    length rx524_eos, rx524_tgt
-    gt rx524_pos, rx524_eos, rx524_done
-    set rx524_off, 0
-    lt rx524_pos, 2, rx524_start
-    sub rx524_off, rx524_pos, 1
-    substr rx524_tgt, rx524_tgt, rx524_off
-  rx524_start:
+    length rx526_eos, rx526_tgt
+    gt rx526_pos, rx526_eos, rx526_done
+    set rx526_off, 0
+    lt rx526_pos, 2, rx526_start
+    sub rx526_off, rx526_pos, 1
+    substr rx526_tgt, rx526_tgt, rx526_off
+  rx526_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan527_done
-    goto rxscan527_scan
-  rxscan527_loop:
-    ($P10) = rx524_cur."from"()
+    ne $I10, -1, rxscan529_done
+    goto rxscan529_scan
+  rxscan529_loop:
+    ($P10) = rx526_cur."from"()
     inc $P10
-    set rx524_pos, $P10
-    ge rx524_pos, rx524_eos, rxscan527_done
-  rxscan527_scan:
-    set_addr $I10, rxscan527_loop
-    rx524_cur."!mark_push"(0, rx524_pos, $I10)
-  rxscan527_done:
+    set rx526_pos, $P10
+    ge rx526_pos, rx526_eos, rxscan529_done
+  rxscan529_scan:
+    set_addr $I10, rxscan529_loop
+    rx526_cur."!mark_push"(0, rx526_pos, $I10)
+  rxscan529_done:
 .annotate 'line', 256
   # rx enumcharlist negate=0 
-    ge rx524_pos, rx524_eos, rx524_fail
-    sub $I10, rx524_pos, rx524_off
-    substr $S10, rx524_tgt, $I10, 1
+    ge rx526_pos, rx526_eos, rx526_fail
+    sub $I10, rx526_pos, rx526_off
+    substr $S10, rx526_tgt, $I10, 1
     index $I11, "*!?", $S10
-    lt $I11, 0, rx524_fail
-    inc rx524_pos
+    lt $I11, 0, rx526_fail
+    inc rx526_pos
   # rx pass
-    rx524_cur."!cursor_pass"(rx524_pos, "twigil")
-    rx524_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx524_pos)
-    .return (rx524_cur)
-  rx524_fail:
+    rx526_cur."!cursor_pass"(rx526_pos, "twigil")
+    rx526_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx526_pos)
+    .return (rx526_cur)
+  rx526_fail:
 .annotate 'line', 4
-    (rx524_rep, rx524_pos, $I10, $P10) = rx524_cur."!mark_fail"(0)
-    lt rx524_pos, -1, rx524_done
-    eq rx524_pos, -1, rx524_fail
+    (rx526_rep, rx526_pos, $I10, $P10) = rx526_cur."!mark_fail"(0)
+    lt rx526_pos, -1, rx526_done
+    eq rx526_pos, -1, rx526_fail
     jump $I10
-  rx524_done:
-    rx524_cur."!cursor_fail"()
-    rx524_cur."!cursor_debug"("FAIL  ", "twigil")
-    .return (rx524_cur)
+  rx526_done:
+    rx526_cur."!cursor_fail"()
+    rx526_cur."!cursor_debug"("FAIL  ", "twigil")
+    .return (rx526_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("127_1275811487.95429") :method
+.sub "!PREFIX__twigil"  :subid("127_1277356913.9538") :method
 .annotate 'line', 4
-    new $P526, "ResizablePMCArray"
-    push $P526, "?"
-    push $P526, "!"
-    push $P526, "*"
-    .return ($P526)
+    new $P528, "ResizablePMCArray"
+    push $P528, "?"
+    push $P528, "!"
+    push $P528, "*"
+    .return ($P528)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("128_1275811487.95429") :method
+.sub "package_declarator"  :subid("128_1277356913.9538") :method
 .annotate 'line', 258
-    $P529 = self."!protoregex"("package_declarator")
-    .return ($P529)
+    $P531 = self."!protoregex"("package_declarator")
+    .return ($P531)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("129_1275811487.95429") :method
+.sub "!PREFIX__package_declarator"  :subid("129_1277356913.9538") :method
 .annotate 'line', 258
-    $P531 = self."!PREFIX__!protoregex"("package_declarator")
-    .return ($P531)
+    $P533 = self."!PREFIX__!protoregex"("package_declarator")
+    .return ($P533)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("130_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "package_declarator:sym<module>"  :subid("130_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx533_tgt
-    .local int rx533_pos
-    .local int rx533_off
-    .local int rx533_eos
-    .local int rx533_rep
-    .local pmc rx533_cur
-    (rx533_cur, rx533_pos, rx533_tgt) = self."!cursor_start"()
-    rx533_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
-    .lex unicode:"$\x{a2}", rx533_cur
-    .local pmc match
-    .lex "$/", match
-    length rx533_eos, rx533_tgt
-    gt rx533_pos, rx533_eos, rx533_done
-    set rx533_off, 0
-    lt rx533_pos, 2, rx533_start
-    sub rx533_off, rx533_pos, 1
-    substr rx533_tgt, rx533_tgt, rx533_off
-  rx533_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan537_done
-    goto rxscan537_scan
-  rxscan537_loop:
-    ($P10) = rx533_cur."from"()
-    inc $P10
-    set rx533_pos, $P10
-    ge rx533_pos, rx533_eos, rxscan537_done
-  rxscan537_scan:
-    set_addr $I10, rxscan537_loop
-    rx533_cur."!mark_push"(0, rx533_pos, $I10)
-  rxscan537_done:
+    .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 ", "package_declarator:sym<module>")
+    .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, rxscan539_done
+    goto rxscan539_scan
+  rxscan539_loop:
+    ($P10) = rx535_cur."from"()
+    inc $P10
+    set rx535_pos, $P10
+    ge rx535_pos, rx535_eos, rxscan539_done
+  rxscan539_scan:
+    set_addr $I10, rxscan539_loop
+    rx535_cur."!mark_push"(0, rx535_pos, $I10)
+  rxscan539_done:
 .annotate 'line', 259
   # rx subcapture "sym"
-    set_addr $I10, rxcap_538_fail
-    rx533_cur."!mark_push"(0, rx533_pos, $I10)
+    set_addr $I10, rxcap_540_fail
+    rx535_cur."!mark_push"(0, rx535_pos, $I10)
   # rx literal  "module"
-    add $I11, rx533_pos, 6
-    gt $I11, rx533_eos, rx533_fail
-    sub $I11, rx533_pos, rx533_off
-    substr $S10, rx533_tgt, $I11, 6
-    ne $S10, "module", rx533_fail
-    add rx533_pos, 6
-    set_addr $I10, rxcap_538_fail
-    ($I12, $I11) = rx533_cur."!mark_peek"($I10)
-    rx533_cur."!cursor_pos"($I11)
-    ($P10) = rx533_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx533_pos, "")
-    rx533_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx535_pos, 6
+    gt $I11, rx535_eos, rx535_fail
+    sub $I11, rx535_pos, rx535_off
+    substr $S10, rx535_tgt, $I11, 6
+    ne $S10, "module", rx535_fail
+    add rx535_pos, 6
+    set_addr $I10, rxcap_540_fail
+    ($I12, $I11) = rx535_cur."!mark_peek"($I10)
+    rx535_cur."!cursor_pos"($I11)
+    ($P10) = rx535_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx535_pos, "")
+    rx535_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_538_done
-  rxcap_538_fail:
-    goto rx533_fail
-  rxcap_538_done:
+    goto rxcap_540_done
+  rxcap_540_fail:
+    goto rx535_fail
+  rxcap_540_done:
   # rx subrule "package_def" subtype=capture negate=
-    rx533_cur."!cursor_pos"(rx533_pos)
-    $P10 = rx533_cur."package_def"()
-    unless $P10, rx533_fail
-    rx533_cur."!mark_push"(0, -1, 0, $P10)
+    rx535_cur."!cursor_pos"(rx535_pos)
+    $P10 = rx535_cur."package_def"()
+    unless $P10, rx535_fail
+    rx535_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_def")
-    rx533_pos = $P10."pos"()
+    rx535_pos = $P10."pos"()
   # rx pass
-    rx533_cur."!cursor_pass"(rx533_pos, "package_declarator:sym<module>")
-    rx533_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx533_pos)
-    .return (rx533_cur)
-  rx533_fail:
+    rx535_cur."!cursor_pass"(rx535_pos, "package_declarator:sym<module>")
+    rx535_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx535_pos)
+    .return (rx535_cur)
+  rx535_fail:
 .annotate 'line', 4
-    (rx533_rep, rx533_pos, $I10, $P10) = rx533_cur."!mark_fail"(0)
-    lt rx533_pos, -1, rx533_done
-    eq rx533_pos, -1, rx533_fail
+    (rx535_rep, rx535_pos, $I10, $P10) = rx535_cur."!mark_fail"(0)
+    lt rx535_pos, -1, rx535_done
+    eq rx535_pos, -1, rx535_fail
     jump $I10
-  rx533_done:
-    rx533_cur."!cursor_fail"()
-    rx533_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
-    .return (rx533_cur)
+  rx535_done:
+    rx535_cur."!cursor_fail"()
+    rx535_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
+    .return (rx535_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("131_1275811487.95429") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("131_1277356913.9538") :method
 .annotate 'line', 4
-    $P535 = self."!PREFIX__!subrule"("package_def", "module")
-    new $P536, "ResizablePMCArray"
-    push $P536, $P535
-    .return ($P536)
+    $P537 = self."!PREFIX__!subrule"("package_def", "module")
+    new $P538, "ResizablePMCArray"
+    push $P538, $P537
+    .return ($P538)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("132_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "package_declarator:sym<class>"  :subid("132_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx540_tgt
-    .local int rx540_pos
-    .local int rx540_off
-    .local int rx540_eos
-    .local int rx540_rep
-    .local pmc rx540_cur
-    (rx540_cur, rx540_pos, rx540_tgt) = self."!cursor_start"()
-    rx540_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
-    .lex unicode:"$\x{a2}", rx540_cur
+    .local string rx542_tgt
+    .local int rx542_pos
+    .local int rx542_off
+    .local int rx542_eos
+    .local int rx542_rep
+    .local pmc rx542_cur
+    (rx542_cur, rx542_pos, rx542_tgt) = self."!cursor_start"()
+    rx542_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
+    .lex unicode:"$\x{a2}", rx542_cur
     .local pmc match
     .lex "$/", match
-    length rx540_eos, rx540_tgt
-    gt rx540_pos, rx540_eos, rx540_done
-    set rx540_off, 0
-    lt rx540_pos, 2, rx540_start
-    sub rx540_off, rx540_pos, 1
-    substr rx540_tgt, rx540_tgt, rx540_off
-  rx540_start:
+    length rx542_eos, rx542_tgt
+    gt rx542_pos, rx542_eos, rx542_done
+    set rx542_off, 0
+    lt rx542_pos, 2, rx542_start
+    sub rx542_off, rx542_pos, 1
+    substr rx542_tgt, rx542_tgt, rx542_off
+  rx542_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan545_done
-    goto rxscan545_scan
-  rxscan545_loop:
-    ($P10) = rx540_cur."from"()
+    ne $I10, -1, rxscan547_done
+    goto rxscan547_scan
+  rxscan547_loop:
+    ($P10) = rx542_cur."from"()
     inc $P10
-    set rx540_pos, $P10
-    ge rx540_pos, rx540_eos, rxscan545_done
-  rxscan545_scan:
-    set_addr $I10, rxscan545_loop
-    rx540_cur."!mark_push"(0, rx540_pos, $I10)
-  rxscan545_done:
+    set rx542_pos, $P10
+    ge rx542_pos, rx542_eos, rxscan547_done
+  rxscan547_scan:
+    set_addr $I10, rxscan547_loop
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
+  rxscan547_done:
 .annotate 'line', 260
   # rx subcapture "sym"
-    set_addr $I10, rxcap_547_fail
-    rx540_cur."!mark_push"(0, rx540_pos, $I10)
-  alt546_0:
-    set_addr $I10, alt546_1
-    rx540_cur."!mark_push"(0, rx540_pos, $I10)
+    set_addr $I10, rxcap_549_fail
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
+  alt548_0:
+    set_addr $I10, alt548_1
+    rx542_cur."!mark_push"(0, rx542_pos, $I10)
   # rx literal  "class"
-    add $I11, rx540_pos, 5
-    gt $I11, rx540_eos, rx540_fail
-    sub $I11, rx540_pos, rx540_off
-    substr $S10, rx540_tgt, $I11, 5
-    ne $S10, "class", rx540_fail
-    add rx540_pos, 5
-    goto alt546_end
-  alt546_1:
+    add $I11, rx542_pos, 5
+    gt $I11, rx542_eos, rx542_fail
+    sub $I11, rx542_pos, rx542_off
+    substr $S10, rx542_tgt, $I11, 5
+    ne $S10, "class", rx542_fail
+    add rx542_pos, 5
+    goto alt548_end
+  alt548_1:
   # rx literal  "grammar"
-    add $I11, rx540_pos, 7
-    gt $I11, rx540_eos, rx540_fail
-    sub $I11, rx540_pos, rx540_off
-    substr $S10, rx540_tgt, $I11, 7
-    ne $S10, "grammar", rx540_fail
-    add rx540_pos, 7
-  alt546_end:
-    set_addr $I10, rxcap_547_fail
-    ($I12, $I11) = rx540_cur."!mark_peek"($I10)
-    rx540_cur."!cursor_pos"($I11)
-    ($P10) = rx540_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx540_pos, "")
-    rx540_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx542_pos, 7
+    gt $I11, rx542_eos, rx542_fail
+    sub $I11, rx542_pos, rx542_off
+    substr $S10, rx542_tgt, $I11, 7
+    ne $S10, "grammar", rx542_fail
+    add rx542_pos, 7
+  alt548_end:
+    set_addr $I10, rxcap_549_fail
+    ($I12, $I11) = rx542_cur."!mark_peek"($I10)
+    rx542_cur."!cursor_pos"($I11)
+    ($P10) = rx542_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx542_pos, "")
+    rx542_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_547_done
-  rxcap_547_fail:
-    goto rx540_fail
-  rxcap_547_done:
+    goto rxcap_549_done
+  rxcap_549_fail:
+    goto rx542_fail
+  rxcap_549_done:
   # rx subrule "package_def" subtype=capture negate=
-    rx540_cur."!cursor_pos"(rx540_pos)
-    $P10 = rx540_cur."package_def"()
-    unless $P10, rx540_fail
-    rx540_cur."!mark_push"(0, -1, 0, $P10)
+    rx542_cur."!cursor_pos"(rx542_pos)
+    $P10 = rx542_cur."package_def"()
+    unless $P10, rx542_fail
+    rx542_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("package_def")
-    rx540_pos = $P10."pos"()
+    rx542_pos = $P10."pos"()
   # rx pass
-    rx540_cur."!cursor_pass"(rx540_pos, "package_declarator:sym<class>")
-    rx540_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx540_pos)
-    .return (rx540_cur)
-  rx540_fail:
+    rx542_cur."!cursor_pass"(rx542_pos, "package_declarator:sym<class>")
+    rx542_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx542_pos)
+    .return (rx542_cur)
+  rx542_fail:
 .annotate 'line', 4
-    (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
-    lt rx540_pos, -1, rx540_done
-    eq rx540_pos, -1, rx540_fail
+    (rx542_rep, rx542_pos, $I10, $P10) = rx542_cur."!mark_fail"(0)
+    lt rx542_pos, -1, rx542_done
+    eq rx542_pos, -1, rx542_fail
     jump $I10
-  rx540_done:
-    rx540_cur."!cursor_fail"()
-    rx540_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
-    .return (rx540_cur)
+  rx542_done:
+    rx542_cur."!cursor_fail"()
+    rx542_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
+    .return (rx542_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("133_1275811487.95429") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("133_1277356913.9538") :method
 .annotate 'line', 4
-    $P542 = self."!PREFIX__!subrule"("package_def", "grammar")
-    $P543 = self."!PREFIX__!subrule"("package_def", "class")
-    new $P544, "ResizablePMCArray"
-    push $P544, $P542
-    push $P544, $P543
-    .return ($P544)
+    $P544 = self."!PREFIX__!subrule"("package_def", "grammar")
+    $P545 = self."!PREFIX__!subrule"("package_def", "class")
+    new $P546, "ResizablePMCArray"
+    push $P546, $P544
+    push $P546, $P545
+    .return ($P546)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("134_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "package_def"  :subid("134_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx549_tgt
-    .local int rx549_pos
-    .local int rx549_off
-    .local int rx549_eos
-    .local int rx549_rep
-    .local pmc rx549_cur
-    (rx549_cur, rx549_pos, rx549_tgt) = self."!cursor_start"()
-    rx549_cur."!cursor_debug"("START ", "package_def")
-    rx549_cur."!cursor_caparray"("parent")
-    .lex unicode:"$\x{a2}", rx549_cur
-    .local pmc match
-    .lex "$/", match
-    length rx549_eos, rx549_tgt
-    gt rx549_pos, rx549_eos, rx549_done
-    set rx549_off, 0
-    lt rx549_pos, 2, rx549_start
-    sub rx549_off, rx549_pos, 1
-    substr rx549_tgt, rx549_tgt, rx549_off
-  rx549_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan553_done
-    goto rxscan553_scan
-  rxscan553_loop:
-    ($P10) = rx549_cur."from"()
-    inc $P10
-    set rx549_pos, $P10
-    ge rx549_pos, rx549_eos, rxscan553_done
-  rxscan553_scan:
-    set_addr $I10, rxscan553_loop
-    rx549_cur."!mark_push"(0, rx549_pos, $I10)
-  rxscan553_done:
+    .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_def")
+    rx551_cur."!cursor_caparray"("parent")
+    .lex unicode:"$\x{a2}", rx551_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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan555_done
+    goto rxscan555_scan
+  rxscan555_loop:
+    ($P10) = rx551_cur."from"()
+    inc $P10
+    set rx551_pos, $P10
+    ge rx551_pos, rx551_eos, rxscan555_done
+  rxscan555_scan:
+    set_addr $I10, rxscan555_loop
+    rx551_cur."!mark_push"(0, rx551_pos, $I10)
+  rxscan555_done:
 .annotate 'line', 262
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
 .annotate 'line', 263
   # rx subrule "name" subtype=capture negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."name"()
-    unless $P10, rx549_fail
-    rx549_cur."!mark_push"(0, -1, 0, $P10)
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."name"()
+    unless $P10, rx551_fail
+    rx551_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx549_pos = $P10."pos"()
+    rx551_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
 .annotate 'line', 264
-  # rx rxquantr556 ** 0..1
-    set_addr $I560, rxquantr556_done
-    rx549_cur."!mark_push"(0, rx549_pos, $I560)
-  rxquantr556_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+  # rx rxquantr558 ** 0..1
+    set_addr $I562, rxquantr558_done
+    rx551_cur."!mark_push"(0, rx551_pos, $I562)
+  rxquantr558_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
   # rx literal  "is"
-    add $I11, rx549_pos, 2
-    gt $I11, rx549_eos, rx549_fail
-    sub $I11, rx549_pos, rx549_off
-    substr $S10, rx549_tgt, $I11, 2
-    ne $S10, "is", rx549_fail
-    add rx549_pos, 2
-  # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+    add $I11, rx551_pos, 2
+    gt $I11, rx551_eos, rx551_fail
+    sub $I11, rx551_pos, rx551_off
+    substr $S10, rx551_tgt, $I11, 2
+    ne $S10, "is", rx551_fail
+    add rx551_pos, 2
+  # rx subrule "ws" subtype=method negate=
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
   # rx subrule "name" subtype=capture negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."name"()
-    unless $P10, rx549_fail
-    rx549_cur."!mark_push"(0, -1, 0, $P10)
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."name"()
+    unless $P10, rx551_fail
+    rx551_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("parent")
-    rx549_pos = $P10."pos"()
+    rx551_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
-    (rx549_rep) = rx549_cur."!mark_commit"($I560)
-  rxquantr556_done:
-  # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
-  alt562_0:
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
+    (rx551_rep) = rx551_cur."!mark_commit"($I562)
+  rxquantr558_done:
+  # rx subrule "ws" subtype=method negate=
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
+  alt564_0:
 .annotate 'line', 265
-    set_addr $I10, alt562_1
-    rx549_cur."!mark_push"(0, rx549_pos, $I10)
+    set_addr $I10, alt564_1
+    rx551_cur."!mark_push"(0, rx551_pos, $I10)
 .annotate 'line', 266
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
   # rx literal  ";"
-    add $I11, rx549_pos, 1
-    gt $I11, rx549_eos, rx549_fail
-    sub $I11, rx549_pos, rx549_off
-    substr $S10, rx549_tgt, $I11, 1
-    ne $S10, ";", rx549_fail
-    add rx549_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+    add $I11, rx551_pos, 1
+    gt $I11, rx551_eos, rx551_fail
+    sub $I11, rx551_pos, rx551_off
+    substr $S10, rx551_tgt, $I11, 1
+    ne $S10, ";", rx551_fail
+    add rx551_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
   # rx subrule "comp_unit" subtype=capture negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."comp_unit"()
-    unless $P10, rx549_fail
-    rx549_cur."!mark_push"(0, -1, 0, $P10)
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."comp_unit"()
+    unless $P10, rx551_fail
+    rx551_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("comp_unit")
-    rx549_pos = $P10."pos"()
+    rx551_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
-    goto alt562_end
-  alt562_1:
-    set_addr $I10, alt562_2
-    rx549_cur."!mark_push"(0, rx549_pos, $I10)
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
+    goto alt564_end
+  alt564_1:
+    set_addr $I10, alt564_2
+    rx551_cur."!mark_push"(0, rx551_pos, $I10)
 .annotate 'line', 267
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx549_pos, rx549_eos, rx549_fail
-    sub $I10, rx549_pos, rx549_off
-    substr $S10, rx549_tgt, $I10, 1
+    ge rx551_pos, rx551_eos, rx551_fail
+    sub $I10, rx551_pos, rx551_off
+    substr $S10, rx551_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx549_fail
+    lt $I11, 0, rx551_fail
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
   # rx subrule "block" subtype=capture negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."block"()
-    unless $P10, rx549_fail
-    rx549_cur."!mark_push"(0, -1, 0, $P10)
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."block"()
+    unless $P10, rx551_fail
+    rx551_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx549_pos = $P10."pos"()
+    rx551_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
-    goto alt562_end
-  alt562_2:
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
+    goto alt564_end
+  alt564_2:
 .annotate 'line', 268
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."panic"("Malformed package declaration")
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
-  alt562_end:
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."panic"("Malformed package declaration")
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
+  alt564_end:
 .annotate 'line', 269
   # rx subrule "ws" subtype=method negate=
-    rx549_cur."!cursor_pos"(rx549_pos)
-    $P10 = rx549_cur."ws"()
-    unless $P10, rx549_fail
-    rx549_pos = $P10."pos"()
+    rx551_cur."!cursor_pos"(rx551_pos)
+    $P10 = rx551_cur."ws"()
+    unless $P10, rx551_fail
+    rx551_pos = $P10."pos"()
 .annotate 'line', 262
   # rx pass
-    rx549_cur."!cursor_pass"(rx549_pos, "package_def")
-    rx549_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx549_pos)
-    .return (rx549_cur)
-  rx549_fail:
+    rx551_cur."!cursor_pass"(rx551_pos, "package_def")
+    rx551_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx551_pos)
+    .return (rx551_cur)
+  rx551_fail:
 .annotate 'line', 4
-    (rx549_rep, rx549_pos, $I10, $P10) = rx549_cur."!mark_fail"(0)
-    lt rx549_pos, -1, rx549_done
-    eq rx549_pos, -1, rx549_fail
+    (rx551_rep, rx551_pos, $I10, $P10) = rx551_cur."!mark_fail"(0)
+    lt rx551_pos, -1, rx551_done
+    eq rx551_pos, -1, rx551_fail
     jump $I10
-  rx549_done:
-    rx549_cur."!cursor_fail"()
-    rx549_cur."!cursor_debug"("FAIL  ", "package_def")
-    .return (rx549_cur)
+  rx551_done:
+    rx551_cur."!cursor_fail"()
+    rx551_cur."!cursor_debug"("FAIL  ", "package_def")
+    .return (rx551_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("135_1275811487.95429") :method
+.sub "!PREFIX__package_def"  :subid("135_1277356913.9538") :method
 .annotate 'line', 4
-    $P551 = self."!PREFIX__!subrule"("ws", "")
-    new $P552, "ResizablePMCArray"
-    push $P552, $P551
-    .return ($P552)
+    $P553 = self."!PREFIX__!subrule"("ws", "")
+    new $P554, "ResizablePMCArray"
+    push $P554, $P553
+    .return ($P554)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("136_1275811487.95429") :method
+.sub "scope_declarator"  :subid("136_1277356913.9538") :method
 .annotate 'line', 272
-    $P573 = self."!protoregex"("scope_declarator")
-    .return ($P573)
+    $P575 = self."!protoregex"("scope_declarator")
+    .return ($P575)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("137_1275811487.95429") :method
+.sub "!PREFIX__scope_declarator"  :subid("137_1277356913.9538") :method
 .annotate 'line', 272
-    $P575 = self."!PREFIX__!protoregex"("scope_declarator")
-    .return ($P575)
+    $P577 = self."!PREFIX__!protoregex"("scope_declarator")
+    .return ($P577)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("138_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "scope_declarator:sym<my>"  :subid("138_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
-    .lex unicode:"$\x{a2}", rx577_cur
-    .local pmc match
-    .lex "$/", match
-    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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan581_done
-    goto rxscan581_scan
-  rxscan581_loop:
-    ($P10) = rx577_cur."from"()
-    inc $P10
-    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:
+    .local string rx579_tgt
+    .local int rx579_pos
+    .local int rx579_off
+    .local int rx579_eos
+    .local int rx579_rep
+    .local pmc rx579_cur
+    (rx579_cur, rx579_pos, rx579_tgt) = self."!cursor_start"()
+    rx579_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+    .lex unicode:"$\x{a2}", rx579_cur
+    .local pmc match
+    .lex "$/", match
+    length rx579_eos, rx579_tgt
+    gt rx579_pos, rx579_eos, rx579_done
+    set rx579_off, 0
+    lt rx579_pos, 2, rx579_start
+    sub rx579_off, rx579_pos, 1
+    substr rx579_tgt, rx579_tgt, rx579_off
+  rx579_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan583_done
+    goto rxscan583_scan
+  rxscan583_loop:
+    ($P10) = rx579_cur."from"()
+    inc $P10
+    set rx579_pos, $P10
+    ge rx579_pos, rx579_eos, rxscan583_done
+  rxscan583_scan:
+    set_addr $I10, rxscan583_loop
+    rx579_cur."!mark_push"(0, rx579_pos, $I10)
+  rxscan583_done:
 .annotate 'line', 273
   # rx subcapture "sym"
-    set_addr $I10, rxcap_582_fail
-    rx577_cur."!mark_push"(0, rx577_pos, $I10)
+    set_addr $I10, rxcap_584_fail
+    rx579_cur."!mark_push"(0, rx579_pos, $I10)
   # rx literal  "my"
-    add $I11, rx577_pos, 2
-    gt $I11, rx577_eos, rx577_fail
-    sub $I11, rx577_pos, rx577_off
-    substr $S10, rx577_tgt, $I11, 2
-    ne $S10, "my", rx577_fail
-    add rx577_pos, 2
-    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)
+    add $I11, rx579_pos, 2
+    gt $I11, rx579_eos, rx579_fail
+    sub $I11, rx579_pos, rx579_off
+    substr $S10, rx579_tgt, $I11, 2
+    ne $S10, "my", rx579_fail
+    add rx579_pos, 2
+    set_addr $I10, rxcap_584_fail
+    ($I12, $I11) = rx579_cur."!mark_peek"($I10)
+    rx579_cur."!cursor_pos"($I11)
+    ($P10) = rx579_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx579_pos, "")
+    rx579_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_582_done
-  rxcap_582_fail:
-    goto rx577_fail
-  rxcap_582_done:
+    goto rxcap_584_done
+  rxcap_584_fail:
+    goto rx579_fail
+  rxcap_584_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx577_cur."!cursor_pos"(rx577_pos)
-    $P10 = rx577_cur."scoped"("my")
-    unless $P10, rx577_fail
-    rx577_cur."!mark_push"(0, -1, 0, $P10)
+    rx579_cur."!cursor_pos"(rx579_pos)
+    $P10 = rx579_cur."scoped"("my")
+    unless $P10, rx579_fail
+    rx579_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx577_pos = $P10."pos"()
+    rx579_pos = $P10."pos"()
   # rx pass
-    rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<my>")
-    rx577_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx577_pos)
-    .return (rx577_cur)
-  rx577_fail:
+    rx579_cur."!cursor_pass"(rx579_pos, "scope_declarator:sym<my>")
+    rx579_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx579_pos)
+    .return (rx579_cur)
+  rx579_fail:
 .annotate 'line', 4
-    (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
-    lt rx577_pos, -1, rx577_done
-    eq rx577_pos, -1, rx577_fail
+    (rx579_rep, rx579_pos, $I10, $P10) = rx579_cur."!mark_fail"(0)
+    lt rx579_pos, -1, rx579_done
+    eq rx579_pos, -1, rx579_fail
     jump $I10
-  rx577_done:
-    rx577_cur."!cursor_fail"()
-    rx577_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
-    .return (rx577_cur)
+  rx579_done:
+    rx579_cur."!cursor_fail"()
+    rx579_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
+    .return (rx579_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("139_1275811487.95429") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("139_1277356913.9538") :method
 .annotate 'line', 4
-    $P579 = self."!PREFIX__!subrule"("scoped", "my")
-    new $P580, "ResizablePMCArray"
-    push $P580, $P579
-    .return ($P580)
+    $P581 = self."!PREFIX__!subrule"("scoped", "my")
+    new $P582, "ResizablePMCArray"
+    push $P582, $P581
+    .return ($P582)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("140_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "scope_declarator:sym<our>"  :subid("140_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx584_tgt
-    .local int rx584_pos
-    .local int rx584_off
-    .local int rx584_eos
-    .local int rx584_rep
-    .local pmc rx584_cur
-    (rx584_cur, rx584_pos, rx584_tgt) = self."!cursor_start"()
-    rx584_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
-    .lex unicode:"$\x{a2}", rx584_cur
+    .local string rx586_tgt
+    .local int rx586_pos
+    .local int rx586_off
+    .local int rx586_eos
+    .local int rx586_rep
+    .local pmc rx586_cur
+    (rx586_cur, rx586_pos, rx586_tgt) = self."!cursor_start"()
+    rx586_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
+    .lex unicode:"$\x{a2}", rx586_cur
     .local pmc match
     .lex "$/", match
-    length rx584_eos, rx584_tgt
-    gt rx584_pos, rx584_eos, rx584_done
-    set rx584_off, 0
-    lt rx584_pos, 2, rx584_start
-    sub rx584_off, rx584_pos, 1
-    substr rx584_tgt, rx584_tgt, rx584_off
-  rx584_start:
+    length rx586_eos, rx586_tgt
+    gt rx586_pos, rx586_eos, rx586_done
+    set rx586_off, 0
+    lt rx586_pos, 2, rx586_start
+    sub rx586_off, rx586_pos, 1
+    substr rx586_tgt, rx586_tgt, rx586_off
+  rx586_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan588_done
-    goto rxscan588_scan
-  rxscan588_loop:
-    ($P10) = rx584_cur."from"()
+    ne $I10, -1, rxscan590_done
+    goto rxscan590_scan
+  rxscan590_loop:
+    ($P10) = rx586_cur."from"()
     inc $P10
-    set rx584_pos, $P10
-    ge rx584_pos, rx584_eos, rxscan588_done
-  rxscan588_scan:
-    set_addr $I10, rxscan588_loop
-    rx584_cur."!mark_push"(0, rx584_pos, $I10)
-  rxscan588_done:
+    set rx586_pos, $P10
+    ge rx586_pos, rx586_eos, rxscan590_done
+  rxscan590_scan:
+    set_addr $I10, rxscan590_loop
+    rx586_cur."!mark_push"(0, rx586_pos, $I10)
+  rxscan590_done:
 .annotate 'line', 274
   # rx subcapture "sym"
-    set_addr $I10, rxcap_589_fail
-    rx584_cur."!mark_push"(0, rx584_pos, $I10)
+    set_addr $I10, rxcap_591_fail
+    rx586_cur."!mark_push"(0, rx586_pos, $I10)
   # rx literal  "our"
-    add $I11, rx584_pos, 3
-    gt $I11, rx584_eos, rx584_fail
-    sub $I11, rx584_pos, rx584_off
-    substr $S10, rx584_tgt, $I11, 3
-    ne $S10, "our", rx584_fail
-    add rx584_pos, 3
-    set_addr $I10, rxcap_589_fail
-    ($I12, $I11) = rx584_cur."!mark_peek"($I10)
-    rx584_cur."!cursor_pos"($I11)
-    ($P10) = rx584_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx584_pos, "")
-    rx584_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx586_pos, 3
+    gt $I11, rx586_eos, rx586_fail
+    sub $I11, rx586_pos, rx586_off
+    substr $S10, rx586_tgt, $I11, 3
+    ne $S10, "our", rx586_fail
+    add rx586_pos, 3
+    set_addr $I10, rxcap_591_fail
+    ($I12, $I11) = rx586_cur."!mark_peek"($I10)
+    rx586_cur."!cursor_pos"($I11)
+    ($P10) = rx586_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx586_pos, "")
+    rx586_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_589_done
-  rxcap_589_fail:
-    goto rx584_fail
-  rxcap_589_done:
+    goto rxcap_591_done
+  rxcap_591_fail:
+    goto rx586_fail
+  rxcap_591_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx584_cur."!cursor_pos"(rx584_pos)
-    $P10 = rx584_cur."scoped"("our")
-    unless $P10, rx584_fail
-    rx584_cur."!mark_push"(0, -1, 0, $P10)
+    rx586_cur."!cursor_pos"(rx586_pos)
+    $P10 = rx586_cur."scoped"("our")
+    unless $P10, rx586_fail
+    rx586_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx584_pos = $P10."pos"()
+    rx586_pos = $P10."pos"()
   # rx pass
-    rx584_cur."!cursor_pass"(rx584_pos, "scope_declarator:sym<our>")
-    rx584_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx584_pos)
-    .return (rx584_cur)
-  rx584_fail:
+    rx586_cur."!cursor_pass"(rx586_pos, "scope_declarator:sym<our>")
+    rx586_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx586_pos)
+    .return (rx586_cur)
+  rx586_fail:
 .annotate 'line', 4
-    (rx584_rep, rx584_pos, $I10, $P10) = rx584_cur."!mark_fail"(0)
-    lt rx584_pos, -1, rx584_done
-    eq rx584_pos, -1, rx584_fail
+    (rx586_rep, rx586_pos, $I10, $P10) = rx586_cur."!mark_fail"(0)
+    lt rx586_pos, -1, rx586_done
+    eq rx586_pos, -1, rx586_fail
     jump $I10
-  rx584_done:
-    rx584_cur."!cursor_fail"()
-    rx584_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
-    .return (rx584_cur)
+  rx586_done:
+    rx586_cur."!cursor_fail"()
+    rx586_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
+    .return (rx586_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("141_1275811487.95429") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("141_1277356913.9538") :method
 .annotate 'line', 4
-    $P586 = self."!PREFIX__!subrule"("scoped", "our")
-    new $P587, "ResizablePMCArray"
-    push $P587, $P586
-    .return ($P587)
+    $P588 = self."!PREFIX__!subrule"("scoped", "our")
+    new $P589, "ResizablePMCArray"
+    push $P589, $P588
+    .return ($P589)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("142_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "scope_declarator:sym<has>"  :subid("142_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx591_tgt
-    .local int rx591_pos
-    .local int rx591_off
-    .local int rx591_eos
-    .local int rx591_rep
-    .local pmc rx591_cur
-    (rx591_cur, rx591_pos, rx591_tgt) = self."!cursor_start"()
-    rx591_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
-    .lex unicode:"$\x{a2}", rx591_cur
+    .local string rx593_tgt
+    .local int rx593_pos
+    .local int rx593_off
+    .local int rx593_eos
+    .local int rx593_rep
+    .local pmc rx593_cur
+    (rx593_cur, rx593_pos, rx593_tgt) = self."!cursor_start"()
+    rx593_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
+    .lex unicode:"$\x{a2}", rx593_cur
     .local pmc match
     .lex "$/", match
-    length rx591_eos, rx591_tgt
-    gt rx591_pos, rx591_eos, rx591_done
-    set rx591_off, 0
-    lt rx591_pos, 2, rx591_start
-    sub rx591_off, rx591_pos, 1
-    substr rx591_tgt, rx591_tgt, rx591_off
-  rx591_start:
+    length rx593_eos, rx593_tgt
+    gt rx593_pos, rx593_eos, rx593_done
+    set rx593_off, 0
+    lt rx593_pos, 2, rx593_start
+    sub rx593_off, rx593_pos, 1
+    substr rx593_tgt, rx593_tgt, rx593_off
+  rx593_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan595_done
-    goto rxscan595_scan
-  rxscan595_loop:
-    ($P10) = rx591_cur."from"()
+    ne $I10, -1, rxscan597_done
+    goto rxscan597_scan
+  rxscan597_loop:
+    ($P10) = rx593_cur."from"()
     inc $P10
-    set rx591_pos, $P10
-    ge rx591_pos, rx591_eos, rxscan595_done
-  rxscan595_scan:
-    set_addr $I10, rxscan595_loop
-    rx591_cur."!mark_push"(0, rx591_pos, $I10)
-  rxscan595_done:
+    set rx593_pos, $P10
+    ge rx593_pos, rx593_eos, rxscan597_done
+  rxscan597_scan:
+    set_addr $I10, rxscan597_loop
+    rx593_cur."!mark_push"(0, rx593_pos, $I10)
+  rxscan597_done:
 .annotate 'line', 275
   # rx subcapture "sym"
-    set_addr $I10, rxcap_596_fail
-    rx591_cur."!mark_push"(0, rx591_pos, $I10)
+    set_addr $I10, rxcap_598_fail
+    rx593_cur."!mark_push"(0, rx593_pos, $I10)
   # rx literal  "has"
-    add $I11, rx591_pos, 3
-    gt $I11, rx591_eos, rx591_fail
-    sub $I11, rx591_pos, rx591_off
-    substr $S10, rx591_tgt, $I11, 3
-    ne $S10, "has", rx591_fail
-    add rx591_pos, 3
-    set_addr $I10, rxcap_596_fail
-    ($I12, $I11) = rx591_cur."!mark_peek"($I10)
-    rx591_cur."!cursor_pos"($I11)
-    ($P10) = rx591_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx591_pos, "")
-    rx591_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx593_pos, 3
+    gt $I11, rx593_eos, rx593_fail
+    sub $I11, rx593_pos, rx593_off
+    substr $S10, rx593_tgt, $I11, 3
+    ne $S10, "has", rx593_fail
+    add rx593_pos, 3
+    set_addr $I10, rxcap_598_fail
+    ($I12, $I11) = rx593_cur."!mark_peek"($I10)
+    rx593_cur."!cursor_pos"($I11)
+    ($P10) = rx593_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx593_pos, "")
+    rx593_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_596_done
-  rxcap_596_fail:
-    goto rx591_fail
-  rxcap_596_done:
+    goto rxcap_598_done
+  rxcap_598_fail:
+    goto rx593_fail
+  rxcap_598_done:
   # rx subrule "scoped" subtype=capture negate=
-    rx591_cur."!cursor_pos"(rx591_pos)
-    $P10 = rx591_cur."scoped"("has")
-    unless $P10, rx591_fail
-    rx591_cur."!mark_push"(0, -1, 0, $P10)
+    rx593_cur."!cursor_pos"(rx593_pos)
+    $P10 = rx593_cur."scoped"("has")
+    unless $P10, rx593_fail
+    rx593_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("scoped")
-    rx591_pos = $P10."pos"()
+    rx593_pos = $P10."pos"()
   # rx pass
-    rx591_cur."!cursor_pass"(rx591_pos, "scope_declarator:sym<has>")
-    rx591_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx591_pos)
-    .return (rx591_cur)
-  rx591_fail:
+    rx593_cur."!cursor_pass"(rx593_pos, "scope_declarator:sym<has>")
+    rx593_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx593_pos)
+    .return (rx593_cur)
+  rx593_fail:
 .annotate 'line', 4
-    (rx591_rep, rx591_pos, $I10, $P10) = rx591_cur."!mark_fail"(0)
-    lt rx591_pos, -1, rx591_done
-    eq rx591_pos, -1, rx591_fail
+    (rx593_rep, rx593_pos, $I10, $P10) = rx593_cur."!mark_fail"(0)
+    lt rx593_pos, -1, rx593_done
+    eq rx593_pos, -1, rx593_fail
     jump $I10
-  rx591_done:
-    rx591_cur."!cursor_fail"()
-    rx591_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
-    .return (rx591_cur)
+  rx593_done:
+    rx593_cur."!cursor_fail"()
+    rx593_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
+    .return (rx593_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("143_1275811487.95429") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("143_1277356913.9538") :method
 .annotate 'line', 4
-    $P593 = self."!PREFIX__!subrule"("scoped", "has")
-    new $P594, "ResizablePMCArray"
-    push $P594, $P593
-    .return ($P594)
+    $P595 = self."!PREFIX__!subrule"("scoped", "has")
+    new $P596, "ResizablePMCArray"
+    push $P596, $P595
+    .return ($P596)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("144_1275811487.95429") :method :outer("11_1275811487.95429")
-    .param pmc param_598
+.sub "scoped"  :subid("144_1277356913.9538") :method :outer("11_1277356913.9538")
+    .param pmc param_600
 .annotate 'line', 277
-    .lex "$*SCOPE", param_598
+    .lex "$*SCOPE", param_600
 .annotate 'line', 4
-    .local string rx599_tgt
-    .local int rx599_pos
-    .local int rx599_off
-    .local int rx599_eos
-    .local int rx599_rep
-    .local pmc rx599_cur
-    (rx599_cur, rx599_pos, rx599_tgt) = self."!cursor_start"()
-    rx599_cur."!cursor_debug"("START ", "scoped")
-    .lex unicode:"$\x{a2}", rx599_cur
-    .local pmc match
-    .lex "$/", match
-    length rx599_eos, rx599_tgt
-    gt rx599_pos, rx599_eos, rx599_done
-    set rx599_off, 0
-    lt rx599_pos, 2, rx599_start
-    sub rx599_off, rx599_pos, 1
-    substr rx599_tgt, rx599_tgt, rx599_off
-  rx599_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan604_done
-    goto rxscan604_scan
-  rxscan604_loop:
-    ($P10) = rx599_cur."from"()
-    inc $P10
-    set rx599_pos, $P10
-    ge rx599_pos, rx599_eos, rxscan604_done
-  rxscan604_scan:
-    set_addr $I10, rxscan604_loop
-    rx599_cur."!mark_push"(0, rx599_pos, $I10)
-  rxscan604_done:
-  alt605_0:
+    .local string rx601_tgt
+    .local int rx601_pos
+    .local int rx601_off
+    .local int rx601_eos
+    .local int rx601_rep
+    .local pmc rx601_cur
+    (rx601_cur, rx601_pos, rx601_tgt) = self."!cursor_start"()
+    rx601_cur."!cursor_debug"("START ", "scoped")
+    .lex unicode:"$\x{a2}", rx601_cur
+    .local pmc match
+    .lex "$/", match
+    length rx601_eos, rx601_tgt
+    gt rx601_pos, rx601_eos, rx601_done
+    set rx601_off, 0
+    lt rx601_pos, 2, rx601_start
+    sub rx601_off, rx601_pos, 1
+    substr rx601_tgt, rx601_tgt, rx601_off
+  rx601_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan606_done
+    goto rxscan606_scan
+  rxscan606_loop:
+    ($P10) = rx601_cur."from"()
+    inc $P10
+    set rx601_pos, $P10
+    ge rx601_pos, rx601_eos, rxscan606_done
+  rxscan606_scan:
+    set_addr $I10, rxscan606_loop
+    rx601_cur."!mark_push"(0, rx601_pos, $I10)
+  rxscan606_done:
+  alt607_0:
 .annotate 'line', 277
-    set_addr $I10, alt605_1
-    rx599_cur."!mark_push"(0, rx599_pos, $I10)
+    set_addr $I10, alt607_1
+    rx601_cur."!mark_push"(0, rx601_pos, $I10)
 .annotate 'line', 278
   # rx subrule "ws" subtype=method negate=
-    rx599_cur."!cursor_pos"(rx599_pos)
-    $P10 = rx599_cur."ws"()
-    unless $P10, rx599_fail
-    rx599_pos = $P10."pos"()
+    rx601_cur."!cursor_pos"(rx601_pos)
+    $P10 = rx601_cur."ws"()
+    unless $P10, rx601_fail
+    rx601_pos = $P10."pos"()
   # rx subrule "declarator" subtype=capture negate=
-    rx599_cur."!cursor_pos"(rx599_pos)
-    $P10 = rx599_cur."declarator"()
-    unless $P10, rx599_fail
-    rx599_cur."!mark_push"(0, -1, 0, $P10)
+    rx601_cur."!cursor_pos"(rx601_pos)
+    $P10 = rx601_cur."declarator"()
+    unless $P10, rx601_fail
+    rx601_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx599_pos = $P10."pos"()
+    rx601_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx599_cur."!cursor_pos"(rx599_pos)
-    $P10 = rx599_cur."ws"()
-    unless $P10, rx599_fail
-    rx599_pos = $P10."pos"()
-    goto alt605_end
-  alt605_1:
+    rx601_cur."!cursor_pos"(rx601_pos)
+    $P10 = rx601_cur."ws"()
+    unless $P10, rx601_fail
+    rx601_pos = $P10."pos"()
+    goto alt607_end
+  alt607_1:
 .annotate 'line', 279
   # rx subrule "ws" subtype=method negate=
-    rx599_cur."!cursor_pos"(rx599_pos)
-    $P10 = rx599_cur."ws"()
-    unless $P10, rx599_fail
-    rx599_pos = $P10."pos"()
+    rx601_cur."!cursor_pos"(rx601_pos)
+    $P10 = rx601_cur."ws"()
+    unless $P10, rx601_fail
+    rx601_pos = $P10."pos"()
   # rx subrule "multi_declarator" subtype=capture negate=
-    rx599_cur."!cursor_pos"(rx599_pos)
-    $P10 = rx599_cur."multi_declarator"()
-    unless $P10, rx599_fail
-    rx599_cur."!mark_push"(0, -1, 0, $P10)
+    rx601_cur."!cursor_pos"(rx601_pos)
+    $P10 = rx601_cur."multi_declarator"()
+    unless $P10, rx601_fail
+    rx601_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("multi_declarator")
-    rx599_pos = $P10."pos"()
+    rx601_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx599_cur."!cursor_pos"(rx599_pos)
-    $P10 = rx599_cur."ws"()
-    unless $P10, rx599_fail
-    rx599_pos = $P10."pos"()
-  alt605_end:
+    rx601_cur."!cursor_pos"(rx601_pos)
+    $P10 = rx601_cur."ws"()
+    unless $P10, rx601_fail
+    rx601_pos = $P10."pos"()
+  alt607_end:
 .annotate 'line', 277
   # rx pass
-    rx599_cur."!cursor_pass"(rx599_pos, "scoped")
-    rx599_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx599_pos)
-    .return (rx599_cur)
-  rx599_fail:
+    rx601_cur."!cursor_pass"(rx601_pos, "scoped")
+    rx601_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx601_pos)
+    .return (rx601_cur)
+  rx601_fail:
 .annotate 'line', 4
-    (rx599_rep, rx599_pos, $I10, $P10) = rx599_cur."!mark_fail"(0)
-    lt rx599_pos, -1, rx599_done
-    eq rx599_pos, -1, rx599_fail
+    (rx601_rep, rx601_pos, $I10, $P10) = rx601_cur."!mark_fail"(0)
+    lt rx601_pos, -1, rx601_done
+    eq rx601_pos, -1, rx601_fail
     jump $I10
-  rx599_done:
-    rx599_cur."!cursor_fail"()
-    rx599_cur."!cursor_debug"("FAIL  ", "scoped")
-    .return (rx599_cur)
+  rx601_done:
+    rx601_cur."!cursor_fail"()
+    rx601_cur."!cursor_debug"("FAIL  ", "scoped")
+    .return (rx601_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("145_1275811487.95429") :method
+.sub "!PREFIX__scoped"  :subid("145_1277356913.9538") :method
 .annotate 'line', 4
-    $P601 = self."!PREFIX__!subrule"("ws", "")
-    $P602 = self."!PREFIX__!subrule"("ws", "")
-    new $P603, "ResizablePMCArray"
-    push $P603, $P601
-    push $P603, $P602
-    .return ($P603)
+    $P603 = self."!PREFIX__!subrule"("ws", "")
+    $P604 = self."!PREFIX__!subrule"("ws", "")
+    new $P605, "ResizablePMCArray"
+    push $P605, $P603
+    push $P605, $P604
+    .return ($P605)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "typename"  :subid("146_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "typename"  :subid("146_1277356913.9538") :method :outer("11_1277356913.9538")
 .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) = self."!cursor_start"()
-    rx611_cur."!cursor_debug"("START ", "typename")
-    .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:
-    $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:
+    .local string rx613_tgt
+    .local int rx613_pos
+    .local int rx613_off
+    .local int rx613_eos
+    .local int rx613_rep
+    .local pmc rx613_cur
+    (rx613_cur, rx613_pos, rx613_tgt) = self."!cursor_start"()
+    rx613_cur."!cursor_debug"("START ", "typename")
+    .lex unicode:"$\x{a2}", rx613_cur
+    .local pmc match
+    .lex "$/", match
+    length rx613_eos, rx613_tgt
+    gt rx613_pos, rx613_eos, rx613_done
+    set rx613_off, 0
+    lt rx613_pos, 2, rx613_start
+    sub rx613_off, rx613_pos, 1
+    substr rx613_tgt, rx613_tgt, rx613_off
+  rx613_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan617_done
+    goto rxscan617_scan
+  rxscan617_loop:
+    ($P10) = rx613_cur."from"()
+    inc $P10
+    set rx613_pos, $P10
+    ge rx613_pos, rx613_eos, rxscan617_done
+  rxscan617_scan:
+    set_addr $I10, rxscan617_loop
+    rx613_cur."!mark_push"(0, rx613_pos, $I10)
+  rxscan617_done:
 .annotate 'line', 282
   # rx subrule "name" subtype=capture negate=
-    rx611_cur."!cursor_pos"(rx611_pos)
-    $P10 = rx611_cur."name"()
-    unless $P10, rx611_fail
-    rx611_cur."!mark_push"(0, -1, 0, $P10)
+    rx613_cur."!cursor_pos"(rx613_pos)
+    $P10 = rx613_cur."name"()
+    unless $P10, rx613_fail
+    rx613_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx611_pos = $P10."pos"()
+    rx613_pos = $P10."pos"()
   # rx pass
-    rx611_cur."!cursor_pass"(rx611_pos, "typename")
-    rx611_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx611_pos)
-    .return (rx611_cur)
-  rx611_fail:
+    rx613_cur."!cursor_pass"(rx613_pos, "typename")
+    rx613_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx613_pos)
+    .return (rx613_cur)
+  rx613_fail:
 .annotate 'line', 4
-    (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
-    lt rx611_pos, -1, rx611_done
-    eq rx611_pos, -1, rx611_fail
+    (rx613_rep, rx613_pos, $I10, $P10) = rx613_cur."!mark_fail"(0)
+    lt rx613_pos, -1, rx613_done
+    eq rx613_pos, -1, rx613_fail
     jump $I10
-  rx611_done:
-    rx611_cur."!cursor_fail"()
-    rx611_cur."!cursor_debug"("FAIL  ", "typename")
-    .return (rx611_cur)
+  rx613_done:
+    rx613_cur."!cursor_fail"()
+    rx613_cur."!cursor_debug"("FAIL  ", "typename")
+    .return (rx613_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename"  :subid("147_1275811487.95429") :method
+.sub "!PREFIX__typename"  :subid("147_1277356913.9538") :method
 .annotate 'line', 4
-    $P613 = self."!PREFIX__!subrule"("name", "")
-    new $P614, "ResizablePMCArray"
-    push $P614, $P613
-    .return ($P614)
+    $P615 = self."!PREFIX__!subrule"("name", "")
+    new $P616, "ResizablePMCArray"
+    push $P616, $P615
+    .return ($P616)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "declarator"  :subid("148_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "declarator"  :subid("148_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx617_tgt
-    .local int rx617_pos
-    .local int rx617_off
-    .local int rx617_eos
-    .local int rx617_rep
-    .local pmc rx617_cur
-    (rx617_cur, rx617_pos, rx617_tgt) = self."!cursor_start"()
-    rx617_cur."!cursor_debug"("START ", "declarator")
-    .lex unicode:"$\x{a2}", rx617_cur
+    .local string rx619_tgt
+    .local int rx619_pos
+    .local int rx619_off
+    .local int rx619_eos
+    .local int rx619_rep
+    .local pmc rx619_cur
+    (rx619_cur, rx619_pos, rx619_tgt) = self."!cursor_start"()
+    rx619_cur."!cursor_debug"("START ", "declarator")
+    .lex unicode:"$\x{a2}", rx619_cur
     .local pmc match
     .lex "$/", match
-    length rx617_eos, rx617_tgt
-    gt rx617_pos, rx617_eos, rx617_done
-    set rx617_off, 0
-    lt rx617_pos, 2, rx617_start
-    sub rx617_off, rx617_pos, 1
-    substr rx617_tgt, rx617_tgt, rx617_off
-  rx617_start:
+    length rx619_eos, rx619_tgt
+    gt rx619_pos, rx619_eos, rx619_done
+    set rx619_off, 0
+    lt rx619_pos, 2, rx619_start
+    sub rx619_off, rx619_pos, 1
+    substr rx619_tgt, rx619_tgt, rx619_off
+  rx619_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan622_done
-    goto rxscan622_scan
-  rxscan622_loop:
-    ($P10) = rx617_cur."from"()
+    ne $I10, -1, rxscan624_done
+    goto rxscan624_scan
+  rxscan624_loop:
+    ($P10) = rx619_cur."from"()
     inc $P10
-    set rx617_pos, $P10
-    ge rx617_pos, rx617_eos, rxscan622_done
-  rxscan622_scan:
-    set_addr $I10, rxscan622_loop
-    rx617_cur."!mark_push"(0, rx617_pos, $I10)
-  rxscan622_done:
-  alt623_0:
+    set rx619_pos, $P10
+    ge rx619_pos, rx619_eos, rxscan624_done
+  rxscan624_scan:
+    set_addr $I10, rxscan624_loop
+    rx619_cur."!mark_push"(0, rx619_pos, $I10)
+  rxscan624_done:
+  alt625_0:
 .annotate 'line', 284
-    set_addr $I10, alt623_1
-    rx617_cur."!mark_push"(0, rx617_pos, $I10)
+    set_addr $I10, alt625_1
+    rx619_cur."!mark_push"(0, rx619_pos, $I10)
 .annotate 'line', 285
   # rx subrule "variable_declarator" subtype=capture negate=
-    rx617_cur."!cursor_pos"(rx617_pos)
-    $P10 = rx617_cur."variable_declarator"()
-    unless $P10, rx617_fail
-    rx617_cur."!mark_push"(0, -1, 0, $P10)
+    rx619_cur."!cursor_pos"(rx619_pos)
+    $P10 = rx619_cur."variable_declarator"()
+    unless $P10, rx619_fail
+    rx619_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable_declarator")
-    rx617_pos = $P10."pos"()
-    goto alt623_end
-  alt623_1:
+    rx619_pos = $P10."pos"()
+    goto alt625_end
+  alt625_1:
 .annotate 'line', 286
   # rx subrule "routine_declarator" subtype=capture negate=
-    rx617_cur."!cursor_pos"(rx617_pos)
-    $P10 = rx617_cur."routine_declarator"()
-    unless $P10, rx617_fail
-    rx617_cur."!mark_push"(0, -1, 0, $P10)
+    rx619_cur."!cursor_pos"(rx619_pos)
+    $P10 = rx619_cur."routine_declarator"()
+    unless $P10, rx619_fail
+    rx619_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_declarator")
-    rx617_pos = $P10."pos"()
-  alt623_end:
+    rx619_pos = $P10."pos"()
+  alt625_end:
 .annotate 'line', 284
   # rx pass
-    rx617_cur."!cursor_pass"(rx617_pos, "declarator")
-    rx617_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx617_pos)
-    .return (rx617_cur)
-  rx617_fail:
+    rx619_cur."!cursor_pass"(rx619_pos, "declarator")
+    rx619_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx619_pos)
+    .return (rx619_cur)
+  rx619_fail:
 .annotate 'line', 4
-    (rx617_rep, rx617_pos, $I10, $P10) = rx617_cur."!mark_fail"(0)
-    lt rx617_pos, -1, rx617_done
-    eq rx617_pos, -1, rx617_fail
+    (rx619_rep, rx619_pos, $I10, $P10) = rx619_cur."!mark_fail"(0)
+    lt rx619_pos, -1, rx619_done
+    eq rx619_pos, -1, rx619_fail
     jump $I10
-  rx617_done:
-    rx617_cur."!cursor_fail"()
-    rx617_cur."!cursor_debug"("FAIL  ", "declarator")
-    .return (rx617_cur)
+  rx619_done:
+    rx619_cur."!cursor_fail"()
+    rx619_cur."!cursor_debug"("FAIL  ", "declarator")
+    .return (rx619_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator"  :subid("149_1275811487.95429") :method
+.sub "!PREFIX__declarator"  :subid("149_1277356913.9538") :method
 .annotate 'line', 4
-    $P619 = self."!PREFIX__!subrule"("routine_declarator", "")
-    $P620 = self."!PREFIX__!subrule"("variable_declarator", "")
-    new $P621, "ResizablePMCArray"
-    push $P621, $P619
-    push $P621, $P620
-    .return ($P621)
+    $P621 = self."!PREFIX__!subrule"("routine_declarator", "")
+    $P622 = self."!PREFIX__!subrule"("variable_declarator", "")
+    new $P623, "ResizablePMCArray"
+    push $P623, $P621
+    push $P623, $P622
+    .return ($P623)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("150_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "variable_declarator"  :subid("150_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx625_tgt
-    .local int rx625_pos
-    .local int rx625_off
-    .local int rx625_eos
-    .local int rx625_rep
-    .local pmc rx625_cur
-    (rx625_cur, rx625_pos, rx625_tgt) = self."!cursor_start"()
-    rx625_cur."!cursor_debug"("START ", "variable_declarator")
-    .lex unicode:"$\x{a2}", rx625_cur
+    .local string rx627_tgt
+    .local int rx627_pos
+    .local int rx627_off
+    .local int rx627_eos
+    .local int rx627_rep
+    .local pmc rx627_cur
+    (rx627_cur, rx627_pos, rx627_tgt) = self."!cursor_start"()
+    rx627_cur."!cursor_debug"("START ", "variable_declarator")
+    .lex unicode:"$\x{a2}", rx627_cur
     .local pmc match
     .lex "$/", match
-    length rx625_eos, rx625_tgt
-    gt rx625_pos, rx625_eos, rx625_done
-    set rx625_off, 0
-    lt rx625_pos, 2, rx625_start
-    sub rx625_off, rx625_pos, 1
-    substr rx625_tgt, rx625_tgt, rx625_off
-  rx625_start:
+    length rx627_eos, rx627_tgt
+    gt rx627_pos, rx627_eos, rx627_done
+    set rx627_off, 0
+    lt rx627_pos, 2, rx627_start
+    sub rx627_off, rx627_pos, 1
+    substr rx627_tgt, rx627_tgt, rx627_off
+  rx627_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan629_done
-    goto rxscan629_scan
-  rxscan629_loop:
-    ($P10) = rx625_cur."from"()
+    ne $I10, -1, rxscan631_done
+    goto rxscan631_scan
+  rxscan631_loop:
+    ($P10) = rx627_cur."from"()
     inc $P10
-    set rx625_pos, $P10
-    ge rx625_pos, rx625_eos, rxscan629_done
-  rxscan629_scan:
-    set_addr $I10, rxscan629_loop
-    rx625_cur."!mark_push"(0, rx625_pos, $I10)
-  rxscan629_done:
+    set rx627_pos, $P10
+    ge rx627_pos, rx627_eos, rxscan631_done
+  rxscan631_scan:
+    set_addr $I10, rxscan631_loop
+    rx627_cur."!mark_push"(0, rx627_pos, $I10)
+  rxscan631_done:
 .annotate 'line', 289
   # rx subrule "variable" subtype=capture negate=
-    rx625_cur."!cursor_pos"(rx625_pos)
-    $P10 = rx625_cur."variable"()
-    unless $P10, rx625_fail
-    rx625_cur."!mark_push"(0, -1, 0, $P10)
+    rx627_cur."!cursor_pos"(rx627_pos)
+    $P10 = rx627_cur."variable"()
+    unless $P10, rx627_fail
+    rx627_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable")
-    rx625_pos = $P10."pos"()
+    rx627_pos = $P10."pos"()
   # rx pass
-    rx625_cur."!cursor_pass"(rx625_pos, "variable_declarator")
-    rx625_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx625_pos)
-    .return (rx625_cur)
-  rx625_fail:
+    rx627_cur."!cursor_pass"(rx627_pos, "variable_declarator")
+    rx627_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx627_pos)
+    .return (rx627_cur)
+  rx627_fail:
 .annotate 'line', 4
-    (rx625_rep, rx625_pos, $I10, $P10) = rx625_cur."!mark_fail"(0)
-    lt rx625_pos, -1, rx625_done
-    eq rx625_pos, -1, rx625_fail
+    (rx627_rep, rx627_pos, $I10, $P10) = rx627_cur."!mark_fail"(0)
+    lt rx627_pos, -1, rx627_done
+    eq rx627_pos, -1, rx627_fail
     jump $I10
-  rx625_done:
-    rx625_cur."!cursor_fail"()
-    rx625_cur."!cursor_debug"("FAIL  ", "variable_declarator")
-    .return (rx625_cur)
+  rx627_done:
+    rx627_cur."!cursor_fail"()
+    rx627_cur."!cursor_debug"("FAIL  ", "variable_declarator")
+    .return (rx627_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("151_1275811487.95429") :method
+.sub "!PREFIX__variable_declarator"  :subid("151_1277356913.9538") :method
 .annotate 'line', 4
-    $P627 = self."!PREFIX__!subrule"("variable", "")
-    new $P628, "ResizablePMCArray"
-    push $P628, $P627
-    .return ($P628)
+    $P629 = self."!PREFIX__!subrule"("variable", "")
+    new $P630, "ResizablePMCArray"
+    push $P630, $P629
+    .return ($P630)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("152_1275811487.95429") :method
+.sub "routine_declarator"  :subid("152_1277356913.9538") :method
 .annotate 'line', 291
-    $P631 = self."!protoregex"("routine_declarator")
-    .return ($P631)
+    $P633 = self."!protoregex"("routine_declarator")
+    .return ($P633)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("153_1275811487.95429") :method
+.sub "!PREFIX__routine_declarator"  :subid("153_1277356913.9538") :method
 .annotate 'line', 291
-    $P633 = self."!PREFIX__!protoregex"("routine_declarator")
-    .return ($P633)
+    $P635 = self."!PREFIX__!protoregex"("routine_declarator")
+    .return ($P635)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("154_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "routine_declarator:sym<sub>"  :subid("154_1277356913.9538") :method :outer("11_1277356913.9538")
 .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) = self."!cursor_start"()
-    rx635_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
-    .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:
-    $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:
+    .local string rx637_tgt
+    .local int rx637_pos
+    .local int rx637_off
+    .local int rx637_eos
+    .local int rx637_rep
+    .local pmc rx637_cur
+    (rx637_cur, rx637_pos, rx637_tgt) = self."!cursor_start"()
+    rx637_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+    .lex unicode:"$\x{a2}", rx637_cur
+    .local pmc match
+    .lex "$/", match
+    length rx637_eos, rx637_tgt
+    gt rx637_pos, rx637_eos, rx637_done
+    set rx637_off, 0
+    lt rx637_pos, 2, rx637_start
+    sub rx637_off, rx637_pos, 1
+    substr rx637_tgt, rx637_tgt, rx637_off
+  rx637_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan641_done
+    goto rxscan641_scan
+  rxscan641_loop:
+    ($P10) = rx637_cur."from"()
+    inc $P10
+    set rx637_pos, $P10
+    ge rx637_pos, rx637_eos, rxscan641_done
+  rxscan641_scan:
+    set_addr $I10, rxscan641_loop
+    rx637_cur."!mark_push"(0, rx637_pos, $I10)
+  rxscan641_done:
 .annotate 'line', 292
   # rx subcapture "sym"
-    set_addr $I10, rxcap_640_fail
-    rx635_cur."!mark_push"(0, rx635_pos, $I10)
+    set_addr $I10, rxcap_642_fail
+    rx637_cur."!mark_push"(0, rx637_pos, $I10)
   # rx literal  "sub"
-    add $I11, rx635_pos, 3
-    gt $I11, rx635_eos, rx635_fail
-    sub $I11, rx635_pos, rx635_off
-    substr $S10, rx635_tgt, $I11, 3
-    ne $S10, "sub", rx635_fail
-    add rx635_pos, 3
-    set_addr $I10, rxcap_640_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)
+    add $I11, rx637_pos, 3
+    gt $I11, rx637_eos, rx637_fail
+    sub $I11, rx637_pos, rx637_off
+    substr $S10, rx637_tgt, $I11, 3
+    ne $S10, "sub", rx637_fail
+    add rx637_pos, 3
+    set_addr $I10, rxcap_642_fail
+    ($I12, $I11) = rx637_cur."!mark_peek"($I10)
+    rx637_cur."!cursor_pos"($I11)
+    ($P10) = rx637_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx637_pos, "")
+    rx637_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_640_done
-  rxcap_640_fail:
-    goto rx635_fail
-  rxcap_640_done:
+    goto rxcap_642_done
+  rxcap_642_fail:
+    goto rx637_fail
+  rxcap_642_done:
   # rx subrule "routine_def" subtype=capture negate=
-    rx635_cur."!cursor_pos"(rx635_pos)
-    $P10 = rx635_cur."routine_def"()
-    unless $P10, rx635_fail
-    rx635_cur."!mark_push"(0, -1, 0, $P10)
+    rx637_cur."!cursor_pos"(rx637_pos)
+    $P10 = rx637_cur."routine_def"()
+    unless $P10, rx637_fail
+    rx637_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_def")
-    rx635_pos = $P10."pos"()
+    rx637_pos = $P10."pos"()
   # rx pass
-    rx635_cur."!cursor_pass"(rx635_pos, "routine_declarator:sym<sub>")
-    rx635_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx635_pos)
-    .return (rx635_cur)
-  rx635_fail:
+    rx637_cur."!cursor_pass"(rx637_pos, "routine_declarator:sym<sub>")
+    rx637_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx637_pos)
+    .return (rx637_cur)
+  rx637_fail:
 .annotate 'line', 4
-    (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
-    lt rx635_pos, -1, rx635_done
-    eq rx635_pos, -1, rx635_fail
+    (rx637_rep, rx637_pos, $I10, $P10) = rx637_cur."!mark_fail"(0)
+    lt rx637_pos, -1, rx637_done
+    eq rx637_pos, -1, rx637_fail
     jump $I10
-  rx635_done:
-    rx635_cur."!cursor_fail"()
-    rx635_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
-    .return (rx635_cur)
+  rx637_done:
+    rx637_cur."!cursor_fail"()
+    rx637_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
+    .return (rx637_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("155_1275811487.95429") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("155_1277356913.9538") :method
 .annotate 'line', 4
-    $P637 = self."!PREFIX__!subrule"("routine_def", "sub")
-    new $P638, "ResizablePMCArray"
-    push $P638, $P637
-    .return ($P638)
+    $P639 = self."!PREFIX__!subrule"("routine_def", "sub")
+    new $P640, "ResizablePMCArray"
+    push $P640, $P639
+    .return ($P640)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("156_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "routine_declarator:sym<method>"  :subid("156_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx642_tgt
-    .local int rx642_pos
-    .local int rx642_off
-    .local int rx642_eos
-    .local int rx642_rep
-    .local pmc rx642_cur
-    (rx642_cur, rx642_pos, rx642_tgt) = self."!cursor_start"()
-    rx642_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
-    .lex unicode:"$\x{a2}", rx642_cur
+    .local string rx644_tgt
+    .local int rx644_pos
+    .local int rx644_off
+    .local int rx644_eos
+    .local int rx644_rep
+    .local pmc rx644_cur
+    (rx644_cur, rx644_pos, rx644_tgt) = self."!cursor_start"()
+    rx644_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
+    .lex unicode:"$\x{a2}", rx644_cur
     .local pmc match
     .lex "$/", match
-    length rx642_eos, rx642_tgt
-    gt rx642_pos, rx642_eos, rx642_done
-    set rx642_off, 0
-    lt rx642_pos, 2, rx642_start
-    sub rx642_off, rx642_pos, 1
-    substr rx642_tgt, rx642_tgt, rx642_off
-  rx642_start:
+    length rx644_eos, rx644_tgt
+    gt rx644_pos, rx644_eos, rx644_done
+    set rx644_off, 0
+    lt rx644_pos, 2, rx644_start
+    sub rx644_off, rx644_pos, 1
+    substr rx644_tgt, rx644_tgt, rx644_off
+  rx644_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan646_done
-    goto rxscan646_scan
-  rxscan646_loop:
-    ($P10) = rx642_cur."from"()
+    ne $I10, -1, rxscan648_done
+    goto rxscan648_scan
+  rxscan648_loop:
+    ($P10) = rx644_cur."from"()
     inc $P10
-    set rx642_pos, $P10
-    ge rx642_pos, rx642_eos, rxscan646_done
-  rxscan646_scan:
-    set_addr $I10, rxscan646_loop
-    rx642_cur."!mark_push"(0, rx642_pos, $I10)
-  rxscan646_done:
+    set rx644_pos, $P10
+    ge rx644_pos, rx644_eos, rxscan648_done
+  rxscan648_scan:
+    set_addr $I10, rxscan648_loop
+    rx644_cur."!mark_push"(0, rx644_pos, $I10)
+  rxscan648_done:
 .annotate 'line', 293
   # rx subcapture "sym"
-    set_addr $I10, rxcap_647_fail
-    rx642_cur."!mark_push"(0, rx642_pos, $I10)
+    set_addr $I10, rxcap_649_fail
+    rx644_cur."!mark_push"(0, rx644_pos, $I10)
   # rx literal  "method"
-    add $I11, rx642_pos, 6
-    gt $I11, rx642_eos, rx642_fail
-    sub $I11, rx642_pos, rx642_off
-    substr $S10, rx642_tgt, $I11, 6
-    ne $S10, "method", rx642_fail
-    add rx642_pos, 6
-    set_addr $I10, rxcap_647_fail
-    ($I12, $I11) = rx642_cur."!mark_peek"($I10)
-    rx642_cur."!cursor_pos"($I11)
-    ($P10) = rx642_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx642_pos, "")
-    rx642_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx644_pos, 6
+    gt $I11, rx644_eos, rx644_fail
+    sub $I11, rx644_pos, rx644_off
+    substr $S10, rx644_tgt, $I11, 6
+    ne $S10, "method", rx644_fail
+    add rx644_pos, 6
+    set_addr $I10, rxcap_649_fail
+    ($I12, $I11) = rx644_cur."!mark_peek"($I10)
+    rx644_cur."!cursor_pos"($I11)
+    ($P10) = rx644_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx644_pos, "")
+    rx644_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_647_done
-  rxcap_647_fail:
-    goto rx642_fail
-  rxcap_647_done:
+    goto rxcap_649_done
+  rxcap_649_fail:
+    goto rx644_fail
+  rxcap_649_done:
   # rx subrule "method_def" subtype=capture negate=
-    rx642_cur."!cursor_pos"(rx642_pos)
-    $P10 = rx642_cur."method_def"()
-    unless $P10, rx642_fail
-    rx642_cur."!mark_push"(0, -1, 0, $P10)
+    rx644_cur."!cursor_pos"(rx644_pos)
+    $P10 = rx644_cur."method_def"()
+    unless $P10, rx644_fail
+    rx644_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("method_def")
-    rx642_pos = $P10."pos"()
+    rx644_pos = $P10."pos"()
   # rx pass
-    rx642_cur."!cursor_pass"(rx642_pos, "routine_declarator:sym<method>")
-    rx642_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx642_pos)
-    .return (rx642_cur)
-  rx642_fail:
+    rx644_cur."!cursor_pass"(rx644_pos, "routine_declarator:sym<method>")
+    rx644_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx644_pos)
+    .return (rx644_cur)
+  rx644_fail:
 .annotate 'line', 4
-    (rx642_rep, rx642_pos, $I10, $P10) = rx642_cur."!mark_fail"(0)
-    lt rx642_pos, -1, rx642_done
-    eq rx642_pos, -1, rx642_fail
+    (rx644_rep, rx644_pos, $I10, $P10) = rx644_cur."!mark_fail"(0)
+    lt rx644_pos, -1, rx644_done
+    eq rx644_pos, -1, rx644_fail
     jump $I10
-  rx642_done:
-    rx642_cur."!cursor_fail"()
-    rx642_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
-    .return (rx642_cur)
+  rx644_done:
+    rx644_cur."!cursor_fail"()
+    rx644_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
+    .return (rx644_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("157_1275811487.95429") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("157_1277356913.9538") :method
 .annotate 'line', 4
-    $P644 = self."!PREFIX__!subrule"("method_def", "method")
-    new $P645, "ResizablePMCArray"
-    push $P645, $P644
-    .return ($P645)
+    $P646 = self."!PREFIX__!subrule"("method_def", "method")
+    new $P647, "ResizablePMCArray"
+    push $P647, $P646
+    .return ($P647)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("158_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "routine_def"  :subid("158_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx649_tgt
-    .local int rx649_pos
-    .local int rx649_off
-    .local int rx649_eos
-    .local int rx649_rep
-    .local pmc rx649_cur
-    (rx649_cur, rx649_pos, rx649_tgt) = self."!cursor_start"()
-    rx649_cur."!cursor_debug"("START ", "routine_def")
-    rx649_cur."!cursor_caparray"("deflongname", "sigil")
-    .lex unicode:"$\x{a2}", rx649_cur
+    .local string rx651_tgt
+    .local int rx651_pos
+    .local int rx651_off
+    .local int rx651_eos
+    .local int rx651_rep
+    .local pmc rx651_cur
+    (rx651_cur, rx651_pos, rx651_tgt) = self."!cursor_start"()
+    rx651_cur."!cursor_debug"("START ", "routine_def")
+    rx651_cur."!cursor_caparray"("sigil", "deflongname")
+    .lex unicode:"$\x{a2}", rx651_cur
     .local pmc match
     .lex "$/", match
-    length rx649_eos, rx649_tgt
-    gt rx649_pos, rx649_eos, rx649_done
-    set rx649_off, 0
-    lt rx649_pos, 2, rx649_start
-    sub rx649_off, rx649_pos, 1
-    substr rx649_tgt, rx649_tgt, rx649_off
-  rx649_start:
+    length rx651_eos, rx651_tgt
+    gt rx651_pos, rx651_eos, rx651_done
+    set rx651_off, 0
+    lt rx651_pos, 2, rx651_start
+    sub rx651_off, rx651_pos, 1
+    substr rx651_tgt, rx651_tgt, rx651_off
+  rx651_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan653_done
-    goto rxscan653_scan
-  rxscan653_loop:
-    ($P10) = rx649_cur."from"()
+    ne $I10, -1, rxscan655_done
+    goto rxscan655_scan
+  rxscan655_loop:
+    ($P10) = rx651_cur."from"()
     inc $P10
-    set rx649_pos, $P10
-    ge rx649_pos, rx649_eos, rxscan653_done
-  rxscan653_scan:
-    set_addr $I10, rxscan653_loop
-    rx649_cur."!mark_push"(0, rx649_pos, $I10)
-  rxscan653_done:
+    set rx651_pos, $P10
+    ge rx651_pos, rx651_eos, rxscan655_done
+  rxscan655_scan:
+    set_addr $I10, rxscan655_loop
+    rx651_cur."!mark_push"(0, rx651_pos, $I10)
+  rxscan655_done:
 .annotate 'line', 295
   # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
 .annotate 'line', 296
-  # rx rxquantr655 ** 0..1
-    set_addr $I661, rxquantr655_done
-    rx649_cur."!mark_push"(0, rx649_pos, $I661)
-  rxquantr655_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
-  # rx subcapture "sigil"
-    set_addr $I10, rxcap_659_fail
-    rx649_cur."!mark_push"(0, rx649_pos, $I10)
   # rx rxquantr657 ** 0..1
-    set_addr $I658, rxquantr657_done
-    rx649_cur."!mark_push"(0, rx649_pos, $I658)
+    set_addr $I663, rxquantr657_done
+    rx651_cur."!mark_push"(0, rx651_pos, $I663)
   rxquantr657_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
+  # rx subcapture "sigil"
+    set_addr $I10, rxcap_661_fail
+    rx651_cur."!mark_push"(0, rx651_pos, $I10)
+  # rx rxquantr659 ** 0..1
+    set_addr $I660, rxquantr659_done
+    rx651_cur."!mark_push"(0, rx651_pos, $I660)
+  rxquantr659_loop:
   # rx literal  "&"
-    add $I11, rx649_pos, 1
-    gt $I11, rx649_eos, rx649_fail
-    sub $I11, rx649_pos, rx649_off
-    substr $S10, rx649_tgt, $I11, 1
-    ne $S10, "&", rx649_fail
-    add rx649_pos, 1
-    (rx649_rep) = rx649_cur."!mark_commit"($I658)
-  rxquantr657_done:
-    set_addr $I10, rxcap_659_fail
-    ($I12, $I11) = rx649_cur."!mark_peek"($I10)
-    rx649_cur."!cursor_pos"($I11)
-    ($P10) = rx649_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx649_pos, "")
-    rx649_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx651_pos, 1
+    gt $I11, rx651_eos, rx651_fail
+    sub $I11, rx651_pos, rx651_off
+    substr $S10, rx651_tgt, $I11, 1
+    ne $S10, "&", rx651_fail
+    add rx651_pos, 1
+    (rx651_rep) = rx651_cur."!mark_commit"($I660)
+  rxquantr659_done:
+    set_addr $I10, rxcap_661_fail
+    ($I12, $I11) = rx651_cur."!mark_peek"($I10)
+    rx651_cur."!cursor_pos"($I11)
+    ($P10) = rx651_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx651_pos, "")
+    rx651_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    goto rxcap_659_done
-  rxcap_659_fail:
-    goto rx649_fail
-  rxcap_659_done:
+    goto rxcap_661_done
+  rxcap_661_fail:
+    goto rx651_fail
+  rxcap_661_done:
   # rx subrule "deflongname" subtype=capture negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."deflongname"()
-    unless $P10, rx649_fail
-    rx649_cur."!mark_push"(0, -1, 0, $P10)
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."deflongname"()
+    unless $P10, rx651_fail
+    rx651_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx649_pos = $P10."pos"()
+    rx651_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
+    (rx651_rep) = rx651_cur."!mark_commit"($I663)
+  rxquantr657_done:
   # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
-    (rx649_rep) = rx649_cur."!mark_commit"($I661)
-  rxquantr655_done:
-  # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
 .annotate 'line', 297
   # rx subrule "newpad" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."newpad"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
-  alt664_0:
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."newpad"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
+  alt666_0:
 .annotate 'line', 298
-    set_addr $I10, alt664_1
-    rx649_cur."!mark_push"(0, rx649_pos, $I10)
+    set_addr $I10, alt666_1
+    rx651_cur."!mark_push"(0, rx651_pos, $I10)
   # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx649_pos, 1
-    gt $I11, rx649_eos, rx649_fail
-    sub $I11, rx649_pos, rx649_off
-    substr $S10, rx649_tgt, $I11, 1
-    ne $S10, "(", rx649_fail
-    add rx649_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
+    add $I11, rx651_pos, 1
+    gt $I11, rx651_eos, rx651_fail
+    sub $I11, rx651_pos, rx651_off
+    substr $S10, rx651_tgt, $I11, 1
+    ne $S10, "(", rx651_fail
+    add rx651_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."signature"()
-    unless $P10, rx649_fail
-    rx649_cur."!mark_push"(0, -1, 0, $P10)
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."signature"()
+    unless $P10, rx651_fail
+    rx651_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx649_pos = $P10."pos"()
+    rx651_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx649_pos, 1
-    gt $I11, rx649_eos, rx649_fail
-    sub $I11, rx649_pos, rx649_off
-    substr $S10, rx649_tgt, $I11, 1
-    ne $S10, ")", rx649_fail
-    add rx649_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
-    goto alt664_end
-  alt664_1:
+    add $I11, rx651_pos, 1
+    gt $I11, rx651_eos, rx651_fail
+    sub $I11, rx651_pos, rx651_off
+    substr $S10, rx651_tgt, $I11, 1
+    ne $S10, ")", rx651_fail
+    add rx651_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
+    goto alt666_end
+  alt666_1:
 .annotate 'line', 299
   # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."panic"("Routine declaration requires a signature")
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
-  alt664_end:
-  # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."panic"("Routine declaration requires a signature")
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
+  alt666_end:
+  # rx subrule "ws" subtype=method negate=
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
 .annotate 'line', 300
   # rx subrule "blockoid" subtype=capture negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."blockoid"()
-    unless $P10, rx649_fail
-    rx649_cur."!mark_push"(0, -1, 0, $P10)
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."blockoid"()
+    unless $P10, rx651_fail
+    rx651_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx649_pos = $P10."pos"()
+    rx651_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx649_cur."!cursor_pos"(rx649_pos)
-    $P10 = rx649_cur."ws"()
-    unless $P10, rx649_fail
-    rx649_pos = $P10."pos"()
+    rx651_cur."!cursor_pos"(rx651_pos)
+    $P10 = rx651_cur."ws"()
+    unless $P10, rx651_fail
+    rx651_pos = $P10."pos"()
 .annotate 'line', 295
   # rx pass
-    rx649_cur."!cursor_pass"(rx649_pos, "routine_def")
-    rx649_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx649_pos)
-    .return (rx649_cur)
-  rx649_fail:
+    rx651_cur."!cursor_pass"(rx651_pos, "routine_def")
+    rx651_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx651_pos)
+    .return (rx651_cur)
+  rx651_fail:
 .annotate 'line', 4
-    (rx649_rep, rx649_pos, $I10, $P10) = rx649_cur."!mark_fail"(0)
-    lt rx649_pos, -1, rx649_done
-    eq rx649_pos, -1, rx649_fail
+    (rx651_rep, rx651_pos, $I10, $P10) = rx651_cur."!mark_fail"(0)
+    lt rx651_pos, -1, rx651_done
+    eq rx651_pos, -1, rx651_fail
     jump $I10
-  rx649_done:
-    rx649_cur."!cursor_fail"()
-    rx649_cur."!cursor_debug"("FAIL  ", "routine_def")
-    .return (rx649_cur)
+  rx651_done:
+    rx651_cur."!cursor_fail"()
+    rx651_cur."!cursor_debug"("FAIL  ", "routine_def")
+    .return (rx651_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("159_1275811487.95429") :method
+.sub "!PREFIX__routine_def"  :subid("159_1277356913.9538") :method
 .annotate 'line', 4
-    $P651 = self."!PREFIX__!subrule"("ws", "")
-    new $P652, "ResizablePMCArray"
-    push $P652, $P651
-    .return ($P652)
+    $P653 = self."!PREFIX__!subrule"("ws", "")
+    new $P654, "ResizablePMCArray"
+    push $P654, $P653
+    .return ($P654)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("160_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "method_def"  :subid("160_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx674_tgt
-    .local int rx674_pos
-    .local int rx674_off
-    .local int rx674_eos
-    .local int rx674_rep
-    .local pmc rx674_cur
-    (rx674_cur, rx674_pos, rx674_tgt) = self."!cursor_start"()
-    rx674_cur."!cursor_debug"("START ", "method_def")
-    rx674_cur."!cursor_caparray"("deflongname")
-    .lex unicode:"$\x{a2}", rx674_cur
+    .local string rx676_tgt
+    .local int rx676_pos
+    .local int rx676_off
+    .local int rx676_eos
+    .local int rx676_rep
+    .local pmc rx676_cur
+    (rx676_cur, rx676_pos, rx676_tgt) = self."!cursor_start"()
+    rx676_cur."!cursor_debug"("START ", "method_def")
+    rx676_cur."!cursor_caparray"("deflongname")
+    .lex unicode:"$\x{a2}", rx676_cur
     .local pmc match
     .lex "$/", match
-    length rx674_eos, rx674_tgt
-    gt rx674_pos, rx674_eos, rx674_done
-    set rx674_off, 0
-    lt rx674_pos, 2, rx674_start
-    sub rx674_off, rx674_pos, 1
-    substr rx674_tgt, rx674_tgt, rx674_off
-  rx674_start:
+    length rx676_eos, rx676_tgt
+    gt rx676_pos, rx676_eos, rx676_done
+    set rx676_off, 0
+    lt rx676_pos, 2, rx676_start
+    sub rx676_off, rx676_pos, 1
+    substr rx676_tgt, rx676_tgt, rx676_off
+  rx676_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan678_done
-    goto rxscan678_scan
-  rxscan678_loop:
-    ($P10) = rx674_cur."from"()
+    ne $I10, -1, rxscan680_done
+    goto rxscan680_scan
+  rxscan680_loop:
+    ($P10) = rx676_cur."from"()
     inc $P10
-    set rx674_pos, $P10
-    ge rx674_pos, rx674_eos, rxscan678_done
-  rxscan678_scan:
-    set_addr $I10, rxscan678_loop
-    rx674_cur."!mark_push"(0, rx674_pos, $I10)
-  rxscan678_done:
+    set rx676_pos, $P10
+    ge rx676_pos, rx676_eos, rxscan680_done
+  rxscan680_scan:
+    set_addr $I10, rxscan680_loop
+    rx676_cur."!mark_push"(0, rx676_pos, $I10)
+  rxscan680_done:
 .annotate 'line', 303
   # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
 .annotate 'line', 304
-  # rx rxquantr680 ** 0..1
-    set_addr $I681, rxquantr680_done
-    rx674_cur."!mark_push"(0, rx674_pos, $I681)
-  rxquantr680_loop:
+  # rx rxquantr682 ** 0..1
+    set_addr $I683, rxquantr682_done
+    rx676_cur."!mark_push"(0, rx676_pos, $I683)
+  rxquantr682_loop:
   # rx subrule "deflongname" subtype=capture negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."deflongname"()
-    unless $P10, rx674_fail
-    rx674_cur."!mark_push"(0, -1, 0, $P10)
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."deflongname"()
+    unless $P10, rx676_fail
+    rx676_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx674_pos = $P10."pos"()
-    (rx674_rep) = rx674_cur."!mark_commit"($I681)
-  rxquantr680_done:
-  # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
+    rx676_pos = $P10."pos"()
+    (rx676_rep) = rx676_cur."!mark_commit"($I683)
+  rxquantr682_done:
+  # rx subrule "ws" subtype=method negate=
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
 .annotate 'line', 305
   # rx subrule "newpad" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."newpad"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
-  alt684_0:
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."newpad"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
+  alt686_0:
 .annotate 'line', 306
-    set_addr $I10, alt684_1
-    rx674_cur."!mark_push"(0, rx674_pos, $I10)
+    set_addr $I10, alt686_1
+    rx676_cur."!mark_push"(0, rx676_pos, $I10)
   # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx674_pos, 1
-    gt $I11, rx674_eos, rx674_fail
-    sub $I11, rx674_pos, rx674_off
-    substr $S10, rx674_tgt, $I11, 1
-    ne $S10, "(", rx674_fail
-    add rx674_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
+    add $I11, rx676_pos, 1
+    gt $I11, rx676_eos, rx676_fail
+    sub $I11, rx676_pos, rx676_off
+    substr $S10, rx676_tgt, $I11, 1
+    ne $S10, "(", rx676_fail
+    add rx676_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
   # rx subrule "signature" subtype=capture negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."signature"()
-    unless $P10, rx674_fail
-    rx674_cur."!mark_push"(0, -1, 0, $P10)
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."signature"()
+    unless $P10, rx676_fail
+    rx676_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx674_pos = $P10."pos"()
+    rx676_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx674_pos, 1
-    gt $I11, rx674_eos, rx674_fail
-    sub $I11, rx674_pos, rx674_off
-    substr $S10, rx674_tgt, $I11, 1
-    ne $S10, ")", rx674_fail
-    add rx674_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
-    goto alt684_end
-  alt684_1:
+    add $I11, rx676_pos, 1
+    gt $I11, rx676_eos, rx676_fail
+    sub $I11, rx676_pos, rx676_off
+    substr $S10, rx676_tgt, $I11, 1
+    ne $S10, ")", rx676_fail
+    add rx676_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
+    goto alt686_end
+  alt686_1:
 .annotate 'line', 307
   # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."panic"("Routine declaration requires a signature")
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
-  alt684_end:
-  # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."panic"("Routine declaration requires a signature")
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
+  # rx subrule "ws" subtype=method negate=
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
+  alt686_end:
+  # rx subrule "ws" subtype=method negate=
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
 .annotate 'line', 308
   # rx subrule "blockoid" subtype=capture negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."blockoid"()
-    unless $P10, rx674_fail
-    rx674_cur."!mark_push"(0, -1, 0, $P10)
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."blockoid"()
+    unless $P10, rx676_fail
+    rx676_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("blockoid")
-    rx674_pos = $P10."pos"()
+    rx676_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx674_cur."!cursor_pos"(rx674_pos)
-    $P10 = rx674_cur."ws"()
-    unless $P10, rx674_fail
-    rx674_pos = $P10."pos"()
+    rx676_cur."!cursor_pos"(rx676_pos)
+    $P10 = rx676_cur."ws"()
+    unless $P10, rx676_fail
+    rx676_pos = $P10."pos"()
 .annotate 'line', 303
   # rx pass
-    rx674_cur."!cursor_pass"(rx674_pos, "method_def")
-    rx674_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx674_pos)
-    .return (rx674_cur)
-  rx674_fail:
+    rx676_cur."!cursor_pass"(rx676_pos, "method_def")
+    rx676_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx676_pos)
+    .return (rx676_cur)
+  rx676_fail:
 .annotate 'line', 4
-    (rx674_rep, rx674_pos, $I10, $P10) = rx674_cur."!mark_fail"(0)
-    lt rx674_pos, -1, rx674_done
-    eq rx674_pos, -1, rx674_fail
+    (rx676_rep, rx676_pos, $I10, $P10) = rx676_cur."!mark_fail"(0)
+    lt rx676_pos, -1, rx676_done
+    eq rx676_pos, -1, rx676_fail
     jump $I10
-  rx674_done:
-    rx674_cur."!cursor_fail"()
-    rx674_cur."!cursor_debug"("FAIL  ", "method_def")
-    .return (rx674_cur)
+  rx676_done:
+    rx676_cur."!cursor_fail"()
+    rx676_cur."!cursor_debug"("FAIL  ", "method_def")
+    .return (rx676_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("161_1275811487.95429") :method
+.sub "!PREFIX__method_def"  :subid("161_1277356913.9538") :method
 .annotate 'line', 4
-    $P676 = self."!PREFIX__!subrule"("ws", "")
-    new $P677, "ResizablePMCArray"
-    push $P677, $P676
-    .return ($P677)
+    $P678 = self."!PREFIX__!subrule"("ws", "")
+    new $P679, "ResizablePMCArray"
+    push $P679, $P678
+    .return ($P679)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator"  :subid("162_1275811487.95429") :method
+.sub "multi_declarator"  :subid("162_1277356913.9538") :method
 .annotate 'line', 311
-    $P694 = self."!protoregex"("multi_declarator")
-    .return ($P694)
+    $P696 = self."!protoregex"("multi_declarator")
+    .return ($P696)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator"  :subid("163_1275811487.95429") :method
+.sub "!PREFIX__multi_declarator"  :subid("163_1277356913.9538") :method
 .annotate 'line', 311
-    $P696 = self."!PREFIX__!protoregex"("multi_declarator")
-    .return ($P696)
+    $P698 = self."!PREFIX__!protoregex"("multi_declarator")
+    .return ($P698)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<multi>"  :subid("164_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "multi_declarator:sym<multi>"  :subid("164_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 313
-    new $P698, "Undef"
-    .lex "$*MULTINESS", $P698
+    new $P700, "Undef"
+    .lex "$*MULTINESS", $P700
 .annotate 'line', 4
-    .local string rx699_tgt
-    .local int rx699_pos
-    .local int rx699_off
-    .local int rx699_eos
-    .local int rx699_rep
-    .local pmc rx699_cur
-    (rx699_cur, rx699_pos, rx699_tgt) = self."!cursor_start"()
-    rx699_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
-    .lex unicode:"$\x{a2}", rx699_cur
-    .local pmc match
-    .lex "$/", match
-    length rx699_eos, rx699_tgt
-    gt rx699_pos, rx699_eos, rx699_done
-    set rx699_off, 0
-    lt rx699_pos, 2, rx699_start
-    sub rx699_off, rx699_pos, 1
-    substr rx699_tgt, rx699_tgt, rx699_off
-  rx699_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan703_done
-    goto rxscan703_scan
-  rxscan703_loop:
-    ($P10) = rx699_cur."from"()
-    inc $P10
-    set rx699_pos, $P10
-    ge rx699_pos, rx699_eos, rxscan703_done
-  rxscan703_scan:
-    set_addr $I10, rxscan703_loop
-    rx699_cur."!mark_push"(0, rx699_pos, $I10)
-  rxscan703_done:
+    .local string rx701_tgt
+    .local int rx701_pos
+    .local int rx701_off
+    .local int rx701_eos
+    .local int rx701_rep
+    .local pmc rx701_cur
+    (rx701_cur, rx701_pos, rx701_tgt) = self."!cursor_start"()
+    rx701_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
+    .lex unicode:"$\x{a2}", rx701_cur
+    .local pmc match
+    .lex "$/", match
+    length rx701_eos, rx701_tgt
+    gt rx701_pos, rx701_eos, rx701_done
+    set rx701_off, 0
+    lt rx701_pos, 2, rx701_start
+    sub rx701_off, rx701_pos, 1
+    substr rx701_tgt, rx701_tgt, rx701_off
+  rx701_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan705_done
+    goto rxscan705_scan
+  rxscan705_loop:
+    ($P10) = rx701_cur."from"()
+    inc $P10
+    set rx701_pos, $P10
+    ge rx701_pos, rx701_eos, rxscan705_done
+  rxscan705_scan:
+    set_addr $I10, rxscan705_loop
+    rx701_cur."!mark_push"(0, rx701_pos, $I10)
+  rxscan705_done:
 .annotate 'line', 313
-    rx699_cur."!cursor_pos"(rx699_pos)
-    new $P704, "String"
-    assign $P704, "multi"
-    store_lex "$*MULTINESS", $P704
+    rx701_cur."!cursor_pos"(rx701_pos)
+    new $P706, "String"
+    assign $P706, "multi"
+    store_lex "$*MULTINESS", $P706
 .annotate 'line', 314
   # rx subcapture "sym"
-    set_addr $I10, rxcap_705_fail
-    rx699_cur."!mark_push"(0, rx699_pos, $I10)
+    set_addr $I10, rxcap_707_fail
+    rx701_cur."!mark_push"(0, rx701_pos, $I10)
   # rx literal  "multi"
-    add $I11, rx699_pos, 5
-    gt $I11, rx699_eos, rx699_fail
-    sub $I11, rx699_pos, rx699_off
-    substr $S10, rx699_tgt, $I11, 5
-    ne $S10, "multi", rx699_fail
-    add rx699_pos, 5
-    set_addr $I10, rxcap_705_fail
-    ($I12, $I11) = rx699_cur."!mark_peek"($I10)
-    rx699_cur."!cursor_pos"($I11)
-    ($P10) = rx699_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx699_pos, "")
-    rx699_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx701_pos, 5
+    gt $I11, rx701_eos, rx701_fail
+    sub $I11, rx701_pos, rx701_off
+    substr $S10, rx701_tgt, $I11, 5
+    ne $S10, "multi", rx701_fail
+    add rx701_pos, 5
+    set_addr $I10, rxcap_707_fail
+    ($I12, $I11) = rx701_cur."!mark_peek"($I10)
+    rx701_cur."!cursor_pos"($I11)
+    ($P10) = rx701_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx701_pos, "")
+    rx701_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_705_done
-  rxcap_705_fail:
-    goto rx699_fail
-  rxcap_705_done:
+    goto rxcap_707_done
+  rxcap_707_fail:
+    goto rx701_fail
+  rxcap_707_done:
 .annotate 'line', 315
   # rx subrule "ws" subtype=method negate=
-    rx699_cur."!cursor_pos"(rx699_pos)
-    $P10 = rx699_cur."ws"()
-    unless $P10, rx699_fail
-    rx699_pos = $P10."pos"()
-  alt706_0:
-    set_addr $I10, alt706_1
-    rx699_cur."!mark_push"(0, rx699_pos, $I10)
+    rx701_cur."!cursor_pos"(rx701_pos)
+    $P10 = rx701_cur."ws"()
+    unless $P10, rx701_fail
+    rx701_pos = $P10."pos"()
+  alt708_0:
+    set_addr $I10, alt708_1
+    rx701_cur."!mark_push"(0, rx701_pos, $I10)
   # rx subrule "declarator" subtype=capture negate=
-    rx699_cur."!cursor_pos"(rx699_pos)
-    $P10 = rx699_cur."declarator"()
-    unless $P10, rx699_fail
-    rx699_cur."!mark_push"(0, -1, 0, $P10)
+    rx701_cur."!cursor_pos"(rx701_pos)
+    $P10 = rx701_cur."declarator"()
+    unless $P10, rx701_fail
+    rx701_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx699_pos = $P10."pos"()
-    goto alt706_end
-  alt706_1:
-    set_addr $I10, alt706_2
-    rx699_cur."!mark_push"(0, rx699_pos, $I10)
+    rx701_pos = $P10."pos"()
+    goto alt708_end
+  alt708_1:
+    set_addr $I10, alt708_2
+    rx701_cur."!mark_push"(0, rx701_pos, $I10)
   # rx subrule "routine_def" subtype=capture negate=
-    rx699_cur."!cursor_pos"(rx699_pos)
-    $P10 = rx699_cur."routine_def"()
-    unless $P10, rx699_fail
-    rx699_cur."!mark_push"(0, -1, 0, $P10)
+    rx701_cur."!cursor_pos"(rx701_pos)
+    $P10 = rx701_cur."routine_def"()
+    unless $P10, rx701_fail
+    rx701_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("routine_def")
-    rx699_pos = $P10."pos"()
-    goto alt706_end
-  alt706_2:
+    rx701_pos = $P10."pos"()
+    goto alt708_end
+  alt708_2:
   # rx subrule "panic" subtype=method negate=
-    rx699_cur."!cursor_pos"(rx699_pos)
-    $P10 = rx699_cur."panic"("Malformed multi")
-    unless $P10, rx699_fail
-    rx699_pos = $P10."pos"()
-  alt706_end:
+    rx701_cur."!cursor_pos"(rx701_pos)
+    $P10 = rx701_cur."panic"("Malformed multi")
+    unless $P10, rx701_fail
+    rx701_pos = $P10."pos"()
+  alt708_end:
 .annotate 'line', 312
   # rx pass
-    rx699_cur."!cursor_pass"(rx699_pos, "multi_declarator:sym<multi>")
-    rx699_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<multi>", " at pos=", rx699_pos)
-    .return (rx699_cur)
-  rx699_fail:
+    rx701_cur."!cursor_pass"(rx701_pos, "multi_declarator:sym<multi>")
+    rx701_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<multi>", " at pos=", rx701_pos)
+    .return (rx701_cur)
+  rx701_fail:
 .annotate 'line', 4
-    (rx699_rep, rx699_pos, $I10, $P10) = rx699_cur."!mark_fail"(0)
-    lt rx699_pos, -1, rx699_done
-    eq rx699_pos, -1, rx699_fail
+    (rx701_rep, rx701_pos, $I10, $P10) = rx701_cur."!mark_fail"(0)
+    lt rx701_pos, -1, rx701_done
+    eq rx701_pos, -1, rx701_fail
     jump $I10
-  rx699_done:
-    rx699_cur."!cursor_fail"()
-    rx699_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<multi>")
-    .return (rx699_cur)
+  rx701_done:
+    rx701_cur."!cursor_fail"()
+    rx701_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<multi>")
+    .return (rx701_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("165_1275811487.95429") :method
+.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("165_1277356913.9538") :method
 .annotate 'line', 4
-    $P701 = self."!PREFIX__!subrule"("ws", "multi")
-    new $P702, "ResizablePMCArray"
-    push $P702, $P701
-    .return ($P702)
+    $P703 = self."!PREFIX__!subrule"("ws", "multi")
+    new $P704, "ResizablePMCArray"
+    push $P704, $P703
+    .return ($P704)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<null>"  :subid("166_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "multi_declarator:sym<null>"  :subid("166_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 318
-    new $P708, "Undef"
-    .lex "$*MULTINESS", $P708
+    new $P710, "Undef"
+    .lex "$*MULTINESS", $P710
 .annotate 'line', 4
-    .local string rx709_tgt
-    .local int rx709_pos
-    .local int rx709_off
-    .local int rx709_eos
-    .local int rx709_rep
-    .local pmc rx709_cur
-    (rx709_cur, rx709_pos, rx709_tgt) = self."!cursor_start"()
-    rx709_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
-    .lex unicode:"$\x{a2}", rx709_cur
-    .local pmc match
-    .lex "$/", match
-    length rx709_eos, rx709_tgt
-    gt rx709_pos, rx709_eos, rx709_done
-    set rx709_off, 0
-    lt rx709_pos, 2, rx709_start
-    sub rx709_off, rx709_pos, 1
-    substr rx709_tgt, rx709_tgt, rx709_off
-  rx709_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan713_done
-    goto rxscan713_scan
-  rxscan713_loop:
-    ($P10) = rx709_cur."from"()
-    inc $P10
-    set rx709_pos, $P10
-    ge rx709_pos, rx709_eos, rxscan713_done
-  rxscan713_scan:
-    set_addr $I10, rxscan713_loop
-    rx709_cur."!mark_push"(0, rx709_pos, $I10)
-  rxscan713_done:
+    .local string rx711_tgt
+    .local int rx711_pos
+    .local int rx711_off
+    .local int rx711_eos
+    .local int rx711_rep
+    .local pmc rx711_cur
+    (rx711_cur, rx711_pos, rx711_tgt) = self."!cursor_start"()
+    rx711_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+    .lex unicode:"$\x{a2}", rx711_cur
+    .local pmc match
+    .lex "$/", match
+    length rx711_eos, rx711_tgt
+    gt rx711_pos, rx711_eos, rx711_done
+    set rx711_off, 0
+    lt rx711_pos, 2, rx711_start
+    sub rx711_off, rx711_pos, 1
+    substr rx711_tgt, rx711_tgt, rx711_off
+  rx711_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan715_done
+    goto rxscan715_scan
+  rxscan715_loop:
+    ($P10) = rx711_cur."from"()
+    inc $P10
+    set rx711_pos, $P10
+    ge rx711_pos, rx711_eos, rxscan715_done
+  rxscan715_scan:
+    set_addr $I10, rxscan715_loop
+    rx711_cur."!mark_push"(0, rx711_pos, $I10)
+  rxscan715_done:
 .annotate 'line', 318
-    rx709_cur."!cursor_pos"(rx709_pos)
-    new $P714, "String"
-    assign $P714, ""
-    store_lex "$*MULTINESS", $P714
+    rx711_cur."!cursor_pos"(rx711_pos)
+    new $P716, "String"
+    assign $P716, ""
+    store_lex "$*MULTINESS", $P716
 .annotate 'line', 319
   # rx subrule "declarator" subtype=capture negate=
-    rx709_cur."!cursor_pos"(rx709_pos)
-    $P10 = rx709_cur."declarator"()
-    unless $P10, rx709_fail
-    rx709_cur."!mark_push"(0, -1, 0, $P10)
+    rx711_cur."!cursor_pos"(rx711_pos)
+    $P10 = rx711_cur."declarator"()
+    unless $P10, rx711_fail
+    rx711_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("declarator")
-    rx709_pos = $P10."pos"()
+    rx711_pos = $P10."pos"()
 .annotate 'line', 317
   # rx pass
-    rx709_cur."!cursor_pass"(rx709_pos, "multi_declarator:sym<null>")
-    rx709_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<null>", " at pos=", rx709_pos)
-    .return (rx709_cur)
-  rx709_fail:
+    rx711_cur."!cursor_pass"(rx711_pos, "multi_declarator:sym<null>")
+    rx711_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<null>", " at pos=", rx711_pos)
+    .return (rx711_cur)
+  rx711_fail:
 .annotate 'line', 4
-    (rx709_rep, rx709_pos, $I10, $P10) = rx709_cur."!mark_fail"(0)
-    lt rx709_pos, -1, rx709_done
-    eq rx709_pos, -1, rx709_fail
+    (rx711_rep, rx711_pos, $I10, $P10) = rx711_cur."!mark_fail"(0)
+    lt rx711_pos, -1, rx711_done
+    eq rx711_pos, -1, rx711_fail
     jump $I10
-  rx709_done:
-    rx709_cur."!cursor_fail"()
-    rx709_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<null>")
-    .return (rx709_cur)
+  rx711_done:
+    rx711_cur."!cursor_fail"()
+    rx711_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<null>")
+    .return (rx711_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<null>"  :subid("167_1275811487.95429") :method
+.sub "!PREFIX__multi_declarator:sym<null>"  :subid("167_1277356913.9538") :method
 .annotate 'line', 4
-    $P711 = self."!PREFIX__!subrule"("declarator", "")
-    new $P712, "ResizablePMCArray"
-    push $P712, $P711
-    .return ($P712)
+    $P713 = self."!PREFIX__!subrule"("declarator", "")
+    new $P714, "ResizablePMCArray"
+    push $P714, $P713
+    .return ($P714)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("168_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "signature"  :subid("168_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx716_tgt
-    .local int rx716_pos
-    .local int rx716_off
-    .local int rx716_eos
-    .local int rx716_rep
-    .local pmc rx716_cur
-    (rx716_cur, rx716_pos, rx716_tgt) = self."!cursor_start"()
-    rx716_cur."!cursor_debug"("START ", "signature")
-    rx716_cur."!cursor_caparray"("parameter")
-    .lex unicode:"$\x{a2}", rx716_cur
+    .local string rx718_tgt
+    .local int rx718_pos
+    .local int rx718_off
+    .local int rx718_eos
+    .local int rx718_rep
+    .local pmc rx718_cur
+    (rx718_cur, rx718_pos, rx718_tgt) = self."!cursor_start"()
+    rx718_cur."!cursor_debug"("START ", "signature")
+    rx718_cur."!cursor_caparray"("parameter")
+    .lex unicode:"$\x{a2}", rx718_cur
     .local pmc match
     .lex "$/", match
-    length rx716_eos, rx716_tgt
-    gt rx716_pos, rx716_eos, rx716_done
-    set rx716_off, 0
-    lt rx716_pos, 2, rx716_start
-    sub rx716_off, rx716_pos, 1
-    substr rx716_tgt, rx716_tgt, rx716_off
-  rx716_start:
+    length rx718_eos, rx718_tgt
+    gt rx718_pos, rx718_eos, rx718_done
+    set rx718_off, 0
+    lt rx718_pos, 2, rx718_start
+    sub rx718_off, rx718_pos, 1
+    substr rx718_tgt, rx718_tgt, rx718_off
+  rx718_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan719_done
-    goto rxscan719_scan
-  rxscan719_loop:
-    ($P10) = rx716_cur."from"()
+    ne $I10, -1, rxscan721_done
+    goto rxscan721_scan
+  rxscan721_loop:
+    ($P10) = rx718_cur."from"()
     inc $P10
-    set rx716_pos, $P10
-    ge rx716_pos, rx716_eos, rxscan719_done
-  rxscan719_scan:
-    set_addr $I10, rxscan719_loop
-    rx716_cur."!mark_push"(0, rx716_pos, $I10)
-  rxscan719_done:
+    set rx718_pos, $P10
+    ge rx718_pos, rx718_eos, rxscan721_done
+  rxscan721_scan:
+    set_addr $I10, rxscan721_loop
+    rx718_cur."!mark_push"(0, rx718_pos, $I10)
+  rxscan721_done:
 .annotate 'line', 322
-  # rx rxquantr720 ** 0..1
-    set_addr $I723, rxquantr720_done
-    rx716_cur."!mark_push"(0, rx716_pos, $I723)
-  rxquantr720_loop:
-  # rx rxquantr721 ** 1..*
-    set_addr $I722, rxquantr721_done
-    rx716_cur."!mark_push"(0, -1, $I722)
-  rxquantr721_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx716_cur."!cursor_pos"(rx716_pos)
-    $P10 = rx716_cur."ws"()
-    unless $P10, rx716_fail
-    rx716_pos = $P10."pos"()
+  # rx rxquantr722 ** 0..1
+    set_addr $I725, rxquantr722_done
+    rx718_cur."!mark_push"(0, rx718_pos, $I725)
+  rxquantr722_loop:
+  # rx rxquantr723 ** 1..*
+    set_addr $I724, rxquantr723_done
+    rx718_cur."!mark_push"(0, -1, $I724)
+  rxquantr723_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx718_cur."!cursor_pos"(rx718_pos)
+    $P10 = rx718_cur."ws"()
+    unless $P10, rx718_fail
+    rx718_pos = $P10."pos"()
   # rx subrule "parameter" subtype=capture negate=
-    rx716_cur."!cursor_pos"(rx716_pos)
-    $P10 = rx716_cur."parameter"()
-    unless $P10, rx716_fail
-    rx716_cur."!mark_push"(0, -1, 0, $P10)
+    rx718_cur."!cursor_pos"(rx718_pos)
+    $P10 = rx718_cur."parameter"()
+    unless $P10, rx718_fail
+    rx718_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("parameter")
-    rx716_pos = $P10."pos"()
+    rx718_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx716_cur."!cursor_pos"(rx716_pos)
-    $P10 = rx716_cur."ws"()
-    unless $P10, rx716_fail
-    rx716_pos = $P10."pos"()
-    (rx716_rep) = rx716_cur."!mark_commit"($I722)
-    rx716_cur."!mark_push"(rx716_rep, rx716_pos, $I722)
+    rx718_cur."!cursor_pos"(rx718_pos)
+    $P10 = rx718_cur."ws"()
+    unless $P10, rx718_fail
+    rx718_pos = $P10."pos"()
+    (rx718_rep) = rx718_cur."!mark_commit"($I724)
+    rx718_cur."!mark_push"(rx718_rep, rx718_pos, $I724)
   # rx literal  ","
-    add $I11, rx716_pos, 1
-    gt $I11, rx716_eos, rx716_fail
-    sub $I11, rx716_pos, rx716_off
-    substr $S10, rx716_tgt, $I11, 1
-    ne $S10, ",", rx716_fail
-    add rx716_pos, 1
-    goto rxquantr721_loop
-  rxquantr721_done:
-    (rx716_rep) = rx716_cur."!mark_commit"($I723)
-  rxquantr720_done:
+    add $I11, rx718_pos, 1
+    gt $I11, rx718_eos, rx718_fail
+    sub $I11, rx718_pos, rx718_off
+    substr $S10, rx718_tgt, $I11, 1
+    ne $S10, ",", rx718_fail
+    add rx718_pos, 1
+    goto rxquantr723_loop
+  rxquantr723_done:
+    (rx718_rep) = rx718_cur."!mark_commit"($I725)
+  rxquantr722_done:
   # rx pass
-    rx716_cur."!cursor_pass"(rx716_pos, "signature")
-    rx716_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx716_pos)
-    .return (rx716_cur)
-  rx716_fail:
+    rx718_cur."!cursor_pass"(rx718_pos, "signature")
+    rx718_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx718_pos)
+    .return (rx718_cur)
+  rx718_fail:
 .annotate 'line', 4
-    (rx716_rep, rx716_pos, $I10, $P10) = rx716_cur."!mark_fail"(0)
-    lt rx716_pos, -1, rx716_done
-    eq rx716_pos, -1, rx716_fail
+    (rx718_rep, rx718_pos, $I10, $P10) = rx718_cur."!mark_fail"(0)
+    lt rx718_pos, -1, rx718_done
+    eq rx718_pos, -1, rx718_fail
     jump $I10
-  rx716_done:
-    rx716_cur."!cursor_fail"()
-    rx716_cur."!cursor_debug"("FAIL  ", "signature")
-    .return (rx716_cur)
+  rx718_done:
+    rx718_cur."!cursor_fail"()
+    rx718_cur."!cursor_debug"("FAIL  ", "signature")
+    .return (rx718_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("169_1275811487.95429") :method
+.sub "!PREFIX__signature"  :subid("169_1277356913.9538") :method
 .annotate 'line', 4
-    new $P718, "ResizablePMCArray"
-    push $P718, ""
-    .return ($P718)
+    new $P720, "ResizablePMCArray"
+    push $P720, ""
+    .return ($P720)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("170_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "parameter"  :subid("170_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx725_tgt
-    .local int rx725_pos
-    .local int rx725_off
-    .local int rx725_eos
-    .local int rx725_rep
-    .local pmc rx725_cur
-    (rx725_cur, rx725_pos, rx725_tgt) = self."!cursor_start"()
-    rx725_cur."!cursor_debug"("START ", "parameter")
-    rx725_cur."!cursor_caparray"("default_value", "typename")
-    .lex unicode:"$\x{a2}", rx725_cur
+    .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 ", "parameter")
+    rx727_cur."!cursor_caparray"("default_value", "typename")
+    .lex unicode:"$\x{a2}", rx727_cur
     .local pmc match
     .lex "$/", match
-    length rx725_eos, rx725_tgt
-    gt rx725_pos, rx725_eos, rx725_done
-    set rx725_off, 0
-    lt rx725_pos, 2, rx725_start
-    sub rx725_off, rx725_pos, 1
-    substr rx725_tgt, rx725_tgt, rx725_off
-  rx725_start:
+    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, rxscan728_done
-    goto rxscan728_scan
-  rxscan728_loop:
-    ($P10) = rx725_cur."from"()
+    ne $I10, -1, rxscan730_done
+    goto rxscan730_scan
+  rxscan730_loop:
+    ($P10) = rx727_cur."from"()
     inc $P10
-    set rx725_pos, $P10
-    ge rx725_pos, rx725_eos, rxscan728_done
-  rxscan728_scan:
-    set_addr $I10, rxscan728_loop
-    rx725_cur."!mark_push"(0, rx725_pos, $I10)
-  rxscan728_done:
+    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', 325
-  # rx rxquantr729 ** 0..*
-    set_addr $I730, rxquantr729_done
-    rx725_cur."!mark_push"(0, rx725_pos, $I730)
-  rxquantr729_loop:
+  # rx rxquantr731 ** 0..*
+    set_addr $I732, rxquantr731_done
+    rx727_cur."!mark_push"(0, rx727_pos, $I732)
+  rxquantr731_loop:
   # rx subrule "typename" subtype=capture negate=
-    rx725_cur."!cursor_pos"(rx725_pos)
-    $P10 = rx725_cur."typename"()
-    unless $P10, rx725_fail
-    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    rx727_cur."!cursor_pos"(rx727_pos)
+    $P10 = rx727_cur."typename"()
+    unless $P10, rx727_fail
+    rx727_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("typename")
-    rx725_pos = $P10."pos"()
+    rx727_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx725_cur."!cursor_pos"(rx725_pos)
-    $P10 = rx725_cur."ws"()
-    unless $P10, rx725_fail
-    rx725_pos = $P10."pos"()
-    (rx725_rep) = rx725_cur."!mark_commit"($I730)
-    rx725_cur."!mark_push"(rx725_rep, rx725_pos, $I730)
-    goto rxquantr729_loop
-  rxquantr729_done:
-  alt731_0:
+    rx727_cur."!cursor_pos"(rx727_pos)
+    $P10 = rx727_cur."ws"()
+    unless $P10, rx727_fail
+    rx727_pos = $P10."pos"()
+    (rx727_rep) = rx727_cur."!mark_commit"($I732)
+    rx727_cur."!mark_push"(rx727_rep, rx727_pos, $I732)
+    goto rxquantr731_loop
+  rxquantr731_done:
+  alt733_0:
 .annotate 'line', 326
-    set_addr $I10, alt731_1
-    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+    set_addr $I10, alt733_1
+    rx727_cur."!mark_push"(0, rx727_pos, $I10)
 .annotate 'line', 327
   # rx subcapture "quant"
-    set_addr $I10, rxcap_732_fail
-    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+    set_addr $I10, rxcap_734_fail
+    rx727_cur."!mark_push"(0, rx727_pos, $I10)
   # rx literal  "*"
-    add $I11, rx725_pos, 1
-    gt $I11, rx725_eos, rx725_fail
-    sub $I11, rx725_pos, rx725_off
-    substr $S10, rx725_tgt, $I11, 1
-    ne $S10, "*", rx725_fail
-    add rx725_pos, 1
-    set_addr $I10, rxcap_732_fail
-    ($I12, $I11) = rx725_cur."!mark_peek"($I10)
-    rx725_cur."!cursor_pos"($I11)
-    ($P10) = rx725_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx725_pos, "")
-    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    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
+    set_addr $I10, rxcap_734_fail
+    ($I12, $I11) = rx727_cur."!mark_peek"($I10)
+    rx727_cur."!cursor_pos"($I11)
+    ($P10) = rx727_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx727_pos, "")
+    rx727_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quant")
-    goto rxcap_732_done
-  rxcap_732_fail:
-    goto rx725_fail
-  rxcap_732_done:
+    goto rxcap_734_done
+  rxcap_734_fail:
+    goto rx727_fail
+  rxcap_734_done:
   # rx subrule "param_var" subtype=capture negate=
-    rx725_cur."!cursor_pos"(rx725_pos)
-    $P10 = rx725_cur."param_var"()
-    unless $P10, rx725_fail
-    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    rx727_cur."!cursor_pos"(rx727_pos)
+    $P10 = rx727_cur."param_var"()
+    unless $P10, rx727_fail
+    rx727_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("param_var")
-    rx725_pos = $P10."pos"()
-    goto alt731_end
-  alt731_1:
-  alt733_0:
+    rx727_pos = $P10."pos"()
+    goto alt733_end
+  alt733_1:
+  alt735_0:
 .annotate 'line', 328
-    set_addr $I10, alt733_1
-    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+    set_addr $I10, alt735_1
+    rx727_cur."!mark_push"(0, rx727_pos, $I10)
   # rx subrule "param_var" subtype=capture negate=
-    rx725_cur."!cursor_pos"(rx725_pos)
-    $P10 = rx725_cur."param_var"()
-    unless $P10, rx725_fail
-    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    rx727_cur."!cursor_pos"(rx727_pos)
+    $P10 = rx727_cur."param_var"()
+    unless $P10, rx727_fail
+    rx727_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("param_var")
-    rx725_pos = $P10."pos"()
-    goto alt733_end
-  alt733_1:
+    rx727_pos = $P10."pos"()
+    goto alt735_end
+  alt735_1:
   # rx subrule "named_param" subtype=capture negate=
-    rx725_cur."!cursor_pos"(rx725_pos)
-    $P10 = rx725_cur."named_param"()
-    unless $P10, rx725_fail
-    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    rx727_cur."!cursor_pos"(rx727_pos)
+    $P10 = rx727_cur."named_param"()
+    unless $P10, rx727_fail
+    rx727_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("named_param")
-    rx725_pos = $P10."pos"()
-  alt733_end:
+    rx727_pos = $P10."pos"()
+  alt735_end:
   # rx subcapture "quant"
-    set_addr $I10, rxcap_735_fail
-    rx725_cur."!mark_push"(0, rx725_pos, $I10)
-  alt734_0:
-    set_addr $I10, alt734_1
-    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+    set_addr $I10, rxcap_737_fail
+    rx727_cur."!mark_push"(0, rx727_pos, $I10)
+  alt736_0:
+    set_addr $I10, alt736_1
+    rx727_cur."!mark_push"(0, rx727_pos, $I10)
   # rx literal  "?"
-    add $I11, rx725_pos, 1
-    gt $I11, rx725_eos, rx725_fail
-    sub $I11, rx725_pos, rx725_off
-    substr $S10, rx725_tgt, $I11, 1
-    ne $S10, "?", rx725_fail
-    add rx725_pos, 1
-    goto alt734_end
-  alt734_1:
-    set_addr $I10, alt734_2
-    rx725_cur."!mark_push"(0, rx725_pos, $I10)
+    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 alt736_end
+  alt736_1:
+    set_addr $I10, alt736_2
+    rx727_cur."!mark_push"(0, rx727_pos, $I10)
   # rx literal  "!"
-    add $I11, rx725_pos, 1
-    gt $I11, rx725_eos, rx725_fail
-    sub $I11, rx725_pos, rx725_off
-    substr $S10, rx725_tgt, $I11, 1
-    ne $S10, "!", rx725_fail
-    add rx725_pos, 1
-    goto alt734_end
-  alt734_2:
-  alt734_end:
-    set_addr $I10, rxcap_735_fail
-    ($I12, $I11) = rx725_cur."!mark_peek"($I10)
-    rx725_cur."!cursor_pos"($I11)
-    ($P10) = rx725_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx725_pos, "")
-    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    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 alt736_end
+  alt736_2:
+  alt736_end:
+    set_addr $I10, rxcap_737_fail
+    ($I12, $I11) = rx727_cur."!mark_peek"($I10)
+    rx727_cur."!cursor_pos"($I11)
+    ($P10) = rx727_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx727_pos, "")
+    rx727_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quant")
-    goto rxcap_735_done
-  rxcap_735_fail:
-    goto rx725_fail
-  rxcap_735_done:
-  alt731_end:
+    goto rxcap_737_done
+  rxcap_737_fail:
+    goto rx727_fail
+  rxcap_737_done:
+  alt733_end:
 .annotate 'line', 330
-  # rx rxquantr736 ** 0..1
-    set_addr $I737, rxquantr736_done
-    rx725_cur."!mark_push"(0, rx725_pos, $I737)
-  rxquantr736_loop:
+  # rx rxquantr738 ** 0..1
+    set_addr $I739, rxquantr738_done
+    rx727_cur."!mark_push"(0, rx727_pos, $I739)
+  rxquantr738_loop:
   # rx subrule "default_value" subtype=capture negate=
-    rx725_cur."!cursor_pos"(rx725_pos)
-    $P10 = rx725_cur."default_value"()
-    unless $P10, rx725_fail
-    rx725_cur."!mark_push"(0, -1, 0, $P10)
+    rx727_cur."!cursor_pos"(rx727_pos)
+    $P10 = rx727_cur."default_value"()
+    unless $P10, rx727_fail
+    rx727_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("default_value")
-    rx725_pos = $P10."pos"()
-    (rx725_rep) = rx725_cur."!mark_commit"($I737)
-  rxquantr736_done:
+    rx727_pos = $P10."pos"()
+    (rx727_rep) = rx727_cur."!mark_commit"($I739)
+  rxquantr738_done:
 .annotate 'line', 324
   # rx pass
-    rx725_cur."!cursor_pass"(rx725_pos, "parameter")
-    rx725_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx725_pos)
-    .return (rx725_cur)
-  rx725_fail:
+    rx727_cur."!cursor_pass"(rx727_pos, "parameter")
+    rx727_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx727_pos)
+    .return (rx727_cur)
+  rx727_fail:
 .annotate 'line', 4
-    (rx725_rep, rx725_pos, $I10, $P10) = rx725_cur."!mark_fail"(0)
-    lt rx725_pos, -1, rx725_done
-    eq rx725_pos, -1, rx725_fail
+    (rx727_rep, rx727_pos, $I10, $P10) = rx727_cur."!mark_fail"(0)
+    lt rx727_pos, -1, rx727_done
+    eq rx727_pos, -1, rx727_fail
     jump $I10
-  rx725_done:
-    rx725_cur."!cursor_fail"()
-    rx725_cur."!cursor_debug"("FAIL  ", "parameter")
-    .return (rx725_cur)
+  rx727_done:
+    rx727_cur."!cursor_fail"()
+    rx727_cur."!cursor_debug"("FAIL  ", "parameter")
+    .return (rx727_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("171_1275811487.95429") :method
+.sub "!PREFIX__parameter"  :subid("171_1277356913.9538") :method
 .annotate 'line', 4
-    new $P727, "ResizablePMCArray"
-    push $P727, ""
-    .return ($P727)
+    new $P729, "ResizablePMCArray"
+    push $P729, ""
+    .return ($P729)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("172_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "param_var"  :subid("172_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx739_tgt
-    .local int rx739_pos
-    .local int rx739_off
-    .local int rx739_eos
-    .local int rx739_rep
-    .local pmc rx739_cur
-    (rx739_cur, rx739_pos, rx739_tgt) = self."!cursor_start"()
-    rx739_cur."!cursor_debug"("START ", "param_var")
-    rx739_cur."!cursor_caparray"("twigil")
-    .lex unicode:"$\x{a2}", rx739_cur
+    .local string rx741_tgt
+    .local int rx741_pos
+    .local int rx741_off
+    .local int rx741_eos
+    .local int rx741_rep
+    .local pmc rx741_cur
+    (rx741_cur, rx741_pos, rx741_tgt) = self."!cursor_start"()
+    rx741_cur."!cursor_debug"("START ", "param_var")
+    rx741_cur."!cursor_caparray"("twigil")
+    .lex unicode:"$\x{a2}", rx741_cur
     .local pmc match
     .lex "$/", match
-    length rx739_eos, rx739_tgt
-    gt rx739_pos, rx739_eos, rx739_done
-    set rx739_off, 0
-    lt rx739_pos, 2, rx739_start
-    sub rx739_off, rx739_pos, 1
-    substr rx739_tgt, rx739_tgt, rx739_off
-  rx739_start:
+    length rx741_eos, rx741_tgt
+    gt rx741_pos, rx741_eos, rx741_done
+    set rx741_off, 0
+    lt rx741_pos, 2, rx741_start
+    sub rx741_off, rx741_pos, 1
+    substr rx741_tgt, rx741_tgt, rx741_off
+  rx741_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan743_done
-    goto rxscan743_scan
-  rxscan743_loop:
-    ($P10) = rx739_cur."from"()
+    ne $I10, -1, rxscan745_done
+    goto rxscan745_scan
+  rxscan745_loop:
+    ($P10) = rx741_cur."from"()
     inc $P10
-    set rx739_pos, $P10
-    ge rx739_pos, rx739_eos, rxscan743_done
-  rxscan743_scan:
-    set_addr $I10, rxscan743_loop
-    rx739_cur."!mark_push"(0, rx739_pos, $I10)
-  rxscan743_done:
+    set rx741_pos, $P10
+    ge rx741_pos, rx741_eos, rxscan745_done
+  rxscan745_scan:
+    set_addr $I10, rxscan745_loop
+    rx741_cur."!mark_push"(0, rx741_pos, $I10)
+  rxscan745_done:
 .annotate 'line', 334
   # rx subrule "sigil" subtype=capture negate=
-    rx739_cur."!cursor_pos"(rx739_pos)
-    $P10 = rx739_cur."sigil"()
-    unless $P10, rx739_fail
-    rx739_cur."!mark_push"(0, -1, 0, $P10)
+    rx741_cur."!cursor_pos"(rx741_pos)
+    $P10 = rx741_cur."sigil"()
+    unless $P10, rx741_fail
+    rx741_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx739_pos = $P10."pos"()
-  # rx rxquantr744 ** 0..1
-    set_addr $I745, rxquantr744_done
-    rx739_cur."!mark_push"(0, rx739_pos, $I745)
-  rxquantr744_loop:
+    rx741_pos = $P10."pos"()
+  # rx rxquantr746 ** 0..1
+    set_addr $I747, rxquantr746_done
+    rx741_cur."!mark_push"(0, rx741_pos, $I747)
+  rxquantr746_loop:
   # rx subrule "twigil" subtype=capture negate=
-    rx739_cur."!cursor_pos"(rx739_pos)
-    $P10 = rx739_cur."twigil"()
-    unless $P10, rx739_fail
-    rx739_cur."!mark_push"(0, -1, 0, $P10)
+    rx741_cur."!cursor_pos"(rx741_pos)
+    $P10 = rx741_cur."twigil"()
+    unless $P10, rx741_fail
+    rx741_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("twigil")
-    rx739_pos = $P10."pos"()
-    (rx739_rep) = rx739_cur."!mark_commit"($I745)
-  rxquantr744_done:
-  alt746_0:
+    rx741_pos = $P10."pos"()
+    (rx741_rep) = rx741_cur."!mark_commit"($I747)
+  rxquantr746_done:
+  alt748_0:
 .annotate 'line', 335
-    set_addr $I10, alt746_1
-    rx739_cur."!mark_push"(0, rx739_pos, $I10)
+    set_addr $I10, alt748_1
+    rx741_cur."!mark_push"(0, rx741_pos, $I10)
   # rx subrule "ident" subtype=capture negate=
-    rx739_cur."!cursor_pos"(rx739_pos)
-    $P10 = rx739_cur."ident"()
-    unless $P10, rx739_fail
-    rx739_cur."!mark_push"(0, -1, 0, $P10)
+    rx741_cur."!cursor_pos"(rx741_pos)
+    $P10 = rx741_cur."ident"()
+    unless $P10, rx741_fail
+    rx741_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx739_pos = $P10."pos"()
-    goto alt746_end
-  alt746_1:
+    rx741_pos = $P10."pos"()
+    goto alt748_end
+  alt748_1:
   # rx subcapture "name"
-    set_addr $I10, rxcap_747_fail
-    rx739_cur."!mark_push"(0, rx739_pos, $I10)
+    set_addr $I10, rxcap_749_fail
+    rx741_cur."!mark_push"(0, rx741_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx739_pos, rx739_eos, rx739_fail
-    sub $I10, rx739_pos, rx739_off
-    substr $S10, rx739_tgt, $I10, 1
+    ge rx741_pos, rx741_eos, rx741_fail
+    sub $I10, rx741_pos, rx741_off
+    substr $S10, rx741_tgt, $I10, 1
     index $I11, "/!", $S10
-    lt $I11, 0, rx739_fail
-    inc rx739_pos
-    set_addr $I10, rxcap_747_fail
-    ($I12, $I11) = rx739_cur."!mark_peek"($I10)
-    rx739_cur."!cursor_pos"($I11)
-    ($P10) = rx739_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx739_pos, "")
-    rx739_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx741_fail
+    inc rx741_pos
+    set_addr $I10, rxcap_749_fail
+    ($I12, $I11) = rx741_cur."!mark_peek"($I10)
+    rx741_cur."!cursor_pos"($I11)
+    ($P10) = rx741_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx741_pos, "")
+    rx741_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_747_done
-  rxcap_747_fail:
-    goto rx739_fail
-  rxcap_747_done:
-  alt746_end:
+    goto rxcap_749_done
+  rxcap_749_fail:
+    goto rx741_fail
+  rxcap_749_done:
+  alt748_end:
 .annotate 'line', 333
   # rx pass
-    rx739_cur."!cursor_pass"(rx739_pos, "param_var")
-    rx739_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx739_pos)
-    .return (rx739_cur)
-  rx739_fail:
+    rx741_cur."!cursor_pass"(rx741_pos, "param_var")
+    rx741_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx741_pos)
+    .return (rx741_cur)
+  rx741_fail:
 .annotate 'line', 4
-    (rx739_rep, rx739_pos, $I10, $P10) = rx739_cur."!mark_fail"(0)
-    lt rx739_pos, -1, rx739_done
-    eq rx739_pos, -1, rx739_fail
+    (rx741_rep, rx741_pos, $I10, $P10) = rx741_cur."!mark_fail"(0)
+    lt rx741_pos, -1, rx741_done
+    eq rx741_pos, -1, rx741_fail
     jump $I10
-  rx739_done:
-    rx739_cur."!cursor_fail"()
-    rx739_cur."!cursor_debug"("FAIL  ", "param_var")
-    .return (rx739_cur)
+  rx741_done:
+    rx741_cur."!cursor_fail"()
+    rx741_cur."!cursor_debug"("FAIL  ", "param_var")
+    .return (rx741_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("173_1275811487.95429") :method
+.sub "!PREFIX__param_var"  :subid("173_1277356913.9538") :method
 .annotate 'line', 4
-    $P741 = self."!PREFIX__!subrule"("sigil", "")
-    new $P742, "ResizablePMCArray"
-    push $P742, $P741
-    .return ($P742)
+    $P743 = self."!PREFIX__!subrule"("sigil", "")
+    new $P744, "ResizablePMCArray"
+    push $P744, $P743
+    .return ($P744)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("174_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "named_param"  :subid("174_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx749_tgt
-    .local int rx749_pos
-    .local int rx749_off
-    .local int rx749_eos
-    .local int rx749_rep
-    .local pmc rx749_cur
-    (rx749_cur, rx749_pos, rx749_tgt) = self."!cursor_start"()
-    rx749_cur."!cursor_debug"("START ", "named_param")
-    .lex unicode:"$\x{a2}", rx749_cur
+    .local string rx751_tgt
+    .local int rx751_pos
+    .local int rx751_off
+    .local int rx751_eos
+    .local int rx751_rep
+    .local pmc rx751_cur
+    (rx751_cur, rx751_pos, rx751_tgt) = self."!cursor_start"()
+    rx751_cur."!cursor_debug"("START ", "named_param")
+    .lex unicode:"$\x{a2}", rx751_cur
     .local pmc match
     .lex "$/", match
-    length rx749_eos, rx749_tgt
-    gt rx749_pos, rx749_eos, rx749_done
-    set rx749_off, 0
-    lt rx749_pos, 2, rx749_start
-    sub rx749_off, rx749_pos, 1
-    substr rx749_tgt, rx749_tgt, rx749_off
-  rx749_start:
+    length rx751_eos, rx751_tgt
+    gt rx751_pos, rx751_eos, rx751_done
+    set rx751_off, 0
+    lt rx751_pos, 2, rx751_start
+    sub rx751_off, rx751_pos, 1
+    substr rx751_tgt, rx751_tgt, rx751_off
+  rx751_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan753_done
-    goto rxscan753_scan
-  rxscan753_loop:
-    ($P10) = rx749_cur."from"()
+    ne $I10, -1, rxscan755_done
+    goto rxscan755_scan
+  rxscan755_loop:
+    ($P10) = rx751_cur."from"()
     inc $P10
-    set rx749_pos, $P10
-    ge rx749_pos, rx749_eos, rxscan753_done
-  rxscan753_scan:
-    set_addr $I10, rxscan753_loop
-    rx749_cur."!mark_push"(0, rx749_pos, $I10)
-  rxscan753_done:
+    set rx751_pos, $P10
+    ge rx751_pos, rx751_eos, rxscan755_done
+  rxscan755_scan:
+    set_addr $I10, rxscan755_loop
+    rx751_cur."!mark_push"(0, rx751_pos, $I10)
+  rxscan755_done:
 .annotate 'line', 339
   # rx literal  ":"
-    add $I11, rx749_pos, 1
-    gt $I11, rx749_eos, rx749_fail
-    sub $I11, rx749_pos, rx749_off
-    substr $S10, rx749_tgt, $I11, 1
-    ne $S10, ":", rx749_fail
-    add rx749_pos, 1
+    add $I11, rx751_pos, 1
+    gt $I11, rx751_eos, rx751_fail
+    sub $I11, rx751_pos, rx751_off
+    substr $S10, rx751_tgt, $I11, 1
+    ne $S10, ":", rx751_fail
+    add rx751_pos, 1
   # rx subrule "param_var" subtype=capture negate=
-    rx749_cur."!cursor_pos"(rx749_pos)
-    $P10 = rx749_cur."param_var"()
-    unless $P10, rx749_fail
-    rx749_cur."!mark_push"(0, -1, 0, $P10)
+    rx751_cur."!cursor_pos"(rx751_pos)
+    $P10 = rx751_cur."param_var"()
+    unless $P10, rx751_fail
+    rx751_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("param_var")
-    rx749_pos = $P10."pos"()
+    rx751_pos = $P10."pos"()
 .annotate 'line', 338
   # rx pass
-    rx749_cur."!cursor_pass"(rx749_pos, "named_param")
-    rx749_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx749_pos)
-    .return (rx749_cur)
-  rx749_fail:
+    rx751_cur."!cursor_pass"(rx751_pos, "named_param")
+    rx751_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx751_pos)
+    .return (rx751_cur)
+  rx751_fail:
 .annotate 'line', 4
-    (rx749_rep, rx749_pos, $I10, $P10) = rx749_cur."!mark_fail"(0)
-    lt rx749_pos, -1, rx749_done
-    eq rx749_pos, -1, rx749_fail
+    (rx751_rep, rx751_pos, $I10, $P10) = rx751_cur."!mark_fail"(0)
+    lt rx751_pos, -1, rx751_done
+    eq rx751_pos, -1, rx751_fail
     jump $I10
-  rx749_done:
-    rx749_cur."!cursor_fail"()
-    rx749_cur."!cursor_debug"("FAIL  ", "named_param")
-    .return (rx749_cur)
+  rx751_done:
+    rx751_cur."!cursor_fail"()
+    rx751_cur."!cursor_debug"("FAIL  ", "named_param")
+    .return (rx751_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("175_1275811487.95429") :method
+.sub "!PREFIX__named_param"  :subid("175_1277356913.9538") :method
 .annotate 'line', 4
-    $P751 = self."!PREFIX__!subrule"("param_var", ":")
-    new $P752, "ResizablePMCArray"
-    push $P752, $P751
-    .return ($P752)
+    $P753 = self."!PREFIX__!subrule"("param_var", ":")
+    new $P754, "ResizablePMCArray"
+    push $P754, $P753
+    .return ($P754)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("176_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "default_value"  :subid("176_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx755_tgt
-    .local int rx755_pos
-    .local int rx755_off
-    .local int rx755_eos
-    .local int rx755_rep
-    .local pmc rx755_cur
-    (rx755_cur, rx755_pos, rx755_tgt) = self."!cursor_start"()
-    rx755_cur."!cursor_debug"("START ", "default_value")
-    .lex unicode:"$\x{a2}", rx755_cur
+    .local string rx757_tgt
+    .local int rx757_pos
+    .local int rx757_off
+    .local int rx757_eos
+    .local int rx757_rep
+    .local pmc rx757_cur
+    (rx757_cur, rx757_pos, rx757_tgt) = self."!cursor_start"()
+    rx757_cur."!cursor_debug"("START ", "default_value")
+    .lex unicode:"$\x{a2}", rx757_cur
     .local pmc match
     .lex "$/", match
-    length rx755_eos, rx755_tgt
-    gt rx755_pos, rx755_eos, rx755_done
-    set rx755_off, 0
-    lt rx755_pos, 2, rx755_start
-    sub rx755_off, rx755_pos, 1
-    substr rx755_tgt, rx755_tgt, rx755_off
-  rx755_start:
+    length rx757_eos, rx757_tgt
+    gt rx757_pos, rx757_eos, rx757_done
+    set rx757_off, 0
+    lt rx757_pos, 2, rx757_start
+    sub rx757_off, rx757_pos, 1
+    substr rx757_tgt, rx757_tgt, rx757_off
+  rx757_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan759_done
-    goto rxscan759_scan
-  rxscan759_loop:
-    ($P10) = rx755_cur."from"()
+    ne $I10, -1, rxscan761_done
+    goto rxscan761_scan
+  rxscan761_loop:
+    ($P10) = rx757_cur."from"()
     inc $P10
-    set rx755_pos, $P10
-    ge rx755_pos, rx755_eos, rxscan759_done
-  rxscan759_scan:
-    set_addr $I10, rxscan759_loop
-    rx755_cur."!mark_push"(0, rx755_pos, $I10)
-  rxscan759_done:
+    set rx757_pos, $P10
+    ge rx757_pos, rx757_eos, rxscan761_done
+  rxscan761_scan:
+    set_addr $I10, rxscan761_loop
+    rx757_cur."!mark_push"(0, rx757_pos, $I10)
+  rxscan761_done:
 .annotate 'line', 342
   # rx subrule "ws" subtype=method negate=
-    rx755_cur."!cursor_pos"(rx755_pos)
-    $P10 = rx755_cur."ws"()
-    unless $P10, rx755_fail
-    rx755_pos = $P10."pos"()
+    rx757_cur."!cursor_pos"(rx757_pos)
+    $P10 = rx757_cur."ws"()
+    unless $P10, rx757_fail
+    rx757_pos = $P10."pos"()
   # rx literal  "="
-    add $I11, rx755_pos, 1
-    gt $I11, rx755_eos, rx755_fail
-    sub $I11, rx755_pos, rx755_off
-    substr $S10, rx755_tgt, $I11, 1
-    ne $S10, "=", rx755_fail
-    add rx755_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx755_cur."!cursor_pos"(rx755_pos)
-    $P10 = rx755_cur."ws"()
-    unless $P10, rx755_fail
-    rx755_pos = $P10."pos"()
+    add $I11, rx757_pos, 1
+    gt $I11, rx757_eos, rx757_fail
+    sub $I11, rx757_pos, rx757_off
+    substr $S10, rx757_tgt, $I11, 1
+    ne $S10, "=", rx757_fail
+    add rx757_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx757_cur."!cursor_pos"(rx757_pos)
+    $P10 = rx757_cur."ws"()
+    unless $P10, rx757_fail
+    rx757_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx755_cur."!cursor_pos"(rx755_pos)
-    $P10 = rx755_cur."EXPR"("i=")
-    unless $P10, rx755_fail
-    rx755_cur."!mark_push"(0, -1, 0, $P10)
+    rx757_cur."!cursor_pos"(rx757_pos)
+    $P10 = rx757_cur."EXPR"("i=")
+    unless $P10, rx757_fail
+    rx757_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx755_pos = $P10."pos"()
+    rx757_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx755_cur."!cursor_pos"(rx755_pos)
-    $P10 = rx755_cur."ws"()
-    unless $P10, rx755_fail
-    rx755_pos = $P10."pos"()
+    rx757_cur."!cursor_pos"(rx757_pos)
+    $P10 = rx757_cur."ws"()
+    unless $P10, rx757_fail
+    rx757_pos = $P10."pos"()
   # rx pass
-    rx755_cur."!cursor_pass"(rx755_pos, "default_value")
-    rx755_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx755_pos)
-    .return (rx755_cur)
-  rx755_fail:
+    rx757_cur."!cursor_pass"(rx757_pos, "default_value")
+    rx757_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx757_pos)
+    .return (rx757_cur)
+  rx757_fail:
 .annotate 'line', 4
-    (rx755_rep, rx755_pos, $I10, $P10) = rx755_cur."!mark_fail"(0)
-    lt rx755_pos, -1, rx755_done
-    eq rx755_pos, -1, rx755_fail
+    (rx757_rep, rx757_pos, $I10, $P10) = rx757_cur."!mark_fail"(0)
+    lt rx757_pos, -1, rx757_done
+    eq rx757_pos, -1, rx757_fail
     jump $I10
-  rx755_done:
-    rx755_cur."!cursor_fail"()
-    rx755_cur."!cursor_debug"("FAIL  ", "default_value")
-    .return (rx755_cur)
+  rx757_done:
+    rx757_cur."!cursor_fail"()
+    rx757_cur."!cursor_debug"("FAIL  ", "default_value")
+    .return (rx757_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("177_1275811487.95429") :method
+.sub "!PREFIX__default_value"  :subid("177_1277356913.9538") :method
 .annotate 'line', 4
-    $P757 = self."!PREFIX__!subrule"("ws", "")
-    new $P758, "ResizablePMCArray"
-    push $P758, $P757
-    .return ($P758)
+    $P759 = self."!PREFIX__!subrule"("ws", "")
+    new $P760, "ResizablePMCArray"
+    push $P760, $P759
+    .return ($P760)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("178_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "regex_declarator"  :subid("178_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx764_tgt
-    .local int rx764_pos
-    .local int rx764_off
-    .local int rx764_eos
-    .local int rx764_rep
-    .local pmc rx764_cur
-    (rx764_cur, rx764_pos, rx764_tgt) = self."!cursor_start"()
-    rx764_cur."!cursor_debug"("START ", "regex_declarator")
-    rx764_cur."!cursor_caparray"("signature")
-    .lex unicode:"$\x{a2}", rx764_cur
+    .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 ", "regex_declarator")
+    rx766_cur."!cursor_caparray"("signature")
+    .lex unicode:"$\x{a2}", rx766_cur
     .local pmc match
     .lex "$/", match
-    length rx764_eos, rx764_tgt
-    gt rx764_pos, rx764_eos, rx764_done
-    set rx764_off, 0
-    lt rx764_pos, 2, rx764_start
-    sub rx764_off, rx764_pos, 1
-    substr rx764_tgt, rx764_tgt, rx764_off
-  rx764_start:
+    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, rxscan768_done
-    goto rxscan768_scan
-  rxscan768_loop:
-    ($P10) = rx764_cur."from"()
+    ne $I10, -1, rxscan770_done
+    goto rxscan770_scan
+  rxscan770_loop:
+    ($P10) = rx766_cur."from"()
     inc $P10
-    set rx764_pos, $P10
-    ge rx764_pos, rx764_eos, rxscan768_done
-  rxscan768_scan:
-    set_addr $I10, rxscan768_loop
-    rx764_cur."!mark_push"(0, rx764_pos, $I10)
-  rxscan768_done:
+    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', 344
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
-  alt770_0:
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
+  alt772_0:
 .annotate 'line', 345
-    set_addr $I10, alt770_1
-    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+    set_addr $I10, alt772_1
+    rx766_cur."!mark_push"(0, rx766_pos, $I10)
 .annotate 'line', 346
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
   # rx subcapture "proto"
-    set_addr $I10, rxcap_772_fail
-    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+    set_addr $I10, rxcap_774_fail
+    rx766_cur."!mark_push"(0, rx766_pos, $I10)
   # rx literal  "proto"
-    add $I11, rx764_pos, 5
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 5
-    ne $S10, "proto", rx764_fail
-    add rx764_pos, 5
-    set_addr $I10, rxcap_772_fail
-    ($I12, $I11) = rx764_cur."!mark_peek"($I10)
-    rx764_cur."!cursor_pos"($I11)
-    ($P10) = rx764_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx764_pos, "")
-    rx764_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx766_pos, 5
+    gt $I11, rx766_eos, rx766_fail
+    sub $I11, rx766_pos, rx766_off
+    substr $S10, rx766_tgt, $I11, 5
+    ne $S10, "proto", rx766_fail
+    add rx766_pos, 5
+    set_addr $I10, rxcap_774_fail
+    ($I12, $I11) = rx766_cur."!mark_peek"($I10)
+    rx766_cur."!cursor_pos"($I11)
+    ($P10) = rx766_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx766_pos, "")
+    rx766_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("proto")
-    goto rxcap_772_done
-  rxcap_772_fail:
-    goto rx764_fail
-  rxcap_772_done:
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
-  alt774_0:
-    set_addr $I10, alt774_1
-    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+    goto rxcap_774_done
+  rxcap_774_fail:
+    goto rx766_fail
+  rxcap_774_done:
+  # rx subrule "ws" subtype=method negate=
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
+  alt776_0:
+    set_addr $I10, alt776_1
+    rx766_cur."!mark_push"(0, rx766_pos, $I10)
   # rx literal  "regex"
-    add $I11, rx764_pos, 5
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 5
-    ne $S10, "regex", rx764_fail
-    add rx764_pos, 5
-    goto alt774_end
-  alt774_1:
-    set_addr $I10, alt774_2
-    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+    add $I11, rx766_pos, 5
+    gt $I11, rx766_eos, rx766_fail
+    sub $I11, rx766_pos, rx766_off
+    substr $S10, rx766_tgt, $I11, 5
+    ne $S10, "regex", rx766_fail
+    add rx766_pos, 5
+    goto alt776_end
+  alt776_1:
+    set_addr $I10, alt776_2
+    rx766_cur."!mark_push"(0, rx766_pos, $I10)
   # rx literal  "token"
-    add $I11, rx764_pos, 5
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 5
-    ne $S10, "token", rx764_fail
-    add rx764_pos, 5
-    goto alt774_end
-  alt774_2:
+    add $I11, rx766_pos, 5
+    gt $I11, rx766_eos, rx766_fail
+    sub $I11, rx766_pos, rx766_off
+    substr $S10, rx766_tgt, $I11, 5
+    ne $S10, "token", rx766_fail
+    add rx766_pos, 5
+    goto alt776_end
+  alt776_2:
   # rx literal  "rule"
-    add $I11, rx764_pos, 4
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 4
-    ne $S10, "rule", rx764_fail
-    add rx764_pos, 4
-  alt774_end:
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    add $I11, rx766_pos, 4
+    gt $I11, rx766_eos, rx766_fail
+    sub $I11, rx766_pos, rx766_off
+    substr $S10, rx766_tgt, $I11, 4
+    ne $S10, "rule", rx766_fail
+    add rx766_pos, 4
+  alt776_end:
+  # rx subrule "ws" subtype=method negate=
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
 .annotate 'line', 347
   # rx subrule "deflongname" subtype=capture negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."deflongname"()
-    unless $P10, rx764_fail
-    rx764_cur."!mark_push"(0, -1, 0, $P10)
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."deflongname"()
+    unless $P10, rx766_fail
+    rx766_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx764_pos = $P10."pos"()
+    rx766_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
-  alt777_0:
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
+  alt779_0:
 .annotate 'line', 348
-    set_addr $I10, alt777_1
-    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+    set_addr $I10, alt779_1
+    rx766_cur."!mark_push"(0, rx766_pos, $I10)
 .annotate 'line', 349
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
   # rx literal  "{"
-    add $I11, rx764_pos, 1
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 1
-    ne $S10, "{", rx764_fail
-    add rx764_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    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 literal  "<...>"
-    add $I11, rx764_pos, 5
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 5
-    ne $S10, "<...>", rx764_fail
-    add rx764_pos, 5
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    add $I11, rx766_pos, 5
+    gt $I11, rx766_eos, rx766_fail
+    sub $I11, rx766_pos, rx766_off
+    substr $S10, rx766_tgt, $I11, 5
+    ne $S10, "<...>", rx766_fail
+    add rx766_pos, 5
+  # 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, rx764_pos, 1
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 1
-    ne $S10, "}", rx764_fail
-    add rx764_pos, 1
+    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 "ENDSTMT" subtype=zerowidth negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ENDSTMT"()
-    unless $P10, rx764_fail
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
-    goto alt777_end
-  alt777_1:
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ENDSTMT"()
+    unless $P10, rx766_fail
+  # rx subrule "ws" subtype=method negate=
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
+    goto alt779_end
+  alt779_1:
 .annotate 'line', 350
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
   # rx subrule "panic" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."panic"("Proto regex body must be <...>")
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
-  alt777_end:
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."panic"("Proto regex body must be <...>")
+    unless $P10, rx766_fail
+    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"()
+  alt779_end:
 .annotate 'line', 351
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
 .annotate 'line', 346
-    goto alt770_end
-  alt770_1:
+    goto alt772_end
+  alt772_1:
 .annotate 'line', 352
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
   # rx subcapture "sym"
-    set_addr $I10, rxcap_787_fail
-    rx764_cur."!mark_push"(0, rx764_pos, $I10)
-  alt786_0:
-    set_addr $I10, alt786_1
-    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+    set_addr $I10, rxcap_789_fail
+    rx766_cur."!mark_push"(0, rx766_pos, $I10)
+  alt788_0:
+    set_addr $I10, alt788_1
+    rx766_cur."!mark_push"(0, rx766_pos, $I10)
   # rx literal  "regex"
-    add $I11, rx764_pos, 5
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 5
-    ne $S10, "regex", rx764_fail
-    add rx764_pos, 5
-    goto alt786_end
-  alt786_1:
-    set_addr $I10, alt786_2
-    rx764_cur."!mark_push"(0, rx764_pos, $I10)
+    add $I11, rx766_pos, 5
+    gt $I11, rx766_eos, rx766_fail
+    sub $I11, rx766_pos, rx766_off
+    substr $S10, rx766_tgt, $I11, 5
+    ne $S10, "regex", rx766_fail
+    add rx766_pos, 5
+    goto alt788_end
+  alt788_1:
+    set_addr $I10, alt788_2
+    rx766_cur."!mark_push"(0, rx766_pos, $I10)
   # rx literal  "token"
-    add $I11, rx764_pos, 5
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 5
-    ne $S10, "token", rx764_fail
-    add rx764_pos, 5
-    goto alt786_end
-  alt786_2:
+    add $I11, rx766_pos, 5
+    gt $I11, rx766_eos, rx766_fail
+    sub $I11, rx766_pos, rx766_off
+    substr $S10, rx766_tgt, $I11, 5
+    ne $S10, "token", rx766_fail
+    add rx766_pos, 5
+    goto alt788_end
+  alt788_2:
   # rx literal  "rule"
-    add $I11, rx764_pos, 4
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 4
-    ne $S10, "rule", rx764_fail
-    add rx764_pos, 4
-  alt786_end:
-    set_addr $I10, rxcap_787_fail
-    ($I12, $I11) = rx764_cur."!mark_peek"($I10)
-    rx764_cur."!cursor_pos"($I11)
-    ($P10) = rx764_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx764_pos, "")
-    rx764_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx766_pos, 4
+    gt $I11, rx766_eos, rx766_fail
+    sub $I11, rx766_pos, rx766_off
+    substr $S10, rx766_tgt, $I11, 4
+    ne $S10, "rule", rx766_fail
+    add rx766_pos, 4
+  alt788_end:
+    set_addr $I10, rxcap_789_fail
+    ($I12, $I11) = rx766_cur."!mark_peek"($I10)
+    rx766_cur."!cursor_pos"($I11)
+    ($P10) = rx766_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx766_pos, "")
+    rx766_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_787_done
-  rxcap_787_fail:
-    goto rx764_fail
-  rxcap_787_done:
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    goto rxcap_789_done
+  rxcap_789_fail:
+    goto rx766_fail
+  rxcap_789_done:
+  # rx subrule "ws" subtype=method negate=
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
 .annotate 'line', 353
   # rx subrule "deflongname" subtype=capture negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."deflongname"()
-    unless $P10, rx764_fail
-    rx764_cur."!mark_push"(0, -1, 0, $P10)
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."deflongname"()
+    unless $P10, rx766_fail
+    rx766_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("deflongname")
-    rx764_pos = $P10."pos"()
+    rx766_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
 .annotate 'line', 354
   # rx subrule "newpad" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."newpad"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."newpad"()
+    unless $P10, rx766_fail
+    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"()
 .annotate 'line', 355
-  # rx rxquantr791 ** 0..1
-    set_addr $I796, rxquantr791_done
-    rx764_cur."!mark_push"(0, rx764_pos, $I796)
-  rxquantr791_loop:
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+  # rx rxquantr793 ** 0..1
+    set_addr $I798, rxquantr793_done
+    rx766_cur."!mark_push"(0, rx766_pos, $I798)
+  rxquantr793_loop:
+  # 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, rx764_pos, 1
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 1
-    ne $S10, "(", rx764_fail
-    add rx764_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    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 "signature" subtype=capture negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."signature"()
-    unless $P10, rx764_fail
-    rx764_cur."!mark_push"(0, -1, 0, $P10)
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."signature"()
+    unless $P10, rx766_fail
+    rx766_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("signature")
-    rx764_pos = $P10."pos"()
+    rx766_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx764_pos, 1
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 1
-    ne $S10, ")", rx764_fail
-    add rx764_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
-    (rx764_rep) = rx764_cur."!mark_commit"($I796)
-  rxquantr791_done:
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    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"()
+    (rx766_rep) = rx766_cur."!mark_commit"($I798)
+  rxquantr793_done:
+  # rx subrule "ws" subtype=method negate=
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
 .annotate 'line', 356
   # rx reduce name="regex_declarator" key="open"
-    rx764_cur."!cursor_pos"(rx764_pos)
-    rx764_cur."!reduce"("regex_declarator", "open")
+    rx766_cur."!cursor_pos"(rx766_pos)
+    rx766_cur."!reduce"("regex_declarator", "open")
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
 .annotate 'line', 357
   # rx literal  "{"
-    add $I11, rx764_pos, 1
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 1
-    ne $S10, "{", rx764_fail
-    add rx764_pos, 1
+    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 "LANG" subtype=capture negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."LANG"("Regex", "nibbler")
-    unless $P10, rx764_fail
-    rx764_cur."!mark_push"(0, -1, 0, $P10)
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."LANG"("Regex", "nibbler")
+    unless $P10, rx766_fail
+    rx766_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("p6regex")
-    rx764_pos = $P10."pos"()
+    rx766_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx764_pos, 1
-    gt $I11, rx764_eos, rx764_fail
-    sub $I11, rx764_pos, rx764_off
-    substr $S10, rx764_tgt, $I11, 1
-    ne $S10, "}", rx764_fail
-    add rx764_pos, 1
+    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 "ENDSTMT" subtype=zerowidth negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ENDSTMT"()
-    unless $P10, rx764_fail
-  # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
-  alt770_end:
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ENDSTMT"()
+    unless $P10, rx766_fail
+  # rx subrule "ws" subtype=method negate=
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
+  alt772_end:
 .annotate 'line', 358
   # rx subrule "ws" subtype=method negate=
-    rx764_cur."!cursor_pos"(rx764_pos)
-    $P10 = rx764_cur."ws"()
-    unless $P10, rx764_fail
-    rx764_pos = $P10."pos"()
+    rx766_cur."!cursor_pos"(rx766_pos)
+    $P10 = rx766_cur."ws"()
+    unless $P10, rx766_fail
+    rx766_pos = $P10."pos"()
 .annotate 'line', 344
   # rx pass
-    rx764_cur."!cursor_pass"(rx764_pos, "regex_declarator")
-    rx764_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx764_pos)
-    .return (rx764_cur)
-  rx764_fail:
+    rx766_cur."!cursor_pass"(rx766_pos, "regex_declarator")
+    rx766_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx766_pos)
+    .return (rx766_cur)
+  rx766_fail:
 .annotate 'line', 4
-    (rx764_rep, rx764_pos, $I10, $P10) = rx764_cur."!mark_fail"(0)
-    lt rx764_pos, -1, rx764_done
-    eq rx764_pos, -1, rx764_fail
+    (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
-  rx764_done:
-    rx764_cur."!cursor_fail"()
-    rx764_cur."!cursor_debug"("FAIL  ", "regex_declarator")
-    .return (rx764_cur)
+  rx766_done:
+    rx766_cur."!cursor_fail"()
+    rx766_cur."!cursor_debug"("FAIL  ", "regex_declarator")
+    .return (rx766_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("179_1275811487.95429") :method
+.sub "!PREFIX__regex_declarator"  :subid("179_1277356913.9538") :method
 .annotate 'line', 4
-    $P766 = self."!PREFIX__!subrule"("ws", "")
-    new $P767, "ResizablePMCArray"
-    push $P767, $P766
-    .return ($P767)
+    $P768 = self."!PREFIX__!subrule"("ws", "")
+    new $P769, "ResizablePMCArray"
+    push $P769, $P768
+    .return ($P769)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("180_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "dotty"  :subid("180_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx802_cur."!cursor_debug"("START ", "dotty")
-    rx802_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx802_cur
+    .local string rx804_tgt
+    .local int rx804_pos
+    .local int rx804_off
+    .local int rx804_eos
+    .local int rx804_rep
+    .local pmc rx804_cur
+    (rx804_cur, rx804_pos, rx804_tgt) = self."!cursor_start"()
+    rx804_cur."!cursor_debug"("START ", "dotty")
+    rx804_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx804_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:
+    length rx804_eos, rx804_tgt
+    gt rx804_pos, rx804_eos, rx804_done
+    set rx804_off, 0
+    lt rx804_pos, 2, rx804_start
+    sub rx804_off, rx804_pos, 1
+    substr rx804_tgt, rx804_tgt, rx804_off
+  rx804_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan806_done
-    goto rxscan806_scan
-  rxscan806_loop:
-    ($P10) = rx802_cur."from"()
+    ne $I10, -1, rxscan808_done
+    goto rxscan808_scan
+  rxscan808_loop:
+    ($P10) = rx804_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:
+    set rx804_pos, $P10
+    ge rx804_pos, rx804_eos, rxscan808_done
+  rxscan808_scan:
+    set_addr $I10, rxscan808_loop
+    rx804_cur."!mark_push"(0, rx804_pos, $I10)
+  rxscan808_done:
 .annotate 'line', 362
   # rx literal  "."
-    add $I11, rx802_pos, 1
-    gt $I11, rx802_eos, rx802_fail
-    sub $I11, rx802_pos, rx802_off
-    substr $S10, rx802_tgt, $I11, 1
-    ne $S10, ".", rx802_fail
-    add rx802_pos, 1
-  alt807_0:
+    add $I11, rx804_pos, 1
+    gt $I11, rx804_eos, rx804_fail
+    sub $I11, rx804_pos, rx804_off
+    substr $S10, rx804_tgt, $I11, 1
+    ne $S10, ".", rx804_fail
+    add rx804_pos, 1
+  alt809_0:
 .annotate 'line', 363
-    set_addr $I10, alt807_1
-    rx802_cur."!mark_push"(0, rx802_pos, $I10)
-  # rx subrule "identifier" subtype=capture negate=
-    rx802_cur."!cursor_pos"(rx802_pos)
-    $P10 = rx802_cur."identifier"()
-    unless $P10, rx802_fail
-    rx802_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("longname=identifier")
-    rx802_pos = $P10."pos"()
-    goto alt807_end
-  alt807_1:
+    set_addr $I10, alt809_1
+    rx804_cur."!mark_push"(0, rx804_pos, $I10)
+  # rx subrule "deflongname" subtype=capture negate=
+    rx804_cur."!cursor_pos"(rx804_pos)
+    $P10 = rx804_cur."deflongname"()
+    unless $P10, rx804_fail
+    rx804_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("longname=deflongname")
+    rx804_pos = $P10."pos"()
+    goto alt809_end
+  alt809_1:
 .annotate 'line', 364
   # rx enumcharlist negate=0 zerowidth
-    ge rx802_pos, rx802_eos, rx802_fail
-    sub $I10, rx802_pos, rx802_off
-    substr $S10, rx802_tgt, $I10, 1
+    ge rx804_pos, rx804_eos, rx804_fail
+    sub $I10, rx804_pos, rx804_off
+    substr $S10, rx804_tgt, $I10, 1
     index $I11, "'\"", $S10
-    lt $I11, 0, rx802_fail
+    lt $I11, 0, rx804_fail
   # rx subrule "quote" subtype=capture negate=
-    rx802_cur."!cursor_pos"(rx802_pos)
-    $P10 = rx802_cur."quote"()
-    unless $P10, rx802_fail
-    rx802_cur."!mark_push"(0, -1, 0, $P10)
+    rx804_cur."!cursor_pos"(rx804_pos)
+    $P10 = rx804_cur."quote"()
+    unless $P10, rx804_fail
+    rx804_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote")
-    rx802_pos = $P10."pos"()
-  alt808_0:
+    rx804_pos = $P10."pos"()
+  alt810_0:
 .annotate 'line', 365
-    set_addr $I10, alt808_1
-    rx802_cur."!mark_push"(0, rx802_pos, $I10)
+    set_addr $I10, alt810_1
+    rx804_cur."!mark_push"(0, rx804_pos, $I10)
   # rx enumcharlist negate=0 zerowidth
-    ge rx802_pos, rx802_eos, rx802_fail
-    sub $I10, rx802_pos, rx802_off
-    substr $S10, rx802_tgt, $I10, 1
+    ge rx804_pos, rx804_eos, rx804_fail
+    sub $I10, rx804_pos, rx804_off
+    substr $S10, rx804_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx802_fail
-    goto alt808_end
-  alt808_1:
+    lt $I11, 0, rx804_fail
+    goto alt810_end
+  alt810_1:
   # rx subrule "panic" subtype=method negate=
-    rx802_cur."!cursor_pos"(rx802_pos)
-    $P10 = rx802_cur."panic"("Quoted method name requires parenthesized arguments")
-    unless $P10, rx802_fail
-    rx802_pos = $P10."pos"()
-  alt808_end:
-  alt807_end:
+    rx804_cur."!cursor_pos"(rx804_pos)
+    $P10 = rx804_cur."panic"("Quoted method name requires parenthesized arguments")
+    unless $P10, rx804_fail
+    rx804_pos = $P10."pos"()
+  alt810_end:
+  alt809_end:
 .annotate 'line', 371
-  # rx rxquantr809 ** 0..1
-    set_addr $I811, rxquantr809_done
-    rx802_cur."!mark_push"(0, rx802_pos, $I811)
-  rxquantr809_loop:
-  alt810_0:
+  # rx rxquantr811 ** 0..1
+    set_addr $I813, rxquantr811_done
+    rx804_cur."!mark_push"(0, rx804_pos, $I813)
+  rxquantr811_loop:
+  alt812_0:
 .annotate 'line', 368
-    set_addr $I10, alt810_1
-    rx802_cur."!mark_push"(0, rx802_pos, $I10)
+    set_addr $I10, alt812_1
+    rx804_cur."!mark_push"(0, rx804_pos, $I10)
 .annotate 'line', 369
   # rx enumcharlist negate=0 zerowidth
-    ge rx802_pos, rx802_eos, rx802_fail
-    sub $I10, rx802_pos, rx802_off
-    substr $S10, rx802_tgt, $I10, 1
+    ge rx804_pos, rx804_eos, rx804_fail
+    sub $I10, rx804_pos, rx804_off
+    substr $S10, rx804_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx802_fail
+    lt $I11, 0, rx804_fail
   # rx subrule "args" subtype=capture negate=
-    rx802_cur."!cursor_pos"(rx802_pos)
-    $P10 = rx802_cur."args"()
-    unless $P10, rx802_fail
-    rx802_cur."!mark_push"(0, -1, 0, $P10)
+    rx804_cur."!cursor_pos"(rx804_pos)
+    $P10 = rx804_cur."args"()
+    unless $P10, rx804_fail
+    rx804_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx802_pos = $P10."pos"()
-    goto alt810_end
-  alt810_1:
+    rx804_pos = $P10."pos"()
+    goto alt812_end
+  alt812_1:
 .annotate 'line', 370
   # rx literal  ":"
-    add $I11, rx802_pos, 1
-    gt $I11, rx802_eos, rx802_fail
-    sub $I11, rx802_pos, rx802_off
-    substr $S10, rx802_tgt, $I11, 1
-    ne $S10, ":", rx802_fail
-    add rx802_pos, 1
+    add $I11, rx804_pos, 1
+    gt $I11, rx804_eos, rx804_fail
+    sub $I11, rx804_pos, rx804_off
+    substr $S10, rx804_tgt, $I11, 1
+    ne $S10, ":", rx804_fail
+    add rx804_pos, 1
   # rx charclass s
-    ge rx802_pos, rx802_eos, rx802_fail
-    sub $I10, rx802_pos, rx802_off
-    is_cclass $I11, 32, rx802_tgt, $I10
-    unless $I11, rx802_fail
-    inc rx802_pos
+    ge rx804_pos, rx804_eos, rx804_fail
+    sub $I10, rx804_pos, rx804_off
+    is_cclass $I11, 32, rx804_tgt, $I10
+    unless $I11, rx804_fail
+    inc rx804_pos
   # rx subrule "arglist" subtype=capture negate=
-    rx802_cur."!cursor_pos"(rx802_pos)
-    $P10 = rx802_cur."arglist"()
-    unless $P10, rx802_fail
-    rx802_cur."!mark_push"(0, -1, 0, $P10)
+    rx804_cur."!cursor_pos"(rx804_pos)
+    $P10 = rx804_cur."arglist"()
+    unless $P10, rx804_fail
+    rx804_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx802_pos = $P10."pos"()
-  alt810_end:
+    rx804_pos = $P10."pos"()
+  alt812_end:
 .annotate 'line', 371
-    (rx802_rep) = rx802_cur."!mark_commit"($I811)
-  rxquantr809_done:
+    (rx804_rep) = rx804_cur."!mark_commit"($I813)
+  rxquantr811_done:
 .annotate 'line', 361
   # rx pass
-    rx802_cur."!cursor_pass"(rx802_pos, "dotty")
-    rx802_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx802_pos)
-    .return (rx802_cur)
-  rx802_fail:
+    rx804_cur."!cursor_pass"(rx804_pos, "dotty")
+    rx804_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx804_pos)
+    .return (rx804_cur)
+  rx804_fail:
 .annotate 'line', 4
-    (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0)
-    lt rx802_pos, -1, rx802_done
-    eq rx802_pos, -1, rx802_fail
+    (rx804_rep, rx804_pos, $I10, $P10) = rx804_cur."!mark_fail"(0)
+    lt rx804_pos, -1, rx804_done
+    eq rx804_pos, -1, rx804_fail
     jump $I10
-  rx802_done:
-    rx802_cur."!cursor_fail"()
-    rx802_cur."!cursor_debug"("FAIL  ", "dotty")
-    .return (rx802_cur)
+  rx804_done:
+    rx804_cur."!cursor_fail"()
+    rx804_cur."!cursor_debug"("FAIL  ", "dotty")
+    .return (rx804_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("181_1275811487.95429") :method
+.sub "!PREFIX__dotty"  :subid("181_1277356913.9538") :method
 .annotate 'line', 4
-    $P804 = self."!PREFIX__!subrule"("identifier", ".")
-    new $P805, "ResizablePMCArray"
-    push $P805, "'"
-    push $P805, "\""
-    push $P805, $P804
-    .return ($P805)
+    $P806 = self."!PREFIX__!subrule"("deflongname", ".")
+    new $P807, "ResizablePMCArray"
+    push $P807, "'"
+    push $P807, "\""
+    push $P807, $P806
+    .return ($P807)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("182_1275811487.95429") :method
+.sub "term"  :subid("182_1277356913.9538") :method
 .annotate 'line', 375
-    $P813 = self."!protoregex"("term")
-    .return ($P813)
+    $P815 = self."!protoregex"("term")
+    .return ($P815)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("183_1275811487.95429") :method
+.sub "!PREFIX__term"  :subid("183_1277356913.9538") :method
 .annotate 'line', 375
-    $P815 = self."!PREFIX__!protoregex"("term")
-    .return ($P815)
+    $P817 = self."!PREFIX__!protoregex"("term")
+    .return ($P817)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("184_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<self>"  :subid("184_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx817_tgt
-    .local int rx817_pos
-    .local int rx817_off
-    .local int rx817_eos
-    .local int rx817_rep
-    .local pmc rx817_cur
-    (rx817_cur, rx817_pos, rx817_tgt) = self."!cursor_start"()
-    rx817_cur."!cursor_debug"("START ", "term:sym<self>")
-    .lex unicode:"$\x{a2}", rx817_cur
-    .local pmc match
-    .lex "$/", match
-    length rx817_eos, rx817_tgt
-    gt rx817_pos, rx817_eos, rx817_done
-    set rx817_off, 0
-    lt rx817_pos, 2, rx817_start
-    sub rx817_off, rx817_pos, 1
-    substr rx817_tgt, rx817_tgt, rx817_off
-  rx817_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan820_done
-    goto rxscan820_scan
-  rxscan820_loop:
-    ($P10) = rx817_cur."from"()
-    inc $P10
-    set rx817_pos, $P10
-    ge rx817_pos, rx817_eos, rxscan820_done
-  rxscan820_scan:
-    set_addr $I10, rxscan820_loop
-    rx817_cur."!mark_push"(0, rx817_pos, $I10)
-  rxscan820_done:
+    .local string rx819_tgt
+    .local int rx819_pos
+    .local int rx819_off
+    .local int rx819_eos
+    .local int rx819_rep
+    .local pmc rx819_cur
+    (rx819_cur, rx819_pos, rx819_tgt) = self."!cursor_start"()
+    rx819_cur."!cursor_debug"("START ", "term:sym<self>")
+    .lex unicode:"$\x{a2}", rx819_cur
+    .local pmc match
+    .lex "$/", match
+    length rx819_eos, rx819_tgt
+    gt rx819_pos, rx819_eos, rx819_done
+    set rx819_off, 0
+    lt rx819_pos, 2, rx819_start
+    sub rx819_off, rx819_pos, 1
+    substr rx819_tgt, rx819_tgt, rx819_off
+  rx819_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan822_done
+    goto rxscan822_scan
+  rxscan822_loop:
+    ($P10) = rx819_cur."from"()
+    inc $P10
+    set rx819_pos, $P10
+    ge rx819_pos, rx819_eos, rxscan822_done
+  rxscan822_scan:
+    set_addr $I10, rxscan822_loop
+    rx819_cur."!mark_push"(0, rx819_pos, $I10)
+  rxscan822_done:
 .annotate 'line', 377
   # rx subcapture "sym"
-    set_addr $I10, rxcap_821_fail
-    rx817_cur."!mark_push"(0, rx817_pos, $I10)
+    set_addr $I10, rxcap_823_fail
+    rx819_cur."!mark_push"(0, rx819_pos, $I10)
   # rx literal  "self"
-    add $I11, rx817_pos, 4
-    gt $I11, rx817_eos, rx817_fail
-    sub $I11, rx817_pos, rx817_off
-    substr $S10, rx817_tgt, $I11, 4
-    ne $S10, "self", rx817_fail
-    add rx817_pos, 4
-    set_addr $I10, rxcap_821_fail
-    ($I12, $I11) = rx817_cur."!mark_peek"($I10)
-    rx817_cur."!cursor_pos"($I11)
-    ($P10) = rx817_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx817_pos, "")
-    rx817_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx819_pos, 4
+    gt $I11, rx819_eos, rx819_fail
+    sub $I11, rx819_pos, rx819_off
+    substr $S10, rx819_tgt, $I11, 4
+    ne $S10, "self", rx819_fail
+    add rx819_pos, 4
+    set_addr $I10, rxcap_823_fail
+    ($I12, $I11) = rx819_cur."!mark_peek"($I10)
+    rx819_cur."!cursor_pos"($I11)
+    ($P10) = rx819_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx819_pos, "")
+    rx819_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_821_done
-  rxcap_821_fail:
-    goto rx817_fail
-  rxcap_821_done:
+    goto rxcap_823_done
+  rxcap_823_fail:
+    goto rx819_fail
+  rxcap_823_done:
   # rxanchor rwb
-    le rx817_pos, 0, rx817_fail
-    sub $I10, rx817_pos, rx817_off
-    is_cclass $I11, 8192, rx817_tgt, $I10
-    if $I11, rx817_fail
+    le rx819_pos, 0, rx819_fail
+    sub $I10, rx819_pos, rx819_off
+    is_cclass $I11, 8192, rx819_tgt, $I10
+    if $I11, rx819_fail
     dec $I10
-    is_cclass $I11, 8192, rx817_tgt, $I10
-    unless $I11, rx817_fail
+    is_cclass $I11, 8192, rx819_tgt, $I10
+    unless $I11, rx819_fail
   # rx pass
-    rx817_cur."!cursor_pass"(rx817_pos, "term:sym<self>")
-    rx817_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx817_pos)
-    .return (rx817_cur)
-  rx817_fail:
+    rx819_cur."!cursor_pass"(rx819_pos, "term:sym<self>")
+    rx819_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx819_pos)
+    .return (rx819_cur)
+  rx819_fail:
 .annotate 'line', 4
-    (rx817_rep, rx817_pos, $I10, $P10) = rx817_cur."!mark_fail"(0)
-    lt rx817_pos, -1, rx817_done
-    eq rx817_pos, -1, rx817_fail
+    (rx819_rep, rx819_pos, $I10, $P10) = rx819_cur."!mark_fail"(0)
+    lt rx819_pos, -1, rx819_done
+    eq rx819_pos, -1, rx819_fail
     jump $I10
-  rx817_done:
-    rx817_cur."!cursor_fail"()
-    rx817_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
-    .return (rx817_cur)
+  rx819_done:
+    rx819_cur."!cursor_fail"()
+    rx819_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
+    .return (rx819_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("185_1275811487.95429") :method
+.sub "!PREFIX__term:sym<self>"  :subid("185_1277356913.9538") :method
 .annotate 'line', 4
-    new $P819, "ResizablePMCArray"
-    push $P819, "self"
-    .return ($P819)
+    new $P821, "ResizablePMCArray"
+    push $P821, "self"
+    .return ($P821)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("186_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<identifier>"  :subid("186_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx823_tgt
-    .local int rx823_pos
-    .local int rx823_off
-    .local int rx823_eos
-    .local int rx823_rep
-    .local pmc rx823_cur
-    (rx823_cur, rx823_pos, rx823_tgt) = self."!cursor_start"()
-    rx823_cur."!cursor_debug"("START ", "term:sym<identifier>")
-    .lex unicode:"$\x{a2}", rx823_cur
+    .local string rx825_tgt
+    .local int rx825_pos
+    .local int rx825_off
+    .local int rx825_eos
+    .local int rx825_rep
+    .local pmc rx825_cur
+    (rx825_cur, rx825_pos, rx825_tgt) = self."!cursor_start"()
+    rx825_cur."!cursor_debug"("START ", "term:sym<identifier>")
+    .lex unicode:"$\x{a2}", rx825_cur
     .local pmc match
     .lex "$/", match
-    length rx823_eos, rx823_tgt
-    gt rx823_pos, rx823_eos, rx823_done
-    set rx823_off, 0
-    lt rx823_pos, 2, rx823_start
-    sub rx823_off, rx823_pos, 1
-    substr rx823_tgt, rx823_tgt, rx823_off
-  rx823_start:
+    length rx825_eos, rx825_tgt
+    gt rx825_pos, rx825_eos, rx825_done
+    set rx825_off, 0
+    lt rx825_pos, 2, rx825_start
+    sub rx825_off, rx825_pos, 1
+    substr rx825_tgt, rx825_tgt, rx825_off
+  rx825_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan827_done
-    goto rxscan827_scan
-  rxscan827_loop:
-    ($P10) = rx823_cur."from"()
+    ne $I10, -1, rxscan829_done
+    goto rxscan829_scan
+  rxscan829_loop:
+    ($P10) = rx825_cur."from"()
     inc $P10
-    set rx823_pos, $P10
-    ge rx823_pos, rx823_eos, rxscan827_done
-  rxscan827_scan:
-    set_addr $I10, rxscan827_loop
-    rx823_cur."!mark_push"(0, rx823_pos, $I10)
-  rxscan827_done:
+    set rx825_pos, $P10
+    ge rx825_pos, rx825_eos, rxscan829_done
+  rxscan829_scan:
+    set_addr $I10, rxscan829_loop
+    rx825_cur."!mark_push"(0, rx825_pos, $I10)
+  rxscan829_done:
 .annotate 'line', 380
-  # rx subrule "identifier" subtype=capture negate=
-    rx823_cur."!cursor_pos"(rx823_pos)
-    $P10 = rx823_cur."identifier"()
-    unless $P10, rx823_fail
-    rx823_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("identifier")
-    rx823_pos = $P10."pos"()
+  # rx subrule "deflongname" subtype=capture negate=
+    rx825_cur."!cursor_pos"(rx825_pos)
+    $P10 = rx825_cur."deflongname"()
+    unless $P10, rx825_fail
+    rx825_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("deflongname")
+    rx825_pos = $P10."pos"()
   # rx enumcharlist negate=0 zerowidth
-    ge rx823_pos, rx823_eos, rx823_fail
-    sub $I10, rx823_pos, rx823_off
-    substr $S10, rx823_tgt, $I10, 1
+    ge rx825_pos, rx825_eos, rx825_fail
+    sub $I10, rx825_pos, rx825_off
+    substr $S10, rx825_tgt, $I10, 1
     index $I11, "(", $S10
-    lt $I11, 0, rx823_fail
+    lt $I11, 0, rx825_fail
   # rx subrule "args" subtype=capture negate=
-    rx823_cur."!cursor_pos"(rx823_pos)
-    $P10 = rx823_cur."args"()
-    unless $P10, rx823_fail
-    rx823_cur."!mark_push"(0, -1, 0, $P10)
+    rx825_cur."!cursor_pos"(rx825_pos)
+    $P10 = rx825_cur."args"()
+    unless $P10, rx825_fail
+    rx825_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx823_pos = $P10."pos"()
+    rx825_pos = $P10."pos"()
 .annotate 'line', 379
   # rx pass
-    rx823_cur."!cursor_pass"(rx823_pos, "term:sym<identifier>")
-    rx823_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx823_pos)
-    .return (rx823_cur)
-  rx823_fail:
+    rx825_cur."!cursor_pass"(rx825_pos, "term:sym<identifier>")
+    rx825_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx825_pos)
+    .return (rx825_cur)
+  rx825_fail:
 .annotate 'line', 4
-    (rx823_rep, rx823_pos, $I10, $P10) = rx823_cur."!mark_fail"(0)
-    lt rx823_pos, -1, rx823_done
-    eq rx823_pos, -1, rx823_fail
+    (rx825_rep, rx825_pos, $I10, $P10) = rx825_cur."!mark_fail"(0)
+    lt rx825_pos, -1, rx825_done
+    eq rx825_pos, -1, rx825_fail
     jump $I10
-  rx823_done:
-    rx823_cur."!cursor_fail"()
-    rx823_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
-    .return (rx823_cur)
+  rx825_done:
+    rx825_cur."!cursor_fail"()
+    rx825_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
+    .return (rx825_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("187_1275811487.95429") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("187_1277356913.9538") :method
 .annotate 'line', 4
-    $P825 = self."!PREFIX__!subrule"("identifier", "")
-    new $P826, "ResizablePMCArray"
-    push $P826, $P825
-    .return ($P826)
+    $P827 = self."!PREFIX__!subrule"("deflongname", "")
+    new $P828, "ResizablePMCArray"
+    push $P828, $P827
+    .return ($P828)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("188_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<name>"  :subid("188_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx829_tgt
-    .local int rx829_pos
-    .local int rx829_off
-    .local int rx829_eos
-    .local int rx829_rep
-    .local pmc rx829_cur
-    (rx829_cur, rx829_pos, rx829_tgt) = self."!cursor_start"()
-    rx829_cur."!cursor_debug"("START ", "term:sym<name>")
-    rx829_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx829_cur
-    .local pmc match
-    .lex "$/", match
-    length rx829_eos, rx829_tgt
-    gt rx829_pos, rx829_eos, rx829_done
-    set rx829_off, 0
-    lt rx829_pos, 2, rx829_start
-    sub rx829_off, rx829_pos, 1
-    substr rx829_tgt, rx829_tgt, rx829_off
-  rx829_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan833_done
-    goto rxscan833_scan
-  rxscan833_loop:
-    ($P10) = rx829_cur."from"()
-    inc $P10
-    set rx829_pos, $P10
-    ge rx829_pos, rx829_eos, rxscan833_done
-  rxscan833_scan:
-    set_addr $I10, rxscan833_loop
-    rx829_cur."!mark_push"(0, rx829_pos, $I10)
-  rxscan833_done:
+    .local string rx831_tgt
+    .local int rx831_pos
+    .local int rx831_off
+    .local int rx831_eos
+    .local int rx831_rep
+    .local pmc rx831_cur
+    (rx831_cur, rx831_pos, rx831_tgt) = self."!cursor_start"()
+    rx831_cur."!cursor_debug"("START ", "term:sym<name>")
+    rx831_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx831_cur
+    .local pmc match
+    .lex "$/", match
+    length rx831_eos, rx831_tgt
+    gt rx831_pos, rx831_eos, rx831_done
+    set rx831_off, 0
+    lt rx831_pos, 2, rx831_start
+    sub rx831_off, rx831_pos, 1
+    substr rx831_tgt, rx831_tgt, rx831_off
+  rx831_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan835_done
+    goto rxscan835_scan
+  rxscan835_loop:
+    ($P10) = rx831_cur."from"()
+    inc $P10
+    set rx831_pos, $P10
+    ge rx831_pos, rx831_eos, rxscan835_done
+  rxscan835_scan:
+    set_addr $I10, rxscan835_loop
+    rx831_cur."!mark_push"(0, rx831_pos, $I10)
+  rxscan835_done:
 .annotate 'line', 384
   # rx subrule "name" subtype=capture negate=
-    rx829_cur."!cursor_pos"(rx829_pos)
-    $P10 = rx829_cur."name"()
-    unless $P10, rx829_fail
-    rx829_cur."!mark_push"(0, -1, 0, $P10)
+    rx831_cur."!cursor_pos"(rx831_pos)
+    $P10 = rx831_cur."name"()
+    unless $P10, rx831_fail
+    rx831_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    rx829_pos = $P10."pos"()
-  # rx rxquantr834 ** 0..1
-    set_addr $I835, rxquantr834_done
-    rx829_cur."!mark_push"(0, rx829_pos, $I835)
-  rxquantr834_loop:
+    rx831_pos = $P10."pos"()
+  # rx rxquantr836 ** 0..1
+    set_addr $I837, rxquantr836_done
+    rx831_cur."!mark_push"(0, rx831_pos, $I837)
+  rxquantr836_loop:
   # rx subrule "args" subtype=capture negate=
-    rx829_cur."!cursor_pos"(rx829_pos)
-    $P10 = rx829_cur."args"()
-    unless $P10, rx829_fail
-    rx829_cur."!mark_push"(0, -1, 0, $P10)
+    rx831_cur."!cursor_pos"(rx831_pos)
+    $P10 = rx831_cur."args"()
+    unless $P10, rx831_fail
+    rx831_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx829_pos = $P10."pos"()
-    (rx829_rep) = rx829_cur."!mark_commit"($I835)
-  rxquantr834_done:
+    rx831_pos = $P10."pos"()
+    (rx831_rep) = rx831_cur."!mark_commit"($I837)
+  rxquantr836_done:
 .annotate 'line', 383
   # rx pass
-    rx829_cur."!cursor_pass"(rx829_pos, "term:sym<name>")
-    rx829_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx829_pos)
-    .return (rx829_cur)
-  rx829_fail:
+    rx831_cur."!cursor_pass"(rx831_pos, "term:sym<name>")
+    rx831_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx831_pos)
+    .return (rx831_cur)
+  rx831_fail:
 .annotate 'line', 4
-    (rx829_rep, rx829_pos, $I10, $P10) = rx829_cur."!mark_fail"(0)
-    lt rx829_pos, -1, rx829_done
-    eq rx829_pos, -1, rx829_fail
+    (rx831_rep, rx831_pos, $I10, $P10) = rx831_cur."!mark_fail"(0)
+    lt rx831_pos, -1, rx831_done
+    eq rx831_pos, -1, rx831_fail
     jump $I10
-  rx829_done:
-    rx829_cur."!cursor_fail"()
-    rx829_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
-    .return (rx829_cur)
+  rx831_done:
+    rx831_cur."!cursor_fail"()
+    rx831_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
+    .return (rx831_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("189_1275811487.95429") :method
+.sub "!PREFIX__term:sym<name>"  :subid("189_1277356913.9538") :method
 .annotate 'line', 4
-    $P831 = self."!PREFIX__!subrule"("name", "")
-    new $P832, "ResizablePMCArray"
-    push $P832, $P831
-    .return ($P832)
+    $P833 = self."!PREFIX__!subrule"("name", "")
+    new $P834, "ResizablePMCArray"
+    push $P834, $P833
+    .return ($P834)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("190_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<pir::op>"  :subid("190_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx837_cur."!cursor_debug"("START ", "term:sym<pir::op>")
-    rx837_cur."!cursor_caparray"("args")
-    .lex unicode:"$\x{a2}", rx837_cur
+    .local string rx839_tgt
+    .local int rx839_pos
+    .local int rx839_off
+    .local int rx839_eos
+    .local int rx839_rep
+    .local pmc rx839_cur
+    (rx839_cur, rx839_pos, rx839_tgt) = self."!cursor_start"()
+    rx839_cur."!cursor_debug"("START ", "term:sym<pir::op>")
+    rx839_cur."!cursor_caparray"("args")
+    .lex unicode:"$\x{a2}", rx839_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:
+    length rx839_eos, rx839_tgt
+    gt rx839_pos, rx839_eos, rx839_done
+    set rx839_off, 0
+    lt rx839_pos, 2, rx839_start
+    sub rx839_off, rx839_pos, 1
+    substr rx839_tgt, rx839_tgt, rx839_off
+  rx839_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan840_done
-    goto rxscan840_scan
-  rxscan840_loop:
-    ($P10) = rx837_cur."from"()
+    ne $I10, -1, rxscan842_done
+    goto rxscan842_scan
+  rxscan842_loop:
+    ($P10) = rx839_cur."from"()
     inc $P10
-    set rx837_pos, $P10
-    ge rx837_pos, rx837_eos, rxscan840_done
-  rxscan840_scan:
-    set_addr $I10, rxscan840_loop
-    rx837_cur."!mark_push"(0, rx837_pos, $I10)
-  rxscan840_done:
+    set rx839_pos, $P10
+    ge rx839_pos, rx839_eos, rxscan842_done
+  rxscan842_scan:
+    set_addr $I10, rxscan842_loop
+    rx839_cur."!mark_push"(0, rx839_pos, $I10)
+  rxscan842_done:
 .annotate 'line', 388
   # rx literal  "pir::"
-    add $I11, rx837_pos, 5
-    gt $I11, rx837_eos, rx837_fail
-    sub $I11, rx837_pos, rx837_off
-    substr $S10, rx837_tgt, $I11, 5
-    ne $S10, "pir::", rx837_fail
-    add rx837_pos, 5
+    add $I11, rx839_pos, 5
+    gt $I11, rx839_eos, rx839_fail
+    sub $I11, rx839_pos, rx839_off
+    substr $S10, rx839_tgt, $I11, 5
+    ne $S10, "pir::", rx839_fail
+    add rx839_pos, 5
   # rx subcapture "op"
-    set_addr $I10, rxcap_841_fail
-    rx837_cur."!mark_push"(0, rx837_pos, $I10)
+    set_addr $I10, rxcap_843_fail
+    rx839_cur."!mark_push"(0, rx839_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx837_pos, rx837_off
-    find_not_cclass $I11, 8192, rx837_tgt, $I10, rx837_eos
+    sub $I10, rx839_pos, rx839_off
+    find_not_cclass $I11, 8192, rx839_tgt, $I10, rx839_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx837_fail
-    add rx837_pos, rx837_off, $I11
-    set_addr $I10, rxcap_841_fail
-    ($I12, $I11) = rx837_cur."!mark_peek"($I10)
-    rx837_cur."!cursor_pos"($I11)
-    ($P10) = rx837_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx837_pos, "")
-    rx837_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx839_fail
+    add rx839_pos, rx839_off, $I11
+    set_addr $I10, rxcap_843_fail
+    ($I12, $I11) = rx839_cur."!mark_peek"($I10)
+    rx839_cur."!cursor_pos"($I11)
+    ($P10) = rx839_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx839_pos, "")
+    rx839_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("op")
-    goto rxcap_841_done
-  rxcap_841_fail:
-    goto rx837_fail
-  rxcap_841_done:
-  # rx rxquantr842 ** 0..1
-    set_addr $I843, rxquantr842_done
-    rx837_cur."!mark_push"(0, rx837_pos, $I843)
-  rxquantr842_loop:
+    goto rxcap_843_done
+  rxcap_843_fail:
+    goto rx839_fail
+  rxcap_843_done:
+  # rx rxquantr844 ** 0..1
+    set_addr $I845, rxquantr844_done
+    rx839_cur."!mark_push"(0, rx839_pos, $I845)
+  rxquantr844_loop:
   # rx subrule "args" subtype=capture negate=
-    rx837_cur."!cursor_pos"(rx837_pos)
-    $P10 = rx837_cur."args"()
-    unless $P10, rx837_fail
-    rx837_cur."!mark_push"(0, -1, 0, $P10)
+    rx839_cur."!cursor_pos"(rx839_pos)
+    $P10 = rx839_cur."args"()
+    unless $P10, rx839_fail
+    rx839_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("args")
-    rx837_pos = $P10."pos"()
-    (rx837_rep) = rx837_cur."!mark_commit"($I843)
-  rxquantr842_done:
+    rx839_pos = $P10."pos"()
+    (rx839_rep) = rx839_cur."!mark_commit"($I845)
+  rxquantr844_done:
 .annotate 'line', 387
   # rx pass
-    rx837_cur."!cursor_pass"(rx837_pos, "term:sym<pir::op>")
-    rx837_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx837_pos)
-    .return (rx837_cur)
-  rx837_fail:
+    rx839_cur."!cursor_pass"(rx839_pos, "term:sym<pir::op>")
+    rx839_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx839_pos)
+    .return (rx839_cur)
+  rx839_fail:
 .annotate 'line', 4
-    (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
-    lt rx837_pos, -1, rx837_done
-    eq rx837_pos, -1, rx837_fail
+    (rx839_rep, rx839_pos, $I10, $P10) = rx839_cur."!mark_fail"(0)
+    lt rx839_pos, -1, rx839_done
+    eq rx839_pos, -1, rx839_fail
     jump $I10
-  rx837_done:
-    rx837_cur."!cursor_fail"()
-    rx837_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
-    .return (rx837_cur)
+  rx839_done:
+    rx839_cur."!cursor_fail"()
+    rx839_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
+    .return (rx839_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("191_1275811487.95429") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("191_1277356913.9538") :method
 .annotate 'line', 4
-    new $P839, "ResizablePMCArray"
-    push $P839, "pir::"
-    .return ($P839)
+    new $P841, "ResizablePMCArray"
+    push $P841, "pir::"
+    .return ($P841)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("192_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "args"  :subid("192_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx845_tgt
-    .local int rx845_pos
-    .local int rx845_off
-    .local int rx845_eos
-    .local int rx845_rep
-    .local pmc rx845_cur
-    (rx845_cur, rx845_pos, rx845_tgt) = self."!cursor_start"()
-    rx845_cur."!cursor_debug"("START ", "args")
-    .lex unicode:"$\x{a2}", rx845_cur
-    .local pmc match
-    .lex "$/", match
-    length rx845_eos, rx845_tgt
-    gt rx845_pos, rx845_eos, rx845_done
-    set rx845_off, 0
-    lt rx845_pos, 2, rx845_start
-    sub rx845_off, rx845_pos, 1
-    substr rx845_tgt, rx845_tgt, rx845_off
-  rx845_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan849_done
-    goto rxscan849_scan
-  rxscan849_loop:
-    ($P10) = rx845_cur."from"()
-    inc $P10
-    set rx845_pos, $P10
-    ge rx845_pos, rx845_eos, rxscan849_done
-  rxscan849_scan:
-    set_addr $I10, rxscan849_loop
-    rx845_cur."!mark_push"(0, rx845_pos, $I10)
-  rxscan849_done:
+    .local string rx847_tgt
+    .local int rx847_pos
+    .local int rx847_off
+    .local int rx847_eos
+    .local int rx847_rep
+    .local pmc rx847_cur
+    (rx847_cur, rx847_pos, rx847_tgt) = self."!cursor_start"()
+    rx847_cur."!cursor_debug"("START ", "args")
+    .lex unicode:"$\x{a2}", rx847_cur
+    .local pmc match
+    .lex "$/", match
+    length rx847_eos, rx847_tgt
+    gt rx847_pos, rx847_eos, rx847_done
+    set rx847_off, 0
+    lt rx847_pos, 2, rx847_start
+    sub rx847_off, rx847_pos, 1
+    substr rx847_tgt, rx847_tgt, rx847_off
+  rx847_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan851_done
+    goto rxscan851_scan
+  rxscan851_loop:
+    ($P10) = rx847_cur."from"()
+    inc $P10
+    set rx847_pos, $P10
+    ge rx847_pos, rx847_eos, rxscan851_done
+  rxscan851_scan:
+    set_addr $I10, rxscan851_loop
+    rx847_cur."!mark_push"(0, rx847_pos, $I10)
+  rxscan851_done:
 .annotate 'line', 392
   # rx literal  "("
-    add $I11, rx845_pos, 1
-    gt $I11, rx845_eos, rx845_fail
-    sub $I11, rx845_pos, rx845_off
-    substr $S10, rx845_tgt, $I11, 1
-    ne $S10, "(", rx845_fail
-    add rx845_pos, 1
+    add $I11, rx847_pos, 1
+    gt $I11, rx847_eos, rx847_fail
+    sub $I11, rx847_pos, rx847_off
+    substr $S10, rx847_tgt, $I11, 1
+    ne $S10, "(", rx847_fail
+    add rx847_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx845_cur."!cursor_pos"(rx845_pos)
-    $P10 = rx845_cur."arglist"()
-    unless $P10, rx845_fail
-    rx845_cur."!mark_push"(0, -1, 0, $P10)
+    rx847_cur."!cursor_pos"(rx847_pos)
+    $P10 = rx847_cur."arglist"()
+    unless $P10, rx847_fail
+    rx847_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx845_pos = $P10."pos"()
+    rx847_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx845_pos, 1
-    gt $I11, rx845_eos, rx845_fail
-    sub $I11, rx845_pos, rx845_off
-    substr $S10, rx845_tgt, $I11, 1
-    ne $S10, ")", rx845_fail
-    add rx845_pos, 1
+    add $I11, rx847_pos, 1
+    gt $I11, rx847_eos, rx847_fail
+    sub $I11, rx847_pos, rx847_off
+    substr $S10, rx847_tgt, $I11, 1
+    ne $S10, ")", rx847_fail
+    add rx847_pos, 1
   # rx pass
-    rx845_cur."!cursor_pass"(rx845_pos, "args")
-    rx845_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx845_pos)
-    .return (rx845_cur)
-  rx845_fail:
+    rx847_cur."!cursor_pass"(rx847_pos, "args")
+    rx847_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx847_pos)
+    .return (rx847_cur)
+  rx847_fail:
 .annotate 'line', 4
-    (rx845_rep, rx845_pos, $I10, $P10) = rx845_cur."!mark_fail"(0)
-    lt rx845_pos, -1, rx845_done
-    eq rx845_pos, -1, rx845_fail
+    (rx847_rep, rx847_pos, $I10, $P10) = rx847_cur."!mark_fail"(0)
+    lt rx847_pos, -1, rx847_done
+    eq rx847_pos, -1, rx847_fail
     jump $I10
-  rx845_done:
-    rx845_cur."!cursor_fail"()
-    rx845_cur."!cursor_debug"("FAIL  ", "args")
-    .return (rx845_cur)
+  rx847_done:
+    rx847_cur."!cursor_fail"()
+    rx847_cur."!cursor_debug"("FAIL  ", "args")
+    .return (rx847_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("193_1275811487.95429") :method
+.sub "!PREFIX__args"  :subid("193_1277356913.9538") :method
 .annotate 'line', 4
-    $P847 = self."!PREFIX__!subrule"("arglist", "(")
-    new $P848, "ResizablePMCArray"
-    push $P848, $P847
-    .return ($P848)
+    $P849 = self."!PREFIX__!subrule"("arglist", "(")
+    new $P850, "ResizablePMCArray"
+    push $P850, $P849
+    .return ($P850)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("194_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "arglist"  :subid("194_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .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) = self."!cursor_start"()
-    rx851_cur."!cursor_debug"("START ", "arglist")
-    .lex unicode:"$\x{a2}", rx851_cur
+    .local string rx853_tgt
+    .local int rx853_pos
+    .local int rx853_off
+    .local int rx853_eos
+    .local int rx853_rep
+    .local pmc rx853_cur
+    (rx853_cur, rx853_pos, rx853_tgt) = self."!cursor_start"()
+    rx853_cur."!cursor_debug"("START ", "arglist")
+    .lex unicode:"$\x{a2}", rx853_cur
     .local pmc match
     .lex "$/", match
-    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:
+    length rx853_eos, rx853_tgt
+    gt rx853_pos, rx853_eos, rx853_done
+    set rx853_off, 0
+    lt rx853_pos, 2, rx853_start
+    sub rx853_off, rx853_pos, 1
+    substr rx853_tgt, rx853_tgt, rx853_off
+  rx853_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan855_done
-    goto rxscan855_scan
-  rxscan855_loop:
-    ($P10) = rx851_cur."from"()
+    ne $I10, -1, rxscan857_done
+    goto rxscan857_scan
+  rxscan857_loop:
+    ($P10) = rx853_cur."from"()
     inc $P10
-    set rx851_pos, $P10
-    ge rx851_pos, rx851_eos, rxscan855_done
-  rxscan855_scan:
-    set_addr $I10, rxscan855_loop
-    rx851_cur."!mark_push"(0, rx851_pos, $I10)
-  rxscan855_done:
+    set rx853_pos, $P10
+    ge rx853_pos, rx853_eos, rxscan857_done
+  rxscan857_scan:
+    set_addr $I10, rxscan857_loop
+    rx853_cur."!mark_push"(0, rx853_pos, $I10)
+  rxscan857_done:
 .annotate 'line', 396
   # rx subrule "ws" subtype=method negate=
-    rx851_cur."!cursor_pos"(rx851_pos)
-    $P10 = rx851_cur."ws"()
-    unless $P10, rx851_fail
-    rx851_pos = $P10."pos"()
-  alt856_0:
+    rx853_cur."!cursor_pos"(rx853_pos)
+    $P10 = rx853_cur."ws"()
+    unless $P10, rx853_fail
+    rx853_pos = $P10."pos"()
+  alt858_0:
 .annotate 'line', 397
-    set_addr $I10, alt856_1
-    rx851_cur."!mark_push"(0, rx851_pos, $I10)
+    set_addr $I10, alt858_1
+    rx853_cur."!mark_push"(0, rx853_pos, $I10)
 .annotate 'line', 398
   # rx subrule "EXPR" subtype=capture negate=
-    rx851_cur."!cursor_pos"(rx851_pos)
-    $P10 = rx851_cur."EXPR"("f=")
-    unless $P10, rx851_fail
-    rx851_cur."!mark_push"(0, -1, 0, $P10)
+    rx853_cur."!cursor_pos"(rx853_pos)
+    $P10 = rx853_cur."EXPR"("f=")
+    unless $P10, rx853_fail
+    rx853_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx851_pos = $P10."pos"()
-    goto alt856_end
-  alt856_1:
-  alt856_end:
+    rx853_pos = $P10."pos"()
+    goto alt858_end
+  alt858_1:
+  alt858_end:
 .annotate 'line', 395
   # rx pass
-    rx851_cur."!cursor_pass"(rx851_pos, "arglist")
-    rx851_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx851_pos)
-    .return (rx851_cur)
-  rx851_fail:
+    rx853_cur."!cursor_pass"(rx853_pos, "arglist")
+    rx853_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx853_pos)
+    .return (rx853_cur)
+  rx853_fail:
 .annotate 'line', 4
-    (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
-    lt rx851_pos, -1, rx851_done
-    eq rx851_pos, -1, rx851_fail
+    (rx853_rep, rx853_pos, $I10, $P10) = rx853_cur."!mark_fail"(0)
+    lt rx853_pos, -1, rx853_done
+    eq rx853_pos, -1, rx853_fail
     jump $I10
-  rx851_done:
-    rx851_cur."!cursor_fail"()
-    rx851_cur."!cursor_debug"("FAIL  ", "arglist")
-    .return (rx851_cur)
+  rx853_done:
+    rx853_cur."!cursor_fail"()
+    rx853_cur."!cursor_debug"("FAIL  ", "arglist")
+    .return (rx853_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("195_1275811487.95429") :method
+.sub "!PREFIX__arglist"  :subid("195_1277356913.9538") :method
 .annotate 'line', 4
-    $P853 = self."!PREFIX__!subrule"("ws", "")
-    new $P854, "ResizablePMCArray"
-    push $P854, $P853
-    .return ($P854)
+    $P855 = self."!PREFIX__!subrule"("ws", "")
+    new $P856, "ResizablePMCArray"
+    push $P856, $P855
+    .return ($P856)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("196_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<value>"  :subid("196_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx858_tgt
-    .local int rx858_pos
-    .local int rx858_off
-    .local int rx858_eos
-    .local int rx858_rep
-    .local pmc rx858_cur
-    (rx858_cur, rx858_pos, rx858_tgt) = self."!cursor_start"()
-    rx858_cur."!cursor_debug"("START ", "term:sym<value>")
-    .lex unicode:"$\x{a2}", rx858_cur
+    .local string rx860_tgt
+    .local int rx860_pos
+    .local int rx860_off
+    .local int rx860_eos
+    .local int rx860_rep
+    .local pmc rx860_cur
+    (rx860_cur, rx860_pos, rx860_tgt) = self."!cursor_start"()
+    rx860_cur."!cursor_debug"("START ", "term:sym<value>")
+    .lex unicode:"$\x{a2}", rx860_cur
     .local pmc match
     .lex "$/", match
-    length rx858_eos, rx858_tgt
-    gt rx858_pos, rx858_eos, rx858_done
-    set rx858_off, 0
-    lt rx858_pos, 2, rx858_start
-    sub rx858_off, rx858_pos, 1
-    substr rx858_tgt, rx858_tgt, rx858_off
-  rx858_start:
+    length rx860_eos, rx860_tgt
+    gt rx860_pos, rx860_eos, rx860_done
+    set rx860_off, 0
+    lt rx860_pos, 2, rx860_start
+    sub rx860_off, rx860_pos, 1
+    substr rx860_tgt, rx860_tgt, rx860_off
+  rx860_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan862_done
-    goto rxscan862_scan
-  rxscan862_loop:
-    ($P10) = rx858_cur."from"()
+    ne $I10, -1, rxscan864_done
+    goto rxscan864_scan
+  rxscan864_loop:
+    ($P10) = rx860_cur."from"()
     inc $P10
-    set rx858_pos, $P10
-    ge rx858_pos, rx858_eos, rxscan862_done
-  rxscan862_scan:
-    set_addr $I10, rxscan862_loop
-    rx858_cur."!mark_push"(0, rx858_pos, $I10)
-  rxscan862_done:
+    set rx860_pos, $P10
+    ge rx860_pos, rx860_eos, rxscan864_done
+  rxscan864_scan:
+    set_addr $I10, rxscan864_loop
+    rx860_cur."!mark_push"(0, rx860_pos, $I10)
+  rxscan864_done:
 .annotate 'line', 404
   # rx subrule "value" subtype=capture negate=
-    rx858_cur."!cursor_pos"(rx858_pos)
-    $P10 = rx858_cur."value"()
-    unless $P10, rx858_fail
-    rx858_cur."!mark_push"(0, -1, 0, $P10)
+    rx860_cur."!cursor_pos"(rx860_pos)
+    $P10 = rx860_cur."value"()
+    unless $P10, rx860_fail
+    rx860_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("value")
-    rx858_pos = $P10."pos"()
+    rx860_pos = $P10."pos"()
   # rx pass
-    rx858_cur."!cursor_pass"(rx858_pos, "term:sym<value>")
-    rx858_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx858_pos)
-    .return (rx858_cur)
-  rx858_fail:
+    rx860_cur."!cursor_pass"(rx860_pos, "term:sym<value>")
+    rx860_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx860_pos)
+    .return (rx860_cur)
+  rx860_fail:
 .annotate 'line', 4
-    (rx858_rep, rx858_pos, $I10, $P10) = rx858_cur."!mark_fail"(0)
-    lt rx858_pos, -1, rx858_done
-    eq rx858_pos, -1, rx858_fail
+    (rx860_rep, rx860_pos, $I10, $P10) = rx860_cur."!mark_fail"(0)
+    lt rx860_pos, -1, rx860_done
+    eq rx860_pos, -1, rx860_fail
     jump $I10
-  rx858_done:
-    rx858_cur."!cursor_fail"()
-    rx858_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
-    .return (rx858_cur)
+  rx860_done:
+    rx860_cur."!cursor_fail"()
+    rx860_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
+    .return (rx860_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("197_1275811487.95429") :method
+.sub "!PREFIX__term:sym<value>"  :subid("197_1277356913.9538") :method
 .annotate 'line', 4
-    $P860 = self."!PREFIX__!subrule"("value", "")
-    new $P861, "ResizablePMCArray"
-    push $P861, $P860
-    .return ($P861)
+    $P862 = self."!PREFIX__!subrule"("value", "")
+    new $P863, "ResizablePMCArray"
+    push $P863, $P862
+    .return ($P863)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("198_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "value"  :subid("198_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx864_tgt
-    .local int rx864_pos
-    .local int rx864_off
-    .local int rx864_eos
-    .local int rx864_rep
-    .local pmc rx864_cur
-    (rx864_cur, rx864_pos, rx864_tgt) = self."!cursor_start"()
-    rx864_cur."!cursor_debug"("START ", "value")
-    .lex unicode:"$\x{a2}", rx864_cur
+    .local string rx866_tgt
+    .local int rx866_pos
+    .local int rx866_off
+    .local int rx866_eos
+    .local int rx866_rep
+    .local pmc rx866_cur
+    (rx866_cur, rx866_pos, rx866_tgt) = self."!cursor_start"()
+    rx866_cur."!cursor_debug"("START ", "value")
+    .lex unicode:"$\x{a2}", rx866_cur
     .local pmc match
     .lex "$/", match
-    length rx864_eos, rx864_tgt
-    gt rx864_pos, rx864_eos, rx864_done
-    set rx864_off, 0
-    lt rx864_pos, 2, rx864_start
-    sub rx864_off, rx864_pos, 1
-    substr rx864_tgt, rx864_tgt, rx864_off
-  rx864_start:
+    length rx866_eos, rx866_tgt
+    gt rx866_pos, rx866_eos, rx866_done
+    set rx866_off, 0
+    lt rx866_pos, 2, rx866_start
+    sub rx866_off, rx866_pos, 1
+    substr rx866_tgt, rx866_tgt, rx866_off
+  rx866_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan869_done
-    goto rxscan869_scan
-  rxscan869_loop:
-    ($P10) = rx864_cur."from"()
+    ne $I10, -1, rxscan871_done
+    goto rxscan871_scan
+  rxscan871_loop:
+    ($P10) = rx866_cur."from"()
     inc $P10
-    set rx864_pos, $P10
-    ge rx864_pos, rx864_eos, rxscan869_done
-  rxscan869_scan:
-    set_addr $I10, rxscan869_loop
-    rx864_cur."!mark_push"(0, rx864_pos, $I10)
-  rxscan869_done:
-  alt870_0:
+    set rx866_pos, $P10
+    ge rx866_pos, rx866_eos, rxscan871_done
+  rxscan871_scan:
+    set_addr $I10, rxscan871_loop
+    rx866_cur."!mark_push"(0, rx866_pos, $I10)
+  rxscan871_done:
+  alt872_0:
 .annotate 'line', 406
-    set_addr $I10, alt870_1
-    rx864_cur."!mark_push"(0, rx864_pos, $I10)
+    set_addr $I10, alt872_1
+    rx866_cur."!mark_push"(0, rx866_pos, $I10)
 .annotate 'line', 407
   # rx subrule "quote" subtype=capture negate=
-    rx864_cur."!cursor_pos"(rx864_pos)
-    $P10 = rx864_cur."quote"()
-    unless $P10, rx864_fail
-    rx864_cur."!mark_push"(0, -1, 0, $P10)
+    rx866_cur."!cursor_pos"(rx866_pos)
+    $P10 = rx866_cur."quote"()
+    unless $P10, rx866_fail
+    rx866_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote")
-    rx864_pos = $P10."pos"()
-    goto alt870_end
-  alt870_1:
+    rx866_pos = $P10."pos"()
+    goto alt872_end
+  alt872_1:
 .annotate 'line', 408
   # rx subrule "number" subtype=capture negate=
-    rx864_cur."!cursor_pos"(rx864_pos)
-    $P10 = rx864_cur."number"()
-    unless $P10, rx864_fail
-    rx864_cur."!mark_push"(0, -1, 0, $P10)
+    rx866_cur."!cursor_pos"(rx866_pos)
+    $P10 = rx866_cur."number"()
+    unless $P10, rx866_fail
+    rx866_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("number")
-    rx864_pos = $P10."pos"()
-  alt870_end:
+    rx866_pos = $P10."pos"()
+  alt872_end:
 .annotate 'line', 406
   # rx pass
-    rx864_cur."!cursor_pass"(rx864_pos, "value")
-    rx864_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx864_pos)
-    .return (rx864_cur)
-  rx864_fail:
+    rx866_cur."!cursor_pass"(rx866_pos, "value")
+    rx866_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx866_pos)
+    .return (rx866_cur)
+  rx866_fail:
 .annotate 'line', 4
-    (rx864_rep, rx864_pos, $I10, $P10) = rx864_cur."!mark_fail"(0)
-    lt rx864_pos, -1, rx864_done
-    eq rx864_pos, -1, rx864_fail
+    (rx866_rep, rx866_pos, $I10, $P10) = rx866_cur."!mark_fail"(0)
+    lt rx866_pos, -1, rx866_done
+    eq rx866_pos, -1, rx866_fail
     jump $I10
-  rx864_done:
-    rx864_cur."!cursor_fail"()
-    rx864_cur."!cursor_debug"("FAIL  ", "value")
-    .return (rx864_cur)
+  rx866_done:
+    rx866_cur."!cursor_fail"()
+    rx866_cur."!cursor_debug"("FAIL  ", "value")
+    .return (rx866_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("199_1275811487.95429") :method
+.sub "!PREFIX__value"  :subid("199_1277356913.9538") :method
 .annotate 'line', 4
-    $P866 = self."!PREFIX__!subrule"("number", "")
-    $P867 = self."!PREFIX__!subrule"("quote", "")
-    new $P868, "ResizablePMCArray"
-    push $P868, $P866
-    push $P868, $P867
-    .return ($P868)
+    $P868 = self."!PREFIX__!subrule"("number", "")
+    $P869 = self."!PREFIX__!subrule"("quote", "")
+    new $P870, "ResizablePMCArray"
+    push $P870, $P868
+    push $P870, $P869
+    .return ($P870)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("200_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "number"  :subid("200_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx872_tgt
-    .local int rx872_pos
-    .local int rx872_off
-    .local int rx872_eos
-    .local int rx872_rep
-    .local pmc rx872_cur
-    (rx872_cur, rx872_pos, rx872_tgt) = self."!cursor_start"()
-    rx872_cur."!cursor_debug"("START ", "number")
-    .lex unicode:"$\x{a2}", rx872_cur
-    .local pmc match
-    .lex "$/", match
-    length rx872_eos, rx872_tgt
-    gt rx872_pos, rx872_eos, rx872_done
-    set rx872_off, 0
-    lt rx872_pos, 2, rx872_start
-    sub rx872_off, rx872_pos, 1
-    substr rx872_tgt, rx872_tgt, rx872_off
-  rx872_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan875_done
-    goto rxscan875_scan
-  rxscan875_loop:
-    ($P10) = rx872_cur."from"()
-    inc $P10
-    set rx872_pos, $P10
-    ge rx872_pos, rx872_eos, rxscan875_done
-  rxscan875_scan:
-    set_addr $I10, rxscan875_loop
-    rx872_cur."!mark_push"(0, rx872_pos, $I10)
-  rxscan875_done:
+    .local string rx874_tgt
+    .local int rx874_pos
+    .local int rx874_off
+    .local int rx874_eos
+    .local int rx874_rep
+    .local pmc rx874_cur
+    (rx874_cur, rx874_pos, rx874_tgt) = self."!cursor_start"()
+    rx874_cur."!cursor_debug"("START ", "number")
+    .lex unicode:"$\x{a2}", rx874_cur
+    .local pmc match
+    .lex "$/", match
+    length rx874_eos, rx874_tgt
+    gt rx874_pos, rx874_eos, rx874_done
+    set rx874_off, 0
+    lt rx874_pos, 2, rx874_start
+    sub rx874_off, rx874_pos, 1
+    substr rx874_tgt, rx874_tgt, rx874_off
+  rx874_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan877_done
+    goto rxscan877_scan
+  rxscan877_loop:
+    ($P10) = rx874_cur."from"()
+    inc $P10
+    set rx874_pos, $P10
+    ge rx874_pos, rx874_eos, rxscan877_done
+  rxscan877_scan:
+    set_addr $I10, rxscan877_loop
+    rx874_cur."!mark_push"(0, rx874_pos, $I10)
+  rxscan877_done:
 .annotate 'line', 412
   # rx subcapture "sign"
-    set_addr $I10, rxcap_878_fail
-    rx872_cur."!mark_push"(0, rx872_pos, $I10)
-  # rx rxquantr876 ** 0..1
-    set_addr $I877, rxquantr876_done
-    rx872_cur."!mark_push"(0, rx872_pos, $I877)
-  rxquantr876_loop:
+    set_addr $I10, rxcap_880_fail
+    rx874_cur."!mark_push"(0, rx874_pos, $I10)
+  # rx rxquantr878 ** 0..1
+    set_addr $I879, rxquantr878_done
+    rx874_cur."!mark_push"(0, rx874_pos, $I879)
+  rxquantr878_loop:
   # rx enumcharlist negate=0 
-    ge rx872_pos, rx872_eos, rx872_fail
-    sub $I10, rx872_pos, rx872_off
-    substr $S10, rx872_tgt, $I10, 1
+    ge rx874_pos, rx874_eos, rx874_fail
+    sub $I10, rx874_pos, rx874_off
+    substr $S10, rx874_tgt, $I10, 1
     index $I11, "+-", $S10
-    lt $I11, 0, rx872_fail
-    inc rx872_pos
-    (rx872_rep) = rx872_cur."!mark_commit"($I877)
-  rxquantr876_done:
-    set_addr $I10, rxcap_878_fail
-    ($I12, $I11) = rx872_cur."!mark_peek"($I10)
-    rx872_cur."!cursor_pos"($I11)
-    ($P10) = rx872_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx872_pos, "")
-    rx872_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx874_fail
+    inc rx874_pos
+    (rx874_rep) = rx874_cur."!mark_commit"($I879)
+  rxquantr878_done:
+    set_addr $I10, rxcap_880_fail
+    ($I12, $I11) = rx874_cur."!mark_peek"($I10)
+    rx874_cur."!cursor_pos"($I11)
+    ($P10) = rx874_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx874_pos, "")
+    rx874_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sign")
-    goto rxcap_878_done
-  rxcap_878_fail:
-    goto rx872_fail
-  rxcap_878_done:
-  alt879_0:
+    goto rxcap_880_done
+  rxcap_880_fail:
+    goto rx874_fail
+  rxcap_880_done:
+  alt881_0:
 .annotate 'line', 413
-    set_addr $I10, alt879_1
-    rx872_cur."!mark_push"(0, rx872_pos, $I10)
+    set_addr $I10, alt881_1
+    rx874_cur."!mark_push"(0, rx874_pos, $I10)
   # rx subrule "dec_number" subtype=capture negate=
-    rx872_cur."!cursor_pos"(rx872_pos)
-    $P10 = rx872_cur."dec_number"()
-    unless $P10, rx872_fail
-    rx872_cur."!mark_push"(0, -1, 0, $P10)
+    rx874_cur."!cursor_pos"(rx874_pos)
+    $P10 = rx874_cur."dec_number"()
+    unless $P10, rx874_fail
+    rx874_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("dec_number")
-    rx872_pos = $P10."pos"()
-    goto alt879_end
-  alt879_1:
+    rx874_pos = $P10."pos"()
+    goto alt881_end
+  alt881_1:
   # rx subrule "integer" subtype=capture negate=
-    rx872_cur."!cursor_pos"(rx872_pos)
-    $P10 = rx872_cur."integer"()
-    unless $P10, rx872_fail
-    rx872_cur."!mark_push"(0, -1, 0, $P10)
+    rx874_cur."!cursor_pos"(rx874_pos)
+    $P10 = rx874_cur."integer"()
+    unless $P10, rx874_fail
+    rx874_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("integer")
-    rx872_pos = $P10."pos"()
-  alt879_end:
+    rx874_pos = $P10."pos"()
+  alt881_end:
 .annotate 'line', 411
   # rx pass
-    rx872_cur."!cursor_pass"(rx872_pos, "number")
-    rx872_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx872_pos)
-    .return (rx872_cur)
-  rx872_fail:
+    rx874_cur."!cursor_pass"(rx874_pos, "number")
+    rx874_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx874_pos)
+    .return (rx874_cur)
+  rx874_fail:
 .annotate 'line', 4
-    (rx872_rep, rx872_pos, $I10, $P10) = rx872_cur."!mark_fail"(0)
-    lt rx872_pos, -1, rx872_done
-    eq rx872_pos, -1, rx872_fail
+    (rx874_rep, rx874_pos, $I10, $P10) = rx874_cur."!mark_fail"(0)
+    lt rx874_pos, -1, rx874_done
+    eq rx874_pos, -1, rx874_fail
     jump $I10
-  rx872_done:
-    rx872_cur."!cursor_fail"()
-    rx872_cur."!cursor_debug"("FAIL  ", "number")
-    .return (rx872_cur)
+  rx874_done:
+    rx874_cur."!cursor_fail"()
+    rx874_cur."!cursor_debug"("FAIL  ", "number")
+    .return (rx874_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("201_1275811487.95429") :method
+.sub "!PREFIX__number"  :subid("201_1277356913.9538") :method
 .annotate 'line', 4
-    new $P874, "ResizablePMCArray"
-    push $P874, ""
-    .return ($P874)
+    new $P876, "ResizablePMCArray"
+    push $P876, ""
+    .return ($P876)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("202_1275811487.95429") :method
+.sub "quote"  :subid("202_1277356913.9538") :method
 .annotate 'line', 416
-    $P881 = self."!protoregex"("quote")
-    .return ($P881)
+    $P883 = self."!protoregex"("quote")
+    .return ($P883)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("203_1275811487.95429") :method
+.sub "!PREFIX__quote"  :subid("203_1277356913.9538") :method
 .annotate 'line', 416
-    $P883 = self."!PREFIX__!protoregex"("quote")
-    .return ($P883)
+    $P885 = self."!PREFIX__!protoregex"("quote")
+    .return ($P885)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("204_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym<apos>"  :subid("204_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx885_tgt
-    .local int rx885_pos
-    .local int rx885_off
-    .local int rx885_eos
-    .local int rx885_rep
-    .local pmc rx885_cur
-    (rx885_cur, rx885_pos, rx885_tgt) = self."!cursor_start"()
-    rx885_cur."!cursor_debug"("START ", "quote:sym<apos>")
-    .lex unicode:"$\x{a2}", rx885_cur
-    .local pmc match
-    .lex "$/", match
-    length rx885_eos, rx885_tgt
-    gt rx885_pos, rx885_eos, rx885_done
-    set rx885_off, 0
-    lt rx885_pos, 2, rx885_start
-    sub rx885_off, rx885_pos, 1
-    substr rx885_tgt, rx885_tgt, rx885_off
-  rx885_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan888_done
-    goto rxscan888_scan
-  rxscan888_loop:
-    ($P10) = rx885_cur."from"()
-    inc $P10
-    set rx885_pos, $P10
-    ge rx885_pos, rx885_eos, rxscan888_done
-  rxscan888_scan:
-    set_addr $I10, rxscan888_loop
-    rx885_cur."!mark_push"(0, rx885_pos, $I10)
-  rxscan888_done:
+    .local string rx887_tgt
+    .local int rx887_pos
+    .local int rx887_off
+    .local int rx887_eos
+    .local int rx887_rep
+    .local pmc rx887_cur
+    (rx887_cur, rx887_pos, rx887_tgt) = self."!cursor_start"()
+    rx887_cur."!cursor_debug"("START ", "quote:sym<apos>")
+    .lex unicode:"$\x{a2}", rx887_cur
+    .local pmc match
+    .lex "$/", match
+    length rx887_eos, rx887_tgt
+    gt rx887_pos, rx887_eos, rx887_done
+    set rx887_off, 0
+    lt rx887_pos, 2, rx887_start
+    sub rx887_off, rx887_pos, 1
+    substr rx887_tgt, rx887_tgt, rx887_off
+  rx887_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan890_done
+    goto rxscan890_scan
+  rxscan890_loop:
+    ($P10) = rx887_cur."from"()
+    inc $P10
+    set rx887_pos, $P10
+    ge rx887_pos, rx887_eos, rxscan890_done
+  rxscan890_scan:
+    set_addr $I10, rxscan890_loop
+    rx887_cur."!mark_push"(0, rx887_pos, $I10)
+  rxscan890_done:
 .annotate 'line', 417
   # rx enumcharlist negate=0 zerowidth
-    ge rx885_pos, rx885_eos, rx885_fail
-    sub $I10, rx885_pos, rx885_off
-    substr $S10, rx885_tgt, $I10, 1
+    ge rx887_pos, rx887_eos, rx887_fail
+    sub $I10, rx887_pos, rx887_off
+    substr $S10, rx887_tgt, $I10, 1
     index $I11, "'", $S10
-    lt $I11, 0, rx885_fail
+    lt $I11, 0, rx887_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx885_cur."!cursor_pos"(rx885_pos)
-    $P10 = rx885_cur."quote_EXPR"(":q")
-    unless $P10, rx885_fail
-    rx885_cur."!mark_push"(0, -1, 0, $P10)
+    rx887_cur."!cursor_pos"(rx887_pos)
+    $P10 = rx887_cur."quote_EXPR"(":q")
+    unless $P10, rx887_fail
+    rx887_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx885_pos = $P10."pos"()
+    rx887_pos = $P10."pos"()
   # rx pass
-    rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<apos>")
-    rx885_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx885_pos)
-    .return (rx885_cur)
-  rx885_fail:
+    rx887_cur."!cursor_pass"(rx887_pos, "quote:sym<apos>")
+    rx887_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx887_pos)
+    .return (rx887_cur)
+  rx887_fail:
 .annotate 'line', 4
-    (rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0)
-    lt rx885_pos, -1, rx885_done
-    eq rx885_pos, -1, rx885_fail
+    (rx887_rep, rx887_pos, $I10, $P10) = rx887_cur."!mark_fail"(0)
+    lt rx887_pos, -1, rx887_done
+    eq rx887_pos, -1, rx887_fail
     jump $I10
-  rx885_done:
-    rx885_cur."!cursor_fail"()
-    rx885_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
-    .return (rx885_cur)
+  rx887_done:
+    rx887_cur."!cursor_fail"()
+    rx887_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
+    .return (rx887_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("205_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("205_1277356913.9538") :method
 .annotate 'line', 4
-    new $P887, "ResizablePMCArray"
-    push $P887, "'"
-    .return ($P887)
+    new $P889, "ResizablePMCArray"
+    push $P889, "'"
+    .return ($P889)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("206_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym<dblq>"  :subid("206_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx890_tgt
-    .local int rx890_pos
-    .local int rx890_off
-    .local int rx890_eos
-    .local int rx890_rep
-    .local pmc rx890_cur
-    (rx890_cur, rx890_pos, rx890_tgt) = self."!cursor_start"()
-    rx890_cur."!cursor_debug"("START ", "quote:sym<dblq>")
-    .lex unicode:"$\x{a2}", rx890_cur
+    .local string rx892_tgt
+    .local int rx892_pos
+    .local int rx892_off
+    .local int rx892_eos
+    .local int rx892_rep
+    .local pmc rx892_cur
+    (rx892_cur, rx892_pos, rx892_tgt) = self."!cursor_start"()
+    rx892_cur."!cursor_debug"("START ", "quote:sym<dblq>")
+    .lex unicode:"$\x{a2}", rx892_cur
     .local pmc match
     .lex "$/", match
-    length rx890_eos, rx890_tgt
-    gt rx890_pos, rx890_eos, rx890_done
-    set rx890_off, 0
-    lt rx890_pos, 2, rx890_start
-    sub rx890_off, rx890_pos, 1
-    substr rx890_tgt, rx890_tgt, rx890_off
-  rx890_start:
+    length rx892_eos, rx892_tgt
+    gt rx892_pos, rx892_eos, rx892_done
+    set rx892_off, 0
+    lt rx892_pos, 2, rx892_start
+    sub rx892_off, rx892_pos, 1
+    substr rx892_tgt, rx892_tgt, rx892_off
+  rx892_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan893_done
-    goto rxscan893_scan
-  rxscan893_loop:
-    ($P10) = rx890_cur."from"()
+    ne $I10, -1, rxscan895_done
+    goto rxscan895_scan
+  rxscan895_loop:
+    ($P10) = rx892_cur."from"()
     inc $P10
-    set rx890_pos, $P10
-    ge rx890_pos, rx890_eos, rxscan893_done
-  rxscan893_scan:
-    set_addr $I10, rxscan893_loop
-    rx890_cur."!mark_push"(0, rx890_pos, $I10)
-  rxscan893_done:
+    set rx892_pos, $P10
+    ge rx892_pos, rx892_eos, rxscan895_done
+  rxscan895_scan:
+    set_addr $I10, rxscan895_loop
+    rx892_cur."!mark_push"(0, rx892_pos, $I10)
+  rxscan895_done:
 .annotate 'line', 418
   # rx enumcharlist negate=0 zerowidth
-    ge rx890_pos, rx890_eos, rx890_fail
-    sub $I10, rx890_pos, rx890_off
-    substr $S10, rx890_tgt, $I10, 1
+    ge rx892_pos, rx892_eos, rx892_fail
+    sub $I10, rx892_pos, rx892_off
+    substr $S10, rx892_tgt, $I10, 1
     index $I11, "\"", $S10
-    lt $I11, 0, rx890_fail
+    lt $I11, 0, rx892_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx890_cur."!cursor_pos"(rx890_pos)
-    $P10 = rx890_cur."quote_EXPR"(":qq")
-    unless $P10, rx890_fail
-    rx890_cur."!mark_push"(0, -1, 0, $P10)
+    rx892_cur."!cursor_pos"(rx892_pos)
+    $P10 = rx892_cur."quote_EXPR"(":qq")
+    unless $P10, rx892_fail
+    rx892_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx890_pos = $P10."pos"()
+    rx892_pos = $P10."pos"()
   # rx pass
-    rx890_cur."!cursor_pass"(rx890_pos, "quote:sym<dblq>")
-    rx890_cur."!cursor_debug"("PASS  ", "quote:sym<dblq>", " at pos=", rx890_pos)
-    .return (rx890_cur)
-  rx890_fail:
+    rx892_cur."!cursor_pass"(rx892_pos, "quote:sym<dblq>")
+    rx892_cur."!cursor_debug"("PASS  ", "quote:sym<dblq>", " at pos=", rx892_pos)
+    .return (rx892_cur)
+  rx892_fail:
 .annotate 'line', 4
-    (rx890_rep, rx890_pos, $I10, $P10) = rx890_cur."!mark_fail"(0)
-    lt rx890_pos, -1, rx890_done
-    eq rx890_pos, -1, rx890_fail
+    (rx892_rep, rx892_pos, $I10, $P10) = rx892_cur."!mark_fail"(0)
+    lt rx892_pos, -1, rx892_done
+    eq rx892_pos, -1, rx892_fail
     jump $I10
-  rx890_done:
-    rx890_cur."!cursor_fail"()
-    rx890_cur."!cursor_debug"("FAIL  ", "quote:sym<dblq>")
-    .return (rx890_cur)
+  rx892_done:
+    rx892_cur."!cursor_fail"()
+    rx892_cur."!cursor_debug"("FAIL  ", "quote:sym<dblq>")
+    .return (rx892_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("207_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<dblq>"  :subid("207_1277356913.9538") :method
 .annotate 'line', 4
-    new $P892, "ResizablePMCArray"
-    push $P892, "\""
-    .return ($P892)
+    new $P894, "ResizablePMCArray"
+    push $P894, "\""
+    .return ($P894)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("208_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym<q>"  :subid("208_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx895_tgt
-    .local int rx895_pos
-    .local int rx895_off
-    .local int rx895_eos
-    .local int rx895_rep
-    .local pmc rx895_cur
-    (rx895_cur, rx895_pos, rx895_tgt) = self."!cursor_start"()
-    rx895_cur."!cursor_debug"("START ", "quote:sym<q>")
-    .lex unicode:"$\x{a2}", rx895_cur
+    .local string rx897_tgt
+    .local int rx897_pos
+    .local int rx897_off
+    .local int rx897_eos
+    .local int rx897_rep
+    .local pmc rx897_cur
+    (rx897_cur, rx897_pos, rx897_tgt) = self."!cursor_start"()
+    rx897_cur."!cursor_debug"("START ", "quote:sym<q>")
+    .lex unicode:"$\x{a2}", rx897_cur
     .local pmc match
     .lex "$/", match
-    length rx895_eos, rx895_tgt
-    gt rx895_pos, rx895_eos, rx895_done
-    set rx895_off, 0
-    lt rx895_pos, 2, rx895_start
-    sub rx895_off, rx895_pos, 1
-    substr rx895_tgt, rx895_tgt, rx895_off
-  rx895_start:
+    length rx897_eos, rx897_tgt
+    gt rx897_pos, rx897_eos, rx897_done
+    set rx897_off, 0
+    lt rx897_pos, 2, rx897_start
+    sub rx897_off, rx897_pos, 1
+    substr rx897_tgt, rx897_tgt, rx897_off
+  rx897_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan899_done
-    goto rxscan899_scan
-  rxscan899_loop:
-    ($P10) = rx895_cur."from"()
+    ne $I10, -1, rxscan901_done
+    goto rxscan901_scan
+  rxscan901_loop:
+    ($P10) = rx897_cur."from"()
     inc $P10
-    set rx895_pos, $P10
-    ge rx895_pos, rx895_eos, rxscan899_done
-  rxscan899_scan:
-    set_addr $I10, rxscan899_loop
-    rx895_cur."!mark_push"(0, rx895_pos, $I10)
-  rxscan899_done:
+    set rx897_pos, $P10
+    ge rx897_pos, rx897_eos, rxscan901_done
+  rxscan901_scan:
+    set_addr $I10, rxscan901_loop
+    rx897_cur."!mark_push"(0, rx897_pos, $I10)
+  rxscan901_done:
 .annotate 'line', 419
   # rx literal  "q"
-    add $I11, rx895_pos, 1
-    gt $I11, rx895_eos, rx895_fail
-    sub $I11, rx895_pos, rx895_off
-    substr $S10, rx895_tgt, $I11, 1
-    ne $S10, "q", rx895_fail
-    add rx895_pos, 1
+    add $I11, rx897_pos, 1
+    gt $I11, rx897_eos, rx897_fail
+    sub $I11, rx897_pos, rx897_off
+    substr $S10, rx897_tgt, $I11, 1
+    ne $S10, "q", rx897_fail
+    add rx897_pos, 1
   # rxanchor rwb
-    le rx895_pos, 0, rx895_fail
-    sub $I10, rx895_pos, rx895_off
-    is_cclass $I11, 8192, rx895_tgt, $I10
-    if $I11, rx895_fail
+    le rx897_pos, 0, rx897_fail
+    sub $I10, rx897_pos, rx897_off
+    is_cclass $I11, 8192, rx897_tgt, $I10
+    if $I11, rx897_fail
     dec $I10
-    is_cclass $I11, 8192, rx895_tgt, $I10
-    unless $I11, rx895_fail
+    is_cclass $I11, 8192, rx897_tgt, $I10
+    unless $I11, rx897_fail
   # rx enumcharlist negate=1 zerowidth
-    ge rx895_pos, rx895_eos, rx895_fail
-    sub $I10, rx895_pos, rx895_off
-    substr $S10, rx895_tgt, $I10, 1
+    ge rx897_pos, rx897_eos, rx897_fail
+    sub $I10, rx897_pos, rx897_off
+    substr $S10, rx897_tgt, $I10, 1
     index $I11, "(", $S10
-    ge $I11, 0, rx895_fail
+    ge $I11, 0, rx897_fail
   # rx subrule "ws" subtype=method negate=
-    rx895_cur."!cursor_pos"(rx895_pos)
-    $P10 = rx895_cur."ws"()
-    unless $P10, rx895_fail
-    rx895_pos = $P10."pos"()
+    rx897_cur."!cursor_pos"(rx897_pos)
+    $P10 = rx897_cur."ws"()
+    unless $P10, rx897_fail
+    rx897_pos = $P10."pos"()
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx895_cur."!cursor_pos"(rx895_pos)
-    $P10 = rx895_cur."quote_EXPR"(":q")
-    unless $P10, rx895_fail
-    rx895_cur."!mark_push"(0, -1, 0, $P10)
+    rx897_cur."!cursor_pos"(rx897_pos)
+    $P10 = rx897_cur."quote_EXPR"(":q")
+    unless $P10, rx897_fail
+    rx897_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx895_pos = $P10."pos"()
+    rx897_pos = $P10."pos"()
   # rx pass
-    rx895_cur."!cursor_pass"(rx895_pos, "quote:sym<q>")
-    rx895_cur."!cursor_debug"("PASS  ", "quote:sym<q>", " at pos=", rx895_pos)
-    .return (rx895_cur)
-  rx895_fail:
+    rx897_cur."!cursor_pass"(rx897_pos, "quote:sym<q>")
+    rx897_cur."!cursor_debug"("PASS  ", "quote:sym<q>", " at pos=", rx897_pos)
+    .return (rx897_cur)
+  rx897_fail:
 .annotate 'line', 4
-    (rx895_rep, rx895_pos, $I10, $P10) = rx895_cur."!mark_fail"(0)
-    lt rx895_pos, -1, rx895_done
-    eq rx895_pos, -1, rx895_fail
+    (rx897_rep, rx897_pos, $I10, $P10) = rx897_cur."!mark_fail"(0)
+    lt rx897_pos, -1, rx897_done
+    eq rx897_pos, -1, rx897_fail
     jump $I10
-  rx895_done:
-    rx895_cur."!cursor_fail"()
-    rx895_cur."!cursor_debug"("FAIL  ", "quote:sym<q>")
-    .return (rx895_cur)
+  rx897_done:
+    rx897_cur."!cursor_fail"()
+    rx897_cur."!cursor_debug"("FAIL  ", "quote:sym<q>")
+    .return (rx897_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("209_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<q>"  :subid("209_1277356913.9538") :method
 .annotate 'line', 4
-    $P897 = self."!PREFIX__!subrule"("ws", "q")
-    new $P898, "ResizablePMCArray"
-    push $P898, $P897
-    .return ($P898)
+    $P899 = self."!PREFIX__!subrule"("ws", "q")
+    new $P900, "ResizablePMCArray"
+    push $P900, $P899
+    .return ($P900)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("210_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym<qq>"  :subid("210_1277356913.9538") :method :outer("11_1277356913.9538")
 .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
-    (rx901_cur, rx901_pos, rx901_tgt) = self."!cursor_start"()
-    rx901_cur."!cursor_debug"("START ", "quote:sym<qq>")
-    .lex unicode:"$\x{a2}", rx901_cur
+    .local string rx903_tgt
+    .local int rx903_pos
+    .local int rx903_off
+    .local int rx903_eos
+    .local int rx903_rep
+    .local pmc rx903_cur
+    (rx903_cur, rx903_pos, rx903_tgt) = self."!cursor_start"()
+    rx903_cur."!cursor_debug"("START ", "quote:sym<qq>")
+    .lex unicode:"$\x{a2}", rx903_cur
     .local pmc match
     .lex "$/", match
-    length rx901_eos, rx901_tgt
-    gt rx901_pos, rx901_eos, rx901_done
-    set rx901_off, 0
-    lt rx901_pos, 2, rx901_start
-    sub rx901_off, rx901_pos, 1
-    substr rx901_tgt, rx901_tgt, rx901_off
-  rx901_start:
+    length rx903_eos, rx903_tgt
+    gt rx903_pos, rx903_eos, rx903_done
+    set rx903_off, 0
+    lt rx903_pos, 2, rx903_start
+    sub rx903_off, rx903_pos, 1
+    substr rx903_tgt, rx903_tgt, rx903_off
+  rx903_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan905_done
-    goto rxscan905_scan
-  rxscan905_loop:
-    ($P10) = rx901_cur."from"()
+    ne $I10, -1, rxscan907_done
+    goto rxscan907_scan
+  rxscan907_loop:
+    ($P10) = rx903_cur."from"()
     inc $P10
-    set rx901_pos, $P10
-    ge rx901_pos, rx901_eos, rxscan905_done
-  rxscan905_scan:
-    set_addr $I10, rxscan905_loop
-    rx901_cur."!mark_push"(0, rx901_pos, $I10)
-  rxscan905_done:
+    set rx903_pos, $P10
+    ge rx903_pos, rx903_eos, rxscan907_done
+  rxscan907_scan:
+    set_addr $I10, rxscan907_loop
+    rx903_cur."!mark_push"(0, rx903_pos, $I10)
+  rxscan907_done:
 .annotate 'line', 420
   # rx literal  "qq"
-    add $I11, rx901_pos, 2
-    gt $I11, rx901_eos, rx901_fail
-    sub $I11, rx901_pos, rx901_off
-    substr $S10, rx901_tgt, $I11, 2
-    ne $S10, "qq", rx901_fail
-    add rx901_pos, 2
+    add $I11, rx903_pos, 2
+    gt $I11, rx903_eos, rx903_fail
+    sub $I11, rx903_pos, rx903_off
+    substr $S10, rx903_tgt, $I11, 2
+    ne $S10, "qq", rx903_fail
+    add rx903_pos, 2
   # rxanchor rwb
-    le rx901_pos, 0, rx901_fail
-    sub $I10, rx901_pos, rx901_off
-    is_cclass $I11, 8192, rx901_tgt, $I10
-    if $I11, rx901_fail
+    le rx903_pos, 0, rx903_fail
+    sub $I10, rx903_pos, rx903_off
+    is_cclass $I11, 8192, rx903_tgt, $I10
+    if $I11, rx903_fail
     dec $I10
-    is_cclass $I11, 8192, rx901_tgt, $I10
-    unless $I11, rx901_fail
+    is_cclass $I11, 8192, rx903_tgt, $I10
+    unless $I11, rx903_fail
   # rx enumcharlist negate=1 zerowidth
-    ge rx901_pos, rx901_eos, rx901_fail
-    sub $I10, rx901_pos, rx901_off
-    substr $S10, rx901_tgt, $I10, 1
+    ge rx903_pos, rx903_eos, rx903_fail
+    sub $I10, rx903_pos, rx903_off
+    substr $S10, rx903_tgt, $I10, 1
     index $I11, "(", $S10
-    ge $I11, 0, rx901_fail
+    ge $I11, 0, rx903_fail
   # rx subrule "ws" subtype=method negate=
-    rx901_cur."!cursor_pos"(rx901_pos)
-    $P10 = rx901_cur."ws"()
-    unless $P10, rx901_fail
-    rx901_pos = $P10."pos"()
+    rx903_cur."!cursor_pos"(rx903_pos)
+    $P10 = rx903_cur."ws"()
+    unless $P10, rx903_fail
+    rx903_pos = $P10."pos"()
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx901_cur."!cursor_pos"(rx901_pos)
-    $P10 = rx901_cur."quote_EXPR"(":qq")
-    unless $P10, rx901_fail
-    rx901_cur."!mark_push"(0, -1, 0, $P10)
+    rx903_cur."!cursor_pos"(rx903_pos)
+    $P10 = rx903_cur."quote_EXPR"(":qq")
+    unless $P10, rx903_fail
+    rx903_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx901_pos = $P10."pos"()
+    rx903_pos = $P10."pos"()
   # rx pass
-    rx901_cur."!cursor_pass"(rx901_pos, "quote:sym<qq>")
-    rx901_cur."!cursor_debug"("PASS  ", "quote:sym<qq>", " at pos=", rx901_pos)
-    .return (rx901_cur)
-  rx901_fail:
+    rx903_cur."!cursor_pass"(rx903_pos, "quote:sym<qq>")
+    rx903_cur."!cursor_debug"("PASS  ", "quote:sym<qq>", " at pos=", rx903_pos)
+    .return (rx903_cur)
+  rx903_fail:
 .annotate 'line', 4
-    (rx901_rep, rx901_pos, $I10, $P10) = rx901_cur."!mark_fail"(0)
-    lt rx901_pos, -1, rx901_done
-    eq rx901_pos, -1, rx901_fail
+    (rx903_rep, rx903_pos, $I10, $P10) = rx903_cur."!mark_fail"(0)
+    lt rx903_pos, -1, rx903_done
+    eq rx903_pos, -1, rx903_fail
     jump $I10
-  rx901_done:
-    rx901_cur."!cursor_fail"()
-    rx901_cur."!cursor_debug"("FAIL  ", "quote:sym<qq>")
-    .return (rx901_cur)
+  rx903_done:
+    rx903_cur."!cursor_fail"()
+    rx903_cur."!cursor_debug"("FAIL  ", "quote:sym<qq>")
+    .return (rx903_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("211_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<qq>"  :subid("211_1277356913.9538") :method
 .annotate 'line', 4
-    $P903 = self."!PREFIX__!subrule"("ws", "qq")
-    new $P904, "ResizablePMCArray"
-    push $P904, $P903
-    .return ($P904)
+    $P905 = self."!PREFIX__!subrule"("ws", "qq")
+    new $P906, "ResizablePMCArray"
+    push $P906, $P905
+    .return ($P906)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("212_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym<Q>"  :subid("212_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx907_tgt
-    .local int rx907_pos
-    .local int rx907_off
-    .local int rx907_eos
-    .local int rx907_rep
-    .local pmc rx907_cur
-    (rx907_cur, rx907_pos, rx907_tgt) = self."!cursor_start"()
-    rx907_cur."!cursor_debug"("START ", "quote:sym<Q>")
-    .lex unicode:"$\x{a2}", rx907_cur
+    .local string rx909_tgt
+    .local int rx909_pos
+    .local int rx909_off
+    .local int rx909_eos
+    .local int rx909_rep
+    .local pmc rx909_cur
+    (rx909_cur, rx909_pos, rx909_tgt) = self."!cursor_start"()
+    rx909_cur."!cursor_debug"("START ", "quote:sym<Q>")
+    .lex unicode:"$\x{a2}", rx909_cur
     .local pmc match
     .lex "$/", match
-    length rx907_eos, rx907_tgt
-    gt rx907_pos, rx907_eos, rx907_done
-    set rx907_off, 0
-    lt rx907_pos, 2, rx907_start
-    sub rx907_off, rx907_pos, 1
-    substr rx907_tgt, rx907_tgt, rx907_off
-  rx907_start:
+    length rx909_eos, rx909_tgt
+    gt rx909_pos, rx909_eos, rx909_done
+    set rx909_off, 0
+    lt rx909_pos, 2, rx909_start
+    sub rx909_off, rx909_pos, 1
+    substr rx909_tgt, rx909_tgt, rx909_off
+  rx909_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan911_done
-    goto rxscan911_scan
-  rxscan911_loop:
-    ($P10) = rx907_cur."from"()
+    ne $I10, -1, rxscan913_done
+    goto rxscan913_scan
+  rxscan913_loop:
+    ($P10) = rx909_cur."from"()
     inc $P10
-    set rx907_pos, $P10
-    ge rx907_pos, rx907_eos, rxscan911_done
-  rxscan911_scan:
-    set_addr $I10, rxscan911_loop
-    rx907_cur."!mark_push"(0, rx907_pos, $I10)
-  rxscan911_done:
+    set rx909_pos, $P10
+    ge rx909_pos, rx909_eos, rxscan913_done
+  rxscan913_scan:
+    set_addr $I10, rxscan913_loop
+    rx909_cur."!mark_push"(0, rx909_pos, $I10)
+  rxscan913_done:
 .annotate 'line', 421
   # rx literal  "Q"
-    add $I11, rx907_pos, 1
-    gt $I11, rx907_eos, rx907_fail
-    sub $I11, rx907_pos, rx907_off
-    substr $S10, rx907_tgt, $I11, 1
-    ne $S10, "Q", rx907_fail
-    add rx907_pos, 1
+    add $I11, rx909_pos, 1
+    gt $I11, rx909_eos, rx909_fail
+    sub $I11, rx909_pos, rx909_off
+    substr $S10, rx909_tgt, $I11, 1
+    ne $S10, "Q", rx909_fail
+    add rx909_pos, 1
   # rxanchor rwb
-    le rx907_pos, 0, rx907_fail
-    sub $I10, rx907_pos, rx907_off
-    is_cclass $I11, 8192, rx907_tgt, $I10
-    if $I11, rx907_fail
+    le rx909_pos, 0, rx909_fail
+    sub $I10, rx909_pos, rx909_off
+    is_cclass $I11, 8192, rx909_tgt, $I10
+    if $I11, rx909_fail
     dec $I10
-    is_cclass $I11, 8192, rx907_tgt, $I10
-    unless $I11, rx907_fail
+    is_cclass $I11, 8192, rx909_tgt, $I10
+    unless $I11, rx909_fail
   # rx enumcharlist negate=1 zerowidth
-    ge rx907_pos, rx907_eos, rx907_fail
-    sub $I10, rx907_pos, rx907_off
-    substr $S10, rx907_tgt, $I10, 1
+    ge rx909_pos, rx909_eos, rx909_fail
+    sub $I10, rx909_pos, rx909_off
+    substr $S10, rx909_tgt, $I10, 1
     index $I11, "(", $S10
-    ge $I11, 0, rx907_fail
+    ge $I11, 0, rx909_fail
   # rx subrule "ws" subtype=method negate=
-    rx907_cur."!cursor_pos"(rx907_pos)
-    $P10 = rx907_cur."ws"()
-    unless $P10, rx907_fail
-    rx907_pos = $P10."pos"()
+    rx909_cur."!cursor_pos"(rx909_pos)
+    $P10 = rx909_cur."ws"()
+    unless $P10, rx909_fail
+    rx909_pos = $P10."pos"()
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx907_cur."!cursor_pos"(rx907_pos)
-    $P10 = rx907_cur."quote_EXPR"()
-    unless $P10, rx907_fail
-    rx907_cur."!mark_push"(0, -1, 0, $P10)
+    rx909_cur."!cursor_pos"(rx909_pos)
+    $P10 = rx909_cur."quote_EXPR"()
+    unless $P10, rx909_fail
+    rx909_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx907_pos = $P10."pos"()
+    rx909_pos = $P10."pos"()
   # rx pass
-    rx907_cur."!cursor_pass"(rx907_pos, "quote:sym<Q>")
-    rx907_cur."!cursor_debug"("PASS  ", "quote:sym<Q>", " at pos=", rx907_pos)
-    .return (rx907_cur)
-  rx907_fail:
+    rx909_cur."!cursor_pass"(rx909_pos, "quote:sym<Q>")
+    rx909_cur."!cursor_debug"("PASS  ", "quote:sym<Q>", " at pos=", rx909_pos)
+    .return (rx909_cur)
+  rx909_fail:
 .annotate 'line', 4
-    (rx907_rep, rx907_pos, $I10, $P10) = rx907_cur."!mark_fail"(0)
-    lt rx907_pos, -1, rx907_done
-    eq rx907_pos, -1, rx907_fail
+    (rx909_rep, rx909_pos, $I10, $P10) = rx909_cur."!mark_fail"(0)
+    lt rx909_pos, -1, rx909_done
+    eq rx909_pos, -1, rx909_fail
     jump $I10
-  rx907_done:
-    rx907_cur."!cursor_fail"()
-    rx907_cur."!cursor_debug"("FAIL  ", "quote:sym<Q>")
-    .return (rx907_cur)
+  rx909_done:
+    rx909_cur."!cursor_fail"()
+    rx909_cur."!cursor_debug"("FAIL  ", "quote:sym<Q>")
+    .return (rx909_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("213_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<Q>"  :subid("213_1277356913.9538") :method
 .annotate 'line', 4
-    $P909 = self."!PREFIX__!subrule"("ws", "Q")
-    new $P910, "ResizablePMCArray"
-    push $P910, $P909
-    .return ($P910)
+    $P911 = self."!PREFIX__!subrule"("ws", "Q")
+    new $P912, "ResizablePMCArray"
+    push $P912, $P911
+    .return ($P912)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>"  :subid("214_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym<Q:PIR>"  :subid("214_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx913_tgt
-    .local int rx913_pos
-    .local int rx913_off
-    .local int rx913_eos
-    .local int rx913_rep
-    .local pmc rx913_cur
-    (rx913_cur, rx913_pos, rx913_tgt) = self."!cursor_start"()
-    rx913_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
-    .lex unicode:"$\x{a2}", rx913_cur
-    .local pmc match
-    .lex "$/", match
-    length rx913_eos, rx913_tgt
-    gt rx913_pos, rx913_eos, rx913_done
-    set rx913_off, 0
-    lt rx913_pos, 2, rx913_start
-    sub rx913_off, rx913_pos, 1
-    substr rx913_tgt, rx913_tgt, rx913_off
-  rx913_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan917_done
-    goto rxscan917_scan
-  rxscan917_loop:
-    ($P10) = rx913_cur."from"()
-    inc $P10
-    set rx913_pos, $P10
-    ge rx913_pos, rx913_eos, rxscan917_done
-  rxscan917_scan:
-    set_addr $I10, rxscan917_loop
-    rx913_cur."!mark_push"(0, rx913_pos, $I10)
-  rxscan917_done:
+    .local string rx915_tgt
+    .local int rx915_pos
+    .local int rx915_off
+    .local int rx915_eos
+    .local int rx915_rep
+    .local pmc rx915_cur
+    (rx915_cur, rx915_pos, rx915_tgt) = self."!cursor_start"()
+    rx915_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+    .lex unicode:"$\x{a2}", rx915_cur
+    .local pmc match
+    .lex "$/", match
+    length rx915_eos, rx915_tgt
+    gt rx915_pos, rx915_eos, rx915_done
+    set rx915_off, 0
+    lt rx915_pos, 2, rx915_start
+    sub rx915_off, rx915_pos, 1
+    substr rx915_tgt, rx915_tgt, rx915_off
+  rx915_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan919_done
+    goto rxscan919_scan
+  rxscan919_loop:
+    ($P10) = rx915_cur."from"()
+    inc $P10
+    set rx915_pos, $P10
+    ge rx915_pos, rx915_eos, rxscan919_done
+  rxscan919_scan:
+    set_addr $I10, rxscan919_loop
+    rx915_cur."!mark_push"(0, rx915_pos, $I10)
+  rxscan919_done:
 .annotate 'line', 422
   # rx literal  "Q:PIR"
-    add $I11, rx913_pos, 5
-    gt $I11, rx913_eos, rx913_fail
-    sub $I11, rx913_pos, rx913_off
-    substr $S10, rx913_tgt, $I11, 5
-    ne $S10, "Q:PIR", rx913_fail
-    add rx913_pos, 5
-  # rx subrule "ws" subtype=method negate=
-    rx913_cur."!cursor_pos"(rx913_pos)
-    $P10 = rx913_cur."ws"()
-    unless $P10, rx913_fail
-    rx913_pos = $P10."pos"()
+    add $I11, rx915_pos, 5
+    gt $I11, rx915_eos, rx915_fail
+    sub $I11, rx915_pos, rx915_off
+    substr $S10, rx915_tgt, $I11, 5
+    ne $S10, "Q:PIR", rx915_fail
+    add rx915_pos, 5
+  # rx subrule "ws" subtype=method negate=
+    rx915_cur."!cursor_pos"(rx915_pos)
+    $P10 = rx915_cur."ws"()
+    unless $P10, rx915_fail
+    rx915_pos = $P10."pos"()
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx913_cur."!cursor_pos"(rx913_pos)
-    $P10 = rx913_cur."quote_EXPR"()
-    unless $P10, rx913_fail
-    rx913_cur."!mark_push"(0, -1, 0, $P10)
+    rx915_cur."!cursor_pos"(rx915_pos)
+    $P10 = rx915_cur."quote_EXPR"()
+    unless $P10, rx915_fail
+    rx915_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx913_pos = $P10."pos"()
+    rx915_pos = $P10."pos"()
   # rx pass
-    rx913_cur."!cursor_pass"(rx913_pos, "quote:sym<Q:PIR>")
-    rx913_cur."!cursor_debug"("PASS  ", "quote:sym<Q:PIR>", " at pos=", rx913_pos)
-    .return (rx913_cur)
-  rx913_fail:
+    rx915_cur."!cursor_pass"(rx915_pos, "quote:sym<Q:PIR>")
+    rx915_cur."!cursor_debug"("PASS  ", "quote:sym<Q:PIR>", " at pos=", rx915_pos)
+    .return (rx915_cur)
+  rx915_fail:
 .annotate 'line', 4
-    (rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0)
-    lt rx913_pos, -1, rx913_done
-    eq rx913_pos, -1, rx913_fail
+    (rx915_rep, rx915_pos, $I10, $P10) = rx915_cur."!mark_fail"(0)
+    lt rx915_pos, -1, rx915_done
+    eq rx915_pos, -1, rx915_fail
     jump $I10
-  rx913_done:
-    rx913_cur."!cursor_fail"()
-    rx913_cur."!cursor_debug"("FAIL  ", "quote:sym<Q:PIR>")
-    .return (rx913_cur)
+  rx915_done:
+    rx915_cur."!cursor_fail"()
+    rx915_cur."!cursor_debug"("FAIL  ", "quote:sym<Q:PIR>")
+    .return (rx915_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("215_1275811487.95429") :method
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("215_1277356913.9538") :method
 .annotate 'line', 4
-    $P915 = self."!PREFIX__!subrule"("ws", "Q:PIR")
-    new $P916, "ResizablePMCArray"
-    push $P916, $P915
-    .return ($P916)
+    $P917 = self."!PREFIX__!subrule"("ws", "Q:PIR")
+    new $P918, "ResizablePMCArray"
+    push $P918, $P917
+    .return ($P918)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("216_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote:sym</ />"  :subid("216_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx919_tgt
-    .local int rx919_pos
-    .local int rx919_off
-    .local int rx919_eos
-    .local int rx919_rep
-    .local pmc rx919_cur
-    (rx919_cur, rx919_pos, rx919_tgt) = self."!cursor_start"()
-    rx919_cur."!cursor_debug"("START ", "quote:sym</ />")
-    .lex unicode:"$\x{a2}", rx919_cur
+    .local string rx921_tgt
+    .local int rx921_pos
+    .local int rx921_off
+    .local int rx921_eos
+    .local int rx921_rep
+    .local pmc rx921_cur
+    (rx921_cur, rx921_pos, rx921_tgt) = self."!cursor_start"()
+    rx921_cur."!cursor_debug"("START ", "quote:sym</ />")
+    .lex unicode:"$\x{a2}", rx921_cur
     .local pmc match
     .lex "$/", match
-    length rx919_eos, rx919_tgt
-    gt rx919_pos, rx919_eos, rx919_done
-    set rx919_off, 0
-    lt rx919_pos, 2, rx919_start
-    sub rx919_off, rx919_pos, 1
-    substr rx919_tgt, rx919_tgt, rx919_off
-  rx919_start:
+    length rx921_eos, rx921_tgt
+    gt rx921_pos, rx921_eos, rx921_done
+    set rx921_off, 0
+    lt rx921_pos, 2, rx921_start
+    sub rx921_off, rx921_pos, 1
+    substr rx921_tgt, rx921_tgt, rx921_off
+  rx921_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan923_done
-    goto rxscan923_scan
-  rxscan923_loop:
-    ($P10) = rx919_cur."from"()
+    ne $I10, -1, rxscan925_done
+    goto rxscan925_scan
+  rxscan925_loop:
+    ($P10) = rx921_cur."from"()
     inc $P10
-    set rx919_pos, $P10
-    ge rx919_pos, rx919_eos, rxscan923_done
-  rxscan923_scan:
-    set_addr $I10, rxscan923_loop
-    rx919_cur."!mark_push"(0, rx919_pos, $I10)
-  rxscan923_done:
+    set rx921_pos, $P10
+    ge rx921_pos, rx921_eos, rxscan925_done
+  rxscan925_scan:
+    set_addr $I10, rxscan925_loop
+    rx921_cur."!mark_push"(0, rx921_pos, $I10)
+  rxscan925_done:
 .annotate 'line', 424
   # rx literal  "/"
-    add $I11, rx919_pos, 1
-    gt $I11, rx919_eos, rx919_fail
-    sub $I11, rx919_pos, rx919_off
-    substr $S10, rx919_tgt, $I11, 1
-    ne $S10, "/", rx919_fail
-    add rx919_pos, 1
+    add $I11, rx921_pos, 1
+    gt $I11, rx921_eos, rx921_fail
+    sub $I11, rx921_pos, rx921_off
+    substr $S10, rx921_tgt, $I11, 1
+    ne $S10, "/", rx921_fail
+    add rx921_pos, 1
 .annotate 'line', 425
   # rx subrule "newpad" subtype=method negate=
-    rx919_cur."!cursor_pos"(rx919_pos)
-    $P10 = rx919_cur."newpad"()
-    unless $P10, rx919_fail
-    rx919_pos = $P10."pos"()
+    rx921_cur."!cursor_pos"(rx921_pos)
+    $P10 = rx921_cur."newpad"()
+    unless $P10, rx921_fail
+    rx921_pos = $P10."pos"()
 .annotate 'line', 426
   # rx reduce name="quote:sym</ />" key="open"
-    rx919_cur."!cursor_pos"(rx919_pos)
-    rx919_cur."!reduce"("quote:sym</ />", "open")
+    rx921_cur."!cursor_pos"(rx921_pos)
+    rx921_cur."!reduce"("quote:sym</ />", "open")
 .annotate 'line', 427
   # rx subrule "LANG" subtype=capture negate=
-    rx919_cur."!cursor_pos"(rx919_pos)
-    $P10 = rx919_cur."LANG"("Regex", "nibbler")
-    unless $P10, rx919_fail
-    rx919_cur."!mark_push"(0, -1, 0, $P10)
+    rx921_cur."!cursor_pos"(rx921_pos)
+    $P10 = rx921_cur."LANG"("Regex", "nibbler")
+    unless $P10, rx921_fail
+    rx921_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("p6regex")
-    rx919_pos = $P10."pos"()
+    rx921_pos = $P10."pos"()
 .annotate 'line', 428
   # rx literal  "/"
-    add $I11, rx919_pos, 1
-    gt $I11, rx919_eos, rx919_fail
-    sub $I11, rx919_pos, rx919_off
-    substr $S10, rx919_tgt, $I11, 1
-    ne $S10, "/", rx919_fail
-    add rx919_pos, 1
+    add $I11, rx921_pos, 1
+    gt $I11, rx921_eos, rx921_fail
+    sub $I11, rx921_pos, rx921_off
+    substr $S10, rx921_tgt, $I11, 1
+    ne $S10, "/", rx921_fail
+    add rx921_pos, 1
 .annotate 'line', 423
   # rx pass
-    rx919_cur."!cursor_pass"(rx919_pos, "quote:sym</ />")
-    rx919_cur."!cursor_debug"("PASS  ", "quote:sym</ />", " at pos=", rx919_pos)
-    .return (rx919_cur)
-  rx919_fail:
+    rx921_cur."!cursor_pass"(rx921_pos, "quote:sym</ />")
+    rx921_cur."!cursor_debug"("PASS  ", "quote:sym</ />", " at pos=", rx921_pos)
+    .return (rx921_cur)
+  rx921_fail:
 .annotate 'line', 4
-    (rx919_rep, rx919_pos, $I10, $P10) = rx919_cur."!mark_fail"(0)
-    lt rx919_pos, -1, rx919_done
-    eq rx919_pos, -1, rx919_fail
+    (rx921_rep, rx921_pos, $I10, $P10) = rx921_cur."!mark_fail"(0)
+    lt rx921_pos, -1, rx921_done
+    eq rx921_pos, -1, rx921_fail
     jump $I10
-  rx919_done:
-    rx919_cur."!cursor_fail"()
-    rx919_cur."!cursor_debug"("FAIL  ", "quote:sym</ />")
-    .return (rx919_cur)
+  rx921_done:
+    rx921_cur."!cursor_fail"()
+    rx921_cur."!cursor_debug"("FAIL  ", "quote:sym</ />")
+    .return (rx921_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("217_1275811487.95429") :method
+.sub "!PREFIX__quote:sym</ />"  :subid("217_1277356913.9538") :method
 .annotate 'line', 4
-    $P921 = self."!PREFIX__!subrule"("newpad", "/")
-    new $P922, "ResizablePMCArray"
-    push $P922, $P921
-    .return ($P922)
+    $P923 = self."!PREFIX__!subrule"("newpad", "/")
+    new $P924, "ResizablePMCArray"
+    push $P924, $P923
+    .return ($P924)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("218_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote_escape:sym<$>"  :subid("218_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx925_tgt
-    .local int rx925_pos
-    .local int rx925_off
-    .local int rx925_eos
-    .local int rx925_rep
-    .local pmc rx925_cur
-    (rx925_cur, rx925_pos, rx925_tgt) = self."!cursor_start"()
-    rx925_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
-    .lex unicode:"$\x{a2}", rx925_cur
+    .local string rx927_tgt
+    .local int rx927_pos
+    .local int rx927_off
+    .local int rx927_eos
+    .local int rx927_rep
+    .local pmc rx927_cur
+    (rx927_cur, rx927_pos, rx927_tgt) = self."!cursor_start"()
+    rx927_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
+    .lex unicode:"$\x{a2}", rx927_cur
     .local pmc match
     .lex "$/", match
-    length rx925_eos, rx925_tgt
-    gt rx925_pos, rx925_eos, rx925_done
-    set rx925_off, 0
-    lt rx925_pos, 2, rx925_start
-    sub rx925_off, rx925_pos, 1
-    substr rx925_tgt, rx925_tgt, rx925_off
-  rx925_start:
+    length rx927_eos, rx927_tgt
+    gt rx927_pos, rx927_eos, rx927_done
+    set rx927_off, 0
+    lt rx927_pos, 2, rx927_start
+    sub rx927_off, rx927_pos, 1
+    substr rx927_tgt, rx927_tgt, rx927_off
+  rx927_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan928_done
-    goto rxscan928_scan
-  rxscan928_loop:
-    ($P10) = rx925_cur."from"()
+    ne $I10, -1, rxscan930_done
+    goto rxscan930_scan
+  rxscan930_loop:
+    ($P10) = rx927_cur."from"()
     inc $P10
-    set rx925_pos, $P10
-    ge rx925_pos, rx925_eos, rxscan928_done
-  rxscan928_scan:
-    set_addr $I10, rxscan928_loop
-    rx925_cur."!mark_push"(0, rx925_pos, $I10)
-  rxscan928_done:
+    set rx927_pos, $P10
+    ge rx927_pos, rx927_eos, rxscan930_done
+  rxscan930_scan:
+    set_addr $I10, rxscan930_loop
+    rx927_cur."!mark_push"(0, rx927_pos, $I10)
+  rxscan930_done:
 .annotate 'line', 431
   # rx enumcharlist negate=0 zerowidth
-    ge rx925_pos, rx925_eos, rx925_fail
-    sub $I10, rx925_pos, rx925_off
-    substr $S10, rx925_tgt, $I10, 1
+    ge rx927_pos, rx927_eos, rx927_fail
+    sub $I10, rx927_pos, rx927_off
+    substr $S10, rx927_tgt, $I10, 1
     index $I11, "$", $S10
-    lt $I11, 0, rx925_fail
+    lt $I11, 0, rx927_fail
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx925_cur."!cursor_pos"(rx925_pos)
-    $P10 = rx925_cur."quotemod_check"("s")
-    unless $P10, rx925_fail
+    rx927_cur."!cursor_pos"(rx927_pos)
+    $P10 = rx927_cur."quotemod_check"("s")
+    unless $P10, rx927_fail
   # rx subrule "variable" subtype=capture negate=
-    rx925_cur."!cursor_pos"(rx925_pos)
-    $P10 = rx925_cur."variable"()
-    unless $P10, rx925_fail
-    rx925_cur."!mark_push"(0, -1, 0, $P10)
+    rx927_cur."!cursor_pos"(rx927_pos)
+    $P10 = rx927_cur."variable"()
+    unless $P10, rx927_fail
+    rx927_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("variable")
-    rx925_pos = $P10."pos"()
+    rx927_pos = $P10."pos"()
   # rx pass
-    rx925_cur."!cursor_pass"(rx925_pos, "quote_escape:sym<$>")
-    rx925_cur."!cursor_debug"("PASS  ", "quote_escape:sym<$>", " at pos=", rx925_pos)
-    .return (rx925_cur)
-  rx925_fail:
+    rx927_cur."!cursor_pass"(rx927_pos, "quote_escape:sym<$>")
+    rx927_cur."!cursor_debug"("PASS  ", "quote_escape:sym<$>", " at pos=", rx927_pos)
+    .return (rx927_cur)
+  rx927_fail:
 .annotate 'line', 4
-    (rx925_rep, rx925_pos, $I10, $P10) = rx925_cur."!mark_fail"(0)
-    lt rx925_pos, -1, rx925_done
-    eq rx925_pos, -1, rx925_fail
+    (rx927_rep, rx927_pos, $I10, $P10) = rx927_cur."!mark_fail"(0)
+    lt rx927_pos, -1, rx927_done
+    eq rx927_pos, -1, rx927_fail
     jump $I10
-  rx925_done:
-    rx925_cur."!cursor_fail"()
-    rx925_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<$>")
-    .return (rx925_cur)
+  rx927_done:
+    rx927_cur."!cursor_fail"()
+    rx927_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<$>")
+    .return (rx927_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("219_1275811487.95429") :method
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("219_1277356913.9538") :method
 .annotate 'line', 4
-    new $P927, "ResizablePMCArray"
-    push $P927, "$"
-    .return ($P927)
+    new $P929, "ResizablePMCArray"
+    push $P929, "$"
+    .return ($P929)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("220_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote_escape:sym<{ }>"  :subid("220_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx930_tgt
-    .local int rx930_pos
-    .local int rx930_off
-    .local int rx930_eos
-    .local int rx930_rep
-    .local pmc rx930_cur
-    (rx930_cur, rx930_pos, rx930_tgt) = self."!cursor_start"()
-    rx930_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx930_cur
+    .local string rx932_tgt
+    .local int rx932_pos
+    .local int rx932_off
+    .local int rx932_eos
+    .local int rx932_rep
+    .local pmc rx932_cur
+    (rx932_cur, rx932_pos, rx932_tgt) = self."!cursor_start"()
+    rx932_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx932_cur
     .local pmc match
     .lex "$/", match
-    length rx930_eos, rx930_tgt
-    gt rx930_pos, rx930_eos, rx930_done
-    set rx930_off, 0
-    lt rx930_pos, 2, rx930_start
-    sub rx930_off, rx930_pos, 1
-    substr rx930_tgt, rx930_tgt, rx930_off
-  rx930_start:
+    length rx932_eos, rx932_tgt
+    gt rx932_pos, rx932_eos, rx932_done
+    set rx932_off, 0
+    lt rx932_pos, 2, rx932_start
+    sub rx932_off, rx932_pos, 1
+    substr rx932_tgt, rx932_tgt, rx932_off
+  rx932_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan933_done
-    goto rxscan933_scan
-  rxscan933_loop:
-    ($P10) = rx930_cur."from"()
+    ne $I10, -1, rxscan935_done
+    goto rxscan935_scan
+  rxscan935_loop:
+    ($P10) = rx932_cur."from"()
     inc $P10
-    set rx930_pos, $P10
-    ge rx930_pos, rx930_eos, rxscan933_done
-  rxscan933_scan:
-    set_addr $I10, rxscan933_loop
-    rx930_cur."!mark_push"(0, rx930_pos, $I10)
-  rxscan933_done:
+    set rx932_pos, $P10
+    ge rx932_pos, rx932_eos, rxscan935_done
+  rxscan935_scan:
+    set_addr $I10, rxscan935_loop
+    rx932_cur."!mark_push"(0, rx932_pos, $I10)
+  rxscan935_done:
 .annotate 'line', 432
   # rx enumcharlist negate=0 zerowidth
-    ge rx930_pos, rx930_eos, rx930_fail
-    sub $I10, rx930_pos, rx930_off
-    substr $S10, rx930_tgt, $I10, 1
+    ge rx932_pos, rx932_eos, rx932_fail
+    sub $I10, rx932_pos, rx932_off
+    substr $S10, rx932_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx930_fail
+    lt $I11, 0, rx932_fail
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx930_cur."!cursor_pos"(rx930_pos)
-    $P10 = rx930_cur."quotemod_check"("c")
-    unless $P10, rx930_fail
+    rx932_cur."!cursor_pos"(rx932_pos)
+    $P10 = rx932_cur."quotemod_check"("c")
+    unless $P10, rx932_fail
   # rx subrule "block" subtype=capture negate=
-    rx930_cur."!cursor_pos"(rx930_pos)
-    $P10 = rx930_cur."block"()
-    unless $P10, rx930_fail
-    rx930_cur."!mark_push"(0, -1, 0, $P10)
+    rx932_cur."!cursor_pos"(rx932_pos)
+    $P10 = rx932_cur."block"()
+    unless $P10, rx932_fail
+    rx932_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx930_pos = $P10."pos"()
+    rx932_pos = $P10."pos"()
   # rx pass
-    rx930_cur."!cursor_pass"(rx930_pos, "quote_escape:sym<{ }>")
-    rx930_cur."!cursor_debug"("PASS  ", "quote_escape:sym<{ }>", " at pos=", rx930_pos)
-    .return (rx930_cur)
-  rx930_fail:
+    rx932_cur."!cursor_pass"(rx932_pos, "quote_escape:sym<{ }>")
+    rx932_cur."!cursor_debug"("PASS  ", "quote_escape:sym<{ }>", " at pos=", rx932_pos)
+    .return (rx932_cur)
+  rx932_fail:
 .annotate 'line', 4
-    (rx930_rep, rx930_pos, $I10, $P10) = rx930_cur."!mark_fail"(0)
-    lt rx930_pos, -1, rx930_done
-    eq rx930_pos, -1, rx930_fail
+    (rx932_rep, rx932_pos, $I10, $P10) = rx932_cur."!mark_fail"(0)
+    lt rx932_pos, -1, rx932_done
+    eq rx932_pos, -1, rx932_fail
     jump $I10
-  rx930_done:
-    rx930_cur."!cursor_fail"()
-    rx930_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<{ }>")
-    .return (rx930_cur)
+  rx932_done:
+    rx932_cur."!cursor_fail"()
+    rx932_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<{ }>")
+    .return (rx932_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("221_1275811487.95429") :method
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("221_1277356913.9538") :method
 .annotate 'line', 4
-    new $P932, "ResizablePMCArray"
-    push $P932, "{"
-    .return ($P932)
+    new $P934, "ResizablePMCArray"
+    push $P934, "{"
+    .return ($P934)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("222_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "quote_escape:sym<esc>"  :subid("222_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx935_tgt
-    .local int rx935_pos
-    .local int rx935_off
-    .local int rx935_eos
-    .local int rx935_rep
-    .local pmc rx935_cur
-    (rx935_cur, rx935_pos, rx935_tgt) = self."!cursor_start"()
-    rx935_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
-    .lex unicode:"$\x{a2}", rx935_cur
+    .local string rx937_tgt
+    .local int rx937_pos
+    .local int rx937_off
+    .local int rx937_eos
+    .local int rx937_rep
+    .local pmc rx937_cur
+    (rx937_cur, rx937_pos, rx937_tgt) = self."!cursor_start"()
+    rx937_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
+    .lex unicode:"$\x{a2}", rx937_cur
     .local pmc match
     .lex "$/", match
-    length rx935_eos, rx935_tgt
-    gt rx935_pos, rx935_eos, rx935_done
-    set rx935_off, 0
-    lt rx935_pos, 2, rx935_start
-    sub rx935_off, rx935_pos, 1
-    substr rx935_tgt, rx935_tgt, rx935_off
-  rx935_start:
+    length rx937_eos, rx937_tgt
+    gt rx937_pos, rx937_eos, rx937_done
+    set rx937_off, 0
+    lt rx937_pos, 2, rx937_start
+    sub rx937_off, rx937_pos, 1
+    substr rx937_tgt, rx937_tgt, rx937_off
+  rx937_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan938_done
-    goto rxscan938_scan
-  rxscan938_loop:
-    ($P10) = rx935_cur."from"()
+    ne $I10, -1, rxscan940_done
+    goto rxscan940_scan
+  rxscan940_loop:
+    ($P10) = rx937_cur."from"()
     inc $P10
-    set rx935_pos, $P10
-    ge rx935_pos, rx935_eos, rxscan938_done
-  rxscan938_scan:
-    set_addr $I10, rxscan938_loop
-    rx935_cur."!mark_push"(0, rx935_pos, $I10)
-  rxscan938_done:
+    set rx937_pos, $P10
+    ge rx937_pos, rx937_eos, rxscan940_done
+  rxscan940_scan:
+    set_addr $I10, rxscan940_loop
+    rx937_cur."!mark_push"(0, rx937_pos, $I10)
+  rxscan940_done:
 .annotate 'line', 433
   # rx literal  "\\e"
-    add $I11, rx935_pos, 2
-    gt $I11, rx935_eos, rx935_fail
-    sub $I11, rx935_pos, rx935_off
-    substr $S10, rx935_tgt, $I11, 2
-    ne $S10, "\\e", rx935_fail
-    add rx935_pos, 2
+    add $I11, rx937_pos, 2
+    gt $I11, rx937_eos, rx937_fail
+    sub $I11, rx937_pos, rx937_off
+    substr $S10, rx937_tgt, $I11, 2
+    ne $S10, "\\e", rx937_fail
+    add rx937_pos, 2
   # rx subrule "quotemod_check" subtype=zerowidth negate=
-    rx935_cur."!cursor_pos"(rx935_pos)
-    $P10 = rx935_cur."quotemod_check"("b")
-    unless $P10, rx935_fail
+    rx937_cur."!cursor_pos"(rx937_pos)
+    $P10 = rx937_cur."quotemod_check"("b")
+    unless $P10, rx937_fail
   # rx pass
-    rx935_cur."!cursor_pass"(rx935_pos, "quote_escape:sym<esc>")
-    rx935_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx935_pos)
-    .return (rx935_cur)
-  rx935_fail:
+    rx937_cur."!cursor_pass"(rx937_pos, "quote_escape:sym<esc>")
+    rx937_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx937_pos)
+    .return (rx937_cur)
+  rx937_fail:
 .annotate 'line', 4
-    (rx935_rep, rx935_pos, $I10, $P10) = rx935_cur."!mark_fail"(0)
-    lt rx935_pos, -1, rx935_done
-    eq rx935_pos, -1, rx935_fail
+    (rx937_rep, rx937_pos, $I10, $P10) = rx937_cur."!mark_fail"(0)
+    lt rx937_pos, -1, rx937_done
+    eq rx937_pos, -1, rx937_fail
     jump $I10
-  rx935_done:
-    rx935_cur."!cursor_fail"()
-    rx935_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
-    .return (rx935_cur)
+  rx937_done:
+    rx937_cur."!cursor_fail"()
+    rx937_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
+    .return (rx937_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("223_1275811487.95429") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("223_1277356913.9538") :method
 .annotate 'line', 4
-    new $P937, "ResizablePMCArray"
-    push $P937, "\\e"
-    .return ($P937)
+    new $P939, "ResizablePMCArray"
+    push $P939, "\\e"
+    .return ($P939)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("224_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "circumfix:sym<( )>"  :subid("224_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx940_tgt
-    .local int rx940_pos
-    .local int rx940_off
-    .local int rx940_eos
-    .local int rx940_rep
-    .local pmc rx940_cur
-    (rx940_cur, rx940_pos, rx940_tgt) = self."!cursor_start"()
-    rx940_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
-    rx940_cur."!cursor_caparray"("EXPR")
-    .lex unicode:"$\x{a2}", rx940_cur
+    .local string rx942_tgt
+    .local int rx942_pos
+    .local int rx942_off
+    .local int rx942_eos
+    .local int rx942_rep
+    .local pmc rx942_cur
+    (rx942_cur, rx942_pos, rx942_tgt) = self."!cursor_start"()
+    rx942_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
+    rx942_cur."!cursor_caparray"("EXPR")
+    .lex unicode:"$\x{a2}", rx942_cur
     .local pmc match
     .lex "$/", match
-    length rx940_eos, rx940_tgt
-    gt rx940_pos, rx940_eos, rx940_done
-    set rx940_off, 0
-    lt rx940_pos, 2, rx940_start
-    sub rx940_off, rx940_pos, 1
-    substr rx940_tgt, rx940_tgt, rx940_off
-  rx940_start:
+    length rx942_eos, rx942_tgt
+    gt rx942_pos, rx942_eos, rx942_done
+    set rx942_off, 0
+    lt rx942_pos, 2, rx942_start
+    sub rx942_off, rx942_pos, 1
+    substr rx942_tgt, rx942_tgt, rx942_off
+  rx942_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan944_done
-    goto rxscan944_scan
-  rxscan944_loop:
-    ($P10) = rx940_cur."from"()
+    ne $I10, -1, rxscan946_done
+    goto rxscan946_scan
+  rxscan946_loop:
+    ($P10) = rx942_cur."from"()
     inc $P10
-    set rx940_pos, $P10
-    ge rx940_pos, rx940_eos, rxscan944_done
-  rxscan944_scan:
-    set_addr $I10, rxscan944_loop
-    rx940_cur."!mark_push"(0, rx940_pos, $I10)
-  rxscan944_done:
+    set rx942_pos, $P10
+    ge rx942_pos, rx942_eos, rxscan946_done
+  rxscan946_scan:
+    set_addr $I10, rxscan946_loop
+    rx942_cur."!mark_push"(0, rx942_pos, $I10)
+  rxscan946_done:
 .annotate 'line', 435
   # rx literal  "("
-    add $I11, rx940_pos, 1
-    gt $I11, rx940_eos, rx940_fail
-    sub $I11, rx940_pos, rx940_off
-    substr $S10, rx940_tgt, $I11, 1
-    ne $S10, "(", rx940_fail
-    add rx940_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx940_cur."!cursor_pos"(rx940_pos)
-    $P10 = rx940_cur."ws"()
-    unless $P10, rx940_fail
-    rx940_pos = $P10."pos"()
-  # rx rxquantr945 ** 0..1
-    set_addr $I946, rxquantr945_done
-    rx940_cur."!mark_push"(0, rx940_pos, $I946)
-  rxquantr945_loop:
+    add $I11, rx942_pos, 1
+    gt $I11, rx942_eos, rx942_fail
+    sub $I11, rx942_pos, rx942_off
+    substr $S10, rx942_tgt, $I11, 1
+    ne $S10, "(", rx942_fail
+    add rx942_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx942_cur."!cursor_pos"(rx942_pos)
+    $P10 = rx942_cur."ws"()
+    unless $P10, rx942_fail
+    rx942_pos = $P10."pos"()
+  # rx rxquantr947 ** 0..1
+    set_addr $I948, rxquantr947_done
+    rx942_cur."!mark_push"(0, rx942_pos, $I948)
+  rxquantr947_loop:
   # rx subrule "EXPR" subtype=capture negate=
-    rx940_cur."!cursor_pos"(rx940_pos)
-    $P10 = rx940_cur."EXPR"()
-    unless $P10, rx940_fail
-    rx940_cur."!mark_push"(0, -1, 0, $P10)
+    rx942_cur."!cursor_pos"(rx942_pos)
+    $P10 = rx942_cur."EXPR"()
+    unless $P10, rx942_fail
+    rx942_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx940_pos = $P10."pos"()
-    (rx940_rep) = rx940_cur."!mark_commit"($I946)
-  rxquantr945_done:
+    rx942_pos = $P10."pos"()
+    (rx942_rep) = rx942_cur."!mark_commit"($I948)
+  rxquantr947_done:
   # rx literal  ")"
-    add $I11, rx940_pos, 1
-    gt $I11, rx940_eos, rx940_fail
-    sub $I11, rx940_pos, rx940_off
-    substr $S10, rx940_tgt, $I11, 1
-    ne $S10, ")", rx940_fail
-    add rx940_pos, 1
+    add $I11, rx942_pos, 1
+    gt $I11, rx942_eos, rx942_fail
+    sub $I11, rx942_pos, rx942_off
+    substr $S10, rx942_tgt, $I11, 1
+    ne $S10, ")", rx942_fail
+    add rx942_pos, 1
   # rx pass
-    rx940_cur."!cursor_pass"(rx940_pos, "circumfix:sym<( )>")
-    rx940_cur."!cursor_debug"("PASS  ", "circumfix:sym<( )>", " at pos=", rx940_pos)
-    .return (rx940_cur)
-  rx940_fail:
+    rx942_cur."!cursor_pass"(rx942_pos, "circumfix:sym<( )>")
+    rx942_cur."!cursor_debug"("PASS  ", "circumfix:sym<( )>", " at pos=", rx942_pos)
+    .return (rx942_cur)
+  rx942_fail:
 .annotate 'line', 4
-    (rx940_rep, rx940_pos, $I10, $P10) = rx940_cur."!mark_fail"(0)
-    lt rx940_pos, -1, rx940_done
-    eq rx940_pos, -1, rx940_fail
+    (rx942_rep, rx942_pos, $I10, $P10) = rx942_cur."!mark_fail"(0)
+    lt rx942_pos, -1, rx942_done
+    eq rx942_pos, -1, rx942_fail
     jump $I10
-  rx940_done:
-    rx940_cur."!cursor_fail"()
-    rx940_cur."!cursor_debug"("FAIL  ", "circumfix:sym<( )>")
-    .return (rx940_cur)
+  rx942_done:
+    rx942_cur."!cursor_fail"()
+    rx942_cur."!cursor_debug"("FAIL  ", "circumfix:sym<( )>")
+    .return (rx942_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("225_1275811487.95429") :method
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("225_1277356913.9538") :method
 .annotate 'line', 4
-    $P942 = self."!PREFIX__!subrule"("ws", "(")
-    new $P943, "ResizablePMCArray"
-    push $P943, $P942
-    .return ($P943)
+    $P944 = self."!PREFIX__!subrule"("ws", "(")
+    new $P945, "ResizablePMCArray"
+    push $P945, $P944
+    .return ($P945)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("226_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "circumfix:sym<[ ]>"  :subid("226_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx948_tgt
-    .local int rx948_pos
-    .local int rx948_off
-    .local int rx948_eos
-    .local int rx948_rep
-    .local pmc rx948_cur
-    (rx948_cur, rx948_pos, rx948_tgt) = self."!cursor_start"()
-    rx948_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
-    rx948_cur."!cursor_caparray"("EXPR")
-    .lex unicode:"$\x{a2}", rx948_cur
+    .local string rx950_tgt
+    .local int rx950_pos
+    .local int rx950_off
+    .local int rx950_eos
+    .local int rx950_rep
+    .local pmc rx950_cur
+    (rx950_cur, rx950_pos, rx950_tgt) = self."!cursor_start"()
+    rx950_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
+    rx950_cur."!cursor_caparray"("EXPR")
+    .lex unicode:"$\x{a2}", rx950_cur
     .local pmc match
     .lex "$/", match
-    length rx948_eos, rx948_tgt
-    gt rx948_pos, rx948_eos, rx948_done
-    set rx948_off, 0
-    lt rx948_pos, 2, rx948_start
-    sub rx948_off, rx948_pos, 1
-    substr rx948_tgt, rx948_tgt, rx948_off
-  rx948_start:
+    length rx950_eos, rx950_tgt
+    gt rx950_pos, rx950_eos, rx950_done
+    set rx950_off, 0
+    lt rx950_pos, 2, rx950_start
+    sub rx950_off, rx950_pos, 1
+    substr rx950_tgt, rx950_tgt, rx950_off
+  rx950_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan952_done
-    goto rxscan952_scan
-  rxscan952_loop:
-    ($P10) = rx948_cur."from"()
+    ne $I10, -1, rxscan954_done
+    goto rxscan954_scan
+  rxscan954_loop:
+    ($P10) = rx950_cur."from"()
     inc $P10
-    set rx948_pos, $P10
-    ge rx948_pos, rx948_eos, rxscan952_done
-  rxscan952_scan:
-    set_addr $I10, rxscan952_loop
-    rx948_cur."!mark_push"(0, rx948_pos, $I10)
-  rxscan952_done:
+    set rx950_pos, $P10
+    ge rx950_pos, rx950_eos, rxscan954_done
+  rxscan954_scan:
+    set_addr $I10, rxscan954_loop
+    rx950_cur."!mark_push"(0, rx950_pos, $I10)
+  rxscan954_done:
 .annotate 'line', 436
   # rx literal  "["
-    add $I11, rx948_pos, 1
-    gt $I11, rx948_eos, rx948_fail
-    sub $I11, rx948_pos, rx948_off
-    substr $S10, rx948_tgt, $I11, 1
-    ne $S10, "[", rx948_fail
-    add rx948_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx948_cur."!cursor_pos"(rx948_pos)
-    $P10 = rx948_cur."ws"()
-    unless $P10, rx948_fail
-    rx948_pos = $P10."pos"()
-  # rx rxquantr953 ** 0..1
-    set_addr $I954, rxquantr953_done
-    rx948_cur."!mark_push"(0, rx948_pos, $I954)
-  rxquantr953_loop:
+    add $I11, rx950_pos, 1
+    gt $I11, rx950_eos, rx950_fail
+    sub $I11, rx950_pos, rx950_off
+    substr $S10, rx950_tgt, $I11, 1
+    ne $S10, "[", rx950_fail
+    add rx950_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx950_cur."!cursor_pos"(rx950_pos)
+    $P10 = rx950_cur."ws"()
+    unless $P10, rx950_fail
+    rx950_pos = $P10."pos"()
+  # rx rxquantr955 ** 0..1
+    set_addr $I956, rxquantr955_done
+    rx950_cur."!mark_push"(0, rx950_pos, $I956)
+  rxquantr955_loop:
   # rx subrule "EXPR" subtype=capture negate=
-    rx948_cur."!cursor_pos"(rx948_pos)
-    $P10 = rx948_cur."EXPR"()
-    unless $P10, rx948_fail
-    rx948_cur."!mark_push"(0, -1, 0, $P10)
+    rx950_cur."!cursor_pos"(rx950_pos)
+    $P10 = rx950_cur."EXPR"()
+    unless $P10, rx950_fail
+    rx950_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx948_pos = $P10."pos"()
-    (rx948_rep) = rx948_cur."!mark_commit"($I954)
-  rxquantr953_done:
+    rx950_pos = $P10."pos"()
+    (rx950_rep) = rx950_cur."!mark_commit"($I956)
+  rxquantr955_done:
   # rx literal  "]"
-    add $I11, rx948_pos, 1
-    gt $I11, rx948_eos, rx948_fail
-    sub $I11, rx948_pos, rx948_off
-    substr $S10, rx948_tgt, $I11, 1
-    ne $S10, "]", rx948_fail
-    add rx948_pos, 1
+    add $I11, rx950_pos, 1
+    gt $I11, rx950_eos, rx950_fail
+    sub $I11, rx950_pos, rx950_off
+    substr $S10, rx950_tgt, $I11, 1
+    ne $S10, "]", rx950_fail
+    add rx950_pos, 1
   # rx pass
-    rx948_cur."!cursor_pass"(rx948_pos, "circumfix:sym<[ ]>")
-    rx948_cur."!cursor_debug"("PASS  ", "circumfix:sym<[ ]>", " at pos=", rx948_pos)
-    .return (rx948_cur)
-  rx948_fail:
+    rx950_cur."!cursor_pass"(rx950_pos, "circumfix:sym<[ ]>")
+    rx950_cur."!cursor_debug"("PASS  ", "circumfix:sym<[ ]>", " at pos=", rx950_pos)
+    .return (rx950_cur)
+  rx950_fail:
 .annotate 'line', 4
-    (rx948_rep, rx948_pos, $I10, $P10) = rx948_cur."!mark_fail"(0)
-    lt rx948_pos, -1, rx948_done
-    eq rx948_pos, -1, rx948_fail
+    (rx950_rep, rx950_pos, $I10, $P10) = rx950_cur."!mark_fail"(0)
+    lt rx950_pos, -1, rx950_done
+    eq rx950_pos, -1, rx950_fail
     jump $I10
-  rx948_done:
-    rx948_cur."!cursor_fail"()
-    rx948_cur."!cursor_debug"("FAIL  ", "circumfix:sym<[ ]>")
-    .return (rx948_cur)
+  rx950_done:
+    rx950_cur."!cursor_fail"()
+    rx950_cur."!cursor_debug"("FAIL  ", "circumfix:sym<[ ]>")
+    .return (rx950_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("227_1275811487.95429") :method
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("227_1277356913.9538") :method
 .annotate 'line', 4
-    $P950 = self."!PREFIX__!subrule"("ws", "[")
-    new $P951, "ResizablePMCArray"
-    push $P951, $P950
-    .return ($P951)
+    $P952 = self."!PREFIX__!subrule"("ws", "[")
+    new $P953, "ResizablePMCArray"
+    push $P953, $P952
+    .return ($P953)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("228_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "circumfix:sym<ang>"  :subid("228_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx956_tgt
-    .local int rx956_pos
-    .local int rx956_off
-    .local int rx956_eos
-    .local int rx956_rep
-    .local pmc rx956_cur
-    (rx956_cur, rx956_pos, rx956_tgt) = self."!cursor_start"()
-    rx956_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
-    .lex unicode:"$\x{a2}", rx956_cur
+    .local string rx958_tgt
+    .local int rx958_pos
+    .local int rx958_off
+    .local int rx958_eos
+    .local int rx958_rep
+    .local pmc rx958_cur
+    (rx958_cur, rx958_pos, rx958_tgt) = self."!cursor_start"()
+    rx958_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+    .lex unicode:"$\x{a2}", rx958_cur
     .local pmc match
     .lex "$/", match
-    length rx956_eos, rx956_tgt
-    gt rx956_pos, rx956_eos, rx956_done
-    set rx956_off, 0
-    lt rx956_pos, 2, rx956_start
-    sub rx956_off, rx956_pos, 1
-    substr rx956_tgt, rx956_tgt, rx956_off
-  rx956_start:
+    length rx958_eos, rx958_tgt
+    gt rx958_pos, rx958_eos, rx958_done
+    set rx958_off, 0
+    lt rx958_pos, 2, rx958_start
+    sub rx958_off, rx958_pos, 1
+    substr rx958_tgt, rx958_tgt, rx958_off
+  rx958_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan959_done
-    goto rxscan959_scan
-  rxscan959_loop:
-    ($P10) = rx956_cur."from"()
+    ne $I10, -1, rxscan961_done
+    goto rxscan961_scan
+  rxscan961_loop:
+    ($P10) = rx958_cur."from"()
     inc $P10
-    set rx956_pos, $P10
-    ge rx956_pos, rx956_eos, rxscan959_done
-  rxscan959_scan:
-    set_addr $I10, rxscan959_loop
-    rx956_cur."!mark_push"(0, rx956_pos, $I10)
-  rxscan959_done:
+    set rx958_pos, $P10
+    ge rx958_pos, rx958_eos, rxscan961_done
+  rxscan961_scan:
+    set_addr $I10, rxscan961_loop
+    rx958_cur."!mark_push"(0, rx958_pos, $I10)
+  rxscan961_done:
 .annotate 'line', 437
   # rx enumcharlist negate=0 zerowidth
-    ge rx956_pos, rx956_eos, rx956_fail
-    sub $I10, rx956_pos, rx956_off
-    substr $S10, rx956_tgt, $I10, 1
+    ge rx958_pos, rx958_eos, rx958_fail
+    sub $I10, rx958_pos, rx958_off
+    substr $S10, rx958_tgt, $I10, 1
     index $I11, "<", $S10
-    lt $I11, 0, rx956_fail
+    lt $I11, 0, rx958_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx956_cur."!cursor_pos"(rx956_pos)
-    $P10 = rx956_cur."quote_EXPR"(":q", ":w")
-    unless $P10, rx956_fail
-    rx956_cur."!mark_push"(0, -1, 0, $P10)
+    rx958_cur."!cursor_pos"(rx958_pos)
+    $P10 = rx958_cur."quote_EXPR"(":q", ":w")
+    unless $P10, rx958_fail
+    rx958_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx956_pos = $P10."pos"()
+    rx958_pos = $P10."pos"()
   # rx pass
-    rx956_cur."!cursor_pass"(rx956_pos, "circumfix:sym<ang>")
-    rx956_cur."!cursor_debug"("PASS  ", "circumfix:sym<ang>", " at pos=", rx956_pos)
-    .return (rx956_cur)
-  rx956_fail:
+    rx958_cur."!cursor_pass"(rx958_pos, "circumfix:sym<ang>")
+    rx958_cur."!cursor_debug"("PASS  ", "circumfix:sym<ang>", " at pos=", rx958_pos)
+    .return (rx958_cur)
+  rx958_fail:
 .annotate 'line', 4
-    (rx956_rep, rx956_pos, $I10, $P10) = rx956_cur."!mark_fail"(0)
-    lt rx956_pos, -1, rx956_done
-    eq rx956_pos, -1, rx956_fail
+    (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0)
+    lt rx958_pos, -1, rx958_done
+    eq rx958_pos, -1, rx958_fail
     jump $I10
-  rx956_done:
-    rx956_cur."!cursor_fail"()
-    rx956_cur."!cursor_debug"("FAIL  ", "circumfix:sym<ang>")
-    .return (rx956_cur)
+  rx958_done:
+    rx958_cur."!cursor_fail"()
+    rx958_cur."!cursor_debug"("FAIL  ", "circumfix:sym<ang>")
+    .return (rx958_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("229_1275811487.95429") :method
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("229_1277356913.9538") :method
 .annotate 'line', 4
-    new $P958, "ResizablePMCArray"
-    push $P958, "<"
-    .return ($P958)
+    new $P960, "ResizablePMCArray"
+    push $P960, "<"
+    .return ($P960)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("230_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("230_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx961_tgt
-    .local int rx961_pos
-    .local int rx961_off
-    .local int rx961_eos
-    .local int rx961_rep
-    .local pmc rx961_cur
-    (rx961_cur, rx961_pos, rx961_tgt) = self."!cursor_start"()
-    rx961_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    .lex unicode:"$\x{a2}", rx961_cur
+    .local string rx963_tgt
+    .local int rx963_pos
+    .local int rx963_off
+    .local int rx963_eos
+    .local int rx963_rep
+    .local pmc rx963_cur
+    (rx963_cur, rx963_pos, rx963_tgt) = self."!cursor_start"()
+    rx963_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    .lex unicode:"$\x{a2}", rx963_cur
     .local pmc match
     .lex "$/", match
-    length rx961_eos, rx961_tgt
-    gt rx961_pos, rx961_eos, rx961_done
-    set rx961_off, 0
-    lt rx961_pos, 2, rx961_start
-    sub rx961_off, rx961_pos, 1
-    substr rx961_tgt, rx961_tgt, rx961_off
-  rx961_start:
+    length rx963_eos, rx963_tgt
+    gt rx963_pos, rx963_eos, rx963_done
+    set rx963_off, 0
+    lt rx963_pos, 2, rx963_start
+    sub rx963_off, rx963_pos, 1
+    substr rx963_tgt, rx963_tgt, rx963_off
+  rx963_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan964_done
-    goto rxscan964_scan
-  rxscan964_loop:
-    ($P10) = rx961_cur."from"()
+    ne $I10, -1, rxscan966_done
+    goto rxscan966_scan
+  rxscan966_loop:
+    ($P10) = rx963_cur."from"()
     inc $P10
-    set rx961_pos, $P10
-    ge rx961_pos, rx961_eos, rxscan964_done
-  rxscan964_scan:
-    set_addr $I10, rxscan964_loop
-    rx961_cur."!mark_push"(0, rx961_pos, $I10)
-  rxscan964_done:
+    set rx963_pos, $P10
+    ge rx963_pos, rx963_eos, rxscan966_done
+  rxscan966_scan:
+    set_addr $I10, rxscan966_loop
+    rx963_cur."!mark_push"(0, rx963_pos, $I10)
+  rxscan966_done:
 .annotate 'line', 438
   # rx enumcharlist negate=0 zerowidth
-    ge rx961_pos, rx961_eos, rx961_fail
-    sub $I10, rx961_pos, rx961_off
-    substr $S10, rx961_tgt, $I10, 1
+    ge rx963_pos, rx963_eos, rx963_fail
+    sub $I10, rx963_pos, rx963_off
+    substr $S10, rx963_tgt, $I10, 1
     index $I11, unicode:"\x{ab}", $S10
-    lt $I11, 0, rx961_fail
+    lt $I11, 0, rx963_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx961_cur."!cursor_pos"(rx961_pos)
-    $P10 = rx961_cur."quote_EXPR"(":qq", ":w")
-    unless $P10, rx961_fail
-    rx961_cur."!mark_push"(0, -1, 0, $P10)
+    rx963_cur."!cursor_pos"(rx963_pos)
+    $P10 = rx963_cur."quote_EXPR"(":qq", ":w")
+    unless $P10, rx963_fail
+    rx963_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx961_pos = $P10."pos"()
+    rx963_pos = $P10."pos"()
   # rx pass
-    rx961_cur."!cursor_pass"(rx961_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    rx961_cur."!cursor_debug"("PASS  ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx961_pos)
-    .return (rx961_cur)
-  rx961_fail:
+    rx963_cur."!cursor_pass"(rx963_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    rx963_cur."!cursor_debug"("PASS  ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx963_pos)
+    .return (rx963_cur)
+  rx963_fail:
 .annotate 'line', 4
-    (rx961_rep, rx961_pos, $I10, $P10) = rx961_cur."!mark_fail"(0)
-    lt rx961_pos, -1, rx961_done
-    eq rx961_pos, -1, rx961_fail
+    (rx963_rep, rx963_pos, $I10, $P10) = rx963_cur."!mark_fail"(0)
+    lt rx963_pos, -1, rx963_done
+    eq rx963_pos, -1, rx963_fail
     jump $I10
-  rx961_done:
-    rx961_cur."!cursor_fail"()
-    rx961_cur."!cursor_debug"("FAIL  ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    .return (rx961_cur)
+  rx963_done:
+    rx963_cur."!cursor_fail"()
+    rx963_cur."!cursor_debug"("FAIL  ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    .return (rx963_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("231_1275811487.95429") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("231_1277356913.9538") :method
 .annotate 'line', 4
-    new $P963, "ResizablePMCArray"
-    push $P963, unicode:"\x{ab}"
-    .return ($P963)
+    new $P965, "ResizablePMCArray"
+    push $P965, unicode:"\x{ab}"
+    .return ($P965)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("232_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "circumfix:sym<{ }>"  :subid("232_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx966_tgt
-    .local int rx966_pos
-    .local int rx966_off
-    .local int rx966_eos
-    .local int rx966_rep
-    .local pmc rx966_cur
-    (rx966_cur, rx966_pos, rx966_tgt) = self."!cursor_start"()
-    rx966_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx966_cur
+    .local string rx968_tgt
+    .local int rx968_pos
+    .local int rx968_off
+    .local int rx968_eos
+    .local int rx968_rep
+    .local pmc rx968_cur
+    (rx968_cur, rx968_pos, rx968_tgt) = self."!cursor_start"()
+    rx968_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx968_cur
     .local pmc match
     .lex "$/", match
-    length rx966_eos, rx966_tgt
-    gt rx966_pos, rx966_eos, rx966_done
-    set rx966_off, 0
-    lt rx966_pos, 2, rx966_start
-    sub rx966_off, rx966_pos, 1
-    substr rx966_tgt, rx966_tgt, rx966_off
-  rx966_start:
+    length rx968_eos, rx968_tgt
+    gt rx968_pos, rx968_eos, rx968_done
+    set rx968_off, 0
+    lt rx968_pos, 2, rx968_start
+    sub rx968_off, rx968_pos, 1
+    substr rx968_tgt, rx968_tgt, rx968_off
+  rx968_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan969_done
-    goto rxscan969_scan
-  rxscan969_loop:
-    ($P10) = rx966_cur."from"()
+    ne $I10, -1, rxscan971_done
+    goto rxscan971_scan
+  rxscan971_loop:
+    ($P10) = rx968_cur."from"()
     inc $P10
-    set rx966_pos, $P10
-    ge rx966_pos, rx966_eos, rxscan969_done
-  rxscan969_scan:
-    set_addr $I10, rxscan969_loop
-    rx966_cur."!mark_push"(0, rx966_pos, $I10)
-  rxscan969_done:
+    set rx968_pos, $P10
+    ge rx968_pos, rx968_eos, rxscan971_done
+  rxscan971_scan:
+    set_addr $I10, rxscan971_loop
+    rx968_cur."!mark_push"(0, rx968_pos, $I10)
+  rxscan971_done:
 .annotate 'line', 439
   # rx enumcharlist negate=0 zerowidth
-    ge rx966_pos, rx966_eos, rx966_fail
-    sub $I10, rx966_pos, rx966_off
-    substr $S10, rx966_tgt, $I10, 1
+    ge rx968_pos, rx968_eos, rx968_fail
+    sub $I10, rx968_pos, rx968_off
+    substr $S10, rx968_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx966_fail
+    lt $I11, 0, rx968_fail
   # rx subrule "pblock" subtype=capture negate=
-    rx966_cur."!cursor_pos"(rx966_pos)
-    $P10 = rx966_cur."pblock"()
-    unless $P10, rx966_fail
-    rx966_cur."!mark_push"(0, -1, 0, $P10)
+    rx968_cur."!cursor_pos"(rx968_pos)
+    $P10 = rx968_cur."pblock"()
+    unless $P10, rx968_fail
+    rx968_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pblock")
-    rx966_pos = $P10."pos"()
+    rx968_pos = $P10."pos"()
   # rx pass
-    rx966_cur."!cursor_pass"(rx966_pos, "circumfix:sym<{ }>")
-    rx966_cur."!cursor_debug"("PASS  ", "circumfix:sym<{ }>", " at pos=", rx966_pos)
-    .return (rx966_cur)
-  rx966_fail:
+    rx968_cur."!cursor_pass"(rx968_pos, "circumfix:sym<{ }>")
+    rx968_cur."!cursor_debug"("PASS  ", "circumfix:sym<{ }>", " at pos=", rx968_pos)
+    .return (rx968_cur)
+  rx968_fail:
 .annotate 'line', 4
-    (rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0)
-    lt rx966_pos, -1, rx966_done
-    eq rx966_pos, -1, rx966_fail
+    (rx968_rep, rx968_pos, $I10, $P10) = rx968_cur."!mark_fail"(0)
+    lt rx968_pos, -1, rx968_done
+    eq rx968_pos, -1, rx968_fail
     jump $I10
-  rx966_done:
-    rx966_cur."!cursor_fail"()
-    rx966_cur."!cursor_debug"("FAIL  ", "circumfix:sym<{ }>")
-    .return (rx966_cur)
+  rx968_done:
+    rx968_cur."!cursor_fail"()
+    rx968_cur."!cursor_debug"("FAIL  ", "circumfix:sym<{ }>")
+    .return (rx968_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("233_1275811487.95429") :method
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("233_1277356913.9538") :method
 .annotate 'line', 4
-    new $P968, "ResizablePMCArray"
-    push $P968, "{"
-    .return ($P968)
+    new $P970, "ResizablePMCArray"
+    push $P970, "{"
+    .return ($P970)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("234_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "circumfix:sym<sigil>"  :subid("234_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx971_tgt
-    .local int rx971_pos
-    .local int rx971_off
-    .local int rx971_eos
-    .local int rx971_rep
-    .local pmc rx971_cur
-    (rx971_cur, rx971_pos, rx971_tgt) = self."!cursor_start"()
-    rx971_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
-    .lex unicode:"$\x{a2}", rx971_cur
+    .local string rx973_tgt
+    .local int rx973_pos
+    .local int rx973_off
+    .local int rx973_eos
+    .local int rx973_rep
+    .local pmc rx973_cur
+    (rx973_cur, rx973_pos, rx973_tgt) = self."!cursor_start"()
+    rx973_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+    .lex unicode:"$\x{a2}", rx973_cur
     .local pmc match
     .lex "$/", match
-    length rx971_eos, rx971_tgt
-    gt rx971_pos, rx971_eos, rx971_done
-    set rx971_off, 0
-    lt rx971_pos, 2, rx971_start
-    sub rx971_off, rx971_pos, 1
-    substr rx971_tgt, rx971_tgt, rx971_off
-  rx971_start:
+    length rx973_eos, rx973_tgt
+    gt rx973_pos, rx973_eos, rx973_done
+    set rx973_off, 0
+    lt rx973_pos, 2, rx973_start
+    sub rx973_off, rx973_pos, 1
+    substr rx973_tgt, rx973_tgt, rx973_off
+  rx973_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan975_done
-    goto rxscan975_scan
-  rxscan975_loop:
-    ($P10) = rx971_cur."from"()
+    ne $I10, -1, rxscan977_done
+    goto rxscan977_scan
+  rxscan977_loop:
+    ($P10) = rx973_cur."from"()
     inc $P10
-    set rx971_pos, $P10
-    ge rx971_pos, rx971_eos, rxscan975_done
-  rxscan975_scan:
-    set_addr $I10, rxscan975_loop
-    rx971_cur."!mark_push"(0, rx971_pos, $I10)
-  rxscan975_done:
+    set rx973_pos, $P10
+    ge rx973_pos, rx973_eos, rxscan977_done
+  rxscan977_scan:
+    set_addr $I10, rxscan977_loop
+    rx973_cur."!mark_push"(0, rx973_pos, $I10)
+  rxscan977_done:
 .annotate 'line', 440
   # rx subrule "sigil" subtype=capture negate=
-    rx971_cur."!cursor_pos"(rx971_pos)
-    $P10 = rx971_cur."sigil"()
-    unless $P10, rx971_fail
-    rx971_cur."!mark_push"(0, -1, 0, $P10)
+    rx973_cur."!cursor_pos"(rx973_pos)
+    $P10 = rx973_cur."sigil"()
+    unless $P10, rx973_fail
+    rx973_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sigil")
-    rx971_pos = $P10."pos"()
+    rx973_pos = $P10."pos"()
   # rx literal  "("
-    add $I11, rx971_pos, 1
-    gt $I11, rx971_eos, rx971_fail
-    sub $I11, rx971_pos, rx971_off
-    substr $S10, rx971_tgt, $I11, 1
-    ne $S10, "(", rx971_fail
-    add rx971_pos, 1
+    add $I11, rx973_pos, 1
+    gt $I11, rx973_eos, rx973_fail
+    sub $I11, rx973_pos, rx973_off
+    substr $S10, rx973_tgt, $I11, 1
+    ne $S10, "(", rx973_fail
+    add rx973_pos, 1
   # rx subrule "semilist" subtype=capture negate=
-    rx971_cur."!cursor_pos"(rx971_pos)
-    $P10 = rx971_cur."semilist"()
-    unless $P10, rx971_fail
-    rx971_cur."!mark_push"(0, -1, 0, $P10)
+    rx973_cur."!cursor_pos"(rx973_pos)
+    $P10 = rx973_cur."semilist"()
+    unless $P10, rx973_fail
+    rx973_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("semilist")
-    rx971_pos = $P10."pos"()
-  alt976_0:
-    set_addr $I10, alt976_1
-    rx971_cur."!mark_push"(0, rx971_pos, $I10)
+    rx973_pos = $P10."pos"()
+  alt978_0:
+    set_addr $I10, alt978_1
+    rx973_cur."!mark_push"(0, rx973_pos, $I10)
   # rx literal  ")"
-    add $I11, rx971_pos, 1
-    gt $I11, rx971_eos, rx971_fail
-    sub $I11, rx971_pos, rx971_off
-    substr $S10, rx971_tgt, $I11, 1
-    ne $S10, ")", rx971_fail
-    add rx971_pos, 1
-    goto alt976_end
-  alt976_1:
+    add $I11, rx973_pos, 1
+    gt $I11, rx973_eos, rx973_fail
+    sub $I11, rx973_pos, rx973_off
+    substr $S10, rx973_tgt, $I11, 1
+    ne $S10, ")", rx973_fail
+    add rx973_pos, 1
+    goto alt978_end
+  alt978_1:
   # rx subrule "FAILGOAL" subtype=method negate=
-    rx971_cur."!cursor_pos"(rx971_pos)
-    $P10 = rx971_cur."FAILGOAL"("')'")
-    unless $P10, rx971_fail
-    rx971_pos = $P10."pos"()
-  alt976_end:
+    rx973_cur."!cursor_pos"(rx973_pos)
+    $P10 = rx973_cur."FAILGOAL"("')'")
+    unless $P10, rx973_fail
+    rx973_pos = $P10."pos"()
+  alt978_end:
   # rx pass
-    rx971_cur."!cursor_pass"(rx971_pos, "circumfix:sym<sigil>")
-    rx971_cur."!cursor_debug"("PASS  ", "circumfix:sym<sigil>", " at pos=", rx971_pos)
-    .return (rx971_cur)
-  rx971_fail:
+    rx973_cur."!cursor_pass"(rx973_pos, "circumfix:sym<sigil>")
+    rx973_cur."!cursor_debug"("PASS  ", "circumfix:sym<sigil>", " at pos=", rx973_pos)
+    .return (rx973_cur)
+  rx973_fail:
 .annotate 'line', 4
-    (rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0)
-    lt rx971_pos, -1, rx971_done
-    eq rx971_pos, -1, rx971_fail
+    (rx973_rep, rx973_pos, $I10, $P10) = rx973_cur."!mark_fail"(0)
+    lt rx973_pos, -1, rx973_done
+    eq rx973_pos, -1, rx973_fail
     jump $I10
-  rx971_done:
-    rx971_cur."!cursor_fail"()
-    rx971_cur."!cursor_debug"("FAIL  ", "circumfix:sym<sigil>")
-    .return (rx971_cur)
+  rx973_done:
+    rx973_cur."!cursor_fail"()
+    rx973_cur."!cursor_debug"("FAIL  ", "circumfix:sym<sigil>")
+    .return (rx973_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("235_1275811487.95429") :method
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("235_1277356913.9538") :method
 .annotate 'line', 4
-    $P973 = self."!PREFIX__!subrule"("sigil", "")
-    new $P974, "ResizablePMCArray"
-    push $P974, $P973
-    .return ($P974)
+    $P975 = self."!PREFIX__!subrule"("sigil", "")
+    new $P976, "ResizablePMCArray"
+    push $P976, $P975
+    .return ($P976)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("236_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "semilist"  :subid("236_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 4
-    .local string rx979_tgt
-    .local int rx979_pos
-    .local int rx979_off
-    .local int rx979_eos
-    .local int rx979_rep
-    .local pmc rx979_cur
-    (rx979_cur, rx979_pos, rx979_tgt) = self."!cursor_start"()
-    rx979_cur."!cursor_debug"("START ", "semilist")
-    .lex unicode:"$\x{a2}", rx979_cur
+    .local string rx981_tgt
+    .local int rx981_pos
+    .local int rx981_off
+    .local int rx981_eos
+    .local int rx981_rep
+    .local pmc rx981_cur
+    (rx981_cur, rx981_pos, rx981_tgt) = self."!cursor_start"()
+    rx981_cur."!cursor_debug"("START ", "semilist")
+    .lex unicode:"$\x{a2}", rx981_cur
     .local pmc match
     .lex "$/", match
-    length rx979_eos, rx979_tgt
-    gt rx979_pos, rx979_eos, rx979_done
-    set rx979_off, 0
-    lt rx979_pos, 2, rx979_start
-    sub rx979_off, rx979_pos, 1
-    substr rx979_tgt, rx979_tgt, rx979_off
-  rx979_start:
+    length rx981_eos, rx981_tgt
+    gt rx981_pos, rx981_eos, rx981_done
+    set rx981_off, 0
+    lt rx981_pos, 2, rx981_start
+    sub rx981_off, rx981_pos, 1
+    substr rx981_tgt, rx981_tgt, rx981_off
+  rx981_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan983_done
-    goto rxscan983_scan
-  rxscan983_loop:
-    ($P10) = rx979_cur."from"()
+    ne $I10, -1, rxscan985_done
+    goto rxscan985_scan
+  rxscan985_loop:
+    ($P10) = rx981_cur."from"()
     inc $P10
-    set rx979_pos, $P10
-    ge rx979_pos, rx979_eos, rxscan983_done
-  rxscan983_scan:
-    set_addr $I10, rxscan983_loop
-    rx979_cur."!mark_push"(0, rx979_pos, $I10)
-  rxscan983_done:
+    set rx981_pos, $P10
+    ge rx981_pos, rx981_eos, rxscan985_done
+  rxscan985_scan:
+    set_addr $I10, rxscan985_loop
+    rx981_cur."!mark_push"(0, rx981_pos, $I10)
+  rxscan985_done:
 .annotate 'line', 442
   # rx subrule "ws" subtype=method negate=
-    rx979_cur."!cursor_pos"(rx979_pos)
-    $P10 = rx979_cur."ws"()
-    unless $P10, rx979_fail
-    rx979_pos = $P10."pos"()
+    rx981_cur."!cursor_pos"(rx981_pos)
+    $P10 = rx981_cur."ws"()
+    unless $P10, rx981_fail
+    rx981_pos = $P10."pos"()
   # rx subrule "statement" subtype=capture negate=
-    rx979_cur."!cursor_pos"(rx979_pos)
-    $P10 = rx979_cur."statement"()
-    unless $P10, rx979_fail
-    rx979_cur."!mark_push"(0, -1, 0, $P10)
+    rx981_cur."!cursor_pos"(rx981_pos)
+    $P10 = rx981_cur."statement"()
+    unless $P10, rx981_fail
+    rx981_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx979_pos = $P10."pos"()
+    rx981_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx979_cur."!cursor_pos"(rx979_pos)
-    $P10 = rx979_cur."ws"()
-    unless $P10, rx979_fail
-    rx979_pos = $P10."pos"()
+    rx981_cur."!cursor_pos"(rx981_pos)
+    $P10 = rx981_cur."ws"()
+    unless $P10, rx981_fail
+    rx981_pos = $P10."pos"()
   # rx pass
-    rx979_cur."!cursor_pass"(rx979_pos, "semilist")
-    rx979_cur."!cursor_debug"("PASS  ", "semilist", " at pos=", rx979_pos)
-    .return (rx979_cur)
-  rx979_fail:
+    rx981_cur."!cursor_pass"(rx981_pos, "semilist")
+    rx981_cur."!cursor_debug"("PASS  ", "semilist", " at pos=", rx981_pos)
+    .return (rx981_cur)
+  rx981_fail:
 .annotate 'line', 4
-    (rx979_rep, rx979_pos, $I10, $P10) = rx979_cur."!mark_fail"(0)
-    lt rx979_pos, -1, rx979_done
-    eq rx979_pos, -1, rx979_fail
+    (rx981_rep, rx981_pos, $I10, $P10) = rx981_cur."!mark_fail"(0)
+    lt rx981_pos, -1, rx981_done
+    eq rx981_pos, -1, rx981_fail
     jump $I10
-  rx979_done:
-    rx979_cur."!cursor_fail"()
-    rx979_cur."!cursor_debug"("FAIL  ", "semilist")
-    .return (rx979_cur)
+  rx981_done:
+    rx981_cur."!cursor_fail"()
+    rx981_cur."!cursor_debug"("FAIL  ", "semilist")
+    .return (rx981_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("237_1275811487.95429") :method
+.sub "!PREFIX__semilist"  :subid("237_1277356913.9538") :method
 .annotate 'line', 4
-    $P981 = self."!PREFIX__!subrule"("ws", "")
-    new $P982, "ResizablePMCArray"
-    push $P982, $P981
-    .return ($P982)
+    $P983 = self."!PREFIX__!subrule"("ws", "")
+    new $P984, "ResizablePMCArray"
+    push $P984, $P983
+    .return ($P984)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("238_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infixish"  :subid("238_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx987_tgt
-    .local int rx987_pos
-    .local int rx987_off
-    .local int rx987_eos
-    .local int rx987_rep
-    .local pmc rx987_cur
-    (rx987_cur, rx987_pos, rx987_tgt) = self."!cursor_start"()
-    rx987_cur."!cursor_debug"("START ", "infixish")
-    .lex unicode:"$\x{a2}", rx987_cur
+    .local string rx989_tgt
+    .local int rx989_pos
+    .local int rx989_off
+    .local int rx989_eos
+    .local int rx989_rep
+    .local pmc rx989_cur
+    (rx989_cur, rx989_pos, rx989_tgt) = self."!cursor_start"()
+    rx989_cur."!cursor_debug"("START ", "infixish")
+    .lex unicode:"$\x{a2}", rx989_cur
     .local pmc match
     .lex "$/", match
-    length rx987_eos, rx987_tgt
-    gt rx987_pos, rx987_eos, rx987_done
-    set rx987_off, 0
-    lt rx987_pos, 2, rx987_start
-    sub rx987_off, rx987_pos, 1
-    substr rx987_tgt, rx987_tgt, rx987_off
-  rx987_start:
+    length rx989_eos, rx989_tgt
+    gt rx989_pos, rx989_eos, rx989_done
+    set rx989_off, 0
+    lt rx989_pos, 2, rx989_start
+    sub rx989_off, rx989_pos, 1
+    substr rx989_tgt, rx989_tgt, rx989_off
+  rx989_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan990_done
-    goto rxscan990_scan
-  rxscan990_loop:
-    ($P10) = rx987_cur."from"()
+    ne $I10, -1, rxscan992_done
+    goto rxscan992_scan
+  rxscan992_loop:
+    ($P10) = rx989_cur."from"()
     inc $P10
-    set rx987_pos, $P10
-    ge rx987_pos, rx987_eos, rxscan990_done
-  rxscan990_scan:
-    set_addr $I10, rxscan990_loop
-    rx987_cur."!mark_push"(0, rx987_pos, $I10)
-  rxscan990_done:
+    set rx989_pos, $P10
+    ge rx989_pos, rx989_eos, rxscan992_done
+  rxscan992_scan:
+    set_addr $I10, rxscan992_loop
+    rx989_cur."!mark_push"(0, rx989_pos, $I10)
+  rxscan992_done:
 .annotate 'line', 465
   # rx subrule "infixstopper" subtype=zerowidth negate=1
-    rx987_cur."!cursor_pos"(rx987_pos)
-    $P10 = rx987_cur."infixstopper"()
-    if $P10, rx987_fail
+    rx989_cur."!cursor_pos"(rx989_pos)
+    $P10 = rx989_cur."infixstopper"()
+    if $P10, rx989_fail
   # rx subrule "infix" subtype=capture negate=
-    rx987_cur."!cursor_pos"(rx987_pos)
-    $P10 = rx987_cur."infix"()
-    unless $P10, rx987_fail
-    rx987_cur."!mark_push"(0, -1, 0, $P10)
+    rx989_cur."!cursor_pos"(rx989_pos)
+    $P10 = rx989_cur."infix"()
+    unless $P10, rx989_fail
+    rx989_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("OPER=infix")
-    rx987_pos = $P10."pos"()
+    rx989_pos = $P10."pos"()
   # rx pass
-    rx987_cur."!cursor_pass"(rx987_pos, "infixish")
-    rx987_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx987_pos)
-    .return (rx987_cur)
-  rx987_fail:
+    rx989_cur."!cursor_pass"(rx989_pos, "infixish")
+    rx989_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx989_pos)
+    .return (rx989_cur)
+  rx989_fail:
 .annotate 'line', 446
-    (rx987_rep, rx987_pos, $I10, $P10) = rx987_cur."!mark_fail"(0)
-    lt rx987_pos, -1, rx987_done
-    eq rx987_pos, -1, rx987_fail
+    (rx989_rep, rx989_pos, $I10, $P10) = rx989_cur."!mark_fail"(0)
+    lt rx989_pos, -1, rx989_done
+    eq rx989_pos, -1, rx989_fail
     jump $I10
-  rx987_done:
-    rx987_cur."!cursor_fail"()
-    rx987_cur."!cursor_debug"("FAIL  ", "infixish")
-    .return (rx987_cur)
+  rx989_done:
+    rx989_cur."!cursor_fail"()
+    rx989_cur."!cursor_debug"("FAIL  ", "infixish")
+    .return (rx989_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("239_1275811487.95429") :method
+.sub "!PREFIX__infixish"  :subid("239_1277356913.9538") :method
 .annotate 'line', 446
-    new $P989, "ResizablePMCArray"
-    push $P989, ""
-    .return ($P989)
+    new $P991, "ResizablePMCArray"
+    push $P991, ""
+    .return ($P991)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("240_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infixstopper"  :subid("240_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx992_tgt
-    .local int rx992_pos
-    .local int rx992_off
-    .local int rx992_eos
-    .local int rx992_rep
-    .local pmc rx992_cur
-    (rx992_cur, rx992_pos, rx992_tgt) = self."!cursor_start"()
-    rx992_cur."!cursor_debug"("START ", "infixstopper")
-    .lex unicode:"$\x{a2}", rx992_cur
+    .local string rx994_tgt
+    .local int rx994_pos
+    .local int rx994_off
+    .local int rx994_eos
+    .local int rx994_rep
+    .local pmc rx994_cur
+    (rx994_cur, rx994_pos, rx994_tgt) = self."!cursor_start"()
+    rx994_cur."!cursor_debug"("START ", "infixstopper")
+    .lex unicode:"$\x{a2}", rx994_cur
     .local pmc match
     .lex "$/", match
-    length rx992_eos, rx992_tgt
-    gt rx992_pos, rx992_eos, rx992_done
-    set rx992_off, 0
-    lt rx992_pos, 2, rx992_start
-    sub rx992_off, rx992_pos, 1
-    substr rx992_tgt, rx992_tgt, rx992_off
-  rx992_start:
+    length rx994_eos, rx994_tgt
+    gt rx994_pos, rx994_eos, rx994_done
+    set rx994_off, 0
+    lt rx994_pos, 2, rx994_start
+    sub rx994_off, rx994_pos, 1
+    substr rx994_tgt, rx994_tgt, rx994_off
+  rx994_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan995_done
-    goto rxscan995_scan
-  rxscan995_loop:
-    ($P10) = rx992_cur."from"()
+    ne $I10, -1, rxscan997_done
+    goto rxscan997_scan
+  rxscan997_loop:
+    ($P10) = rx994_cur."from"()
     inc $P10
-    set rx992_pos, $P10
-    ge rx992_pos, rx992_eos, rxscan995_done
-  rxscan995_scan:
-    set_addr $I10, rxscan995_loop
-    rx992_cur."!mark_push"(0, rx992_pos, $I10)
-  rxscan995_done:
+    set rx994_pos, $P10
+    ge rx994_pos, rx994_eos, rxscan997_done
+  rxscan997_scan:
+    set_addr $I10, rxscan997_loop
+    rx994_cur."!mark_push"(0, rx994_pos, $I10)
+  rxscan997_done:
 .annotate 'line', 466
   # rx subrule "lambda" subtype=zerowidth negate=
-    rx992_cur."!cursor_pos"(rx992_pos)
-    $P10 = rx992_cur."lambda"()
-    unless $P10, rx992_fail
+    rx994_cur."!cursor_pos"(rx994_pos)
+    $P10 = rx994_cur."lambda"()
+    unless $P10, rx994_fail
   # rx pass
-    rx992_cur."!cursor_pass"(rx992_pos, "infixstopper")
-    rx992_cur."!cursor_debug"("PASS  ", "infixstopper", " at pos=", rx992_pos)
-    .return (rx992_cur)
-  rx992_fail:
+    rx994_cur."!cursor_pass"(rx994_pos, "infixstopper")
+    rx994_cur."!cursor_debug"("PASS  ", "infixstopper", " at pos=", rx994_pos)
+    .return (rx994_cur)
+  rx994_fail:
 .annotate 'line', 446
-    (rx992_rep, rx992_pos, $I10, $P10) = rx992_cur."!mark_fail"(0)
-    lt rx992_pos, -1, rx992_done
-    eq rx992_pos, -1, rx992_fail
+    (rx994_rep, rx994_pos, $I10, $P10) = rx994_cur."!mark_fail"(0)
+    lt rx994_pos, -1, rx994_done
+    eq rx994_pos, -1, rx994_fail
     jump $I10
-  rx992_done:
-    rx992_cur."!cursor_fail"()
-    rx992_cur."!cursor_debug"("FAIL  ", "infixstopper")
-    .return (rx992_cur)
+  rx994_done:
+    rx994_cur."!cursor_fail"()
+    rx994_cur."!cursor_debug"("FAIL  ", "infixstopper")
+    .return (rx994_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("241_1275811487.95429") :method
+.sub "!PREFIX__infixstopper"  :subid("241_1277356913.9538") :method
 .annotate 'line', 446
-    new $P994, "ResizablePMCArray"
-    push $P994, ""
-    .return ($P994)
+    new $P996, "ResizablePMCArray"
+    push $P996, ""
+    .return ($P996)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("242_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "postcircumfix:sym<[ ]>"  :subid("242_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx997_tgt
-    .local int rx997_pos
-    .local int rx997_off
-    .local int rx997_eos
-    .local int rx997_rep
-    .local pmc rx997_cur
-    (rx997_cur, rx997_pos, rx997_tgt) = self."!cursor_start"()
-    rx997_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
-    .lex unicode:"$\x{a2}", rx997_cur
+    .local string rx999_tgt
+    .local int rx999_pos
+    .local int rx999_off
+    .local int rx999_eos
+    .local int rx999_rep
+    .local pmc rx999_cur
+    (rx999_cur, rx999_pos, rx999_tgt) = self."!cursor_start"()
+    rx999_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+    .lex unicode:"$\x{a2}", rx999_cur
     .local pmc match
     .lex "$/", match
-    length rx997_eos, rx997_tgt
-    gt rx997_pos, rx997_eos, rx997_done
-    set rx997_off, 0
-    lt rx997_pos, 2, rx997_start
-    sub rx997_off, rx997_pos, 1
-    substr rx997_tgt, rx997_tgt, rx997_off
-  rx997_start:
+    length rx999_eos, rx999_tgt
+    gt rx999_pos, rx999_eos, rx999_done
+    set rx999_off, 0
+    lt rx999_pos, 2, rx999_start
+    sub rx999_off, rx999_pos, 1
+    substr rx999_tgt, rx999_tgt, rx999_off
+  rx999_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1001_done
-    goto rxscan1001_scan
-  rxscan1001_loop:
-    ($P10) = rx997_cur."from"()
+    ne $I10, -1, rxscan1003_done
+    goto rxscan1003_scan
+  rxscan1003_loop:
+    ($P10) = rx999_cur."from"()
     inc $P10
-    set rx997_pos, $P10
-    ge rx997_pos, rx997_eos, rxscan1001_done
-  rxscan1001_scan:
-    set_addr $I10, rxscan1001_loop
-    rx997_cur."!mark_push"(0, rx997_pos, $I10)
-  rxscan1001_done:
+    set rx999_pos, $P10
+    ge rx999_pos, rx999_eos, rxscan1003_done
+  rxscan1003_scan:
+    set_addr $I10, rxscan1003_loop
+    rx999_cur."!mark_push"(0, rx999_pos, $I10)
+  rxscan1003_done:
 .annotate 'line', 469
   # rx literal  "["
-    add $I11, rx997_pos, 1
-    gt $I11, rx997_eos, rx997_fail
-    sub $I11, rx997_pos, rx997_off
-    substr $S10, rx997_tgt, $I11, 1
-    ne $S10, "[", rx997_fail
-    add rx997_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx997_cur."!cursor_pos"(rx997_pos)
-    $P10 = rx997_cur."ws"()
-    unless $P10, rx997_fail
-    rx997_pos = $P10."pos"()
+    add $I11, rx999_pos, 1
+    gt $I11, rx999_eos, rx999_fail
+    sub $I11, rx999_pos, rx999_off
+    substr $S10, rx999_tgt, $I11, 1
+    ne $S10, "[", rx999_fail
+    add rx999_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx999_cur."!cursor_pos"(rx999_pos)
+    $P10 = rx999_cur."ws"()
+    unless $P10, rx999_fail
+    rx999_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx997_cur."!cursor_pos"(rx997_pos)
-    $P10 = rx997_cur."EXPR"()
-    unless $P10, rx997_fail
-    rx997_cur."!mark_push"(0, -1, 0, $P10)
+    rx999_cur."!cursor_pos"(rx999_pos)
+    $P10 = rx999_cur."EXPR"()
+    unless $P10, rx999_fail
+    rx999_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx997_pos = $P10."pos"()
+    rx999_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx997_pos, 1
-    gt $I11, rx997_eos, rx997_fail
-    sub $I11, rx997_pos, rx997_off
-    substr $S10, rx997_tgt, $I11, 1
-    ne $S10, "]", rx997_fail
-    add rx997_pos, 1
+    add $I11, rx999_pos, 1
+    gt $I11, rx999_eos, rx999_fail
+    sub $I11, rx999_pos, rx999_off
+    substr $S10, rx999_tgt, $I11, 1
+    ne $S10, "]", rx999_fail
+    add rx999_pos, 1
 .annotate 'line', 470
   # rx subrule "O" subtype=capture negate=
-    rx997_cur."!cursor_pos"(rx997_pos)
-    $P10 = rx997_cur."O"("%methodop")
-    unless $P10, rx997_fail
-    rx997_cur."!mark_push"(0, -1, 0, $P10)
+    rx999_cur."!cursor_pos"(rx999_pos)
+    $P10 = rx999_cur."O"("%methodop")
+    unless $P10, rx999_fail
+    rx999_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx997_pos = $P10."pos"()
+    rx999_pos = $P10."pos"()
 .annotate 'line', 468
   # rx pass
-    rx997_cur."!cursor_pass"(rx997_pos, "postcircumfix:sym<[ ]>")
-    rx997_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<[ ]>", " at pos=", rx997_pos)
-    .return (rx997_cur)
-  rx997_fail:
+    rx999_cur."!cursor_pass"(rx999_pos, "postcircumfix:sym<[ ]>")
+    rx999_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<[ ]>", " at pos=", rx999_pos)
+    .return (rx999_cur)
+  rx999_fail:
 .annotate 'line', 446
-    (rx997_rep, rx997_pos, $I10, $P10) = rx997_cur."!mark_fail"(0)
-    lt rx997_pos, -1, rx997_done
-    eq rx997_pos, -1, rx997_fail
+    (rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0)
+    lt rx999_pos, -1, rx999_done
+    eq rx999_pos, -1, rx999_fail
     jump $I10
-  rx997_done:
-    rx997_cur."!cursor_fail"()
-    rx997_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<[ ]>")
-    .return (rx997_cur)
+  rx999_done:
+    rx999_cur."!cursor_fail"()
+    rx999_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<[ ]>")
+    .return (rx999_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("243_1275811487.95429") :method
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("243_1277356913.9538") :method
 .annotate 'line', 446
-    $P999 = self."!PREFIX__!subrule"("ws", "[")
-    new $P1000, "ResizablePMCArray"
-    push $P1000, $P999
-    .return ($P1000)
+    $P1001 = self."!PREFIX__!subrule"("ws", "[")
+    new $P1002, "ResizablePMCArray"
+    push $P1002, $P1001
+    .return ($P1002)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("244_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "postcircumfix:sym<{ }>"  :subid("244_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1003_tgt
-    .local int rx1003_pos
-    .local int rx1003_off
-    .local int rx1003_eos
-    .local int rx1003_rep
-    .local pmc rx1003_cur
-    (rx1003_cur, rx1003_pos, rx1003_tgt) = self."!cursor_start"()
-    rx1003_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx1003_cur
+    .local string rx1005_tgt
+    .local int rx1005_pos
+    .local int rx1005_off
+    .local int rx1005_eos
+    .local int rx1005_rep
+    .local pmc rx1005_cur
+    (rx1005_cur, rx1005_pos, rx1005_tgt) = self."!cursor_start"()
+    rx1005_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx1005_cur
     .local pmc match
     .lex "$/", match
-    length rx1003_eos, rx1003_tgt
-    gt rx1003_pos, rx1003_eos, rx1003_done
-    set rx1003_off, 0
-    lt rx1003_pos, 2, rx1003_start
-    sub rx1003_off, rx1003_pos, 1
-    substr rx1003_tgt, rx1003_tgt, rx1003_off
-  rx1003_start:
+    length rx1005_eos, rx1005_tgt
+    gt rx1005_pos, rx1005_eos, rx1005_done
+    set rx1005_off, 0
+    lt rx1005_pos, 2, rx1005_start
+    sub rx1005_off, rx1005_pos, 1
+    substr rx1005_tgt, rx1005_tgt, rx1005_off
+  rx1005_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1007_done
-    goto rxscan1007_scan
-  rxscan1007_loop:
-    ($P10) = rx1003_cur."from"()
+    ne $I10, -1, rxscan1009_done
+    goto rxscan1009_scan
+  rxscan1009_loop:
+    ($P10) = rx1005_cur."from"()
     inc $P10
-    set rx1003_pos, $P10
-    ge rx1003_pos, rx1003_eos, rxscan1007_done
-  rxscan1007_scan:
-    set_addr $I10, rxscan1007_loop
-    rx1003_cur."!mark_push"(0, rx1003_pos, $I10)
-  rxscan1007_done:
+    set rx1005_pos, $P10
+    ge rx1005_pos, rx1005_eos, rxscan1009_done
+  rxscan1009_scan:
+    set_addr $I10, rxscan1009_loop
+    rx1005_cur."!mark_push"(0, rx1005_pos, $I10)
+  rxscan1009_done:
 .annotate 'line', 474
   # rx literal  "{"
-    add $I11, rx1003_pos, 1
-    gt $I11, rx1003_eos, rx1003_fail
-    sub $I11, rx1003_pos, rx1003_off
-    substr $S10, rx1003_tgt, $I11, 1
-    ne $S10, "{", rx1003_fail
-    add rx1003_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx1003_cur."!cursor_pos"(rx1003_pos)
-    $P10 = rx1003_cur."ws"()
-    unless $P10, rx1003_fail
-    rx1003_pos = $P10."pos"()
+    add $I11, rx1005_pos, 1
+    gt $I11, rx1005_eos, rx1005_fail
+    sub $I11, rx1005_pos, rx1005_off
+    substr $S10, rx1005_tgt, $I11, 1
+    ne $S10, "{", rx1005_fail
+    add rx1005_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx1005_cur."!cursor_pos"(rx1005_pos)
+    $P10 = rx1005_cur."ws"()
+    unless $P10, rx1005_fail
+    rx1005_pos = $P10."pos"()
   # rx subrule "EXPR" subtype=capture negate=
-    rx1003_cur."!cursor_pos"(rx1003_pos)
-    $P10 = rx1003_cur."EXPR"()
-    unless $P10, rx1003_fail
-    rx1003_cur."!mark_push"(0, -1, 0, $P10)
+    rx1005_cur."!cursor_pos"(rx1005_pos)
+    $P10 = rx1005_cur."EXPR"()
+    unless $P10, rx1005_fail
+    rx1005_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx1003_pos = $P10."pos"()
+    rx1005_pos = $P10."pos"()
   # rx literal  "}"
-    add $I11, rx1003_pos, 1
-    gt $I11, rx1003_eos, rx1003_fail
-    sub $I11, rx1003_pos, rx1003_off
-    substr $S10, rx1003_tgt, $I11, 1
-    ne $S10, "}", rx1003_fail
-    add rx1003_pos, 1
+    add $I11, rx1005_pos, 1
+    gt $I11, rx1005_eos, rx1005_fail
+    sub $I11, rx1005_pos, rx1005_off
+    substr $S10, rx1005_tgt, $I11, 1
+    ne $S10, "}", rx1005_fail
+    add rx1005_pos, 1
 .annotate 'line', 475
   # rx subrule "O" subtype=capture negate=
-    rx1003_cur."!cursor_pos"(rx1003_pos)
-    $P10 = rx1003_cur."O"("%methodop")
-    unless $P10, rx1003_fail
-    rx1003_cur."!mark_push"(0, -1, 0, $P10)
+    rx1005_cur."!cursor_pos"(rx1005_pos)
+    $P10 = rx1005_cur."O"("%methodop")
+    unless $P10, rx1005_fail
+    rx1005_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1003_pos = $P10."pos"()
+    rx1005_pos = $P10."pos"()
 .annotate 'line', 473
   # rx pass
-    rx1003_cur."!cursor_pass"(rx1003_pos, "postcircumfix:sym<{ }>")
-    rx1003_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<{ }>", " at pos=", rx1003_pos)
-    .return (rx1003_cur)
-  rx1003_fail:
+    rx1005_cur."!cursor_pass"(rx1005_pos, "postcircumfix:sym<{ }>")
+    rx1005_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<{ }>", " at pos=", rx1005_pos)
+    .return (rx1005_cur)
+  rx1005_fail:
 .annotate 'line', 446
-    (rx1003_rep, rx1003_pos, $I10, $P10) = rx1003_cur."!mark_fail"(0)
-    lt rx1003_pos, -1, rx1003_done
-    eq rx1003_pos, -1, rx1003_fail
+    (rx1005_rep, rx1005_pos, $I10, $P10) = rx1005_cur."!mark_fail"(0)
+    lt rx1005_pos, -1, rx1005_done
+    eq rx1005_pos, -1, rx1005_fail
     jump $I10
-  rx1003_done:
-    rx1003_cur."!cursor_fail"()
-    rx1003_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<{ }>")
-    .return (rx1003_cur)
+  rx1005_done:
+    rx1005_cur."!cursor_fail"()
+    rx1005_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<{ }>")
+    .return (rx1005_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("245_1275811487.95429") :method
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("245_1277356913.9538") :method
 .annotate 'line', 446
-    $P1005 = self."!PREFIX__!subrule"("ws", "{")
-    new $P1006, "ResizablePMCArray"
-    push $P1006, $P1005
-    .return ($P1006)
+    $P1007 = self."!PREFIX__!subrule"("ws", "{")
+    new $P1008, "ResizablePMCArray"
+    push $P1008, $P1007
+    .return ($P1008)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("246_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "postcircumfix:sym<ang>"  :subid("246_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1009_tgt
-    .local int rx1009_pos
-    .local int rx1009_off
-    .local int rx1009_eos
-    .local int rx1009_rep
-    .local pmc rx1009_cur
-    (rx1009_cur, rx1009_pos, rx1009_tgt) = self."!cursor_start"()
-    rx1009_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
-    .lex unicode:"$\x{a2}", rx1009_cur
+    .local string rx1011_tgt
+    .local int rx1011_pos
+    .local int rx1011_off
+    .local int rx1011_eos
+    .local int rx1011_rep
+    .local pmc rx1011_cur
+    (rx1011_cur, rx1011_pos, rx1011_tgt) = self."!cursor_start"()
+    rx1011_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
+    .lex unicode:"$\x{a2}", rx1011_cur
     .local pmc match
     .lex "$/", match
-    length rx1009_eos, rx1009_tgt
-    gt rx1009_pos, rx1009_eos, rx1009_done
-    set rx1009_off, 0
-    lt rx1009_pos, 2, rx1009_start
-    sub rx1009_off, rx1009_pos, 1
-    substr rx1009_tgt, rx1009_tgt, rx1009_off
-  rx1009_start:
+    length rx1011_eos, rx1011_tgt
+    gt rx1011_pos, rx1011_eos, rx1011_done
+    set rx1011_off, 0
+    lt rx1011_pos, 2, rx1011_start
+    sub rx1011_off, rx1011_pos, 1
+    substr rx1011_tgt, rx1011_tgt, rx1011_off
+  rx1011_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1012_done
-    goto rxscan1012_scan
-  rxscan1012_loop:
-    ($P10) = rx1009_cur."from"()
+    ne $I10, -1, rxscan1014_done
+    goto rxscan1014_scan
+  rxscan1014_loop:
+    ($P10) = rx1011_cur."from"()
     inc $P10
-    set rx1009_pos, $P10
-    ge rx1009_pos, rx1009_eos, rxscan1012_done
-  rxscan1012_scan:
-    set_addr $I10, rxscan1012_loop
-    rx1009_cur."!mark_push"(0, rx1009_pos, $I10)
-  rxscan1012_done:
+    set rx1011_pos, $P10
+    ge rx1011_pos, rx1011_eos, rxscan1014_done
+  rxscan1014_scan:
+    set_addr $I10, rxscan1014_loop
+    rx1011_cur."!mark_push"(0, rx1011_pos, $I10)
+  rxscan1014_done:
 .annotate 'line', 479
   # rx enumcharlist negate=0 zerowidth
-    ge rx1009_pos, rx1009_eos, rx1009_fail
-    sub $I10, rx1009_pos, rx1009_off
-    substr $S10, rx1009_tgt, $I10, 1
+    ge rx1011_pos, rx1011_eos, rx1011_fail
+    sub $I10, rx1011_pos, rx1011_off
+    substr $S10, rx1011_tgt, $I10, 1
     index $I11, "<", $S10
-    lt $I11, 0, rx1009_fail
+    lt $I11, 0, rx1011_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx1009_cur."!cursor_pos"(rx1009_pos)
-    $P10 = rx1009_cur."quote_EXPR"(":q")
-    unless $P10, rx1009_fail
-    rx1009_cur."!mark_push"(0, -1, 0, $P10)
+    rx1011_cur."!cursor_pos"(rx1011_pos)
+    $P10 = rx1011_cur."quote_EXPR"(":q")
+    unless $P10, rx1011_fail
+    rx1011_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx1009_pos = $P10."pos"()
+    rx1011_pos = $P10."pos"()
 .annotate 'line', 480
   # rx subrule "O" subtype=capture negate=
-    rx1009_cur."!cursor_pos"(rx1009_pos)
-    $P10 = rx1009_cur."O"("%methodop")
-    unless $P10, rx1009_fail
-    rx1009_cur."!mark_push"(0, -1, 0, $P10)
+    rx1011_cur."!cursor_pos"(rx1011_pos)
+    $P10 = rx1011_cur."O"("%methodop")
+    unless $P10, rx1011_fail
+    rx1011_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1009_pos = $P10."pos"()
+    rx1011_pos = $P10."pos"()
 .annotate 'line', 478
   # rx pass
-    rx1009_cur."!cursor_pass"(rx1009_pos, "postcircumfix:sym<ang>")
-    rx1009_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<ang>", " at pos=", rx1009_pos)
-    .return (rx1009_cur)
-  rx1009_fail:
+    rx1011_cur."!cursor_pass"(rx1011_pos, "postcircumfix:sym<ang>")
+    rx1011_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<ang>", " at pos=", rx1011_pos)
+    .return (rx1011_cur)
+  rx1011_fail:
 .annotate 'line', 446
-    (rx1009_rep, rx1009_pos, $I10, $P10) = rx1009_cur."!mark_fail"(0)
-    lt rx1009_pos, -1, rx1009_done
-    eq rx1009_pos, -1, rx1009_fail
+    (rx1011_rep, rx1011_pos, $I10, $P10) = rx1011_cur."!mark_fail"(0)
+    lt rx1011_pos, -1, rx1011_done
+    eq rx1011_pos, -1, rx1011_fail
     jump $I10
-  rx1009_done:
-    rx1009_cur."!cursor_fail"()
-    rx1009_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<ang>")
-    .return (rx1009_cur)
+  rx1011_done:
+    rx1011_cur."!cursor_fail"()
+    rx1011_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<ang>")
+    .return (rx1011_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("247_1275811487.95429") :method
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("247_1277356913.9538") :method
 .annotate 'line', 446
-    new $P1011, "ResizablePMCArray"
-    push $P1011, "<"
-    .return ($P1011)
+    new $P1013, "ResizablePMCArray"
+    push $P1013, "<"
+    .return ($P1013)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("248_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "postcircumfix:sym<( )>"  :subid("248_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1014_tgt
-    .local int rx1014_pos
-    .local int rx1014_off
-    .local int rx1014_eos
-    .local int rx1014_rep
-    .local pmc rx1014_cur
-    (rx1014_cur, rx1014_pos, rx1014_tgt) = self."!cursor_start"()
-    rx1014_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
-    .lex unicode:"$\x{a2}", rx1014_cur
+    .local string rx1016_tgt
+    .local int rx1016_pos
+    .local int rx1016_off
+    .local int rx1016_eos
+    .local int rx1016_rep
+    .local pmc rx1016_cur
+    (rx1016_cur, rx1016_pos, rx1016_tgt) = self."!cursor_start"()
+    rx1016_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
+    .lex unicode:"$\x{a2}", rx1016_cur
     .local pmc match
     .lex "$/", match
-    length rx1014_eos, rx1014_tgt
-    gt rx1014_pos, rx1014_eos, rx1014_done
-    set rx1014_off, 0
-    lt rx1014_pos, 2, rx1014_start
-    sub rx1014_off, rx1014_pos, 1
-    substr rx1014_tgt, rx1014_tgt, rx1014_off
-  rx1014_start:
+    length rx1016_eos, rx1016_tgt
+    gt rx1016_pos, rx1016_eos, rx1016_done
+    set rx1016_off, 0
+    lt rx1016_pos, 2, rx1016_start
+    sub rx1016_off, rx1016_pos, 1
+    substr rx1016_tgt, rx1016_tgt, rx1016_off
+  rx1016_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1018_done
-    goto rxscan1018_scan
-  rxscan1018_loop:
-    ($P10) = rx1014_cur."from"()
+    ne $I10, -1, rxscan1020_done
+    goto rxscan1020_scan
+  rxscan1020_loop:
+    ($P10) = rx1016_cur."from"()
     inc $P10
-    set rx1014_pos, $P10
-    ge rx1014_pos, rx1014_eos, rxscan1018_done
-  rxscan1018_scan:
-    set_addr $I10, rxscan1018_loop
-    rx1014_cur."!mark_push"(0, rx1014_pos, $I10)
-  rxscan1018_done:
+    set rx1016_pos, $P10
+    ge rx1016_pos, rx1016_eos, rxscan1020_done
+  rxscan1020_scan:
+    set_addr $I10, rxscan1020_loop
+    rx1016_cur."!mark_push"(0, rx1016_pos, $I10)
+  rxscan1020_done:
 .annotate 'line', 484
   # rx literal  "("
-    add $I11, rx1014_pos, 1
-    gt $I11, rx1014_eos, rx1014_fail
-    sub $I11, rx1014_pos, rx1014_off
-    substr $S10, rx1014_tgt, $I11, 1
-    ne $S10, "(", rx1014_fail
-    add rx1014_pos, 1
-  # rx subrule "ws" subtype=method negate=
-    rx1014_cur."!cursor_pos"(rx1014_pos)
-    $P10 = rx1014_cur."ws"()
-    unless $P10, rx1014_fail
-    rx1014_pos = $P10."pos"()
+    add $I11, rx1016_pos, 1
+    gt $I11, rx1016_eos, rx1016_fail
+    sub $I11, rx1016_pos, rx1016_off
+    substr $S10, rx1016_tgt, $I11, 1
+    ne $S10, "(", rx1016_fail
+    add rx1016_pos, 1
+  # rx subrule "ws" subtype=method negate=
+    rx1016_cur."!cursor_pos"(rx1016_pos)
+    $P10 = rx1016_cur."ws"()
+    unless $P10, rx1016_fail
+    rx1016_pos = $P10."pos"()
   # rx subrule "arglist" subtype=capture negate=
-    rx1014_cur."!cursor_pos"(rx1014_pos)
-    $P10 = rx1014_cur."arglist"()
-    unless $P10, rx1014_fail
-    rx1014_cur."!mark_push"(0, -1, 0, $P10)
+    rx1016_cur."!cursor_pos"(rx1016_pos)
+    $P10 = rx1016_cur."arglist"()
+    unless $P10, rx1016_fail
+    rx1016_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx1014_pos = $P10."pos"()
+    rx1016_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx1014_pos, 1
-    gt $I11, rx1014_eos, rx1014_fail
-    sub $I11, rx1014_pos, rx1014_off
-    substr $S10, rx1014_tgt, $I11, 1
-    ne $S10, ")", rx1014_fail
-    add rx1014_pos, 1
+    add $I11, rx1016_pos, 1
+    gt $I11, rx1016_eos, rx1016_fail
+    sub $I11, rx1016_pos, rx1016_off
+    substr $S10, rx1016_tgt, $I11, 1
+    ne $S10, ")", rx1016_fail
+    add rx1016_pos, 1
 .annotate 'line', 485
   # rx subrule "O" subtype=capture negate=
-    rx1014_cur."!cursor_pos"(rx1014_pos)
-    $P10 = rx1014_cur."O"("%methodop")
-    unless $P10, rx1014_fail
-    rx1014_cur."!mark_push"(0, -1, 0, $P10)
+    rx1016_cur."!cursor_pos"(rx1016_pos)
+    $P10 = rx1016_cur."O"("%methodop")
+    unless $P10, rx1016_fail
+    rx1016_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1014_pos = $P10."pos"()
+    rx1016_pos = $P10."pos"()
 .annotate 'line', 483
   # rx pass
-    rx1014_cur."!cursor_pass"(rx1014_pos, "postcircumfix:sym<( )>")
-    rx1014_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<( )>", " at pos=", rx1014_pos)
-    .return (rx1014_cur)
-  rx1014_fail:
+    rx1016_cur."!cursor_pass"(rx1016_pos, "postcircumfix:sym<( )>")
+    rx1016_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<( )>", " at pos=", rx1016_pos)
+    .return (rx1016_cur)
+  rx1016_fail:
 .annotate 'line', 446
-    (rx1014_rep, rx1014_pos, $I10, $P10) = rx1014_cur."!mark_fail"(0)
-    lt rx1014_pos, -1, rx1014_done
-    eq rx1014_pos, -1, rx1014_fail
+    (rx1016_rep, rx1016_pos, $I10, $P10) = rx1016_cur."!mark_fail"(0)
+    lt rx1016_pos, -1, rx1016_done
+    eq rx1016_pos, -1, rx1016_fail
     jump $I10
-  rx1014_done:
-    rx1014_cur."!cursor_fail"()
-    rx1014_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<( )>")
-    .return (rx1014_cur)
+  rx1016_done:
+    rx1016_cur."!cursor_fail"()
+    rx1016_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<( )>")
+    .return (rx1016_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("249_1275811487.95429") :method
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("249_1277356913.9538") :method
 .annotate 'line', 446
-    $P1016 = self."!PREFIX__!subrule"("ws", "(")
-    new $P1017, "ResizablePMCArray"
-    push $P1017, $P1016
-    .return ($P1017)
+    $P1018 = self."!PREFIX__!subrule"("ws", "(")
+    new $P1019, "ResizablePMCArray"
+    push $P1019, $P1018
+    .return ($P1019)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("250_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "postfix:sym<.>"  :subid("250_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1020_tgt
-    .local int rx1020_pos
-    .local int rx1020_off
-    .local int rx1020_eos
-    .local int rx1020_rep
-    .local pmc rx1020_cur
-    (rx1020_cur, rx1020_pos, rx1020_tgt) = self."!cursor_start"()
-    rx1020_cur."!cursor_debug"("START ", "postfix:sym<.>")
-    .lex unicode:"$\x{a2}", rx1020_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1020_eos, rx1020_tgt
-    gt rx1020_pos, rx1020_eos, rx1020_done
-    set rx1020_off, 0
-    lt rx1020_pos, 2, rx1020_start
-    sub rx1020_off, rx1020_pos, 1
-    substr rx1020_tgt, rx1020_tgt, rx1020_off
-  rx1020_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1024_done
-    goto rxscan1024_scan
-  rxscan1024_loop:
-    ($P10) = rx1020_cur."from"()
-    inc $P10
-    set rx1020_pos, $P10
-    ge rx1020_pos, rx1020_eos, rxscan1024_done
-  rxscan1024_scan:
-    set_addr $I10, rxscan1024_loop
-    rx1020_cur."!mark_push"(0, rx1020_pos, $I10)
-  rxscan1024_done:
+    .local string rx1022_tgt
+    .local int rx1022_pos
+    .local int rx1022_off
+    .local int rx1022_eos
+    .local int rx1022_rep
+    .local pmc rx1022_cur
+    (rx1022_cur, rx1022_pos, rx1022_tgt) = self."!cursor_start"()
+    rx1022_cur."!cursor_debug"("START ", "postfix:sym<.>")
+    .lex unicode:"$\x{a2}", rx1022_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1022_eos, rx1022_tgt
+    gt rx1022_pos, rx1022_eos, rx1022_done
+    set rx1022_off, 0
+    lt rx1022_pos, 2, rx1022_start
+    sub rx1022_off, rx1022_pos, 1
+    substr rx1022_tgt, rx1022_tgt, rx1022_off
+  rx1022_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1026_done
+    goto rxscan1026_scan
+  rxscan1026_loop:
+    ($P10) = rx1022_cur."from"()
+    inc $P10
+    set rx1022_pos, $P10
+    ge rx1022_pos, rx1022_eos, rxscan1026_done
+  rxscan1026_scan:
+    set_addr $I10, rxscan1026_loop
+    rx1022_cur."!mark_push"(0, rx1022_pos, $I10)
+  rxscan1026_done:
 .annotate 'line', 488
   # rx subrule "dotty" subtype=capture negate=
-    rx1020_cur."!cursor_pos"(rx1020_pos)
-    $P10 = rx1020_cur."dotty"()
-    unless $P10, rx1020_fail
-    rx1020_cur."!mark_push"(0, -1, 0, $P10)
+    rx1022_cur."!cursor_pos"(rx1022_pos)
+    $P10 = rx1022_cur."dotty"()
+    unless $P10, rx1022_fail
+    rx1022_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("dotty")
-    rx1020_pos = $P10."pos"()
+    rx1022_pos = $P10."pos"()
   # rx subrule "O" subtype=capture negate=
-    rx1020_cur."!cursor_pos"(rx1020_pos)
-    $P10 = rx1020_cur."O"("%methodop")
-    unless $P10, rx1020_fail
-    rx1020_cur."!mark_push"(0, -1, 0, $P10)
+    rx1022_cur."!cursor_pos"(rx1022_pos)
+    $P10 = rx1022_cur."O"("%methodop")
+    unless $P10, rx1022_fail
+    rx1022_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1020_pos = $P10."pos"()
+    rx1022_pos = $P10."pos"()
   # rx pass
-    rx1020_cur."!cursor_pass"(rx1020_pos, "postfix:sym<.>")
-    rx1020_cur."!cursor_debug"("PASS  ", "postfix:sym<.>", " at pos=", rx1020_pos)
-    .return (rx1020_cur)
-  rx1020_fail:
+    rx1022_cur."!cursor_pass"(rx1022_pos, "postfix:sym<.>")
+    rx1022_cur."!cursor_debug"("PASS  ", "postfix:sym<.>", " at pos=", rx1022_pos)
+    .return (rx1022_cur)
+  rx1022_fail:
 .annotate 'line', 446
-    (rx1020_rep, rx1020_pos, $I10, $P10) = rx1020_cur."!mark_fail"(0)
-    lt rx1020_pos, -1, rx1020_done
-    eq rx1020_pos, -1, rx1020_fail
+    (rx1022_rep, rx1022_pos, $I10, $P10) = rx1022_cur."!mark_fail"(0)
+    lt rx1022_pos, -1, rx1022_done
+    eq rx1022_pos, -1, rx1022_fail
     jump $I10
-  rx1020_done:
-    rx1020_cur."!cursor_fail"()
-    rx1020_cur."!cursor_debug"("FAIL  ", "postfix:sym<.>")
-    .return (rx1020_cur)
+  rx1022_done:
+    rx1022_cur."!cursor_fail"()
+    rx1022_cur."!cursor_debug"("FAIL  ", "postfix:sym<.>")
+    .return (rx1022_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("251_1275811487.95429") :method
+.sub "!PREFIX__postfix:sym<.>"  :subid("251_1277356913.9538") :method
 .annotate 'line', 446
-    $P1022 = self."!PREFIX__!subrule"("dotty", "")
-    new $P1023, "ResizablePMCArray"
-    push $P1023, $P1022
-    .return ($P1023)
+    $P1024 = self."!PREFIX__!subrule"("dotty", "")
+    new $P1025, "ResizablePMCArray"
+    push $P1025, $P1024
+    .return ($P1025)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("252_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<++>"  :subid("252_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1026_tgt
-    .local int rx1026_pos
-    .local int rx1026_off
-    .local int rx1026_eos
-    .local int rx1026_rep
-    .local pmc rx1026_cur
-    (rx1026_cur, rx1026_pos, rx1026_tgt) = self."!cursor_start"()
-    rx1026_cur."!cursor_debug"("START ", "prefix:sym<++>")
-    .lex unicode:"$\x{a2}", rx1026_cur
+    .local string rx1028_tgt
+    .local int rx1028_pos
+    .local int rx1028_off
+    .local int rx1028_eos
+    .local int rx1028_rep
+    .local pmc rx1028_cur
+    (rx1028_cur, rx1028_pos, rx1028_tgt) = self."!cursor_start"()
+    rx1028_cur."!cursor_debug"("START ", "prefix:sym<++>")
+    .lex unicode:"$\x{a2}", rx1028_cur
     .local pmc match
     .lex "$/", match
-    length rx1026_eos, rx1026_tgt
-    gt rx1026_pos, rx1026_eos, rx1026_done
-    set rx1026_off, 0
-    lt rx1026_pos, 2, rx1026_start
-    sub rx1026_off, rx1026_pos, 1
-    substr rx1026_tgt, rx1026_tgt, rx1026_off
-  rx1026_start:
+    length rx1028_eos, rx1028_tgt
+    gt rx1028_pos, rx1028_eos, rx1028_done
+    set rx1028_off, 0
+    lt rx1028_pos, 2, rx1028_start
+    sub rx1028_off, rx1028_pos, 1
+    substr rx1028_tgt, rx1028_tgt, rx1028_off
+  rx1028_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1030_done
-    goto rxscan1030_scan
-  rxscan1030_loop:
-    ($P10) = rx1026_cur."from"()
+    ne $I10, -1, rxscan1032_done
+    goto rxscan1032_scan
+  rxscan1032_loop:
+    ($P10) = rx1028_cur."from"()
     inc $P10
-    set rx1026_pos, $P10
-    ge rx1026_pos, rx1026_eos, rxscan1030_done
-  rxscan1030_scan:
-    set_addr $I10, rxscan1030_loop
-    rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
-  rxscan1030_done:
+    set rx1028_pos, $P10
+    ge rx1028_pos, rx1028_eos, rxscan1032_done
+  rxscan1032_scan:
+    set_addr $I10, rxscan1032_loop
+    rx1028_cur."!mark_push"(0, rx1028_pos, $I10)
+  rxscan1032_done:
 .annotate 'line', 490
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1031_fail
-    rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
+    set_addr $I10, rxcap_1033_fail
+    rx1028_cur."!mark_push"(0, rx1028_pos, $I10)
   # rx literal  "++"
-    add $I11, rx1026_pos, 2
-    gt $I11, rx1026_eos, rx1026_fail
-    sub $I11, rx1026_pos, rx1026_off
-    substr $S10, rx1026_tgt, $I11, 2
-    ne $S10, "++", rx1026_fail
-    add rx1026_pos, 2
-    set_addr $I10, rxcap_1031_fail
-    ($I12, $I11) = rx1026_cur."!mark_peek"($I10)
-    rx1026_cur."!cursor_pos"($I11)
-    ($P10) = rx1026_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1026_pos, "")
-    rx1026_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1028_pos, 2
+    gt $I11, rx1028_eos, rx1028_fail
+    sub $I11, rx1028_pos, rx1028_off
+    substr $S10, rx1028_tgt, $I11, 2
+    ne $S10, "++", rx1028_fail
+    add rx1028_pos, 2
+    set_addr $I10, rxcap_1033_fail
+    ($I12, $I11) = rx1028_cur."!mark_peek"($I10)
+    rx1028_cur."!cursor_pos"($I11)
+    ($P10) = rx1028_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1028_pos, "")
+    rx1028_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1031_done
-  rxcap_1031_fail:
-    goto rx1026_fail
-  rxcap_1031_done:
+    goto rxcap_1033_done
+  rxcap_1033_fail:
+    goto rx1028_fail
+  rxcap_1033_done:
   # rx subrule "O" subtype=capture negate=
-    rx1026_cur."!cursor_pos"(rx1026_pos)
-    $P10 = rx1026_cur."O"("%autoincrement, :pirop<inc>")
-    unless $P10, rx1026_fail
-    rx1026_cur."!mark_push"(0, -1, 0, $P10)
+    rx1028_cur."!cursor_pos"(rx1028_pos)
+    $P10 = rx1028_cur."O"("%autoincrement, :pirop<inc>")
+    unless $P10, rx1028_fail
+    rx1028_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1026_pos = $P10."pos"()
+    rx1028_pos = $P10."pos"()
   # rx pass
-    rx1026_cur."!cursor_pass"(rx1026_pos, "prefix:sym<++>")
-    rx1026_cur."!cursor_debug"("PASS  ", "prefix:sym<++>", " at pos=", rx1026_pos)
-    .return (rx1026_cur)
-  rx1026_fail:
+    rx1028_cur."!cursor_pass"(rx1028_pos, "prefix:sym<++>")
+    rx1028_cur."!cursor_debug"("PASS  ", "prefix:sym<++>", " at pos=", rx1028_pos)
+    .return (rx1028_cur)
+  rx1028_fail:
 .annotate 'line', 446
-    (rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0)
-    lt rx1026_pos, -1, rx1026_done
-    eq rx1026_pos, -1, rx1026_fail
+    (rx1028_rep, rx1028_pos, $I10, $P10) = rx1028_cur."!mark_fail"(0)
+    lt rx1028_pos, -1, rx1028_done
+    eq rx1028_pos, -1, rx1028_fail
     jump $I10
-  rx1026_done:
-    rx1026_cur."!cursor_fail"()
-    rx1026_cur."!cursor_debug"("FAIL  ", "prefix:sym<++>")
-    .return (rx1026_cur)
+  rx1028_done:
+    rx1028_cur."!cursor_fail"()
+    rx1028_cur."!cursor_debug"("FAIL  ", "prefix:sym<++>")
+    .return (rx1028_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("253_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<++>"  :subid("253_1277356913.9538") :method
 .annotate 'line', 446
-    $P1028 = self."!PREFIX__!subrule"("O", "++")
-    new $P1029, "ResizablePMCArray"
-    push $P1029, $P1028
-    .return ($P1029)
+    $P1030 = self."!PREFIX__!subrule"("O", "++")
+    new $P1031, "ResizablePMCArray"
+    push $P1031, $P1030
+    .return ($P1031)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("254_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<-->"  :subid("254_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1033_tgt
-    .local int rx1033_pos
-    .local int rx1033_off
-    .local int rx1033_eos
-    .local int rx1033_rep
-    .local pmc rx1033_cur
-    (rx1033_cur, rx1033_pos, rx1033_tgt) = self."!cursor_start"()
-    rx1033_cur."!cursor_debug"("START ", "prefix:sym<-->")
-    .lex unicode:"$\x{a2}", rx1033_cur
+    .local string rx1035_tgt
+    .local int rx1035_pos
+    .local int rx1035_off
+    .local int rx1035_eos
+    .local int rx1035_rep
+    .local pmc rx1035_cur
+    (rx1035_cur, rx1035_pos, rx1035_tgt) = self."!cursor_start"()
+    rx1035_cur."!cursor_debug"("START ", "prefix:sym<-->")
+    .lex unicode:"$\x{a2}", rx1035_cur
     .local pmc match
     .lex "$/", match
-    length rx1033_eos, rx1033_tgt
-    gt rx1033_pos, rx1033_eos, rx1033_done
-    set rx1033_off, 0
-    lt rx1033_pos, 2, rx1033_start
-    sub rx1033_off, rx1033_pos, 1
-    substr rx1033_tgt, rx1033_tgt, rx1033_off
-  rx1033_start:
+    length rx1035_eos, rx1035_tgt
+    gt rx1035_pos, rx1035_eos, rx1035_done
+    set rx1035_off, 0
+    lt rx1035_pos, 2, rx1035_start
+    sub rx1035_off, rx1035_pos, 1
+    substr rx1035_tgt, rx1035_tgt, rx1035_off
+  rx1035_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1037_done
-    goto rxscan1037_scan
-  rxscan1037_loop:
-    ($P10) = rx1033_cur."from"()
+    ne $I10, -1, rxscan1039_done
+    goto rxscan1039_scan
+  rxscan1039_loop:
+    ($P10) = rx1035_cur."from"()
     inc $P10
-    set rx1033_pos, $P10
-    ge rx1033_pos, rx1033_eos, rxscan1037_done
-  rxscan1037_scan:
-    set_addr $I10, rxscan1037_loop
-    rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
-  rxscan1037_done:
+    set rx1035_pos, $P10
+    ge rx1035_pos, rx1035_eos, rxscan1039_done
+  rxscan1039_scan:
+    set_addr $I10, rxscan1039_loop
+    rx1035_cur."!mark_push"(0, rx1035_pos, $I10)
+  rxscan1039_done:
 .annotate 'line', 491
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1038_fail
-    rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
+    set_addr $I10, rxcap_1040_fail
+    rx1035_cur."!mark_push"(0, rx1035_pos, $I10)
   # rx literal  "--"
-    add $I11, rx1033_pos, 2
-    gt $I11, rx1033_eos, rx1033_fail
-    sub $I11, rx1033_pos, rx1033_off
-    substr $S10, rx1033_tgt, $I11, 2
-    ne $S10, "--", rx1033_fail
-    add rx1033_pos, 2
-    set_addr $I10, rxcap_1038_fail
-    ($I12, $I11) = rx1033_cur."!mark_peek"($I10)
-    rx1033_cur."!cursor_pos"($I11)
-    ($P10) = rx1033_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1033_pos, "")
-    rx1033_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1035_pos, 2
+    gt $I11, rx1035_eos, rx1035_fail
+    sub $I11, rx1035_pos, rx1035_off
+    substr $S10, rx1035_tgt, $I11, 2
+    ne $S10, "--", rx1035_fail
+    add rx1035_pos, 2
+    set_addr $I10, rxcap_1040_fail
+    ($I12, $I11) = rx1035_cur."!mark_peek"($I10)
+    rx1035_cur."!cursor_pos"($I11)
+    ($P10) = rx1035_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1035_pos, "")
+    rx1035_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1038_done
-  rxcap_1038_fail:
-    goto rx1033_fail
-  rxcap_1038_done:
+    goto rxcap_1040_done
+  rxcap_1040_fail:
+    goto rx1035_fail
+  rxcap_1040_done:
   # rx subrule "O" subtype=capture negate=
-    rx1033_cur."!cursor_pos"(rx1033_pos)
-    $P10 = rx1033_cur."O"("%autoincrement, :pirop<dec>")
-    unless $P10, rx1033_fail
-    rx1033_cur."!mark_push"(0, -1, 0, $P10)
+    rx1035_cur."!cursor_pos"(rx1035_pos)
+    $P10 = rx1035_cur."O"("%autoincrement, :pirop<dec>")
+    unless $P10, rx1035_fail
+    rx1035_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1033_pos = $P10."pos"()
+    rx1035_pos = $P10."pos"()
   # rx pass
-    rx1033_cur."!cursor_pass"(rx1033_pos, "prefix:sym<-->")
-    rx1033_cur."!cursor_debug"("PASS  ", "prefix:sym<-->", " at pos=", rx1033_pos)
-    .return (rx1033_cur)
-  rx1033_fail:
+    rx1035_cur."!cursor_pass"(rx1035_pos, "prefix:sym<-->")
+    rx1035_cur."!cursor_debug"("PASS  ", "prefix:sym<-->", " at pos=", rx1035_pos)
+    .return (rx1035_cur)
+  rx1035_fail:
 .annotate 'line', 446
-    (rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0)
-    lt rx1033_pos, -1, rx1033_done
-    eq rx1033_pos, -1, rx1033_fail
+    (rx1035_rep, rx1035_pos, $I10, $P10) = rx1035_cur."!mark_fail"(0)
+    lt rx1035_pos, -1, rx1035_done
+    eq rx1035_pos, -1, rx1035_fail
     jump $I10
-  rx1033_done:
-    rx1033_cur."!cursor_fail"()
-    rx1033_cur."!cursor_debug"("FAIL  ", "prefix:sym<-->")
-    .return (rx1033_cur)
+  rx1035_done:
+    rx1035_cur."!cursor_fail"()
+    rx1035_cur."!cursor_debug"("FAIL  ", "prefix:sym<-->")
+    .return (rx1035_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("255_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<-->"  :subid("255_1277356913.9538") :method
 .annotate 'line', 446
-    $P1035 = self."!PREFIX__!subrule"("O", "--")
-    new $P1036, "ResizablePMCArray"
-    push $P1036, $P1035
-    .return ($P1036)
+    $P1037 = self."!PREFIX__!subrule"("O", "--")
+    new $P1038, "ResizablePMCArray"
+    push $P1038, $P1037
+    .return ($P1038)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("256_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "postfix:sym<++>"  :subid("256_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1040_tgt
-    .local int rx1040_pos
-    .local int rx1040_off
-    .local int rx1040_eos
-    .local int rx1040_rep
-    .local pmc rx1040_cur
-    (rx1040_cur, rx1040_pos, rx1040_tgt) = self."!cursor_start"()
-    rx1040_cur."!cursor_debug"("START ", "postfix:sym<++>")
-    .lex unicode:"$\x{a2}", rx1040_cur
+    .local string rx1042_tgt
+    .local int rx1042_pos
+    .local int rx1042_off
+    .local int rx1042_eos
+    .local int rx1042_rep
+    .local pmc rx1042_cur
+    (rx1042_cur, rx1042_pos, rx1042_tgt) = self."!cursor_start"()
+    rx1042_cur."!cursor_debug"("START ", "postfix:sym<++>")
+    .lex unicode:"$\x{a2}", rx1042_cur
     .local pmc match
     .lex "$/", match
-    length rx1040_eos, rx1040_tgt
-    gt rx1040_pos, rx1040_eos, rx1040_done
-    set rx1040_off, 0
-    lt rx1040_pos, 2, rx1040_start
-    sub rx1040_off, rx1040_pos, 1
-    substr rx1040_tgt, rx1040_tgt, rx1040_off
-  rx1040_start:
+    length rx1042_eos, rx1042_tgt
+    gt rx1042_pos, rx1042_eos, rx1042_done
+    set rx1042_off, 0
+    lt rx1042_pos, 2, rx1042_start
+    sub rx1042_off, rx1042_pos, 1
+    substr rx1042_tgt, rx1042_tgt, rx1042_off
+  rx1042_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1044_done
-    goto rxscan1044_scan
-  rxscan1044_loop:
-    ($P10) = rx1040_cur."from"()
+    ne $I10, -1, rxscan1046_done
+    goto rxscan1046_scan
+  rxscan1046_loop:
+    ($P10) = rx1042_cur."from"()
     inc $P10
-    set rx1040_pos, $P10
-    ge rx1040_pos, rx1040_eos, rxscan1044_done
-  rxscan1044_scan:
-    set_addr $I10, rxscan1044_loop
-    rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
-  rxscan1044_done:
+    set rx1042_pos, $P10
+    ge rx1042_pos, rx1042_eos, rxscan1046_done
+  rxscan1046_scan:
+    set_addr $I10, rxscan1046_loop
+    rx1042_cur."!mark_push"(0, rx1042_pos, $I10)
+  rxscan1046_done:
 .annotate 'line', 494
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1045_fail
-    rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
+    set_addr $I10, rxcap_1047_fail
+    rx1042_cur."!mark_push"(0, rx1042_pos, $I10)
   # rx literal  "++"
-    add $I11, rx1040_pos, 2
-    gt $I11, rx1040_eos, rx1040_fail
-    sub $I11, rx1040_pos, rx1040_off
-    substr $S10, rx1040_tgt, $I11, 2
-    ne $S10, "++", rx1040_fail
-    add rx1040_pos, 2
-    set_addr $I10, rxcap_1045_fail
-    ($I12, $I11) = rx1040_cur."!mark_peek"($I10)
-    rx1040_cur."!cursor_pos"($I11)
-    ($P10) = rx1040_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1040_pos, "")
-    rx1040_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1042_pos, 2
+    gt $I11, rx1042_eos, rx1042_fail
+    sub $I11, rx1042_pos, rx1042_off
+    substr $S10, rx1042_tgt, $I11, 2
+    ne $S10, "++", rx1042_fail
+    add rx1042_pos, 2
+    set_addr $I10, rxcap_1047_fail
+    ($I12, $I11) = rx1042_cur."!mark_peek"($I10)
+    rx1042_cur."!cursor_pos"($I11)
+    ($P10) = rx1042_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1042_pos, "")
+    rx1042_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1045_done
-  rxcap_1045_fail:
-    goto rx1040_fail
-  rxcap_1045_done:
+    goto rxcap_1047_done
+  rxcap_1047_fail:
+    goto rx1042_fail
+  rxcap_1047_done:
   # rx subrule "O" subtype=capture negate=
-    rx1040_cur."!cursor_pos"(rx1040_pos)
-    $P10 = rx1040_cur."O"("%autoincrement")
-    unless $P10, rx1040_fail
-    rx1040_cur."!mark_push"(0, -1, 0, $P10)
+    rx1042_cur."!cursor_pos"(rx1042_pos)
+    $P10 = rx1042_cur."O"("%autoincrement")
+    unless $P10, rx1042_fail
+    rx1042_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1040_pos = $P10."pos"()
+    rx1042_pos = $P10."pos"()
   # rx pass
-    rx1040_cur."!cursor_pass"(rx1040_pos, "postfix:sym<++>")
-    rx1040_cur."!cursor_debug"("PASS  ", "postfix:sym<++>", " at pos=", rx1040_pos)
-    .return (rx1040_cur)
-  rx1040_fail:
+    rx1042_cur."!cursor_pass"(rx1042_pos, "postfix:sym<++>")
+    rx1042_cur."!cursor_debug"("PASS  ", "postfix:sym<++>", " at pos=", rx1042_pos)
+    .return (rx1042_cur)
+  rx1042_fail:
 .annotate 'line', 446
-    (rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0)
-    lt rx1040_pos, -1, rx1040_done
-    eq rx1040_pos, -1, rx1040_fail
+    (rx1042_rep, rx1042_pos, $I10, $P10) = rx1042_cur."!mark_fail"(0)
+    lt rx1042_pos, -1, rx1042_done
+    eq rx1042_pos, -1, rx1042_fail
     jump $I10
-  rx1040_done:
-    rx1040_cur."!cursor_fail"()
-    rx1040_cur."!cursor_debug"("FAIL  ", "postfix:sym<++>")
-    .return (rx1040_cur)
+  rx1042_done:
+    rx1042_cur."!cursor_fail"()
+    rx1042_cur."!cursor_debug"("FAIL  ", "postfix:sym<++>")
+    .return (rx1042_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("257_1275811487.95429") :method
+.sub "!PREFIX__postfix:sym<++>"  :subid("257_1277356913.9538") :method
 .annotate 'line', 446
-    $P1042 = self."!PREFIX__!subrule"("O", "++")
-    new $P1043, "ResizablePMCArray"
-    push $P1043, $P1042
-    .return ($P1043)
+    $P1044 = self."!PREFIX__!subrule"("O", "++")
+    new $P1045, "ResizablePMCArray"
+    push $P1045, $P1044
+    .return ($P1045)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("258_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "postfix:sym<-->"  :subid("258_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1047_tgt
-    .local int rx1047_pos
-    .local int rx1047_off
-    .local int rx1047_eos
-    .local int rx1047_rep
-    .local pmc rx1047_cur
-    (rx1047_cur, rx1047_pos, rx1047_tgt) = self."!cursor_start"()
-    rx1047_cur."!cursor_debug"("START ", "postfix:sym<-->")
-    .lex unicode:"$\x{a2}", rx1047_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1047_eos, rx1047_tgt
-    gt rx1047_pos, rx1047_eos, rx1047_done
-    set rx1047_off, 0
-    lt rx1047_pos, 2, rx1047_start
-    sub rx1047_off, rx1047_pos, 1
-    substr rx1047_tgt, rx1047_tgt, rx1047_off
-  rx1047_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1051_done
-    goto rxscan1051_scan
-  rxscan1051_loop:
-    ($P10) = rx1047_cur."from"()
-    inc $P10
-    set rx1047_pos, $P10
-    ge rx1047_pos, rx1047_eos, rxscan1051_done
-  rxscan1051_scan:
-    set_addr $I10, rxscan1051_loop
-    rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
-  rxscan1051_done:
+    .local string rx1049_tgt
+    .local int rx1049_pos
+    .local int rx1049_off
+    .local int rx1049_eos
+    .local int rx1049_rep
+    .local pmc rx1049_cur
+    (rx1049_cur, rx1049_pos, rx1049_tgt) = self."!cursor_start"()
+    rx1049_cur."!cursor_debug"("START ", "postfix:sym<-->")
+    .lex unicode:"$\x{a2}", rx1049_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1049_eos, rx1049_tgt
+    gt rx1049_pos, rx1049_eos, rx1049_done
+    set rx1049_off, 0
+    lt rx1049_pos, 2, rx1049_start
+    sub rx1049_off, rx1049_pos, 1
+    substr rx1049_tgt, rx1049_tgt, rx1049_off
+  rx1049_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1053_done
+    goto rxscan1053_scan
+  rxscan1053_loop:
+    ($P10) = rx1049_cur."from"()
+    inc $P10
+    set rx1049_pos, $P10
+    ge rx1049_pos, rx1049_eos, rxscan1053_done
+  rxscan1053_scan:
+    set_addr $I10, rxscan1053_loop
+    rx1049_cur."!mark_push"(0, rx1049_pos, $I10)
+  rxscan1053_done:
 .annotate 'line', 495
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1052_fail
-    rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
+    set_addr $I10, rxcap_1054_fail
+    rx1049_cur."!mark_push"(0, rx1049_pos, $I10)
   # rx literal  "--"
-    add $I11, rx1047_pos, 2
-    gt $I11, rx1047_eos, rx1047_fail
-    sub $I11, rx1047_pos, rx1047_off
-    substr $S10, rx1047_tgt, $I11, 2
-    ne $S10, "--", rx1047_fail
-    add rx1047_pos, 2
-    set_addr $I10, rxcap_1052_fail
-    ($I12, $I11) = rx1047_cur."!mark_peek"($I10)
-    rx1047_cur."!cursor_pos"($I11)
-    ($P10) = rx1047_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1047_pos, "")
-    rx1047_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1049_pos, 2
+    gt $I11, rx1049_eos, rx1049_fail
+    sub $I11, rx1049_pos, rx1049_off
+    substr $S10, rx1049_tgt, $I11, 2
+    ne $S10, "--", rx1049_fail
+    add rx1049_pos, 2
+    set_addr $I10, rxcap_1054_fail
+    ($I12, $I11) = rx1049_cur."!mark_peek"($I10)
+    rx1049_cur."!cursor_pos"($I11)
+    ($P10) = rx1049_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1049_pos, "")
+    rx1049_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1052_done
-  rxcap_1052_fail:
-    goto rx1047_fail
-  rxcap_1052_done:
+    goto rxcap_1054_done
+  rxcap_1054_fail:
+    goto rx1049_fail
+  rxcap_1054_done:
   # rx subrule "O" subtype=capture negate=
-    rx1047_cur."!cursor_pos"(rx1047_pos)
-    $P10 = rx1047_cur."O"("%autoincrement")
-    unless $P10, rx1047_fail
-    rx1047_cur."!mark_push"(0, -1, 0, $P10)
+    rx1049_cur."!cursor_pos"(rx1049_pos)
+    $P10 = rx1049_cur."O"("%autoincrement")
+    unless $P10, rx1049_fail
+    rx1049_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1047_pos = $P10."pos"()
+    rx1049_pos = $P10."pos"()
   # rx pass
-    rx1047_cur."!cursor_pass"(rx1047_pos, "postfix:sym<-->")
-    rx1047_cur."!cursor_debug"("PASS  ", "postfix:sym<-->", " at pos=", rx1047_pos)
-    .return (rx1047_cur)
-  rx1047_fail:
+    rx1049_cur."!cursor_pass"(rx1049_pos, "postfix:sym<-->")
+    rx1049_cur."!cursor_debug"("PASS  ", "postfix:sym<-->", " at pos=", rx1049_pos)
+    .return (rx1049_cur)
+  rx1049_fail:
 .annotate 'line', 446
-    (rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0)
-    lt rx1047_pos, -1, rx1047_done
-    eq rx1047_pos, -1, rx1047_fail
+    (rx1049_rep, rx1049_pos, $I10, $P10) = rx1049_cur."!mark_fail"(0)
+    lt rx1049_pos, -1, rx1049_done
+    eq rx1049_pos, -1, rx1049_fail
     jump $I10
-  rx1047_done:
-    rx1047_cur."!cursor_fail"()
-    rx1047_cur."!cursor_debug"("FAIL  ", "postfix:sym<-->")
-    .return (rx1047_cur)
+  rx1049_done:
+    rx1049_cur."!cursor_fail"()
+    rx1049_cur."!cursor_debug"("FAIL  ", "postfix:sym<-->")
+    .return (rx1049_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("259_1275811487.95429") :method
+.sub "!PREFIX__postfix:sym<-->"  :subid("259_1277356913.9538") :method
 .annotate 'line', 446
-    $P1049 = self."!PREFIX__!subrule"("O", "--")
-    new $P1050, "ResizablePMCArray"
-    push $P1050, $P1049
-    .return ($P1050)
+    $P1051 = self."!PREFIX__!subrule"("O", "--")
+    new $P1052, "ResizablePMCArray"
+    push $P1052, $P1051
+    .return ($P1052)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("260_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<**>"  :subid("260_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1054_tgt
-    .local int rx1054_pos
-    .local int rx1054_off
-    .local int rx1054_eos
-    .local int rx1054_rep
-    .local pmc rx1054_cur
-    (rx1054_cur, rx1054_pos, rx1054_tgt) = self."!cursor_start"()
-    rx1054_cur."!cursor_debug"("START ", "infix:sym<**>")
-    .lex unicode:"$\x{a2}", rx1054_cur
+    .local string rx1056_tgt
+    .local int rx1056_pos
+    .local int rx1056_off
+    .local int rx1056_eos
+    .local int rx1056_rep
+    .local pmc rx1056_cur
+    (rx1056_cur, rx1056_pos, rx1056_tgt) = self."!cursor_start"()
+    rx1056_cur."!cursor_debug"("START ", "infix:sym<**>")
+    .lex unicode:"$\x{a2}", rx1056_cur
     .local pmc match
     .lex "$/", match
-    length rx1054_eos, rx1054_tgt
-    gt rx1054_pos, rx1054_eos, rx1054_done
-    set rx1054_off, 0
-    lt rx1054_pos, 2, rx1054_start
-    sub rx1054_off, rx1054_pos, 1
-    substr rx1054_tgt, rx1054_tgt, rx1054_off
-  rx1054_start:
+    length rx1056_eos, rx1056_tgt
+    gt rx1056_pos, rx1056_eos, rx1056_done
+    set rx1056_off, 0
+    lt rx1056_pos, 2, rx1056_start
+    sub rx1056_off, rx1056_pos, 1
+    substr rx1056_tgt, rx1056_tgt, rx1056_off
+  rx1056_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1058_done
-    goto rxscan1058_scan
-  rxscan1058_loop:
-    ($P10) = rx1054_cur."from"()
+    ne $I10, -1, rxscan1060_done
+    goto rxscan1060_scan
+  rxscan1060_loop:
+    ($P10) = rx1056_cur."from"()
     inc $P10
-    set rx1054_pos, $P10
-    ge rx1054_pos, rx1054_eos, rxscan1058_done
-  rxscan1058_scan:
-    set_addr $I10, rxscan1058_loop
-    rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
-  rxscan1058_done:
+    set rx1056_pos, $P10
+    ge rx1056_pos, rx1056_eos, rxscan1060_done
+  rxscan1060_scan:
+    set_addr $I10, rxscan1060_loop
+    rx1056_cur."!mark_push"(0, rx1056_pos, $I10)
+  rxscan1060_done:
 .annotate 'line', 497
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1059_fail
-    rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
+    set_addr $I10, rxcap_1061_fail
+    rx1056_cur."!mark_push"(0, rx1056_pos, $I10)
   # rx literal  "**"
-    add $I11, rx1054_pos, 2
-    gt $I11, rx1054_eos, rx1054_fail
-    sub $I11, rx1054_pos, rx1054_off
-    substr $S10, rx1054_tgt, $I11, 2
-    ne $S10, "**", rx1054_fail
-    add rx1054_pos, 2
-    set_addr $I10, rxcap_1059_fail
-    ($I12, $I11) = rx1054_cur."!mark_peek"($I10)
-    rx1054_cur."!cursor_pos"($I11)
-    ($P10) = rx1054_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1054_pos, "")
-    rx1054_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1056_pos, 2
+    gt $I11, rx1056_eos, rx1056_fail
+    sub $I11, rx1056_pos, rx1056_off
+    substr $S10, rx1056_tgt, $I11, 2
+    ne $S10, "**", rx1056_fail
+    add rx1056_pos, 2
+    set_addr $I10, rxcap_1061_fail
+    ($I12, $I11) = rx1056_cur."!mark_peek"($I10)
+    rx1056_cur."!cursor_pos"($I11)
+    ($P10) = rx1056_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1056_pos, "")
+    rx1056_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1059_done
-  rxcap_1059_fail:
-    goto rx1054_fail
-  rxcap_1059_done:
+    goto rxcap_1061_done
+  rxcap_1061_fail:
+    goto rx1056_fail
+  rxcap_1061_done:
   # rx subrule "O" subtype=capture negate=
-    rx1054_cur."!cursor_pos"(rx1054_pos)
-    $P10 = rx1054_cur."O"("%exponentiation, :pirop<pow>")
-    unless $P10, rx1054_fail
-    rx1054_cur."!mark_push"(0, -1, 0, $P10)
+    rx1056_cur."!cursor_pos"(rx1056_pos)
+    $P10 = rx1056_cur."O"("%exponentiation, :pirop<pow>")
+    unless $P10, rx1056_fail
+    rx1056_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1054_pos = $P10."pos"()
+    rx1056_pos = $P10."pos"()
   # rx pass
-    rx1054_cur."!cursor_pass"(rx1054_pos, "infix:sym<**>")
-    rx1054_cur."!cursor_debug"("PASS  ", "infix:sym<**>", " at pos=", rx1054_pos)
-    .return (rx1054_cur)
-  rx1054_fail:
+    rx1056_cur."!cursor_pass"(rx1056_pos, "infix:sym<**>")
+    rx1056_cur."!cursor_debug"("PASS  ", "infix:sym<**>", " at pos=", rx1056_pos)
+    .return (rx1056_cur)
+  rx1056_fail:
 .annotate 'line', 446
-    (rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0)
-    lt rx1054_pos, -1, rx1054_done
-    eq rx1054_pos, -1, rx1054_fail
+    (rx1056_rep, rx1056_pos, $I10, $P10) = rx1056_cur."!mark_fail"(0)
+    lt rx1056_pos, -1, rx1056_done
+    eq rx1056_pos, -1, rx1056_fail
     jump $I10
-  rx1054_done:
-    rx1054_cur."!cursor_fail"()
-    rx1054_cur."!cursor_debug"("FAIL  ", "infix:sym<**>")
-    .return (rx1054_cur)
+  rx1056_done:
+    rx1056_cur."!cursor_fail"()
+    rx1056_cur."!cursor_debug"("FAIL  ", "infix:sym<**>")
+    .return (rx1056_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("261_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<**>"  :subid("261_1277356913.9538") :method
 .annotate 'line', 446
-    $P1056 = self."!PREFIX__!subrule"("O", "**")
-    new $P1057, "ResizablePMCArray"
-    push $P1057, $P1056
-    .return ($P1057)
+    $P1058 = self."!PREFIX__!subrule"("O", "**")
+    new $P1059, "ResizablePMCArray"
+    push $P1059, $P1058
+    .return ($P1059)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("262_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<+>"  :subid("262_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1061_tgt
-    .local int rx1061_pos
-    .local int rx1061_off
-    .local int rx1061_eos
-    .local int rx1061_rep
-    .local pmc rx1061_cur
-    (rx1061_cur, rx1061_pos, rx1061_tgt) = self."!cursor_start"()
-    rx1061_cur."!cursor_debug"("START ", "prefix:sym<+>")
-    .lex unicode:"$\x{a2}", rx1061_cur
+    .local string rx1063_tgt
+    .local int rx1063_pos
+    .local int rx1063_off
+    .local int rx1063_eos
+    .local int rx1063_rep
+    .local pmc rx1063_cur
+    (rx1063_cur, rx1063_pos, rx1063_tgt) = self."!cursor_start"()
+    rx1063_cur."!cursor_debug"("START ", "prefix:sym<+>")
+    .lex unicode:"$\x{a2}", rx1063_cur
     .local pmc match
     .lex "$/", match
-    length rx1061_eos, rx1061_tgt
-    gt rx1061_pos, rx1061_eos, rx1061_done
-    set rx1061_off, 0
-    lt rx1061_pos, 2, rx1061_start
-    sub rx1061_off, rx1061_pos, 1
-    substr rx1061_tgt, rx1061_tgt, rx1061_off
-  rx1061_start:
+    length rx1063_eos, rx1063_tgt
+    gt rx1063_pos, rx1063_eos, rx1063_done
+    set rx1063_off, 0
+    lt rx1063_pos, 2, rx1063_start
+    sub rx1063_off, rx1063_pos, 1
+    substr rx1063_tgt, rx1063_tgt, rx1063_off
+  rx1063_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1065_done
-    goto rxscan1065_scan
-  rxscan1065_loop:
-    ($P10) = rx1061_cur."from"()
+    ne $I10, -1, rxscan1067_done
+    goto rxscan1067_scan
+  rxscan1067_loop:
+    ($P10) = rx1063_cur."from"()
     inc $P10
-    set rx1061_pos, $P10
-    ge rx1061_pos, rx1061_eos, rxscan1065_done
-  rxscan1065_scan:
-    set_addr $I10, rxscan1065_loop
-    rx1061_cur."!mark_push"(0, rx1061_pos, $I10)
-  rxscan1065_done:
+    set rx1063_pos, $P10
+    ge rx1063_pos, rx1063_eos, rxscan1067_done
+  rxscan1067_scan:
+    set_addr $I10, rxscan1067_loop
+    rx1063_cur."!mark_push"(0, rx1063_pos, $I10)
+  rxscan1067_done:
 .annotate 'line', 499
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1066_fail
-    rx1061_cur."!mark_push"(0, rx1061_pos, $I10)
+    set_addr $I10, rxcap_1068_fail
+    rx1063_cur."!mark_push"(0, rx1063_pos, $I10)
   # rx literal  "+"
-    add $I11, rx1061_pos, 1
-    gt $I11, rx1061_eos, rx1061_fail
-    sub $I11, rx1061_pos, rx1061_off
-    substr $S10, rx1061_tgt, $I11, 1
-    ne $S10, "+", rx1061_fail
-    add rx1061_pos, 1
-    set_addr $I10, rxcap_1066_fail
-    ($I12, $I11) = rx1061_cur."!mark_peek"($I10)
-    rx1061_cur."!cursor_pos"($I11)
-    ($P10) = rx1061_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1061_pos, "")
-    rx1061_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1063_pos, 1
+    gt $I11, rx1063_eos, rx1063_fail
+    sub $I11, rx1063_pos, rx1063_off
+    substr $S10, rx1063_tgt, $I11, 1
+    ne $S10, "+", rx1063_fail
+    add rx1063_pos, 1
+    set_addr $I10, rxcap_1068_fail
+    ($I12, $I11) = rx1063_cur."!mark_peek"($I10)
+    rx1063_cur."!cursor_pos"($I11)
+    ($P10) = rx1063_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1063_pos, "")
+    rx1063_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1066_done
-  rxcap_1066_fail:
-    goto rx1061_fail
-  rxcap_1066_done:
+    goto rxcap_1068_done
+  rxcap_1068_fail:
+    goto rx1063_fail
+  rxcap_1068_done:
   # rx subrule "O" subtype=capture negate=
-    rx1061_cur."!cursor_pos"(rx1061_pos)
-    $P10 = rx1061_cur."O"("%symbolic_unary, :pirop<set N*>")
-    unless $P10, rx1061_fail
-    rx1061_cur."!mark_push"(0, -1, 0, $P10)
+    rx1063_cur."!cursor_pos"(rx1063_pos)
+    $P10 = rx1063_cur."O"("%symbolic_unary, :pirop<set N*>")
+    unless $P10, rx1063_fail
+    rx1063_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1061_pos = $P10."pos"()
+    rx1063_pos = $P10."pos"()
   # rx pass
-    rx1061_cur."!cursor_pass"(rx1061_pos, "prefix:sym<+>")
-    rx1061_cur."!cursor_debug"("PASS  ", "prefix:sym<+>", " at pos=", rx1061_pos)
-    .return (rx1061_cur)
-  rx1061_fail:
+    rx1063_cur."!cursor_pass"(rx1063_pos, "prefix:sym<+>")
+    rx1063_cur."!cursor_debug"("PASS  ", "prefix:sym<+>", " at pos=", rx1063_pos)
+    .return (rx1063_cur)
+  rx1063_fail:
 .annotate 'line', 446
-    (rx1061_rep, rx1061_pos, $I10, $P10) = rx1061_cur."!mark_fail"(0)
-    lt rx1061_pos, -1, rx1061_done
-    eq rx1061_pos, -1, rx1061_fail
+    (rx1063_rep, rx1063_pos, $I10, $P10) = rx1063_cur."!mark_fail"(0)
+    lt rx1063_pos, -1, rx1063_done
+    eq rx1063_pos, -1, rx1063_fail
     jump $I10
-  rx1061_done:
-    rx1061_cur."!cursor_fail"()
-    rx1061_cur."!cursor_debug"("FAIL  ", "prefix:sym<+>")
-    .return (rx1061_cur)
+  rx1063_done:
+    rx1063_cur."!cursor_fail"()
+    rx1063_cur."!cursor_debug"("FAIL  ", "prefix:sym<+>")
+    .return (rx1063_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("263_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<+>"  :subid("263_1277356913.9538") :method
 .annotate 'line', 446
-    $P1063 = self."!PREFIX__!subrule"("O", "+")
-    new $P1064, "ResizablePMCArray"
-    push $P1064, $P1063
-    .return ($P1064)
+    $P1065 = self."!PREFIX__!subrule"("O", "+")
+    new $P1066, "ResizablePMCArray"
+    push $P1066, $P1065
+    .return ($P1066)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("264_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<~>"  :subid("264_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1068_tgt
-    .local int rx1068_pos
-    .local int rx1068_off
-    .local int rx1068_eos
-    .local int rx1068_rep
-    .local pmc rx1068_cur
-    (rx1068_cur, rx1068_pos, rx1068_tgt) = self."!cursor_start"()
-    rx1068_cur."!cursor_debug"("START ", "prefix:sym<~>")
-    .lex unicode:"$\x{a2}", rx1068_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1068_eos, rx1068_tgt
-    gt rx1068_pos, rx1068_eos, rx1068_done
-    set rx1068_off, 0
-    lt rx1068_pos, 2, rx1068_start
-    sub rx1068_off, rx1068_pos, 1
-    substr rx1068_tgt, rx1068_tgt, rx1068_off
-  rx1068_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1072_done
-    goto rxscan1072_scan
-  rxscan1072_loop:
-    ($P10) = rx1068_cur."from"()
-    inc $P10
-    set rx1068_pos, $P10
-    ge rx1068_pos, rx1068_eos, rxscan1072_done
-  rxscan1072_scan:
-    set_addr $I10, rxscan1072_loop
-    rx1068_cur."!mark_push"(0, rx1068_pos, $I10)
-  rxscan1072_done:
+    .local string rx1070_tgt
+    .local int rx1070_pos
+    .local int rx1070_off
+    .local int rx1070_eos
+    .local int rx1070_rep
+    .local pmc rx1070_cur
+    (rx1070_cur, rx1070_pos, rx1070_tgt) = self."!cursor_start"()
+    rx1070_cur."!cursor_debug"("START ", "prefix:sym<~>")
+    .lex unicode:"$\x{a2}", rx1070_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1070_eos, rx1070_tgt
+    gt rx1070_pos, rx1070_eos, rx1070_done
+    set rx1070_off, 0
+    lt rx1070_pos, 2, rx1070_start
+    sub rx1070_off, rx1070_pos, 1
+    substr rx1070_tgt, rx1070_tgt, rx1070_off
+  rx1070_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1074_done
+    goto rxscan1074_scan
+  rxscan1074_loop:
+    ($P10) = rx1070_cur."from"()
+    inc $P10
+    set rx1070_pos, $P10
+    ge rx1070_pos, rx1070_eos, rxscan1074_done
+  rxscan1074_scan:
+    set_addr $I10, rxscan1074_loop
+    rx1070_cur."!mark_push"(0, rx1070_pos, $I10)
+  rxscan1074_done:
 .annotate 'line', 500
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1073_fail
-    rx1068_cur."!mark_push"(0, rx1068_pos, $I10)
+    set_addr $I10, rxcap_1075_fail
+    rx1070_cur."!mark_push"(0, rx1070_pos, $I10)
   # rx literal  "~"
-    add $I11, rx1068_pos, 1
-    gt $I11, rx1068_eos, rx1068_fail
-    sub $I11, rx1068_pos, rx1068_off
-    substr $S10, rx1068_tgt, $I11, 1
-    ne $S10, "~", rx1068_fail
-    add rx1068_pos, 1
-    set_addr $I10, rxcap_1073_fail
-    ($I12, $I11) = rx1068_cur."!mark_peek"($I10)
-    rx1068_cur."!cursor_pos"($I11)
-    ($P10) = rx1068_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1068_pos, "")
-    rx1068_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1070_pos, 1
+    gt $I11, rx1070_eos, rx1070_fail
+    sub $I11, rx1070_pos, rx1070_off
+    substr $S10, rx1070_tgt, $I11, 1
+    ne $S10, "~", rx1070_fail
+    add rx1070_pos, 1
+    set_addr $I10, rxcap_1075_fail
+    ($I12, $I11) = rx1070_cur."!mark_peek"($I10)
+    rx1070_cur."!cursor_pos"($I11)
+    ($P10) = rx1070_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1070_pos, "")
+    rx1070_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1073_done
-  rxcap_1073_fail:
-    goto rx1068_fail
-  rxcap_1073_done:
+    goto rxcap_1075_done
+  rxcap_1075_fail:
+    goto rx1070_fail
+  rxcap_1075_done:
   # rx subrule "O" subtype=capture negate=
-    rx1068_cur."!cursor_pos"(rx1068_pos)
-    $P10 = rx1068_cur."O"("%symbolic_unary, :pirop<set S*>")
-    unless $P10, rx1068_fail
-    rx1068_cur."!mark_push"(0, -1, 0, $P10)
+    rx1070_cur."!cursor_pos"(rx1070_pos)
+    $P10 = rx1070_cur."O"("%symbolic_unary, :pirop<set S*>")
+    unless $P10, rx1070_fail
+    rx1070_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1068_pos = $P10."pos"()
+    rx1070_pos = $P10."pos"()
   # rx pass
-    rx1068_cur."!cursor_pass"(rx1068_pos, "prefix:sym<~>")
-    rx1068_cur."!cursor_debug"("PASS  ", "prefix:sym<~>", " at pos=", rx1068_pos)
-    .return (rx1068_cur)
-  rx1068_fail:
+    rx1070_cur."!cursor_pass"(rx1070_pos, "prefix:sym<~>")
+    rx1070_cur."!cursor_debug"("PASS  ", "prefix:sym<~>", " at pos=", rx1070_pos)
+    .return (rx1070_cur)
+  rx1070_fail:
 .annotate 'line', 446
-    (rx1068_rep, rx1068_pos, $I10, $P10) = rx1068_cur."!mark_fail"(0)
-    lt rx1068_pos, -1, rx1068_done
-    eq rx1068_pos, -1, rx1068_fail
+    (rx1070_rep, rx1070_pos, $I10, $P10) = rx1070_cur."!mark_fail"(0)
+    lt rx1070_pos, -1, rx1070_done
+    eq rx1070_pos, -1, rx1070_fail
     jump $I10
-  rx1068_done:
-    rx1068_cur."!cursor_fail"()
-    rx1068_cur."!cursor_debug"("FAIL  ", "prefix:sym<~>")
-    .return (rx1068_cur)
+  rx1070_done:
+    rx1070_cur."!cursor_fail"()
+    rx1070_cur."!cursor_debug"("FAIL  ", "prefix:sym<~>")
+    .return (rx1070_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("265_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<~>"  :subid("265_1277356913.9538") :method
 .annotate 'line', 446
-    $P1070 = self."!PREFIX__!subrule"("O", "~")
-    new $P1071, "ResizablePMCArray"
-    push $P1071, $P1070
-    .return ($P1071)
+    $P1072 = self."!PREFIX__!subrule"("O", "~")
+    new $P1073, "ResizablePMCArray"
+    push $P1073, $P1072
+    .return ($P1073)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("266_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<->"  :subid("266_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1075_tgt
-    .local int rx1075_pos
-    .local int rx1075_off
-    .local int rx1075_eos
-    .local int rx1075_rep
-    .local pmc rx1075_cur
-    (rx1075_cur, rx1075_pos, rx1075_tgt) = self."!cursor_start"()
-    rx1075_cur."!cursor_debug"("START ", "prefix:sym<->")
-    .lex unicode:"$\x{a2}", rx1075_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1075_eos, rx1075_tgt
-    gt rx1075_pos, rx1075_eos, rx1075_done
-    set rx1075_off, 0
-    lt rx1075_pos, 2, rx1075_start
-    sub rx1075_off, rx1075_pos, 1
-    substr rx1075_tgt, rx1075_tgt, rx1075_off
-  rx1075_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1078_done
-    goto rxscan1078_scan
-  rxscan1078_loop:
-    ($P10) = rx1075_cur."from"()
-    inc $P10
-    set rx1075_pos, $P10
-    ge rx1075_pos, rx1075_eos, rxscan1078_done
-  rxscan1078_scan:
-    set_addr $I10, rxscan1078_loop
-    rx1075_cur."!mark_push"(0, rx1075_pos, $I10)
-  rxscan1078_done:
+    .local string rx1077_tgt
+    .local int rx1077_pos
+    .local int rx1077_off
+    .local int rx1077_eos
+    .local int rx1077_rep
+    .local pmc rx1077_cur
+    (rx1077_cur, rx1077_pos, rx1077_tgt) = self."!cursor_start"()
+    rx1077_cur."!cursor_debug"("START ", "prefix:sym<->")
+    .lex unicode:"$\x{a2}", rx1077_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1077_eos, rx1077_tgt
+    gt rx1077_pos, rx1077_eos, rx1077_done
+    set rx1077_off, 0
+    lt rx1077_pos, 2, rx1077_start
+    sub rx1077_off, rx1077_pos, 1
+    substr rx1077_tgt, rx1077_tgt, rx1077_off
+  rx1077_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1080_done
+    goto rxscan1080_scan
+  rxscan1080_loop:
+    ($P10) = rx1077_cur."from"()
+    inc $P10
+    set rx1077_pos, $P10
+    ge rx1077_pos, rx1077_eos, rxscan1080_done
+  rxscan1080_scan:
+    set_addr $I10, rxscan1080_loop
+    rx1077_cur."!mark_push"(0, rx1077_pos, $I10)
+  rxscan1080_done:
 .annotate 'line', 501
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1079_fail
-    rx1075_cur."!mark_push"(0, rx1075_pos, $I10)
+    set_addr $I10, rxcap_1081_fail
+    rx1077_cur."!mark_push"(0, rx1077_pos, $I10)
   # rx literal  "-"
-    add $I11, rx1075_pos, 1
-    gt $I11, rx1075_eos, rx1075_fail
-    sub $I11, rx1075_pos, rx1075_off
-    substr $S10, rx1075_tgt, $I11, 1
-    ne $S10, "-", rx1075_fail
-    add rx1075_pos, 1
-    set_addr $I10, rxcap_1079_fail
-    ($I12, $I11) = rx1075_cur."!mark_peek"($I10)
-    rx1075_cur."!cursor_pos"($I11)
-    ($P10) = rx1075_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1075_pos, "")
-    rx1075_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1077_pos, 1
+    gt $I11, rx1077_eos, rx1077_fail
+    sub $I11, rx1077_pos, rx1077_off
+    substr $S10, rx1077_tgt, $I11, 1
+    ne $S10, "-", rx1077_fail
+    add rx1077_pos, 1
+    set_addr $I10, rxcap_1081_fail
+    ($I12, $I11) = rx1077_cur."!mark_peek"($I10)
+    rx1077_cur."!cursor_pos"($I11)
+    ($P10) = rx1077_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1077_pos, "")
+    rx1077_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1079_done
-  rxcap_1079_fail:
-    goto rx1075_fail
-  rxcap_1079_done:
+    goto rxcap_1081_done
+  rxcap_1081_fail:
+    goto rx1077_fail
+  rxcap_1081_done:
   # rx enumcharlist negate=1 zerowidth
-    ge rx1075_pos, rx1075_eos, rx1075_fail
-    sub $I10, rx1075_pos, rx1075_off
-    substr $S10, rx1075_tgt, $I10, 1
+    ge rx1077_pos, rx1077_eos, rx1077_fail
+    sub $I10, rx1077_pos, rx1077_off
+    substr $S10, rx1077_tgt, $I10, 1
     index $I11, ">", $S10
-    ge $I11, 0, rx1075_fail
+    ge $I11, 0, rx1077_fail
   # rx subrule "number" subtype=zerowidth negate=1
-    rx1075_cur."!cursor_pos"(rx1075_pos)
-    $P10 = rx1075_cur."number"()
-    if $P10, rx1075_fail
+    rx1077_cur."!cursor_pos"(rx1077_pos)
+    $P10 = rx1077_cur."number"()
+    if $P10, rx1077_fail
   # rx subrule "O" subtype=capture negate=
-    rx1075_cur."!cursor_pos"(rx1075_pos)
-    $P10 = rx1075_cur."O"("%symbolic_unary, :pirop<neg>")
-    unless $P10, rx1075_fail
-    rx1075_cur."!mark_push"(0, -1, 0, $P10)
+    rx1077_cur."!cursor_pos"(rx1077_pos)
+    $P10 = rx1077_cur."O"("%symbolic_unary, :pirop<neg>")
+    unless $P10, rx1077_fail
+    rx1077_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1075_pos = $P10."pos"()
+    rx1077_pos = $P10."pos"()
   # rx pass
-    rx1075_cur."!cursor_pass"(rx1075_pos, "prefix:sym<->")
-    rx1075_cur."!cursor_debug"("PASS  ", "prefix:sym<->", " at pos=", rx1075_pos)
-    .return (rx1075_cur)
-  rx1075_fail:
+    rx1077_cur."!cursor_pass"(rx1077_pos, "prefix:sym<->")
+    rx1077_cur."!cursor_debug"("PASS  ", "prefix:sym<->", " at pos=", rx1077_pos)
+    .return (rx1077_cur)
+  rx1077_fail:
 .annotate 'line', 446
-    (rx1075_rep, rx1075_pos, $I10, $P10) = rx1075_cur."!mark_fail"(0)
-    lt rx1075_pos, -1, rx1075_done
-    eq rx1075_pos, -1, rx1075_fail
+    (rx1077_rep, rx1077_pos, $I10, $P10) = rx1077_cur."!mark_fail"(0)
+    lt rx1077_pos, -1, rx1077_done
+    eq rx1077_pos, -1, rx1077_fail
     jump $I10
-  rx1075_done:
-    rx1075_cur."!cursor_fail"()
-    rx1075_cur."!cursor_debug"("FAIL  ", "prefix:sym<->")
-    .return (rx1075_cur)
+  rx1077_done:
+    rx1077_cur."!cursor_fail"()
+    rx1077_cur."!cursor_debug"("FAIL  ", "prefix:sym<->")
+    .return (rx1077_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("267_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<->"  :subid("267_1277356913.9538") :method
 .annotate 'line', 446
-    new $P1077, "ResizablePMCArray"
-    push $P1077, "-"
-    .return ($P1077)
+    new $P1079, "ResizablePMCArray"
+    push $P1079, "-"
+    .return ($P1079)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("268_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<?>"  :subid("268_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1081_tgt
-    .local int rx1081_pos
-    .local int rx1081_off
-    .local int rx1081_eos
-    .local int rx1081_rep
-    .local pmc rx1081_cur
-    (rx1081_cur, rx1081_pos, rx1081_tgt) = self."!cursor_start"()
-    rx1081_cur."!cursor_debug"("START ", "prefix:sym<?>")
-    .lex unicode:"$\x{a2}", rx1081_cur
+    .local string rx1083_tgt
+    .local int rx1083_pos
+    .local int rx1083_off
+    .local int rx1083_eos
+    .local int rx1083_rep
+    .local pmc rx1083_cur
+    (rx1083_cur, rx1083_pos, rx1083_tgt) = self."!cursor_start"()
+    rx1083_cur."!cursor_debug"("START ", "prefix:sym<?>")
+    .lex unicode:"$\x{a2}", rx1083_cur
     .local pmc match
     .lex "$/", match
-    length rx1081_eos, rx1081_tgt
-    gt rx1081_pos, rx1081_eos, rx1081_done
-    set rx1081_off, 0
-    lt rx1081_pos, 2, rx1081_start
-    sub rx1081_off, rx1081_pos, 1
-    substr rx1081_tgt, rx1081_tgt, rx1081_off
-  rx1081_start:
+    length rx1083_eos, rx1083_tgt
+    gt rx1083_pos, rx1083_eos, rx1083_done
+    set rx1083_off, 0
+    lt rx1083_pos, 2, rx1083_start
+    sub rx1083_off, rx1083_pos, 1
+    substr rx1083_tgt, rx1083_tgt, rx1083_off
+  rx1083_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1085_done
-    goto rxscan1085_scan
-  rxscan1085_loop:
-    ($P10) = rx1081_cur."from"()
+    ne $I10, -1, rxscan1087_done
+    goto rxscan1087_scan
+  rxscan1087_loop:
+    ($P10) = rx1083_cur."from"()
     inc $P10
-    set rx1081_pos, $P10
-    ge rx1081_pos, rx1081_eos, rxscan1085_done
-  rxscan1085_scan:
-    set_addr $I10, rxscan1085_loop
-    rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
-  rxscan1085_done:
+    set rx1083_pos, $P10
+    ge rx1083_pos, rx1083_eos, rxscan1087_done
+  rxscan1087_scan:
+    set_addr $I10, rxscan1087_loop
+    rx1083_cur."!mark_push"(0, rx1083_pos, $I10)
+  rxscan1087_done:
 .annotate 'line', 502
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1086_fail
-    rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
+    set_addr $I10, rxcap_1088_fail
+    rx1083_cur."!mark_push"(0, rx1083_pos, $I10)
   # rx literal  "?"
-    add $I11, rx1081_pos, 1
-    gt $I11, rx1081_eos, rx1081_fail
-    sub $I11, rx1081_pos, rx1081_off
-    substr $S10, rx1081_tgt, $I11, 1
-    ne $S10, "?", rx1081_fail
-    add rx1081_pos, 1
-    set_addr $I10, rxcap_1086_fail
-    ($I12, $I11) = rx1081_cur."!mark_peek"($I10)
-    rx1081_cur."!cursor_pos"($I11)
-    ($P10) = rx1081_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1081_pos, "")
-    rx1081_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1083_pos, 1
+    gt $I11, rx1083_eos, rx1083_fail
+    sub $I11, rx1083_pos, rx1083_off
+    substr $S10, rx1083_tgt, $I11, 1
+    ne $S10, "?", rx1083_fail
+    add rx1083_pos, 1
+    set_addr $I10, rxcap_1088_fail
+    ($I12, $I11) = rx1083_cur."!mark_peek"($I10)
+    rx1083_cur."!cursor_pos"($I11)
+    ($P10) = rx1083_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1083_pos, "")
+    rx1083_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1086_done
-  rxcap_1086_fail:
-    goto rx1081_fail
-  rxcap_1086_done:
+    goto rxcap_1088_done
+  rxcap_1088_fail:
+    goto rx1083_fail
+  rxcap_1088_done:
   # rx subrule "O" subtype=capture negate=
-    rx1081_cur."!cursor_pos"(rx1081_pos)
-    $P10 = rx1081_cur."O"("%symbolic_unary, :pirop<istrue>")
-    unless $P10, rx1081_fail
-    rx1081_cur."!mark_push"(0, -1, 0, $P10)
+    rx1083_cur."!cursor_pos"(rx1083_pos)
+    $P10 = rx1083_cur."O"("%symbolic_unary, :pirop<istrue>")
+    unless $P10, rx1083_fail
+    rx1083_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1081_pos = $P10."pos"()
+    rx1083_pos = $P10."pos"()
   # rx pass
-    rx1081_cur."!cursor_pass"(rx1081_pos, "prefix:sym<?>")
-    rx1081_cur."!cursor_debug"("PASS  ", "prefix:sym<?>", " at pos=", rx1081_pos)
-    .return (rx1081_cur)
-  rx1081_fail:
+    rx1083_cur."!cursor_pass"(rx1083_pos, "prefix:sym<?>")
+    rx1083_cur."!cursor_debug"("PASS  ", "prefix:sym<?>", " at pos=", rx1083_pos)
+    .return (rx1083_cur)
+  rx1083_fail:
 .annotate 'line', 446
-    (rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0)
-    lt rx1081_pos, -1, rx1081_done
-    eq rx1081_pos, -1, rx1081_fail
+    (rx1083_rep, rx1083_pos, $I10, $P10) = rx1083_cur."!mark_fail"(0)
+    lt rx1083_pos, -1, rx1083_done
+    eq rx1083_pos, -1, rx1083_fail
     jump $I10
-  rx1081_done:
-    rx1081_cur."!cursor_fail"()
-    rx1081_cur."!cursor_debug"("FAIL  ", "prefix:sym<?>")
-    .return (rx1081_cur)
+  rx1083_done:
+    rx1083_cur."!cursor_fail"()
+    rx1083_cur."!cursor_debug"("FAIL  ", "prefix:sym<?>")
+    .return (rx1083_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("269_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<?>"  :subid("269_1277356913.9538") :method
 .annotate 'line', 446
-    $P1083 = self."!PREFIX__!subrule"("O", "?")
-    new $P1084, "ResizablePMCArray"
-    push $P1084, $P1083
-    .return ($P1084)
+    $P1085 = self."!PREFIX__!subrule"("O", "?")
+    new $P1086, "ResizablePMCArray"
+    push $P1086, $P1085
+    .return ($P1086)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("270_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<!>"  :subid("270_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1088_tgt
-    .local int rx1088_pos
-    .local int rx1088_off
-    .local int rx1088_eos
-    .local int rx1088_rep
-    .local pmc rx1088_cur
-    (rx1088_cur, rx1088_pos, rx1088_tgt) = self."!cursor_start"()
-    rx1088_cur."!cursor_debug"("START ", "prefix:sym<!>")
-    .lex unicode:"$\x{a2}", rx1088_cur
+    .local string rx1090_tgt
+    .local int rx1090_pos
+    .local int rx1090_off
+    .local int rx1090_eos
+    .local int rx1090_rep
+    .local pmc rx1090_cur
+    (rx1090_cur, rx1090_pos, rx1090_tgt) = self."!cursor_start"()
+    rx1090_cur."!cursor_debug"("START ", "prefix:sym<!>")
+    .lex unicode:"$\x{a2}", rx1090_cur
     .local pmc match
     .lex "$/", match
-    length rx1088_eos, rx1088_tgt
-    gt rx1088_pos, rx1088_eos, rx1088_done
-    set rx1088_off, 0
-    lt rx1088_pos, 2, rx1088_start
-    sub rx1088_off, rx1088_pos, 1
-    substr rx1088_tgt, rx1088_tgt, rx1088_off
-  rx1088_start:
+    length rx1090_eos, rx1090_tgt
+    gt rx1090_pos, rx1090_eos, rx1090_done
+    set rx1090_off, 0
+    lt rx1090_pos, 2, rx1090_start
+    sub rx1090_off, rx1090_pos, 1
+    substr rx1090_tgt, rx1090_tgt, rx1090_off
+  rx1090_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1092_done
-    goto rxscan1092_scan
-  rxscan1092_loop:
-    ($P10) = rx1088_cur."from"()
+    ne $I10, -1, rxscan1094_done
+    goto rxscan1094_scan
+  rxscan1094_loop:
+    ($P10) = rx1090_cur."from"()
     inc $P10
-    set rx1088_pos, $P10
-    ge rx1088_pos, rx1088_eos, rxscan1092_done
-  rxscan1092_scan:
-    set_addr $I10, rxscan1092_loop
-    rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
-  rxscan1092_done:
+    set rx1090_pos, $P10
+    ge rx1090_pos, rx1090_eos, rxscan1094_done
+  rxscan1094_scan:
+    set_addr $I10, rxscan1094_loop
+    rx1090_cur."!mark_push"(0, rx1090_pos, $I10)
+  rxscan1094_done:
 .annotate 'line', 503
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1093_fail
-    rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
+    set_addr $I10, rxcap_1095_fail
+    rx1090_cur."!mark_push"(0, rx1090_pos, $I10)
   # rx literal  "!"
-    add $I11, rx1088_pos, 1
-    gt $I11, rx1088_eos, rx1088_fail
-    sub $I11, rx1088_pos, rx1088_off
-    substr $S10, rx1088_tgt, $I11, 1
-    ne $S10, "!", rx1088_fail
-    add rx1088_pos, 1
-    set_addr $I10, rxcap_1093_fail
-    ($I12, $I11) = rx1088_cur."!mark_peek"($I10)
-    rx1088_cur."!cursor_pos"($I11)
-    ($P10) = rx1088_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1088_pos, "")
-    rx1088_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1090_pos, 1
+    gt $I11, rx1090_eos, rx1090_fail
+    sub $I11, rx1090_pos, rx1090_off
+    substr $S10, rx1090_tgt, $I11, 1
+    ne $S10, "!", rx1090_fail
+    add rx1090_pos, 1
+    set_addr $I10, rxcap_1095_fail
+    ($I12, $I11) = rx1090_cur."!mark_peek"($I10)
+    rx1090_cur."!cursor_pos"($I11)
+    ($P10) = rx1090_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1090_pos, "")
+    rx1090_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1093_done
-  rxcap_1093_fail:
-    goto rx1088_fail
-  rxcap_1093_done:
+    goto rxcap_1095_done
+  rxcap_1095_fail:
+    goto rx1090_fail
+  rxcap_1095_done:
   # rx subrule "O" subtype=capture negate=
-    rx1088_cur."!cursor_pos"(rx1088_pos)
-    $P10 = rx1088_cur."O"("%symbolic_unary, :pirop<isfalse>")
-    unless $P10, rx1088_fail
-    rx1088_cur."!mark_push"(0, -1, 0, $P10)
+    rx1090_cur."!cursor_pos"(rx1090_pos)
+    $P10 = rx1090_cur."O"("%symbolic_unary, :pirop<isfalse>")
+    unless $P10, rx1090_fail
+    rx1090_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1088_pos = $P10."pos"()
+    rx1090_pos = $P10."pos"()
   # rx pass
-    rx1088_cur."!cursor_pass"(rx1088_pos, "prefix:sym<!>")
-    rx1088_cur."!cursor_debug"("PASS  ", "prefix:sym<!>", " at pos=", rx1088_pos)
-    .return (rx1088_cur)
-  rx1088_fail:
+    rx1090_cur."!cursor_pass"(rx1090_pos, "prefix:sym<!>")
+    rx1090_cur."!cursor_debug"("PASS  ", "prefix:sym<!>", " at pos=", rx1090_pos)
+    .return (rx1090_cur)
+  rx1090_fail:
 .annotate 'line', 446
-    (rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0)
-    lt rx1088_pos, -1, rx1088_done
-    eq rx1088_pos, -1, rx1088_fail
+    (rx1090_rep, rx1090_pos, $I10, $P10) = rx1090_cur."!mark_fail"(0)
+    lt rx1090_pos, -1, rx1090_done
+    eq rx1090_pos, -1, rx1090_fail
     jump $I10
-  rx1088_done:
-    rx1088_cur."!cursor_fail"()
-    rx1088_cur."!cursor_debug"("FAIL  ", "prefix:sym<!>")
-    .return (rx1088_cur)
+  rx1090_done:
+    rx1090_cur."!cursor_fail"()
+    rx1090_cur."!cursor_debug"("FAIL  ", "prefix:sym<!>")
+    .return (rx1090_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("271_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<!>"  :subid("271_1277356913.9538") :method
 .annotate 'line', 446
-    $P1090 = self."!PREFIX__!subrule"("O", "!")
-    new $P1091, "ResizablePMCArray"
-    push $P1091, $P1090
-    .return ($P1091)
+    $P1092 = self."!PREFIX__!subrule"("O", "!")
+    new $P1093, "ResizablePMCArray"
+    push $P1093, $P1092
+    .return ($P1093)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("272_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<|>"  :subid("272_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1095_tgt
-    .local int rx1095_pos
-    .local int rx1095_off
-    .local int rx1095_eos
-    .local int rx1095_rep
-    .local pmc rx1095_cur
-    (rx1095_cur, rx1095_pos, rx1095_tgt) = self."!cursor_start"()
-    rx1095_cur."!cursor_debug"("START ", "prefix:sym<|>")
-    .lex unicode:"$\x{a2}", rx1095_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1095_eos, rx1095_tgt
-    gt rx1095_pos, rx1095_eos, rx1095_done
-    set rx1095_off, 0
-    lt rx1095_pos, 2, rx1095_start
-    sub rx1095_off, rx1095_pos, 1
-    substr rx1095_tgt, rx1095_tgt, rx1095_off
-  rx1095_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1099_done
-    goto rxscan1099_scan
-  rxscan1099_loop:
-    ($P10) = rx1095_cur."from"()
-    inc $P10
-    set rx1095_pos, $P10
-    ge rx1095_pos, rx1095_eos, rxscan1099_done
-  rxscan1099_scan:
-    set_addr $I10, rxscan1099_loop
-    rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
-  rxscan1099_done:
+    .local string rx1097_tgt
+    .local int rx1097_pos
+    .local int rx1097_off
+    .local int rx1097_eos
+    .local int rx1097_rep
+    .local pmc rx1097_cur
+    (rx1097_cur, rx1097_pos, rx1097_tgt) = self."!cursor_start"()
+    rx1097_cur."!cursor_debug"("START ", "prefix:sym<|>")
+    .lex unicode:"$\x{a2}", rx1097_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1097_eos, rx1097_tgt
+    gt rx1097_pos, rx1097_eos, rx1097_done
+    set rx1097_off, 0
+    lt rx1097_pos, 2, rx1097_start
+    sub rx1097_off, rx1097_pos, 1
+    substr rx1097_tgt, rx1097_tgt, rx1097_off
+  rx1097_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1101_done
+    goto rxscan1101_scan
+  rxscan1101_loop:
+    ($P10) = rx1097_cur."from"()
+    inc $P10
+    set rx1097_pos, $P10
+    ge rx1097_pos, rx1097_eos, rxscan1101_done
+  rxscan1101_scan:
+    set_addr $I10, rxscan1101_loop
+    rx1097_cur."!mark_push"(0, rx1097_pos, $I10)
+  rxscan1101_done:
 .annotate 'line', 504
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1100_fail
-    rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
+    set_addr $I10, rxcap_1102_fail
+    rx1097_cur."!mark_push"(0, rx1097_pos, $I10)
   # rx literal  "|"
-    add $I11, rx1095_pos, 1
-    gt $I11, rx1095_eos, rx1095_fail
-    sub $I11, rx1095_pos, rx1095_off
-    substr $S10, rx1095_tgt, $I11, 1
-    ne $S10, "|", rx1095_fail
-    add rx1095_pos, 1
-    set_addr $I10, rxcap_1100_fail
-    ($I12, $I11) = rx1095_cur."!mark_peek"($I10)
-    rx1095_cur."!cursor_pos"($I11)
-    ($P10) = rx1095_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1095_pos, "")
-    rx1095_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1097_pos, 1
+    gt $I11, rx1097_eos, rx1097_fail
+    sub $I11, rx1097_pos, rx1097_off
+    substr $S10, rx1097_tgt, $I11, 1
+    ne $S10, "|", rx1097_fail
+    add rx1097_pos, 1
+    set_addr $I10, rxcap_1102_fail
+    ($I12, $I11) = rx1097_cur."!mark_peek"($I10)
+    rx1097_cur."!cursor_pos"($I11)
+    ($P10) = rx1097_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1097_pos, "")
+    rx1097_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1100_done
-  rxcap_1100_fail:
-    goto rx1095_fail
-  rxcap_1100_done:
+    goto rxcap_1102_done
+  rxcap_1102_fail:
+    goto rx1097_fail
+  rxcap_1102_done:
   # rx subrule "O" subtype=capture negate=
-    rx1095_cur."!cursor_pos"(rx1095_pos)
-    $P10 = rx1095_cur."O"("%symbolic_unary")
-    unless $P10, rx1095_fail
-    rx1095_cur."!mark_push"(0, -1, 0, $P10)
+    rx1097_cur."!cursor_pos"(rx1097_pos)
+    $P10 = rx1097_cur."O"("%symbolic_unary")
+    unless $P10, rx1097_fail
+    rx1097_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1095_pos = $P10."pos"()
+    rx1097_pos = $P10."pos"()
   # rx pass
-    rx1095_cur."!cursor_pass"(rx1095_pos, "prefix:sym<|>")
-    rx1095_cur."!cursor_debug"("PASS  ", "prefix:sym<|>", " at pos=", rx1095_pos)
-    .return (rx1095_cur)
-  rx1095_fail:
+    rx1097_cur."!cursor_pass"(rx1097_pos, "prefix:sym<|>")
+    rx1097_cur."!cursor_debug"("PASS  ", "prefix:sym<|>", " at pos=", rx1097_pos)
+    .return (rx1097_cur)
+  rx1097_fail:
 .annotate 'line', 446
-    (rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0)
-    lt rx1095_pos, -1, rx1095_done
-    eq rx1095_pos, -1, rx1095_fail
+    (rx1097_rep, rx1097_pos, $I10, $P10) = rx1097_cur."!mark_fail"(0)
+    lt rx1097_pos, -1, rx1097_done
+    eq rx1097_pos, -1, rx1097_fail
     jump $I10
-  rx1095_done:
-    rx1095_cur."!cursor_fail"()
-    rx1095_cur."!cursor_debug"("FAIL  ", "prefix:sym<|>")
-    .return (rx1095_cur)
+  rx1097_done:
+    rx1097_cur."!cursor_fail"()
+    rx1097_cur."!cursor_debug"("FAIL  ", "prefix:sym<|>")
+    .return (rx1097_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("273_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<|>"  :subid("273_1277356913.9538") :method
 .annotate 'line', 446
-    $P1097 = self."!PREFIX__!subrule"("O", "|")
-    new $P1098, "ResizablePMCArray"
-    push $P1098, $P1097
-    .return ($P1098)
+    $P1099 = self."!PREFIX__!subrule"("O", "|")
+    new $P1100, "ResizablePMCArray"
+    push $P1100, $P1099
+    .return ($P1100)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("274_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<*>"  :subid("274_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1102_tgt
-    .local int rx1102_pos
-    .local int rx1102_off
-    .local int rx1102_eos
-    .local int rx1102_rep
-    .local pmc rx1102_cur
-    (rx1102_cur, rx1102_pos, rx1102_tgt) = self."!cursor_start"()
-    rx1102_cur."!cursor_debug"("START ", "infix:sym<*>")
-    .lex unicode:"$\x{a2}", rx1102_cur
+    .local string rx1104_tgt
+    .local int rx1104_pos
+    .local int rx1104_off
+    .local int rx1104_eos
+    .local int rx1104_rep
+    .local pmc rx1104_cur
+    (rx1104_cur, rx1104_pos, rx1104_tgt) = self."!cursor_start"()
+    rx1104_cur."!cursor_debug"("START ", "infix:sym<*>")
+    .lex unicode:"$\x{a2}", rx1104_cur
     .local pmc match
     .lex "$/", match
-    length rx1102_eos, rx1102_tgt
-    gt rx1102_pos, rx1102_eos, rx1102_done
-    set rx1102_off, 0
-    lt rx1102_pos, 2, rx1102_start
-    sub rx1102_off, rx1102_pos, 1
-    substr rx1102_tgt, rx1102_tgt, rx1102_off
-  rx1102_start:
+    length rx1104_eos, rx1104_tgt
+    gt rx1104_pos, rx1104_eos, rx1104_done
+    set rx1104_off, 0
+    lt rx1104_pos, 2, rx1104_start
+    sub rx1104_off, rx1104_pos, 1
+    substr rx1104_tgt, rx1104_tgt, rx1104_off
+  rx1104_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1106_done
-    goto rxscan1106_scan
-  rxscan1106_loop:
-    ($P10) = rx1102_cur."from"()
+    ne $I10, -1, rxscan1108_done
+    goto rxscan1108_scan
+  rxscan1108_loop:
+    ($P10) = rx1104_cur."from"()
     inc $P10
-    set rx1102_pos, $P10
-    ge rx1102_pos, rx1102_eos, rxscan1106_done
-  rxscan1106_scan:
-    set_addr $I10, rxscan1106_loop
-    rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
-  rxscan1106_done:
+    set rx1104_pos, $P10
+    ge rx1104_pos, rx1104_eos, rxscan1108_done
+  rxscan1108_scan:
+    set_addr $I10, rxscan1108_loop
+    rx1104_cur."!mark_push"(0, rx1104_pos, $I10)
+  rxscan1108_done:
 .annotate 'line', 506
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1107_fail
-    rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
+    set_addr $I10, rxcap_1109_fail
+    rx1104_cur."!mark_push"(0, rx1104_pos, $I10)
   # rx literal  "*"
-    add $I11, rx1102_pos, 1
-    gt $I11, rx1102_eos, rx1102_fail
-    sub $I11, rx1102_pos, rx1102_off
-    substr $S10, rx1102_tgt, $I11, 1
-    ne $S10, "*", rx1102_fail
-    add rx1102_pos, 1
-    set_addr $I10, rxcap_1107_fail
-    ($I12, $I11) = rx1102_cur."!mark_peek"($I10)
-    rx1102_cur."!cursor_pos"($I11)
-    ($P10) = rx1102_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1102_pos, "")
-    rx1102_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1104_pos, 1
+    gt $I11, rx1104_eos, rx1104_fail
+    sub $I11, rx1104_pos, rx1104_off
+    substr $S10, rx1104_tgt, $I11, 1
+    ne $S10, "*", rx1104_fail
+    add rx1104_pos, 1
+    set_addr $I10, rxcap_1109_fail
+    ($I12, $I11) = rx1104_cur."!mark_peek"($I10)
+    rx1104_cur."!cursor_pos"($I11)
+    ($P10) = rx1104_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1104_pos, "")
+    rx1104_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1107_done
-  rxcap_1107_fail:
-    goto rx1102_fail
-  rxcap_1107_done:
+    goto rxcap_1109_done
+  rxcap_1109_fail:
+    goto rx1104_fail
+  rxcap_1109_done:
   # rx subrule "O" subtype=capture negate=
-    rx1102_cur."!cursor_pos"(rx1102_pos)
-    $P10 = rx1102_cur."O"("%multiplicative, :pirop<mul>")
-    unless $P10, rx1102_fail
-    rx1102_cur."!mark_push"(0, -1, 0, $P10)
+    rx1104_cur."!cursor_pos"(rx1104_pos)
+    $P10 = rx1104_cur."O"("%multiplicative, :pirop<mul>")
+    unless $P10, rx1104_fail
+    rx1104_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1102_pos = $P10."pos"()
+    rx1104_pos = $P10."pos"()
   # rx pass
-    rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<*>")
-    rx1102_cur."!cursor_debug"("PASS  ", "infix:sym<*>", " at pos=", rx1102_pos)
-    .return (rx1102_cur)
-  rx1102_fail:
+    rx1104_cur."!cursor_pass"(rx1104_pos, "infix:sym<*>")
+    rx1104_cur."!cursor_debug"("PASS  ", "infix:sym<*>", " at pos=", rx1104_pos)
+    .return (rx1104_cur)
+  rx1104_fail:
 .annotate 'line', 446
-    (rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0)
-    lt rx1102_pos, -1, rx1102_done
-    eq rx1102_pos, -1, rx1102_fail
+    (rx1104_rep, rx1104_pos, $I10, $P10) = rx1104_cur."!mark_fail"(0)
+    lt rx1104_pos, -1, rx1104_done
+    eq rx1104_pos, -1, rx1104_fail
     jump $I10
-  rx1102_done:
-    rx1102_cur."!cursor_fail"()
-    rx1102_cur."!cursor_debug"("FAIL  ", "infix:sym<*>")
-    .return (rx1102_cur)
+  rx1104_done:
+    rx1104_cur."!cursor_fail"()
+    rx1104_cur."!cursor_debug"("FAIL  ", "infix:sym<*>")
+    .return (rx1104_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("275_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<*>"  :subid("275_1277356913.9538") :method
 .annotate 'line', 446
-    $P1104 = self."!PREFIX__!subrule"("O", "*")
-    new $P1105, "ResizablePMCArray"
-    push $P1105, $P1104
-    .return ($P1105)
+    $P1106 = self."!PREFIX__!subrule"("O", "*")
+    new $P1107, "ResizablePMCArray"
+    push $P1107, $P1106
+    .return ($P1107)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("276_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym</>"  :subid("276_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1109_tgt
-    .local int rx1109_pos
-    .local int rx1109_off
-    .local int rx1109_eos
-    .local int rx1109_rep
-    .local pmc rx1109_cur
-    (rx1109_cur, rx1109_pos, rx1109_tgt) = self."!cursor_start"()
-    rx1109_cur."!cursor_debug"("START ", "infix:sym</>")
-    .lex unicode:"$\x{a2}", rx1109_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1109_eos, rx1109_tgt
-    gt rx1109_pos, rx1109_eos, rx1109_done
-    set rx1109_off, 0
-    lt rx1109_pos, 2, rx1109_start
-    sub rx1109_off, rx1109_pos, 1
-    substr rx1109_tgt, rx1109_tgt, rx1109_off
-  rx1109_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1113_done
-    goto rxscan1113_scan
-  rxscan1113_loop:
-    ($P10) = rx1109_cur."from"()
-    inc $P10
-    set rx1109_pos, $P10
-    ge rx1109_pos, rx1109_eos, rxscan1113_done
-  rxscan1113_scan:
-    set_addr $I10, rxscan1113_loop
-    rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
-  rxscan1113_done:
+    .local string rx1111_tgt
+    .local int rx1111_pos
+    .local int rx1111_off
+    .local int rx1111_eos
+    .local int rx1111_rep
+    .local pmc rx1111_cur
+    (rx1111_cur, rx1111_pos, rx1111_tgt) = self."!cursor_start"()
+    rx1111_cur."!cursor_debug"("START ", "infix:sym</>")
+    .lex unicode:"$\x{a2}", rx1111_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1111_eos, rx1111_tgt
+    gt rx1111_pos, rx1111_eos, rx1111_done
+    set rx1111_off, 0
+    lt rx1111_pos, 2, rx1111_start
+    sub rx1111_off, rx1111_pos, 1
+    substr rx1111_tgt, rx1111_tgt, rx1111_off
+  rx1111_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1115_done
+    goto rxscan1115_scan
+  rxscan1115_loop:
+    ($P10) = rx1111_cur."from"()
+    inc $P10
+    set rx1111_pos, $P10
+    ge rx1111_pos, rx1111_eos, rxscan1115_done
+  rxscan1115_scan:
+    set_addr $I10, rxscan1115_loop
+    rx1111_cur."!mark_push"(0, rx1111_pos, $I10)
+  rxscan1115_done:
 .annotate 'line', 507
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1114_fail
-    rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
+    set_addr $I10, rxcap_1116_fail
+    rx1111_cur."!mark_push"(0, rx1111_pos, $I10)
   # rx literal  "/"
-    add $I11, rx1109_pos, 1
-    gt $I11, rx1109_eos, rx1109_fail
-    sub $I11, rx1109_pos, rx1109_off
-    substr $S10, rx1109_tgt, $I11, 1
-    ne $S10, "/", rx1109_fail
-    add rx1109_pos, 1
-    set_addr $I10, rxcap_1114_fail
-    ($I12, $I11) = rx1109_cur."!mark_peek"($I10)
-    rx1109_cur."!cursor_pos"($I11)
-    ($P10) = rx1109_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1109_pos, "")
-    rx1109_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1111_pos, 1
+    gt $I11, rx1111_eos, rx1111_fail
+    sub $I11, rx1111_pos, rx1111_off
+    substr $S10, rx1111_tgt, $I11, 1
+    ne $S10, "/", rx1111_fail
+    add rx1111_pos, 1
+    set_addr $I10, rxcap_1116_fail
+    ($I12, $I11) = rx1111_cur."!mark_peek"($I10)
+    rx1111_cur."!cursor_pos"($I11)
+    ($P10) = rx1111_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1111_pos, "")
+    rx1111_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1114_done
-  rxcap_1114_fail:
-    goto rx1109_fail
-  rxcap_1114_done:
+    goto rxcap_1116_done
+  rxcap_1116_fail:
+    goto rx1111_fail
+  rxcap_1116_done:
   # rx subrule "O" subtype=capture negate=
-    rx1109_cur."!cursor_pos"(rx1109_pos)
-    $P10 = rx1109_cur."O"("%multiplicative, :pirop<div>")
-    unless $P10, rx1109_fail
-    rx1109_cur."!mark_push"(0, -1, 0, $P10)
+    rx1111_cur."!cursor_pos"(rx1111_pos)
+    $P10 = rx1111_cur."O"("%multiplicative, :pirop<div>")
+    unless $P10, rx1111_fail
+    rx1111_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1109_pos = $P10."pos"()
+    rx1111_pos = $P10."pos"()
   # rx pass
-    rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym</>")
-    rx1109_cur."!cursor_debug"("PASS  ", "infix:sym</>", " at pos=", rx1109_pos)
-    .return (rx1109_cur)
-  rx1109_fail:
+    rx1111_cur."!cursor_pass"(rx1111_pos, "infix:sym</>")
+    rx1111_cur."!cursor_debug"("PASS  ", "infix:sym</>", " at pos=", rx1111_pos)
+    .return (rx1111_cur)
+  rx1111_fail:
 .annotate 'line', 446
-    (rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0)
-    lt rx1109_pos, -1, rx1109_done
-    eq rx1109_pos, -1, rx1109_fail
+    (rx1111_rep, rx1111_pos, $I10, $P10) = rx1111_cur."!mark_fail"(0)
+    lt rx1111_pos, -1, rx1111_done
+    eq rx1111_pos, -1, rx1111_fail
     jump $I10
-  rx1109_done:
-    rx1109_cur."!cursor_fail"()
-    rx1109_cur."!cursor_debug"("FAIL  ", "infix:sym</>")
-    .return (rx1109_cur)
+  rx1111_done:
+    rx1111_cur."!cursor_fail"()
+    rx1111_cur."!cursor_debug"("FAIL  ", "infix:sym</>")
+    .return (rx1111_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("277_1275811487.95429") :method
+.sub "!PREFIX__infix:sym</>"  :subid("277_1277356913.9538") :method
 .annotate 'line', 446
-    $P1111 = self."!PREFIX__!subrule"("O", "/")
-    new $P1112, "ResizablePMCArray"
-    push $P1112, $P1111
-    .return ($P1112)
+    $P1113 = self."!PREFIX__!subrule"("O", "/")
+    new $P1114, "ResizablePMCArray"
+    push $P1114, $P1113
+    .return ($P1114)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("278_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<%>"  :subid("278_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1116_tgt
-    .local int rx1116_pos
-    .local int rx1116_off
-    .local int rx1116_eos
-    .local int rx1116_rep
-    .local pmc rx1116_cur
-    (rx1116_cur, rx1116_pos, rx1116_tgt) = self."!cursor_start"()
-    rx1116_cur."!cursor_debug"("START ", "infix:sym<%>")
-    .lex unicode:"$\x{a2}", rx1116_cur
+    .local string rx1118_tgt
+    .local int rx1118_pos
+    .local int rx1118_off
+    .local int rx1118_eos
+    .local int rx1118_rep
+    .local pmc rx1118_cur
+    (rx1118_cur, rx1118_pos, rx1118_tgt) = self."!cursor_start"()
+    rx1118_cur."!cursor_debug"("START ", "infix:sym<%>")
+    .lex unicode:"$\x{a2}", rx1118_cur
     .local pmc match
     .lex "$/", match
-    length rx1116_eos, rx1116_tgt
-    gt rx1116_pos, rx1116_eos, rx1116_done
-    set rx1116_off, 0
-    lt rx1116_pos, 2, rx1116_start
-    sub rx1116_off, rx1116_pos, 1
-    substr rx1116_tgt, rx1116_tgt, rx1116_off
-  rx1116_start:
+    length rx1118_eos, rx1118_tgt
+    gt rx1118_pos, rx1118_eos, rx1118_done
+    set rx1118_off, 0
+    lt rx1118_pos, 2, rx1118_start
+    sub rx1118_off, rx1118_pos, 1
+    substr rx1118_tgt, rx1118_tgt, rx1118_off
+  rx1118_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1120_done
-    goto rxscan1120_scan
-  rxscan1120_loop:
-    ($P10) = rx1116_cur."from"()
+    ne $I10, -1, rxscan1122_done
+    goto rxscan1122_scan
+  rxscan1122_loop:
+    ($P10) = rx1118_cur."from"()
     inc $P10
-    set rx1116_pos, $P10
-    ge rx1116_pos, rx1116_eos, rxscan1120_done
-  rxscan1120_scan:
-    set_addr $I10, rxscan1120_loop
-    rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
-  rxscan1120_done:
+    set rx1118_pos, $P10
+    ge rx1118_pos, rx1118_eos, rxscan1122_done
+  rxscan1122_scan:
+    set_addr $I10, rxscan1122_loop
+    rx1118_cur."!mark_push"(0, rx1118_pos, $I10)
+  rxscan1122_done:
 .annotate 'line', 508
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1121_fail
-    rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
+    set_addr $I10, rxcap_1123_fail
+    rx1118_cur."!mark_push"(0, rx1118_pos, $I10)
   # rx literal  "%"
-    add $I11, rx1116_pos, 1
-    gt $I11, rx1116_eos, rx1116_fail
-    sub $I11, rx1116_pos, rx1116_off
-    substr $S10, rx1116_tgt, $I11, 1
-    ne $S10, "%", rx1116_fail
-    add rx1116_pos, 1
-    set_addr $I10, rxcap_1121_fail
-    ($I12, $I11) = rx1116_cur."!mark_peek"($I10)
-    rx1116_cur."!cursor_pos"($I11)
-    ($P10) = rx1116_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1116_pos, "")
-    rx1116_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1118_pos, 1
+    gt $I11, rx1118_eos, rx1118_fail
+    sub $I11, rx1118_pos, rx1118_off
+    substr $S10, rx1118_tgt, $I11, 1
+    ne $S10, "%", rx1118_fail
+    add rx1118_pos, 1
+    set_addr $I10, rxcap_1123_fail
+    ($I12, $I11) = rx1118_cur."!mark_peek"($I10)
+    rx1118_cur."!cursor_pos"($I11)
+    ($P10) = rx1118_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1118_pos, "")
+    rx1118_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1121_done
-  rxcap_1121_fail:
-    goto rx1116_fail
-  rxcap_1121_done:
+    goto rxcap_1123_done
+  rxcap_1123_fail:
+    goto rx1118_fail
+  rxcap_1123_done:
   # rx subrule "O" subtype=capture negate=
-    rx1116_cur."!cursor_pos"(rx1116_pos)
-    $P10 = rx1116_cur."O"("%multiplicative, :pirop<mod>")
-    unless $P10, rx1116_fail
-    rx1116_cur."!mark_push"(0, -1, 0, $P10)
+    rx1118_cur."!cursor_pos"(rx1118_pos)
+    $P10 = rx1118_cur."O"("%multiplicative, :pirop<mod>")
+    unless $P10, rx1118_fail
+    rx1118_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1116_pos = $P10."pos"()
+    rx1118_pos = $P10."pos"()
   # rx pass
-    rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<%>")
-    rx1116_cur."!cursor_debug"("PASS  ", "infix:sym<%>", " at pos=", rx1116_pos)
-    .return (rx1116_cur)
-  rx1116_fail:
+    rx1118_cur."!cursor_pass"(rx1118_pos, "infix:sym<%>")
+    rx1118_cur."!cursor_debug"("PASS  ", "infix:sym<%>", " at pos=", rx1118_pos)
+    .return (rx1118_cur)
+  rx1118_fail:
 .annotate 'line', 446
-    (rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0)
-    lt rx1116_pos, -1, rx1116_done
-    eq rx1116_pos, -1, rx1116_fail
+    (rx1118_rep, rx1118_pos, $I10, $P10) = rx1118_cur."!mark_fail"(0)
+    lt rx1118_pos, -1, rx1118_done
+    eq rx1118_pos, -1, rx1118_fail
     jump $I10
-  rx1116_done:
-    rx1116_cur."!cursor_fail"()
-    rx1116_cur."!cursor_debug"("FAIL  ", "infix:sym<%>")
-    .return (rx1116_cur)
+  rx1118_done:
+    rx1118_cur."!cursor_fail"()
+    rx1118_cur."!cursor_debug"("FAIL  ", "infix:sym<%>")
+    .return (rx1118_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("279_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<%>"  :subid("279_1277356913.9538") :method
 .annotate 'line', 446
-    $P1118 = self."!PREFIX__!subrule"("O", "%")
-    new $P1119, "ResizablePMCArray"
-    push $P1119, $P1118
-    .return ($P1119)
+    $P1120 = self."!PREFIX__!subrule"("O", "%")
+    new $P1121, "ResizablePMCArray"
+    push $P1121, $P1120
+    .return ($P1121)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("280_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<+>"  :subid("280_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1123_tgt
-    .local int rx1123_pos
-    .local int rx1123_off
-    .local int rx1123_eos
-    .local int rx1123_rep
-    .local pmc rx1123_cur
-    (rx1123_cur, rx1123_pos, rx1123_tgt) = self."!cursor_start"()
-    rx1123_cur."!cursor_debug"("START ", "infix:sym<+>")
-    .lex unicode:"$\x{a2}", rx1123_cur
+    .local string rx1125_tgt
+    .local int rx1125_pos
+    .local int rx1125_off
+    .local int rx1125_eos
+    .local int rx1125_rep
+    .local pmc rx1125_cur
+    (rx1125_cur, rx1125_pos, rx1125_tgt) = self."!cursor_start"()
+    rx1125_cur."!cursor_debug"("START ", "infix:sym<+>")
+    .lex unicode:"$\x{a2}", rx1125_cur
     .local pmc match
     .lex "$/", match
-    length rx1123_eos, rx1123_tgt
-    gt rx1123_pos, rx1123_eos, rx1123_done
-    set rx1123_off, 0
-    lt rx1123_pos, 2, rx1123_start
-    sub rx1123_off, rx1123_pos, 1
-    substr rx1123_tgt, rx1123_tgt, rx1123_off
-  rx1123_start:
+    length rx1125_eos, rx1125_tgt
+    gt rx1125_pos, rx1125_eos, rx1125_done
+    set rx1125_off, 0
+    lt rx1125_pos, 2, rx1125_start
+    sub rx1125_off, rx1125_pos, 1
+    substr rx1125_tgt, rx1125_tgt, rx1125_off
+  rx1125_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1127_done
-    goto rxscan1127_scan
-  rxscan1127_loop:
-    ($P10) = rx1123_cur."from"()
+    ne $I10, -1, rxscan1129_done
+    goto rxscan1129_scan
+  rxscan1129_loop:
+    ($P10) = rx1125_cur."from"()
     inc $P10
-    set rx1123_pos, $P10
-    ge rx1123_pos, rx1123_eos, rxscan1127_done
-  rxscan1127_scan:
-    set_addr $I10, rxscan1127_loop
-    rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
-  rxscan1127_done:
+    set rx1125_pos, $P10
+    ge rx1125_pos, rx1125_eos, rxscan1129_done
+  rxscan1129_scan:
+    set_addr $I10, rxscan1129_loop
+    rx1125_cur."!mark_push"(0, rx1125_pos, $I10)
+  rxscan1129_done:
 .annotate 'line', 510
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1128_fail
-    rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
+    set_addr $I10, rxcap_1130_fail
+    rx1125_cur."!mark_push"(0, rx1125_pos, $I10)
   # rx literal  "+"
-    add $I11, rx1123_pos, 1
-    gt $I11, rx1123_eos, rx1123_fail
-    sub $I11, rx1123_pos, rx1123_off
-    substr $S10, rx1123_tgt, $I11, 1
-    ne $S10, "+", rx1123_fail
-    add rx1123_pos, 1
-    set_addr $I10, rxcap_1128_fail
-    ($I12, $I11) = rx1123_cur."!mark_peek"($I10)
-    rx1123_cur."!cursor_pos"($I11)
-    ($P10) = rx1123_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1123_pos, "")
-    rx1123_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1125_pos, 1
+    gt $I11, rx1125_eos, rx1125_fail
+    sub $I11, rx1125_pos, rx1125_off
+    substr $S10, rx1125_tgt, $I11, 1
+    ne $S10, "+", rx1125_fail
+    add rx1125_pos, 1
+    set_addr $I10, rxcap_1130_fail
+    ($I12, $I11) = rx1125_cur."!mark_peek"($I10)
+    rx1125_cur."!cursor_pos"($I11)
+    ($P10) = rx1125_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1125_pos, "")
+    rx1125_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1128_done
-  rxcap_1128_fail:
-    goto rx1123_fail
-  rxcap_1128_done:
+    goto rxcap_1130_done
+  rxcap_1130_fail:
+    goto rx1125_fail
+  rxcap_1130_done:
   # rx subrule "O" subtype=capture negate=
-    rx1123_cur."!cursor_pos"(rx1123_pos)
-    $P10 = rx1123_cur."O"("%additive, :pirop<add>")
-    unless $P10, rx1123_fail
-    rx1123_cur."!mark_push"(0, -1, 0, $P10)
+    rx1125_cur."!cursor_pos"(rx1125_pos)
+    $P10 = rx1125_cur."O"("%additive, :pirop<add>")
+    unless $P10, rx1125_fail
+    rx1125_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1123_pos = $P10."pos"()
+    rx1125_pos = $P10."pos"()
   # rx pass
-    rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+>")
-    rx1123_cur."!cursor_debug"("PASS  ", "infix:sym<+>", " at pos=", rx1123_pos)
-    .return (rx1123_cur)
-  rx1123_fail:
+    rx1125_cur."!cursor_pass"(rx1125_pos, "infix:sym<+>")
+    rx1125_cur."!cursor_debug"("PASS  ", "infix:sym<+>", " at pos=", rx1125_pos)
+    .return (rx1125_cur)
+  rx1125_fail:
 .annotate 'line', 446
-    (rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0)
-    lt rx1123_pos, -1, rx1123_done
-    eq rx1123_pos, -1, rx1123_fail
+    (rx1125_rep, rx1125_pos, $I10, $P10) = rx1125_cur."!mark_fail"(0)
+    lt rx1125_pos, -1, rx1125_done
+    eq rx1125_pos, -1, rx1125_fail
     jump $I10
-  rx1123_done:
-    rx1123_cur."!cursor_fail"()
-    rx1123_cur."!cursor_debug"("FAIL  ", "infix:sym<+>")
-    .return (rx1123_cur)
+  rx1125_done:
+    rx1125_cur."!cursor_fail"()
+    rx1125_cur."!cursor_debug"("FAIL  ", "infix:sym<+>")
+    .return (rx1125_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("281_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<+>"  :subid("281_1277356913.9538") :method
 .annotate 'line', 446
-    $P1125 = self."!PREFIX__!subrule"("O", "+")
-    new $P1126, "ResizablePMCArray"
-    push $P1126, $P1125
-    .return ($P1126)
+    $P1127 = self."!PREFIX__!subrule"("O", "+")
+    new $P1128, "ResizablePMCArray"
+    push $P1128, $P1127
+    .return ($P1128)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("282_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<->"  :subid("282_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1130_tgt
-    .local int rx1130_pos
-    .local int rx1130_off
-    .local int rx1130_eos
-    .local int rx1130_rep
-    .local pmc rx1130_cur
-    (rx1130_cur, rx1130_pos, rx1130_tgt) = self."!cursor_start"()
-    rx1130_cur."!cursor_debug"("START ", "infix:sym<->")
-    .lex unicode:"$\x{a2}", rx1130_cur
+    .local string rx1132_tgt
+    .local int rx1132_pos
+    .local int rx1132_off
+    .local int rx1132_eos
+    .local int rx1132_rep
+    .local pmc rx1132_cur
+    (rx1132_cur, rx1132_pos, rx1132_tgt) = self."!cursor_start"()
+    rx1132_cur."!cursor_debug"("START ", "infix:sym<->")
+    .lex unicode:"$\x{a2}", rx1132_cur
     .local pmc match
     .lex "$/", match
-    length rx1130_eos, rx1130_tgt
-    gt rx1130_pos, rx1130_eos, rx1130_done
-    set rx1130_off, 0
-    lt rx1130_pos, 2, rx1130_start
-    sub rx1130_off, rx1130_pos, 1
-    substr rx1130_tgt, rx1130_tgt, rx1130_off
-  rx1130_start:
+    length rx1132_eos, rx1132_tgt
+    gt rx1132_pos, rx1132_eos, rx1132_done
+    set rx1132_off, 0
+    lt rx1132_pos, 2, rx1132_start
+    sub rx1132_off, rx1132_pos, 1
+    substr rx1132_tgt, rx1132_tgt, rx1132_off
+  rx1132_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1134_done
-    goto rxscan1134_scan
-  rxscan1134_loop:
-    ($P10) = rx1130_cur."from"()
+    ne $I10, -1, rxscan1136_done
+    goto rxscan1136_scan
+  rxscan1136_loop:
+    ($P10) = rx1132_cur."from"()
     inc $P10
-    set rx1130_pos, $P10
-    ge rx1130_pos, rx1130_eos, rxscan1134_done
-  rxscan1134_scan:
-    set_addr $I10, rxscan1134_loop
-    rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
-  rxscan1134_done:
+    set rx1132_pos, $P10
+    ge rx1132_pos, rx1132_eos, rxscan1136_done
+  rxscan1136_scan:
+    set_addr $I10, rxscan1136_loop
+    rx1132_cur."!mark_push"(0, rx1132_pos, $I10)
+  rxscan1136_done:
 .annotate 'line', 511
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1135_fail
-    rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
+    set_addr $I10, rxcap_1137_fail
+    rx1132_cur."!mark_push"(0, rx1132_pos, $I10)
   # rx literal  "-"
-    add $I11, rx1130_pos, 1
-    gt $I11, rx1130_eos, rx1130_fail
-    sub $I11, rx1130_pos, rx1130_off
-    substr $S10, rx1130_tgt, $I11, 1
-    ne $S10, "-", rx1130_fail
-    add rx1130_pos, 1
-    set_addr $I10, rxcap_1135_fail
-    ($I12, $I11) = rx1130_cur."!mark_peek"($I10)
-    rx1130_cur."!cursor_pos"($I11)
-    ($P10) = rx1130_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1130_pos, "")
-    rx1130_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1132_pos, 1
+    gt $I11, rx1132_eos, rx1132_fail
+    sub $I11, rx1132_pos, rx1132_off
+    substr $S10, rx1132_tgt, $I11, 1
+    ne $S10, "-", rx1132_fail
+    add rx1132_pos, 1
+    set_addr $I10, rxcap_1137_fail
+    ($I12, $I11) = rx1132_cur."!mark_peek"($I10)
+    rx1132_cur."!cursor_pos"($I11)
+    ($P10) = rx1132_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1132_pos, "")
+    rx1132_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1135_done
-  rxcap_1135_fail:
-    goto rx1130_fail
-  rxcap_1135_done:
+    goto rxcap_1137_done
+  rxcap_1137_fail:
+    goto rx1132_fail
+  rxcap_1137_done:
   # rx subrule "O" subtype=capture negate=
-    rx1130_cur."!cursor_pos"(rx1130_pos)
-    $P10 = rx1130_cur."O"("%additive, :pirop<sub>")
-    unless $P10, rx1130_fail
-    rx1130_cur."!mark_push"(0, -1, 0, $P10)
+    rx1132_cur."!cursor_pos"(rx1132_pos)
+    $P10 = rx1132_cur."O"("%additive, :pirop<sub>")
+    unless $P10, rx1132_fail
+    rx1132_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1130_pos = $P10."pos"()
+    rx1132_pos = $P10."pos"()
   # rx pass
-    rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<->")
-    rx1130_cur."!cursor_debug"("PASS  ", "infix:sym<->", " at pos=", rx1130_pos)
-    .return (rx1130_cur)
-  rx1130_fail:
+    rx1132_cur."!cursor_pass"(rx1132_pos, "infix:sym<->")
+    rx1132_cur."!cursor_debug"("PASS  ", "infix:sym<->", " at pos=", rx1132_pos)
+    .return (rx1132_cur)
+  rx1132_fail:
 .annotate 'line', 446
-    (rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0)
-    lt rx1130_pos, -1, rx1130_done
-    eq rx1130_pos, -1, rx1130_fail
+    (rx1132_rep, rx1132_pos, $I10, $P10) = rx1132_cur."!mark_fail"(0)
+    lt rx1132_pos, -1, rx1132_done
+    eq rx1132_pos, -1, rx1132_fail
     jump $I10
-  rx1130_done:
-    rx1130_cur."!cursor_fail"()
-    rx1130_cur."!cursor_debug"("FAIL  ", "infix:sym<->")
-    .return (rx1130_cur)
+  rx1132_done:
+    rx1132_cur."!cursor_fail"()
+    rx1132_cur."!cursor_debug"("FAIL  ", "infix:sym<->")
+    .return (rx1132_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("283_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<->"  :subid("283_1277356913.9538") :method
 .annotate 'line', 446
-    $P1132 = self."!PREFIX__!subrule"("O", "-")
-    new $P1133, "ResizablePMCArray"
-    push $P1133, $P1132
-    .return ($P1133)
+    $P1134 = self."!PREFIX__!subrule"("O", "-")
+    new $P1135, "ResizablePMCArray"
+    push $P1135, $P1134
+    .return ($P1135)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("284_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<~>"  :subid("284_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1137_tgt
-    .local int rx1137_pos
-    .local int rx1137_off
-    .local int rx1137_eos
-    .local int rx1137_rep
-    .local pmc rx1137_cur
-    (rx1137_cur, rx1137_pos, rx1137_tgt) = self."!cursor_start"()
-    rx1137_cur."!cursor_debug"("START ", "infix:sym<~>")
-    .lex unicode:"$\x{a2}", rx1137_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1137_eos, rx1137_tgt
-    gt rx1137_pos, rx1137_eos, rx1137_done
-    set rx1137_off, 0
-    lt rx1137_pos, 2, rx1137_start
-    sub rx1137_off, rx1137_pos, 1
-    substr rx1137_tgt, rx1137_tgt, rx1137_off
-  rx1137_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1141_done
-    goto rxscan1141_scan
-  rxscan1141_loop:
-    ($P10) = rx1137_cur."from"()
-    inc $P10
-    set rx1137_pos, $P10
-    ge rx1137_pos, rx1137_eos, rxscan1141_done
-  rxscan1141_scan:
-    set_addr $I10, rxscan1141_loop
-    rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
-  rxscan1141_done:
+    .local string rx1139_tgt
+    .local int rx1139_pos
+    .local int rx1139_off
+    .local int rx1139_eos
+    .local int rx1139_rep
+    .local pmc rx1139_cur
+    (rx1139_cur, rx1139_pos, rx1139_tgt) = self."!cursor_start"()
+    rx1139_cur."!cursor_debug"("START ", "infix:sym<~>")
+    .lex unicode:"$\x{a2}", rx1139_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1139_eos, rx1139_tgt
+    gt rx1139_pos, rx1139_eos, rx1139_done
+    set rx1139_off, 0
+    lt rx1139_pos, 2, rx1139_start
+    sub rx1139_off, rx1139_pos, 1
+    substr rx1139_tgt, rx1139_tgt, rx1139_off
+  rx1139_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1143_done
+    goto rxscan1143_scan
+  rxscan1143_loop:
+    ($P10) = rx1139_cur."from"()
+    inc $P10
+    set rx1139_pos, $P10
+    ge rx1139_pos, rx1139_eos, rxscan1143_done
+  rxscan1143_scan:
+    set_addr $I10, rxscan1143_loop
+    rx1139_cur."!mark_push"(0, rx1139_pos, $I10)
+  rxscan1143_done:
 .annotate 'line', 513
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1142_fail
-    rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
+    set_addr $I10, rxcap_1144_fail
+    rx1139_cur."!mark_push"(0, rx1139_pos, $I10)
   # rx literal  "~"
-    add $I11, rx1137_pos, 1
-    gt $I11, rx1137_eos, rx1137_fail
-    sub $I11, rx1137_pos, rx1137_off
-    substr $S10, rx1137_tgt, $I11, 1
-    ne $S10, "~", rx1137_fail
-    add rx1137_pos, 1
-    set_addr $I10, rxcap_1142_fail
-    ($I12, $I11) = rx1137_cur."!mark_peek"($I10)
-    rx1137_cur."!cursor_pos"($I11)
-    ($P10) = rx1137_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1137_pos, "")
-    rx1137_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1139_pos, 1
+    gt $I11, rx1139_eos, rx1139_fail
+    sub $I11, rx1139_pos, rx1139_off
+    substr $S10, rx1139_tgt, $I11, 1
+    ne $S10, "~", rx1139_fail
+    add rx1139_pos, 1
+    set_addr $I10, rxcap_1144_fail
+    ($I12, $I11) = rx1139_cur."!mark_peek"($I10)
+    rx1139_cur."!cursor_pos"($I11)
+    ($P10) = rx1139_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1139_pos, "")
+    rx1139_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1142_done
-  rxcap_1142_fail:
-    goto rx1137_fail
-  rxcap_1142_done:
+    goto rxcap_1144_done
+  rxcap_1144_fail:
+    goto rx1139_fail
+  rxcap_1144_done:
   # rx subrule "O" subtype=capture negate=
-    rx1137_cur."!cursor_pos"(rx1137_pos)
-    $P10 = rx1137_cur."O"("%concatenation , :pirop<concat>")
-    unless $P10, rx1137_fail
-    rx1137_cur."!mark_push"(0, -1, 0, $P10)
+    rx1139_cur."!cursor_pos"(rx1139_pos)
+    $P10 = rx1139_cur."O"("%concatenation , :pirop<concat>")
+    unless $P10, rx1139_fail
+    rx1139_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1137_pos = $P10."pos"()
+    rx1139_pos = $P10."pos"()
   # rx pass
-    rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>")
-    rx1137_cur."!cursor_debug"("PASS  ", "infix:sym<~>", " at pos=", rx1137_pos)
-    .return (rx1137_cur)
-  rx1137_fail:
+    rx1139_cur."!cursor_pass"(rx1139_pos, "infix:sym<~>")
+    rx1139_cur."!cursor_debug"("PASS  ", "infix:sym<~>", " at pos=", rx1139_pos)
+    .return (rx1139_cur)
+  rx1139_fail:
 .annotate 'line', 446
-    (rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0)
-    lt rx1137_pos, -1, rx1137_done
-    eq rx1137_pos, -1, rx1137_fail
+    (rx1139_rep, rx1139_pos, $I10, $P10) = rx1139_cur."!mark_fail"(0)
+    lt rx1139_pos, -1, rx1139_done
+    eq rx1139_pos, -1, rx1139_fail
     jump $I10
-  rx1137_done:
-    rx1137_cur."!cursor_fail"()
-    rx1137_cur."!cursor_debug"("FAIL  ", "infix:sym<~>")
-    .return (rx1137_cur)
+  rx1139_done:
+    rx1139_cur."!cursor_fail"()
+    rx1139_cur."!cursor_debug"("FAIL  ", "infix:sym<~>")
+    .return (rx1139_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("285_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<~>"  :subid("285_1277356913.9538") :method
 .annotate 'line', 446
-    $P1139 = self."!PREFIX__!subrule"("O", "~")
-    new $P1140, "ResizablePMCArray"
-    push $P1140, $P1139
-    .return ($P1140)
+    $P1141 = self."!PREFIX__!subrule"("O", "~")
+    new $P1142, "ResizablePMCArray"
+    push $P1142, $P1141
+    .return ($P1142)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("286_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<==>"  :subid("286_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1144_tgt
-    .local int rx1144_pos
-    .local int rx1144_off
-    .local int rx1144_eos
-    .local int rx1144_rep
-    .local pmc rx1144_cur
-    (rx1144_cur, rx1144_pos, rx1144_tgt) = self."!cursor_start"()
-    rx1144_cur."!cursor_debug"("START ", "infix:sym<==>")
-    .lex unicode:"$\x{a2}", rx1144_cur
+    .local string rx1146_tgt
+    .local int rx1146_pos
+    .local int rx1146_off
+    .local int rx1146_eos
+    .local int rx1146_rep
+    .local pmc rx1146_cur
+    (rx1146_cur, rx1146_pos, rx1146_tgt) = self."!cursor_start"()
+    rx1146_cur."!cursor_debug"("START ", "infix:sym<==>")
+    .lex unicode:"$\x{a2}", rx1146_cur
     .local pmc match
     .lex "$/", match
-    length rx1144_eos, rx1144_tgt
-    gt rx1144_pos, rx1144_eos, rx1144_done
-    set rx1144_off, 0
-    lt rx1144_pos, 2, rx1144_start
-    sub rx1144_off, rx1144_pos, 1
-    substr rx1144_tgt, rx1144_tgt, rx1144_off
-  rx1144_start:
+    length rx1146_eos, rx1146_tgt
+    gt rx1146_pos, rx1146_eos, rx1146_done
+    set rx1146_off, 0
+    lt rx1146_pos, 2, rx1146_start
+    sub rx1146_off, rx1146_pos, 1
+    substr rx1146_tgt, rx1146_tgt, rx1146_off
+  rx1146_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1148_done
-    goto rxscan1148_scan
-  rxscan1148_loop:
-    ($P10) = rx1144_cur."from"()
+    ne $I10, -1, rxscan1150_done
+    goto rxscan1150_scan
+  rxscan1150_loop:
+    ($P10) = rx1146_cur."from"()
     inc $P10
-    set rx1144_pos, $P10
-    ge rx1144_pos, rx1144_eos, rxscan1148_done
-  rxscan1148_scan:
-    set_addr $I10, rxscan1148_loop
-    rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
-  rxscan1148_done:
+    set rx1146_pos, $P10
+    ge rx1146_pos, rx1146_eos, rxscan1150_done
+  rxscan1150_scan:
+    set_addr $I10, rxscan1150_loop
+    rx1146_cur."!mark_push"(0, rx1146_pos, $I10)
+  rxscan1150_done:
 .annotate 'line', 515
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1149_fail
-    rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
+    set_addr $I10, rxcap_1151_fail
+    rx1146_cur."!mark_push"(0, rx1146_pos, $I10)
   # rx literal  "=="
-    add $I11, rx1144_pos, 2
-    gt $I11, rx1144_eos, rx1144_fail
-    sub $I11, rx1144_pos, rx1144_off
-    substr $S10, rx1144_tgt, $I11, 2
-    ne $S10, "==", rx1144_fail
-    add rx1144_pos, 2
-    set_addr $I10, rxcap_1149_fail
-    ($I12, $I11) = rx1144_cur."!mark_peek"($I10)
-    rx1144_cur."!cursor_pos"($I11)
-    ($P10) = rx1144_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1144_pos, "")
-    rx1144_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1146_pos, 2
+    gt $I11, rx1146_eos, rx1146_fail
+    sub $I11, rx1146_pos, rx1146_off
+    substr $S10, rx1146_tgt, $I11, 2
+    ne $S10, "==", rx1146_fail
+    add rx1146_pos, 2
+    set_addr $I10, rxcap_1151_fail
+    ($I12, $I11) = rx1146_cur."!mark_peek"($I10)
+    rx1146_cur."!cursor_pos"($I11)
+    ($P10) = rx1146_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1146_pos, "")
+    rx1146_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1149_done
-  rxcap_1149_fail:
-    goto rx1144_fail
-  rxcap_1149_done:
+    goto rxcap_1151_done
+  rxcap_1151_fail:
+    goto rx1146_fail
+  rxcap_1151_done:
   # rx subrule "O" subtype=capture negate=
-    rx1144_cur."!cursor_pos"(rx1144_pos)
-    $P10 = rx1144_cur."O"("%relational, :pirop<iseq INn>")
-    unless $P10, rx1144_fail
-    rx1144_cur."!mark_push"(0, -1, 0, $P10)
+    rx1146_cur."!cursor_pos"(rx1146_pos)
+    $P10 = rx1146_cur."O"("%relational, :pirop<iseq INn>")
+    unless $P10, rx1146_fail
+    rx1146_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1144_pos = $P10."pos"()
+    rx1146_pos = $P10."pos"()
   # rx pass
-    rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>")
-    rx1144_cur."!cursor_debug"("PASS  ", "infix:sym<==>", " at pos=", rx1144_pos)
-    .return (rx1144_cur)
-  rx1144_fail:
+    rx1146_cur."!cursor_pass"(rx1146_pos, "infix:sym<==>")
+    rx1146_cur."!cursor_debug"("PASS  ", "infix:sym<==>", " at pos=", rx1146_pos)
+    .return (rx1146_cur)
+  rx1146_fail:
 .annotate 'line', 446
-    (rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0)
-    lt rx1144_pos, -1, rx1144_done
-    eq rx1144_pos, -1, rx1144_fail
+    (rx1146_rep, rx1146_pos, $I10, $P10) = rx1146_cur."!mark_fail"(0)
+    lt rx1146_pos, -1, rx1146_done
+    eq rx1146_pos, -1, rx1146_fail
     jump $I10
-  rx1144_done:
-    rx1144_cur."!cursor_fail"()
-    rx1144_cur."!cursor_debug"("FAIL  ", "infix:sym<==>")
-    .return (rx1144_cur)
+  rx1146_done:
+    rx1146_cur."!cursor_fail"()
+    rx1146_cur."!cursor_debug"("FAIL  ", "infix:sym<==>")
+    .return (rx1146_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("287_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<==>"  :subid("287_1277356913.9538") :method
 .annotate 'line', 446
-    $P1146 = self."!PREFIX__!subrule"("O", "==")
-    new $P1147, "ResizablePMCArray"
-    push $P1147, $P1146
-    .return ($P1147)
+    $P1148 = self."!PREFIX__!subrule"("O", "==")
+    new $P1149, "ResizablePMCArray"
+    push $P1149, $P1148
+    .return ($P1149)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("288_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<!=>"  :subid("288_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1151_tgt
-    .local int rx1151_pos
-    .local int rx1151_off
-    .local int rx1151_eos
-    .local int rx1151_rep
-    .local pmc rx1151_cur
-    (rx1151_cur, rx1151_pos, rx1151_tgt) = self."!cursor_start"()
-    rx1151_cur."!cursor_debug"("START ", "infix:sym<!=>")
-    .lex unicode:"$\x{a2}", rx1151_cur
+    .local string rx1153_tgt
+    .local int rx1153_pos
+    .local int rx1153_off
+    .local int rx1153_eos
+    .local int rx1153_rep
+    .local pmc rx1153_cur
+    (rx1153_cur, rx1153_pos, rx1153_tgt) = self."!cursor_start"()
+    rx1153_cur."!cursor_debug"("START ", "infix:sym<!=>")
+    .lex unicode:"$\x{a2}", rx1153_cur
     .local pmc match
     .lex "$/", match
-    length rx1151_eos, rx1151_tgt
-    gt rx1151_pos, rx1151_eos, rx1151_done
-    set rx1151_off, 0
-    lt rx1151_pos, 2, rx1151_start
-    sub rx1151_off, rx1151_pos, 1
-    substr rx1151_tgt, rx1151_tgt, rx1151_off
-  rx1151_start:
+    length rx1153_eos, rx1153_tgt
+    gt rx1153_pos, rx1153_eos, rx1153_done
+    set rx1153_off, 0
+    lt rx1153_pos, 2, rx1153_start
+    sub rx1153_off, rx1153_pos, 1
+    substr rx1153_tgt, rx1153_tgt, rx1153_off
+  rx1153_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1155_done
-    goto rxscan1155_scan
-  rxscan1155_loop:
-    ($P10) = rx1151_cur."from"()
+    ne $I10, -1, rxscan1157_done
+    goto rxscan1157_scan
+  rxscan1157_loop:
+    ($P10) = rx1153_cur."from"()
     inc $P10
-    set rx1151_pos, $P10
-    ge rx1151_pos, rx1151_eos, rxscan1155_done
-  rxscan1155_scan:
-    set_addr $I10, rxscan1155_loop
-    rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
-  rxscan1155_done:
+    set rx1153_pos, $P10
+    ge rx1153_pos, rx1153_eos, rxscan1157_done
+  rxscan1157_scan:
+    set_addr $I10, rxscan1157_loop
+    rx1153_cur."!mark_push"(0, rx1153_pos, $I10)
+  rxscan1157_done:
 .annotate 'line', 516
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1156_fail
-    rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
+    set_addr $I10, rxcap_1158_fail
+    rx1153_cur."!mark_push"(0, rx1153_pos, $I10)
   # rx literal  "!="
-    add $I11, rx1151_pos, 2
-    gt $I11, rx1151_eos, rx1151_fail
-    sub $I11, rx1151_pos, rx1151_off
-    substr $S10, rx1151_tgt, $I11, 2
-    ne $S10, "!=", rx1151_fail
-    add rx1151_pos, 2
-    set_addr $I10, rxcap_1156_fail
-    ($I12, $I11) = rx1151_cur."!mark_peek"($I10)
-    rx1151_cur."!cursor_pos"($I11)
-    ($P10) = rx1151_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1151_pos, "")
-    rx1151_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1153_pos, 2
+    gt $I11, rx1153_eos, rx1153_fail
+    sub $I11, rx1153_pos, rx1153_off
+    substr $S10, rx1153_tgt, $I11, 2
+    ne $S10, "!=", rx1153_fail
+    add rx1153_pos, 2
+    set_addr $I10, rxcap_1158_fail
+    ($I12, $I11) = rx1153_cur."!mark_peek"($I10)
+    rx1153_cur."!cursor_pos"($I11)
+    ($P10) = rx1153_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1153_pos, "")
+    rx1153_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1156_done
-  rxcap_1156_fail:
-    goto rx1151_fail
-  rxcap_1156_done:
+    goto rxcap_1158_done
+  rxcap_1158_fail:
+    goto rx1153_fail
+  rxcap_1158_done:
   # rx subrule "O" subtype=capture negate=
-    rx1151_cur."!cursor_pos"(rx1151_pos)
-    $P10 = rx1151_cur."O"("%relational, :pirop<isne INn>")
-    unless $P10, rx1151_fail
-    rx1151_cur."!mark_push"(0, -1, 0, $P10)
+    rx1153_cur."!cursor_pos"(rx1153_pos)
+    $P10 = rx1153_cur."O"("%relational, :pirop<isne INn>")
+    unless $P10, rx1153_fail
+    rx1153_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1151_pos = $P10."pos"()
+    rx1153_pos = $P10."pos"()
   # rx pass
-    rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym<!=>")
-    rx1151_cur."!cursor_debug"("PASS  ", "infix:sym<!=>", " at pos=", rx1151_pos)
-    .return (rx1151_cur)
-  rx1151_fail:
+    rx1153_cur."!cursor_pass"(rx1153_pos, "infix:sym<!=>")
+    rx1153_cur."!cursor_debug"("PASS  ", "infix:sym<!=>", " at pos=", rx1153_pos)
+    .return (rx1153_cur)
+  rx1153_fail:
 .annotate 'line', 446
-    (rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0)
-    lt rx1151_pos, -1, rx1151_done
-    eq rx1151_pos, -1, rx1151_fail
+    (rx1153_rep, rx1153_pos, $I10, $P10) = rx1153_cur."!mark_fail"(0)
+    lt rx1153_pos, -1, rx1153_done
+    eq rx1153_pos, -1, rx1153_fail
     jump $I10
-  rx1151_done:
-    rx1151_cur."!cursor_fail"()
-    rx1151_cur."!cursor_debug"("FAIL  ", "infix:sym<!=>")
-    .return (rx1151_cur)
+  rx1153_done:
+    rx1153_cur."!cursor_fail"()
+    rx1153_cur."!cursor_debug"("FAIL  ", "infix:sym<!=>")
+    .return (rx1153_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("289_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<!=>"  :subid("289_1277356913.9538") :method
 .annotate 'line', 446
-    $P1153 = self."!PREFIX__!subrule"("O", "!=")
-    new $P1154, "ResizablePMCArray"
-    push $P1154, $P1153
-    .return ($P1154)
+    $P1155 = self."!PREFIX__!subrule"("O", "!=")
+    new $P1156, "ResizablePMCArray"
+    push $P1156, $P1155
+    .return ($P1156)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("290_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<<=>"  :subid("290_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1158_tgt
-    .local int rx1158_pos
-    .local int rx1158_off
-    .local int rx1158_eos
-    .local int rx1158_rep
-    .local pmc rx1158_cur
-    (rx1158_cur, rx1158_pos, rx1158_tgt) = self."!cursor_start"()
-    rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>")
-    .lex unicode:"$\x{a2}", rx1158_cur
+    .local string rx1160_tgt
+    .local int rx1160_pos
+    .local int rx1160_off
+    .local int rx1160_eos
+    .local int rx1160_rep
+    .local pmc rx1160_cur
+    (rx1160_cur, rx1160_pos, rx1160_tgt) = self."!cursor_start"()
+    rx1160_cur."!cursor_debug"("START ", "infix:sym<<=>")
+    .lex unicode:"$\x{a2}", rx1160_cur
     .local pmc match
     .lex "$/", match
-    length rx1158_eos, rx1158_tgt
-    gt rx1158_pos, rx1158_eos, rx1158_done
-    set rx1158_off, 0
-    lt rx1158_pos, 2, rx1158_start
-    sub rx1158_off, rx1158_pos, 1
-    substr rx1158_tgt, rx1158_tgt, rx1158_off
-  rx1158_start:
+    length rx1160_eos, rx1160_tgt
+    gt rx1160_pos, rx1160_eos, rx1160_done
+    set rx1160_off, 0
+    lt rx1160_pos, 2, rx1160_start
+    sub rx1160_off, rx1160_pos, 1
+    substr rx1160_tgt, rx1160_tgt, rx1160_off
+  rx1160_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1162_done
-    goto rxscan1162_scan
-  rxscan1162_loop:
-    ($P10) = rx1158_cur."from"()
+    ne $I10, -1, rxscan1164_done
+    goto rxscan1164_scan
+  rxscan1164_loop:
+    ($P10) = rx1160_cur."from"()
     inc $P10
-    set rx1158_pos, $P10
-    ge rx1158_pos, rx1158_eos, rxscan1162_done
-  rxscan1162_scan:
-    set_addr $I10, rxscan1162_loop
-    rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
-  rxscan1162_done:
+    set rx1160_pos, $P10
+    ge rx1160_pos, rx1160_eos, rxscan1164_done
+  rxscan1164_scan:
+    set_addr $I10, rxscan1164_loop
+    rx1160_cur."!mark_push"(0, rx1160_pos, $I10)
+  rxscan1164_done:
 .annotate 'line', 517
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1163_fail
-    rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
+    set_addr $I10, rxcap_1165_fail
+    rx1160_cur."!mark_push"(0, rx1160_pos, $I10)
   # rx literal  "<="
-    add $I11, rx1158_pos, 2
-    gt $I11, rx1158_eos, rx1158_fail
-    sub $I11, rx1158_pos, rx1158_off
-    substr $S10, rx1158_tgt, $I11, 2
-    ne $S10, "<=", rx1158_fail
-    add rx1158_pos, 2
-    set_addr $I10, rxcap_1163_fail
-    ($I12, $I11) = rx1158_cur."!mark_peek"($I10)
-    rx1158_cur."!cursor_pos"($I11)
-    ($P10) = rx1158_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1158_pos, "")
-    rx1158_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1160_pos, 2
+    gt $I11, rx1160_eos, rx1160_fail
+    sub $I11, rx1160_pos, rx1160_off
+    substr $S10, rx1160_tgt, $I11, 2
+    ne $S10, "<=", rx1160_fail
+    add rx1160_pos, 2
+    set_addr $I10, rxcap_1165_fail
+    ($I12, $I11) = rx1160_cur."!mark_peek"($I10)
+    rx1160_cur."!cursor_pos"($I11)
+    ($P10) = rx1160_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1160_pos, "")
+    rx1160_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1163_done
-  rxcap_1163_fail:
-    goto rx1158_fail
-  rxcap_1163_done:
+    goto rxcap_1165_done
+  rxcap_1165_fail:
+    goto rx1160_fail
+  rxcap_1165_done:
   # rx subrule "O" subtype=capture negate=
-    rx1158_cur."!cursor_pos"(rx1158_pos)
-    $P10 = rx1158_cur."O"("%relational, :pirop<isle INn>")
-    unless $P10, rx1158_fail
-    rx1158_cur."!mark_push"(0, -1, 0, $P10)
+    rx1160_cur."!cursor_pos"(rx1160_pos)
+    $P10 = rx1160_cur."O"("%relational, :pirop<isle INn>")
+    unless $P10, rx1160_fail
+    rx1160_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1158_pos = $P10."pos"()
+    rx1160_pos = $P10."pos"()
   # rx pass
-    rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>")
-    rx1158_cur."!cursor_debug"("PASS  ", "infix:sym<<=>", " at pos=", rx1158_pos)
-    .return (rx1158_cur)
-  rx1158_fail:
+    rx1160_cur."!cursor_pass"(rx1160_pos, "infix:sym<<=>")
+    rx1160_cur."!cursor_debug"("PASS  ", "infix:sym<<=>", " at pos=", rx1160_pos)
+    .return (rx1160_cur)
+  rx1160_fail:
 .annotate 'line', 446
-    (rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0)
-    lt rx1158_pos, -1, rx1158_done
-    eq rx1158_pos, -1, rx1158_fail
+    (rx1160_rep, rx1160_pos, $I10, $P10) = rx1160_cur."!mark_fail"(0)
+    lt rx1160_pos, -1, rx1160_done
+    eq rx1160_pos, -1, rx1160_fail
     jump $I10
-  rx1158_done:
-    rx1158_cur."!cursor_fail"()
-    rx1158_cur."!cursor_debug"("FAIL  ", "infix:sym<<=>")
-    .return (rx1158_cur)
+  rx1160_done:
+    rx1160_cur."!cursor_fail"()
+    rx1160_cur."!cursor_debug"("FAIL  ", "infix:sym<<=>")
+    .return (rx1160_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("291_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<<=>"  :subid("291_1277356913.9538") :method
 .annotate 'line', 446
-    $P1160 = self."!PREFIX__!subrule"("O", "<=")
-    new $P1161, "ResizablePMCArray"
-    push $P1161, $P1160
-    .return ($P1161)
+    $P1162 = self."!PREFIX__!subrule"("O", "<=")
+    new $P1163, "ResizablePMCArray"
+    push $P1163, $P1162
+    .return ($P1163)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("292_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<>=>"  :subid("292_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1165_tgt
-    .local int rx1165_pos
-    .local int rx1165_off
-    .local int rx1165_eos
-    .local int rx1165_rep
-    .local pmc rx1165_cur
-    (rx1165_cur, rx1165_pos, rx1165_tgt) = self."!cursor_start"()
-    rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>")
-    .lex unicode:"$\x{a2}", rx1165_cur
+    .local string rx1167_tgt
+    .local int rx1167_pos
+    .local int rx1167_off
+    .local int rx1167_eos
+    .local int rx1167_rep
+    .local pmc rx1167_cur
+    (rx1167_cur, rx1167_pos, rx1167_tgt) = self."!cursor_start"()
+    rx1167_cur."!cursor_debug"("START ", "infix:sym<>=>")
+    .lex unicode:"$\x{a2}", rx1167_cur
     .local pmc match
     .lex "$/", match
-    length rx1165_eos, rx1165_tgt
-    gt rx1165_pos, rx1165_eos, rx1165_done
-    set rx1165_off, 0
-    lt rx1165_pos, 2, rx1165_start
-    sub rx1165_off, rx1165_pos, 1
-    substr rx1165_tgt, rx1165_tgt, rx1165_off
-  rx1165_start:
+    length rx1167_eos, rx1167_tgt
+    gt rx1167_pos, rx1167_eos, rx1167_done
+    set rx1167_off, 0
+    lt rx1167_pos, 2, rx1167_start
+    sub rx1167_off, rx1167_pos, 1
+    substr rx1167_tgt, rx1167_tgt, rx1167_off
+  rx1167_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1169_done
-    goto rxscan1169_scan
-  rxscan1169_loop:
-    ($P10) = rx1165_cur."from"()
+    ne $I10, -1, rxscan1171_done
+    goto rxscan1171_scan
+  rxscan1171_loop:
+    ($P10) = rx1167_cur."from"()
     inc $P10
-    set rx1165_pos, $P10
-    ge rx1165_pos, rx1165_eos, rxscan1169_done
-  rxscan1169_scan:
-    set_addr $I10, rxscan1169_loop
-    rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
-  rxscan1169_done:
+    set rx1167_pos, $P10
+    ge rx1167_pos, rx1167_eos, rxscan1171_done
+  rxscan1171_scan:
+    set_addr $I10, rxscan1171_loop
+    rx1167_cur."!mark_push"(0, rx1167_pos, $I10)
+  rxscan1171_done:
 .annotate 'line', 518
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1170_fail
-    rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
+    set_addr $I10, rxcap_1172_fail
+    rx1167_cur."!mark_push"(0, rx1167_pos, $I10)
   # rx literal  ">="
-    add $I11, rx1165_pos, 2
-    gt $I11, rx1165_eos, rx1165_fail
-    sub $I11, rx1165_pos, rx1165_off
-    substr $S10, rx1165_tgt, $I11, 2
-    ne $S10, ">=", rx1165_fail
-    add rx1165_pos, 2
-    set_addr $I10, rxcap_1170_fail
-    ($I12, $I11) = rx1165_cur."!mark_peek"($I10)
-    rx1165_cur."!cursor_pos"($I11)
-    ($P10) = rx1165_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1165_pos, "")
-    rx1165_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1167_pos, 2
+    gt $I11, rx1167_eos, rx1167_fail
+    sub $I11, rx1167_pos, rx1167_off
+    substr $S10, rx1167_tgt, $I11, 2
+    ne $S10, ">=", rx1167_fail
+    add rx1167_pos, 2
+    set_addr $I10, rxcap_1172_fail
+    ($I12, $I11) = rx1167_cur."!mark_peek"($I10)
+    rx1167_cur."!cursor_pos"($I11)
+    ($P10) = rx1167_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1167_pos, "")
+    rx1167_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1170_done
-  rxcap_1170_fail:
-    goto rx1165_fail
-  rxcap_1170_done:
+    goto rxcap_1172_done
+  rxcap_1172_fail:
+    goto rx1167_fail
+  rxcap_1172_done:
   # rx subrule "O" subtype=capture negate=
-    rx1165_cur."!cursor_pos"(rx1165_pos)
-    $P10 = rx1165_cur."O"("%relational, :pirop<isge INn>")
-    unless $P10, rx1165_fail
-    rx1165_cur."!mark_push"(0, -1, 0, $P10)
+    rx1167_cur."!cursor_pos"(rx1167_pos)
+    $P10 = rx1167_cur."O"("%relational, :pirop<isge INn>")
+    unless $P10, rx1167_fail
+    rx1167_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1165_pos = $P10."pos"()
+    rx1167_pos = $P10."pos"()
   # rx pass
-    rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>")
-    rx1165_cur."!cursor_debug"("PASS  ", "infix:sym<>=>", " at pos=", rx1165_pos)
-    .return (rx1165_cur)
-  rx1165_fail:
+    rx1167_cur."!cursor_pass"(rx1167_pos, "infix:sym<>=>")
+    rx1167_cur."!cursor_debug"("PASS  ", "infix:sym<>=>", " at pos=", rx1167_pos)
+    .return (rx1167_cur)
+  rx1167_fail:
 .annotate 'line', 446
-    (rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0)
-    lt rx1165_pos, -1, rx1165_done
-    eq rx1165_pos, -1, rx1165_fail
+    (rx1167_rep, rx1167_pos, $I10, $P10) = rx1167_cur."!mark_fail"(0)
+    lt rx1167_pos, -1, rx1167_done
+    eq rx1167_pos, -1, rx1167_fail
     jump $I10
-  rx1165_done:
-    rx1165_cur."!cursor_fail"()
-    rx1165_cur."!cursor_debug"("FAIL  ", "infix:sym<>=>")
-    .return (rx1165_cur)
+  rx1167_done:
+    rx1167_cur."!cursor_fail"()
+    rx1167_cur."!cursor_debug"("FAIL  ", "infix:sym<>=>")
+    .return (rx1167_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("293_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<>=>"  :subid("293_1277356913.9538") :method
 .annotate 'line', 446
-    $P1167 = self."!PREFIX__!subrule"("O", ">=")
-    new $P1168, "ResizablePMCArray"
-    push $P1168, $P1167
-    .return ($P1168)
+    $P1169 = self."!PREFIX__!subrule"("O", ">=")
+    new $P1170, "ResizablePMCArray"
+    push $P1170, $P1169
+    .return ($P1170)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("294_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<<>"  :subid("294_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1172_tgt
-    .local int rx1172_pos
-    .local int rx1172_off
-    .local int rx1172_eos
-    .local int rx1172_rep
-    .local pmc rx1172_cur
-    (rx1172_cur, rx1172_pos, rx1172_tgt) = self."!cursor_start"()
-    rx1172_cur."!cursor_debug"("START ", "infix:sym<<>")
-    .lex unicode:"$\x{a2}", rx1172_cur
+    .local string rx1174_tgt
+    .local int rx1174_pos
+    .local int rx1174_off
+    .local int rx1174_eos
+    .local int rx1174_rep
+    .local pmc rx1174_cur
+    (rx1174_cur, rx1174_pos, rx1174_tgt) = self."!cursor_start"()
+    rx1174_cur."!cursor_debug"("START ", "infix:sym<<>")
+    .lex unicode:"$\x{a2}", rx1174_cur
     .local pmc match
     .lex "$/", match
-    length rx1172_eos, rx1172_tgt
-    gt rx1172_pos, rx1172_eos, rx1172_done
-    set rx1172_off, 0
-    lt rx1172_pos, 2, rx1172_start
-    sub rx1172_off, rx1172_pos, 1
-    substr rx1172_tgt, rx1172_tgt, rx1172_off
-  rx1172_start:
+    length rx1174_eos, rx1174_tgt
+    gt rx1174_pos, rx1174_eos, rx1174_done
+    set rx1174_off, 0
+    lt rx1174_pos, 2, rx1174_start
+    sub rx1174_off, rx1174_pos, 1
+    substr rx1174_tgt, rx1174_tgt, rx1174_off
+  rx1174_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1176_done
-    goto rxscan1176_scan
-  rxscan1176_loop:
-    ($P10) = rx1172_cur."from"()
+    ne $I10, -1, rxscan1178_done
+    goto rxscan1178_scan
+  rxscan1178_loop:
+    ($P10) = rx1174_cur."from"()
     inc $P10
-    set rx1172_pos, $P10
-    ge rx1172_pos, rx1172_eos, rxscan1176_done
-  rxscan1176_scan:
-    set_addr $I10, rxscan1176_loop
-    rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
-  rxscan1176_done:
+    set rx1174_pos, $P10
+    ge rx1174_pos, rx1174_eos, rxscan1178_done
+  rxscan1178_scan:
+    set_addr $I10, rxscan1178_loop
+    rx1174_cur."!mark_push"(0, rx1174_pos, $I10)
+  rxscan1178_done:
 .annotate 'line', 519
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1177_fail
-    rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
+    set_addr $I10, rxcap_1179_fail
+    rx1174_cur."!mark_push"(0, rx1174_pos, $I10)
   # rx literal  "<"
-    add $I11, rx1172_pos, 1
-    gt $I11, rx1172_eos, rx1172_fail
-    sub $I11, rx1172_pos, rx1172_off
-    substr $S10, rx1172_tgt, $I11, 1
-    ne $S10, "<", rx1172_fail
-    add rx1172_pos, 1
-    set_addr $I10, rxcap_1177_fail
-    ($I12, $I11) = rx1172_cur."!mark_peek"($I10)
-    rx1172_cur."!cursor_pos"($I11)
-    ($P10) = rx1172_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1172_pos, "")
-    rx1172_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1174_pos, 1
+    gt $I11, rx1174_eos, rx1174_fail
+    sub $I11, rx1174_pos, rx1174_off
+    substr $S10, rx1174_tgt, $I11, 1
+    ne $S10, "<", rx1174_fail
+    add rx1174_pos, 1
+    set_addr $I10, rxcap_1179_fail
+    ($I12, $I11) = rx1174_cur."!mark_peek"($I10)
+    rx1174_cur."!cursor_pos"($I11)
+    ($P10) = rx1174_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1174_pos, "")
+    rx1174_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1177_done
-  rxcap_1177_fail:
-    goto rx1172_fail
-  rxcap_1177_done:
+    goto rxcap_1179_done
+  rxcap_1179_fail:
+    goto rx1174_fail
+  rxcap_1179_done:
   # rx subrule "O" subtype=capture negate=
-    rx1172_cur."!cursor_pos"(rx1172_pos)
-    $P10 = rx1172_cur."O"("%relational, :pirop<islt INn>")
-    unless $P10, rx1172_fail
-    rx1172_cur."!mark_push"(0, -1, 0, $P10)
+    rx1174_cur."!cursor_pos"(rx1174_pos)
+    $P10 = rx1174_cur."O"("%relational, :pirop<islt INn>")
+    unless $P10, rx1174_fail
+    rx1174_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1172_pos = $P10."pos"()
+    rx1174_pos = $P10."pos"()
   # rx pass
-    rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>")
-    rx1172_cur."!cursor_debug"("PASS  ", "infix:sym<<>", " at pos=", rx1172_pos)
-    .return (rx1172_cur)
-  rx1172_fail:
+    rx1174_cur."!cursor_pass"(rx1174_pos, "infix:sym<<>")
+    rx1174_cur."!cursor_debug"("PASS  ", "infix:sym<<>", " at pos=", rx1174_pos)
+    .return (rx1174_cur)
+  rx1174_fail:
 .annotate 'line', 446
-    (rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0)
-    lt rx1172_pos, -1, rx1172_done
-    eq rx1172_pos, -1, rx1172_fail
+    (rx1174_rep, rx1174_pos, $I10, $P10) = rx1174_cur."!mark_fail"(0)
+    lt rx1174_pos, -1, rx1174_done
+    eq rx1174_pos, -1, rx1174_fail
     jump $I10
-  rx1172_done:
-    rx1172_cur."!cursor_fail"()
-    rx1172_cur."!cursor_debug"("FAIL  ", "infix:sym<<>")
-    .return (rx1172_cur)
+  rx1174_done:
+    rx1174_cur."!cursor_fail"()
+    rx1174_cur."!cursor_debug"("FAIL  ", "infix:sym<<>")
+    .return (rx1174_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("295_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<<>"  :subid("295_1277356913.9538") :method
 .annotate 'line', 446
-    $P1174 = self."!PREFIX__!subrule"("O", "<")
-    new $P1175, "ResizablePMCArray"
-    push $P1175, $P1174
-    .return ($P1175)
+    $P1176 = self."!PREFIX__!subrule"("O", "<")
+    new $P1177, "ResizablePMCArray"
+    push $P1177, $P1176
+    .return ($P1177)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("296_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<>>"  :subid("296_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1179_tgt
-    .local int rx1179_pos
-    .local int rx1179_off
-    .local int rx1179_eos
-    .local int rx1179_rep
-    .local pmc rx1179_cur
-    (rx1179_cur, rx1179_pos, rx1179_tgt) = self."!cursor_start"()
-    rx1179_cur."!cursor_debug"("START ", "infix:sym<>>")
-    .lex unicode:"$\x{a2}", rx1179_cur
+    .local string rx1181_tgt
+    .local int rx1181_pos
+    .local int rx1181_off
+    .local int rx1181_eos
+    .local int rx1181_rep
+    .local pmc rx1181_cur
+    (rx1181_cur, rx1181_pos, rx1181_tgt) = self."!cursor_start"()
+    rx1181_cur."!cursor_debug"("START ", "infix:sym<>>")
+    .lex unicode:"$\x{a2}", rx1181_cur
     .local pmc match
     .lex "$/", match
-    length rx1179_eos, rx1179_tgt
-    gt rx1179_pos, rx1179_eos, rx1179_done
-    set rx1179_off, 0
-    lt rx1179_pos, 2, rx1179_start
-    sub rx1179_off, rx1179_pos, 1
-    substr rx1179_tgt, rx1179_tgt, rx1179_off
-  rx1179_start:
+    length rx1181_eos, rx1181_tgt
+    gt rx1181_pos, rx1181_eos, rx1181_done
+    set rx1181_off, 0
+    lt rx1181_pos, 2, rx1181_start
+    sub rx1181_off, rx1181_pos, 1
+    substr rx1181_tgt, rx1181_tgt, rx1181_off
+  rx1181_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1183_done
-    goto rxscan1183_scan
-  rxscan1183_loop:
-    ($P10) = rx1179_cur."from"()
+    ne $I10, -1, rxscan1185_done
+    goto rxscan1185_scan
+  rxscan1185_loop:
+    ($P10) = rx1181_cur."from"()
     inc $P10
-    set rx1179_pos, $P10
-    ge rx1179_pos, rx1179_eos, rxscan1183_done
-  rxscan1183_scan:
-    set_addr $I10, rxscan1183_loop
-    rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
-  rxscan1183_done:
+    set rx1181_pos, $P10
+    ge rx1181_pos, rx1181_eos, rxscan1185_done
+  rxscan1185_scan:
+    set_addr $I10, rxscan1185_loop
+    rx1181_cur."!mark_push"(0, rx1181_pos, $I10)
+  rxscan1185_done:
 .annotate 'line', 520
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1184_fail
-    rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
+    set_addr $I10, rxcap_1186_fail
+    rx1181_cur."!mark_push"(0, rx1181_pos, $I10)
   # rx literal  ">"
-    add $I11, rx1179_pos, 1
-    gt $I11, rx1179_eos, rx1179_fail
-    sub $I11, rx1179_pos, rx1179_off
-    substr $S10, rx1179_tgt, $I11, 1
-    ne $S10, ">", rx1179_fail
-    add rx1179_pos, 1
-    set_addr $I10, rxcap_1184_fail
-    ($I12, $I11) = rx1179_cur."!mark_peek"($I10)
-    rx1179_cur."!cursor_pos"($I11)
-    ($P10) = rx1179_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1179_pos, "")
-    rx1179_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1181_pos, 1
+    gt $I11, rx1181_eos, rx1181_fail
+    sub $I11, rx1181_pos, rx1181_off
+    substr $S10, rx1181_tgt, $I11, 1
+    ne $S10, ">", rx1181_fail
+    add rx1181_pos, 1
+    set_addr $I10, rxcap_1186_fail
+    ($I12, $I11) = rx1181_cur."!mark_peek"($I10)
+    rx1181_cur."!cursor_pos"($I11)
+    ($P10) = rx1181_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1181_pos, "")
+    rx1181_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1184_done
-  rxcap_1184_fail:
-    goto rx1179_fail
-  rxcap_1184_done:
+    goto rxcap_1186_done
+  rxcap_1186_fail:
+    goto rx1181_fail
+  rxcap_1186_done:
   # rx subrule "O" subtype=capture negate=
-    rx1179_cur."!cursor_pos"(rx1179_pos)
-    $P10 = rx1179_cur."O"("%relational, :pirop<isgt INn>")
-    unless $P10, rx1179_fail
-    rx1179_cur."!mark_push"(0, -1, 0, $P10)
+    rx1181_cur."!cursor_pos"(rx1181_pos)
+    $P10 = rx1181_cur."O"("%relational, :pirop<isgt INn>")
+    unless $P10, rx1181_fail
+    rx1181_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1179_pos = $P10."pos"()
+    rx1181_pos = $P10."pos"()
   # rx pass
-    rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>")
-    rx1179_cur."!cursor_debug"("PASS  ", "infix:sym<>>", " at pos=", rx1179_pos)
-    .return (rx1179_cur)
-  rx1179_fail:
+    rx1181_cur."!cursor_pass"(rx1181_pos, "infix:sym<>>")
+    rx1181_cur."!cursor_debug"("PASS  ", "infix:sym<>>", " at pos=", rx1181_pos)
+    .return (rx1181_cur)
+  rx1181_fail:
 .annotate 'line', 446
-    (rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0)
-    lt rx1179_pos, -1, rx1179_done
-    eq rx1179_pos, -1, rx1179_fail
+    (rx1181_rep, rx1181_pos, $I10, $P10) = rx1181_cur."!mark_fail"(0)
+    lt rx1181_pos, -1, rx1181_done
+    eq rx1181_pos, -1, rx1181_fail
     jump $I10
-  rx1179_done:
-    rx1179_cur."!cursor_fail"()
-    rx1179_cur."!cursor_debug"("FAIL  ", "infix:sym<>>")
-    .return (rx1179_cur)
+  rx1181_done:
+    rx1181_cur."!cursor_fail"()
+    rx1181_cur."!cursor_debug"("FAIL  ", "infix:sym<>>")
+    .return (rx1181_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("297_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<>>"  :subid("297_1277356913.9538") :method
 .annotate 'line', 446
-    $P1181 = self."!PREFIX__!subrule"("O", ">")
-    new $P1182, "ResizablePMCArray"
-    push $P1182, $P1181
-    .return ($P1182)
+    $P1183 = self."!PREFIX__!subrule"("O", ">")
+    new $P1184, "ResizablePMCArray"
+    push $P1184, $P1183
+    .return ($P1184)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("298_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<eq>"  :subid("298_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1186_tgt
-    .local int rx1186_pos
-    .local int rx1186_off
-    .local int rx1186_eos
-    .local int rx1186_rep
-    .local pmc rx1186_cur
-    (rx1186_cur, rx1186_pos, rx1186_tgt) = self."!cursor_start"()
-    rx1186_cur."!cursor_debug"("START ", "infix:sym<eq>")
-    .lex unicode:"$\x{a2}", rx1186_cur
+    .local string rx1188_tgt
+    .local int rx1188_pos
+    .local int rx1188_off
+    .local int rx1188_eos
+    .local int rx1188_rep
+    .local pmc rx1188_cur
+    (rx1188_cur, rx1188_pos, rx1188_tgt) = self."!cursor_start"()
+    rx1188_cur."!cursor_debug"("START ", "infix:sym<eq>")
+    .lex unicode:"$\x{a2}", rx1188_cur
     .local pmc match
     .lex "$/", match
-    length rx1186_eos, rx1186_tgt
-    gt rx1186_pos, rx1186_eos, rx1186_done
-    set rx1186_off, 0
-    lt rx1186_pos, 2, rx1186_start
-    sub rx1186_off, rx1186_pos, 1
-    substr rx1186_tgt, rx1186_tgt, rx1186_off
-  rx1186_start:
+    length rx1188_eos, rx1188_tgt
+    gt rx1188_pos, rx1188_eos, rx1188_done
+    set rx1188_off, 0
+    lt rx1188_pos, 2, rx1188_start
+    sub rx1188_off, rx1188_pos, 1
+    substr rx1188_tgt, rx1188_tgt, rx1188_off
+  rx1188_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1190_done
-    goto rxscan1190_scan
-  rxscan1190_loop:
-    ($P10) = rx1186_cur."from"()
+    ne $I10, -1, rxscan1192_done
+    goto rxscan1192_scan
+  rxscan1192_loop:
+    ($P10) = rx1188_cur."from"()
     inc $P10
-    set rx1186_pos, $P10
-    ge rx1186_pos, rx1186_eos, rxscan1190_done
-  rxscan1190_scan:
-    set_addr $I10, rxscan1190_loop
-    rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
-  rxscan1190_done:
+    set rx1188_pos, $P10
+    ge rx1188_pos, rx1188_eos, rxscan1192_done
+  rxscan1192_scan:
+    set_addr $I10, rxscan1192_loop
+    rx1188_cur."!mark_push"(0, rx1188_pos, $I10)
+  rxscan1192_done:
 .annotate 'line', 521
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1191_fail
-    rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
+    set_addr $I10, rxcap_1193_fail
+    rx1188_cur."!mark_push"(0, rx1188_pos, $I10)
   # rx literal  "eq"
-    add $I11, rx1186_pos, 2
-    gt $I11, rx1186_eos, rx1186_fail
-    sub $I11, rx1186_pos, rx1186_off
-    substr $S10, rx1186_tgt, $I11, 2
-    ne $S10, "eq", rx1186_fail
-    add rx1186_pos, 2
-    set_addr $I10, rxcap_1191_fail
-    ($I12, $I11) = rx1186_cur."!mark_peek"($I10)
-    rx1186_cur."!cursor_pos"($I11)
-    ($P10) = rx1186_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1186_pos, "")
-    rx1186_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1188_pos, 2
+    gt $I11, rx1188_eos, rx1188_fail
+    sub $I11, rx1188_pos, rx1188_off
+    substr $S10, rx1188_tgt, $I11, 2
+    ne $S10, "eq", rx1188_fail
+    add rx1188_pos, 2
+    set_addr $I10, rxcap_1193_fail
+    ($I12, $I11) = rx1188_cur."!mark_peek"($I10)
+    rx1188_cur."!cursor_pos"($I11)
+    ($P10) = rx1188_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1188_pos, "")
+    rx1188_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1191_done
-  rxcap_1191_fail:
-    goto rx1186_fail
-  rxcap_1191_done:
+    goto rxcap_1193_done
+  rxcap_1193_fail:
+    goto rx1188_fail
+  rxcap_1193_done:
   # rx subrule "O" subtype=capture negate=
-    rx1186_cur."!cursor_pos"(rx1186_pos)
-    $P10 = rx1186_cur."O"("%relational, :pirop<iseq ISs>")
-    unless $P10, rx1186_fail
-    rx1186_cur."!mark_push"(0, -1, 0, $P10)
+    rx1188_cur."!cursor_pos"(rx1188_pos)
+    $P10 = rx1188_cur."O"("%relational, :pirop<iseq ISs>")
+    unless $P10, rx1188_fail
+    rx1188_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1186_pos = $P10."pos"()
+    rx1188_pos = $P10."pos"()
   # rx pass
-    rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym<eq>")
-    rx1186_cur."!cursor_debug"("PASS  ", "infix:sym<eq>", " at pos=", rx1186_pos)
-    .return (rx1186_cur)
-  rx1186_fail:
+    rx1188_cur."!cursor_pass"(rx1188_pos, "infix:sym<eq>")
+    rx1188_cur."!cursor_debug"("PASS  ", "infix:sym<eq>", " at pos=", rx1188_pos)
+    .return (rx1188_cur)
+  rx1188_fail:
 .annotate 'line', 446
-    (rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0)
-    lt rx1186_pos, -1, rx1186_done
-    eq rx1186_pos, -1, rx1186_fail
+    (rx1188_rep, rx1188_pos, $I10, $P10) = rx1188_cur."!mark_fail"(0)
+    lt rx1188_pos, -1, rx1188_done
+    eq rx1188_pos, -1, rx1188_fail
     jump $I10
-  rx1186_done:
-    rx1186_cur."!cursor_fail"()
-    rx1186_cur."!cursor_debug"("FAIL  ", "infix:sym<eq>")
-    .return (rx1186_cur)
+  rx1188_done:
+    rx1188_cur."!cursor_fail"()
+    rx1188_cur."!cursor_debug"("FAIL  ", "infix:sym<eq>")
+    .return (rx1188_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("299_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<eq>"  :subid("299_1277356913.9538") :method
 .annotate 'line', 446
-    $P1188 = self."!PREFIX__!subrule"("O", "eq")
-    new $P1189, "ResizablePMCArray"
-    push $P1189, $P1188
-    .return ($P1189)
+    $P1190 = self."!PREFIX__!subrule"("O", "eq")
+    new $P1191, "ResizablePMCArray"
+    push $P1191, $P1190
+    .return ($P1191)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("300_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<ne>"  :subid("300_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1193_tgt
-    .local int rx1193_pos
-    .local int rx1193_off
-    .local int rx1193_eos
-    .local int rx1193_rep
-    .local pmc rx1193_cur
-    (rx1193_cur, rx1193_pos, rx1193_tgt) = self."!cursor_start"()
-    rx1193_cur."!cursor_debug"("START ", "infix:sym<ne>")
-    .lex unicode:"$\x{a2}", rx1193_cur
+    .local string rx1195_tgt
+    .local int rx1195_pos
+    .local int rx1195_off
+    .local int rx1195_eos
+    .local int rx1195_rep
+    .local pmc rx1195_cur
+    (rx1195_cur, rx1195_pos, rx1195_tgt) = self."!cursor_start"()
+    rx1195_cur."!cursor_debug"("START ", "infix:sym<ne>")
+    .lex unicode:"$\x{a2}", rx1195_cur
     .local pmc match
     .lex "$/", match
-    length rx1193_eos, rx1193_tgt
-    gt rx1193_pos, rx1193_eos, rx1193_done
-    set rx1193_off, 0
-    lt rx1193_pos, 2, rx1193_start
-    sub rx1193_off, rx1193_pos, 1
-    substr rx1193_tgt, rx1193_tgt, rx1193_off
-  rx1193_start:
+    length rx1195_eos, rx1195_tgt
+    gt rx1195_pos, rx1195_eos, rx1195_done
+    set rx1195_off, 0
+    lt rx1195_pos, 2, rx1195_start
+    sub rx1195_off, rx1195_pos, 1
+    substr rx1195_tgt, rx1195_tgt, rx1195_off
+  rx1195_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1197_done
-    goto rxscan1197_scan
-  rxscan1197_loop:
-    ($P10) = rx1193_cur."from"()
+    ne $I10, -1, rxscan1199_done
+    goto rxscan1199_scan
+  rxscan1199_loop:
+    ($P10) = rx1195_cur."from"()
     inc $P10
-    set rx1193_pos, $P10
-    ge rx1193_pos, rx1193_eos, rxscan1197_done
-  rxscan1197_scan:
-    set_addr $I10, rxscan1197_loop
-    rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
-  rxscan1197_done:
+    set rx1195_pos, $P10
+    ge rx1195_pos, rx1195_eos, rxscan1199_done
+  rxscan1199_scan:
+    set_addr $I10, rxscan1199_loop
+    rx1195_cur."!mark_push"(0, rx1195_pos, $I10)
+  rxscan1199_done:
 .annotate 'line', 522
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1198_fail
-    rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
+    set_addr $I10, rxcap_1200_fail
+    rx1195_cur."!mark_push"(0, rx1195_pos, $I10)
   # rx literal  "ne"
-    add $I11, rx1193_pos, 2
-    gt $I11, rx1193_eos, rx1193_fail
-    sub $I11, rx1193_pos, rx1193_off
-    substr $S10, rx1193_tgt, $I11, 2
-    ne $S10, "ne", rx1193_fail
-    add rx1193_pos, 2
-    set_addr $I10, rxcap_1198_fail
-    ($I12, $I11) = rx1193_cur."!mark_peek"($I10)
-    rx1193_cur."!cursor_pos"($I11)
-    ($P10) = rx1193_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1193_pos, "")
-    rx1193_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1195_pos, 2
+    gt $I11, rx1195_eos, rx1195_fail
+    sub $I11, rx1195_pos, rx1195_off
+    substr $S10, rx1195_tgt, $I11, 2
+    ne $S10, "ne", rx1195_fail
+    add rx1195_pos, 2
+    set_addr $I10, rxcap_1200_fail
+    ($I12, $I11) = rx1195_cur."!mark_peek"($I10)
+    rx1195_cur."!cursor_pos"($I11)
+    ($P10) = rx1195_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1195_pos, "")
+    rx1195_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1198_done
-  rxcap_1198_fail:
-    goto rx1193_fail
-  rxcap_1198_done:
+    goto rxcap_1200_done
+  rxcap_1200_fail:
+    goto rx1195_fail
+  rxcap_1200_done:
   # rx subrule "O" subtype=capture negate=
-    rx1193_cur."!cursor_pos"(rx1193_pos)
-    $P10 = rx1193_cur."O"("%relational, :pirop<isne ISs>")
-    unless $P10, rx1193_fail
-    rx1193_cur."!mark_push"(0, -1, 0, $P10)
+    rx1195_cur."!cursor_pos"(rx1195_pos)
+    $P10 = rx1195_cur."O"("%relational, :pirop<isne ISs>")
+    unless $P10, rx1195_fail
+    rx1195_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1193_pos = $P10."pos"()
+    rx1195_pos = $P10."pos"()
   # rx pass
-    rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym<ne>")
-    rx1193_cur."!cursor_debug"("PASS  ", "infix:sym<ne>", " at pos=", rx1193_pos)
-    .return (rx1193_cur)
-  rx1193_fail:
+    rx1195_cur."!cursor_pass"(rx1195_pos, "infix:sym<ne>")
+    rx1195_cur."!cursor_debug"("PASS  ", "infix:sym<ne>", " at pos=", rx1195_pos)
+    .return (rx1195_cur)
+  rx1195_fail:
 .annotate 'line', 446
-    (rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0)
-    lt rx1193_pos, -1, rx1193_done
-    eq rx1193_pos, -1, rx1193_fail
+    (rx1195_rep, rx1195_pos, $I10, $P10) = rx1195_cur."!mark_fail"(0)
+    lt rx1195_pos, -1, rx1195_done
+    eq rx1195_pos, -1, rx1195_fail
     jump $I10
-  rx1193_done:
-    rx1193_cur."!cursor_fail"()
-    rx1193_cur."!cursor_debug"("FAIL  ", "infix:sym<ne>")
-    .return (rx1193_cur)
+  rx1195_done:
+    rx1195_cur."!cursor_fail"()
+    rx1195_cur."!cursor_debug"("FAIL  ", "infix:sym<ne>")
+    .return (rx1195_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("301_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<ne>"  :subid("301_1277356913.9538") :method
 .annotate 'line', 446
-    $P1195 = self."!PREFIX__!subrule"("O", "ne")
-    new $P1196, "ResizablePMCArray"
-    push $P1196, $P1195
-    .return ($P1196)
+    $P1197 = self."!PREFIX__!subrule"("O", "ne")
+    new $P1198, "ResizablePMCArray"
+    push $P1198, $P1197
+    .return ($P1198)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("302_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<le>"  :subid("302_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1200_tgt
-    .local int rx1200_pos
-    .local int rx1200_off
-    .local int rx1200_eos
-    .local int rx1200_rep
-    .local pmc rx1200_cur
-    (rx1200_cur, rx1200_pos, rx1200_tgt) = self."!cursor_start"()
-    rx1200_cur."!cursor_debug"("START ", "infix:sym<le>")
-    .lex unicode:"$\x{a2}", rx1200_cur
+    .local string rx1202_tgt
+    .local int rx1202_pos
+    .local int rx1202_off
+    .local int rx1202_eos
+    .local int rx1202_rep
+    .local pmc rx1202_cur
+    (rx1202_cur, rx1202_pos, rx1202_tgt) = self."!cursor_start"()
+    rx1202_cur."!cursor_debug"("START ", "infix:sym<le>")
+    .lex unicode:"$\x{a2}", rx1202_cur
     .local pmc match
     .lex "$/", match
-    length rx1200_eos, rx1200_tgt
-    gt rx1200_pos, rx1200_eos, rx1200_done
-    set rx1200_off, 0
-    lt rx1200_pos, 2, rx1200_start
-    sub rx1200_off, rx1200_pos, 1
-    substr rx1200_tgt, rx1200_tgt, rx1200_off
-  rx1200_start:
+    length rx1202_eos, rx1202_tgt
+    gt rx1202_pos, rx1202_eos, rx1202_done
+    set rx1202_off, 0
+    lt rx1202_pos, 2, rx1202_start
+    sub rx1202_off, rx1202_pos, 1
+    substr rx1202_tgt, rx1202_tgt, rx1202_off
+  rx1202_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1204_done
-    goto rxscan1204_scan
-  rxscan1204_loop:
-    ($P10) = rx1200_cur."from"()
+    ne $I10, -1, rxscan1206_done
+    goto rxscan1206_scan
+  rxscan1206_loop:
+    ($P10) = rx1202_cur."from"()
     inc $P10
-    set rx1200_pos, $P10
-    ge rx1200_pos, rx1200_eos, rxscan1204_done
-  rxscan1204_scan:
-    set_addr $I10, rxscan1204_loop
-    rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
-  rxscan1204_done:
+    set rx1202_pos, $P10
+    ge rx1202_pos, rx1202_eos, rxscan1206_done
+  rxscan1206_scan:
+    set_addr $I10, rxscan1206_loop
+    rx1202_cur."!mark_push"(0, rx1202_pos, $I10)
+  rxscan1206_done:
 .annotate 'line', 523
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1205_fail
-    rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
+    set_addr $I10, rxcap_1207_fail
+    rx1202_cur."!mark_push"(0, rx1202_pos, $I10)
   # rx literal  "le"
-    add $I11, rx1200_pos, 2
-    gt $I11, rx1200_eos, rx1200_fail
-    sub $I11, rx1200_pos, rx1200_off
-    substr $S10, rx1200_tgt, $I11, 2
-    ne $S10, "le", rx1200_fail
-    add rx1200_pos, 2
-    set_addr $I10, rxcap_1205_fail
-    ($I12, $I11) = rx1200_cur."!mark_peek"($I10)
-    rx1200_cur."!cursor_pos"($I11)
-    ($P10) = rx1200_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1200_pos, "")
-    rx1200_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1202_pos, 2
+    gt $I11, rx1202_eos, rx1202_fail
+    sub $I11, rx1202_pos, rx1202_off
+    substr $S10, rx1202_tgt, $I11, 2
+    ne $S10, "le", rx1202_fail
+    add rx1202_pos, 2
+    set_addr $I10, rxcap_1207_fail
+    ($I12, $I11) = rx1202_cur."!mark_peek"($I10)
+    rx1202_cur."!cursor_pos"($I11)
+    ($P10) = rx1202_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1202_pos, "")
+    rx1202_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1205_done
-  rxcap_1205_fail:
-    goto rx1200_fail
-  rxcap_1205_done:
+    goto rxcap_1207_done
+  rxcap_1207_fail:
+    goto rx1202_fail
+  rxcap_1207_done:
   # rx subrule "O" subtype=capture negate=
-    rx1200_cur."!cursor_pos"(rx1200_pos)
-    $P10 = rx1200_cur."O"("%relational, :pirop<isle ISs>")
-    unless $P10, rx1200_fail
-    rx1200_cur."!mark_push"(0, -1, 0, $P10)
+    rx1202_cur."!cursor_pos"(rx1202_pos)
+    $P10 = rx1202_cur."O"("%relational, :pirop<isle ISs>")
+    unless $P10, rx1202_fail
+    rx1202_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1200_pos = $P10."pos"()
+    rx1202_pos = $P10."pos"()
   # rx pass
-    rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym<le>")
-    rx1200_cur."!cursor_debug"("PASS  ", "infix:sym<le>", " at pos=", rx1200_pos)
-    .return (rx1200_cur)
-  rx1200_fail:
+    rx1202_cur."!cursor_pass"(rx1202_pos, "infix:sym<le>")
+    rx1202_cur."!cursor_debug"("PASS  ", "infix:sym<le>", " at pos=", rx1202_pos)
+    .return (rx1202_cur)
+  rx1202_fail:
 .annotate 'line', 446
-    (rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0)
-    lt rx1200_pos, -1, rx1200_done
-    eq rx1200_pos, -1, rx1200_fail
+    (rx1202_rep, rx1202_pos, $I10, $P10) = rx1202_cur."!mark_fail"(0)
+    lt rx1202_pos, -1, rx1202_done
+    eq rx1202_pos, -1, rx1202_fail
     jump $I10
-  rx1200_done:
-    rx1200_cur."!cursor_fail"()
-    rx1200_cur."!cursor_debug"("FAIL  ", "infix:sym<le>")
-    .return (rx1200_cur)
+  rx1202_done:
+    rx1202_cur."!cursor_fail"()
+    rx1202_cur."!cursor_debug"("FAIL  ", "infix:sym<le>")
+    .return (rx1202_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("303_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<le>"  :subid("303_1277356913.9538") :method
 .annotate 'line', 446
-    $P1202 = self."!PREFIX__!subrule"("O", "le")
-    new $P1203, "ResizablePMCArray"
-    push $P1203, $P1202
-    .return ($P1203)
+    $P1204 = self."!PREFIX__!subrule"("O", "le")
+    new $P1205, "ResizablePMCArray"
+    push $P1205, $P1204
+    .return ($P1205)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("304_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<ge>"  :subid("304_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1207_tgt
-    .local int rx1207_pos
-    .local int rx1207_off
-    .local int rx1207_eos
-    .local int rx1207_rep
-    .local pmc rx1207_cur
-    (rx1207_cur, rx1207_pos, rx1207_tgt) = self."!cursor_start"()
-    rx1207_cur."!cursor_debug"("START ", "infix:sym<ge>")
-    .lex unicode:"$\x{a2}", rx1207_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1207_eos, rx1207_tgt
-    gt rx1207_pos, rx1207_eos, rx1207_done
-    set rx1207_off, 0
-    lt rx1207_pos, 2, rx1207_start
-    sub rx1207_off, rx1207_pos, 1
-    substr rx1207_tgt, rx1207_tgt, rx1207_off
-  rx1207_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1211_done
-    goto rxscan1211_scan
-  rxscan1211_loop:
-    ($P10) = rx1207_cur."from"()
-    inc $P10
-    set rx1207_pos, $P10
-    ge rx1207_pos, rx1207_eos, rxscan1211_done
-  rxscan1211_scan:
-    set_addr $I10, rxscan1211_loop
-    rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
-  rxscan1211_done:
+    .local string rx1209_tgt
+    .local int rx1209_pos
+    .local int rx1209_off
+    .local int rx1209_eos
+    .local int rx1209_rep
+    .local pmc rx1209_cur
+    (rx1209_cur, rx1209_pos, rx1209_tgt) = self."!cursor_start"()
+    rx1209_cur."!cursor_debug"("START ", "infix:sym<ge>")
+    .lex unicode:"$\x{a2}", rx1209_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1209_eos, rx1209_tgt
+    gt rx1209_pos, rx1209_eos, rx1209_done
+    set rx1209_off, 0
+    lt rx1209_pos, 2, rx1209_start
+    sub rx1209_off, rx1209_pos, 1
+    substr rx1209_tgt, rx1209_tgt, rx1209_off
+  rx1209_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1213_done
+    goto rxscan1213_scan
+  rxscan1213_loop:
+    ($P10) = rx1209_cur."from"()
+    inc $P10
+    set rx1209_pos, $P10
+    ge rx1209_pos, rx1209_eos, rxscan1213_done
+  rxscan1213_scan:
+    set_addr $I10, rxscan1213_loop
+    rx1209_cur."!mark_push"(0, rx1209_pos, $I10)
+  rxscan1213_done:
 .annotate 'line', 524
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1212_fail
-    rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
+    set_addr $I10, rxcap_1214_fail
+    rx1209_cur."!mark_push"(0, rx1209_pos, $I10)
   # rx literal  "ge"
-    add $I11, rx1207_pos, 2
-    gt $I11, rx1207_eos, rx1207_fail
-    sub $I11, rx1207_pos, rx1207_off
-    substr $S10, rx1207_tgt, $I11, 2
-    ne $S10, "ge", rx1207_fail
-    add rx1207_pos, 2
-    set_addr $I10, rxcap_1212_fail
-    ($I12, $I11) = rx1207_cur."!mark_peek"($I10)
-    rx1207_cur."!cursor_pos"($I11)
-    ($P10) = rx1207_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1207_pos, "")
-    rx1207_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1209_pos, 2
+    gt $I11, rx1209_eos, rx1209_fail
+    sub $I11, rx1209_pos, rx1209_off
+    substr $S10, rx1209_tgt, $I11, 2
+    ne $S10, "ge", rx1209_fail
+    add rx1209_pos, 2
+    set_addr $I10, rxcap_1214_fail
+    ($I12, $I11) = rx1209_cur."!mark_peek"($I10)
+    rx1209_cur."!cursor_pos"($I11)
+    ($P10) = rx1209_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1209_pos, "")
+    rx1209_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1212_done
-  rxcap_1212_fail:
-    goto rx1207_fail
-  rxcap_1212_done:
+    goto rxcap_1214_done
+  rxcap_1214_fail:
+    goto rx1209_fail
+  rxcap_1214_done:
   # rx subrule "O" subtype=capture negate=
-    rx1207_cur."!cursor_pos"(rx1207_pos)
-    $P10 = rx1207_cur."O"("%relational, :pirop<isge ISs>")
-    unless $P10, rx1207_fail
-    rx1207_cur."!mark_push"(0, -1, 0, $P10)
+    rx1209_cur."!cursor_pos"(rx1209_pos)
+    $P10 = rx1209_cur."O"("%relational, :pirop<isge ISs>")
+    unless $P10, rx1209_fail
+    rx1209_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1207_pos = $P10."pos"()
+    rx1209_pos = $P10."pos"()
   # rx pass
-    rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym<ge>")
-    rx1207_cur."!cursor_debug"("PASS  ", "infix:sym<ge>", " at pos=", rx1207_pos)
-    .return (rx1207_cur)
-  rx1207_fail:
+    rx1209_cur."!cursor_pass"(rx1209_pos, "infix:sym<ge>")
+    rx1209_cur."!cursor_debug"("PASS  ", "infix:sym<ge>", " at pos=", rx1209_pos)
+    .return (rx1209_cur)
+  rx1209_fail:
 .annotate 'line', 446
-    (rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0)
-    lt rx1207_pos, -1, rx1207_done
-    eq rx1207_pos, -1, rx1207_fail
+    (rx1209_rep, rx1209_pos, $I10, $P10) = rx1209_cur."!mark_fail"(0)
+    lt rx1209_pos, -1, rx1209_done
+    eq rx1209_pos, -1, rx1209_fail
     jump $I10
-  rx1207_done:
-    rx1207_cur."!cursor_fail"()
-    rx1207_cur."!cursor_debug"("FAIL  ", "infix:sym<ge>")
-    .return (rx1207_cur)
+  rx1209_done:
+    rx1209_cur."!cursor_fail"()
+    rx1209_cur."!cursor_debug"("FAIL  ", "infix:sym<ge>")
+    .return (rx1209_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("305_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<ge>"  :subid("305_1277356913.9538") :method
 .annotate 'line', 446
-    $P1209 = self."!PREFIX__!subrule"("O", "ge")
-    new $P1210, "ResizablePMCArray"
-    push $P1210, $P1209
-    .return ($P1210)
+    $P1211 = self."!PREFIX__!subrule"("O", "ge")
+    new $P1212, "ResizablePMCArray"
+    push $P1212, $P1211
+    .return ($P1212)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("306_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<lt>"  :subid("306_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1214_tgt
-    .local int rx1214_pos
-    .local int rx1214_off
-    .local int rx1214_eos
-    .local int rx1214_rep
-    .local pmc rx1214_cur
-    (rx1214_cur, rx1214_pos, rx1214_tgt) = self."!cursor_start"()
-    rx1214_cur."!cursor_debug"("START ", "infix:sym<lt>")
-    .lex unicode:"$\x{a2}", rx1214_cur
+    .local string rx1216_tgt
+    .local int rx1216_pos
+    .local int rx1216_off
+    .local int rx1216_eos
+    .local int rx1216_rep
+    .local pmc rx1216_cur
+    (rx1216_cur, rx1216_pos, rx1216_tgt) = self."!cursor_start"()
+    rx1216_cur."!cursor_debug"("START ", "infix:sym<lt>")
+    .lex unicode:"$\x{a2}", rx1216_cur
     .local pmc match
     .lex "$/", match
-    length rx1214_eos, rx1214_tgt
-    gt rx1214_pos, rx1214_eos, rx1214_done
-    set rx1214_off, 0
-    lt rx1214_pos, 2, rx1214_start
-    sub rx1214_off, rx1214_pos, 1
-    substr rx1214_tgt, rx1214_tgt, rx1214_off
-  rx1214_start:
+    length rx1216_eos, rx1216_tgt
+    gt rx1216_pos, rx1216_eos, rx1216_done
+    set rx1216_off, 0
+    lt rx1216_pos, 2, rx1216_start
+    sub rx1216_off, rx1216_pos, 1
+    substr rx1216_tgt, rx1216_tgt, rx1216_off
+  rx1216_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1218_done
-    goto rxscan1218_scan
-  rxscan1218_loop:
-    ($P10) = rx1214_cur."from"()
+    ne $I10, -1, rxscan1220_done
+    goto rxscan1220_scan
+  rxscan1220_loop:
+    ($P10) = rx1216_cur."from"()
     inc $P10
-    set rx1214_pos, $P10
-    ge rx1214_pos, rx1214_eos, rxscan1218_done
-  rxscan1218_scan:
-    set_addr $I10, rxscan1218_loop
-    rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
-  rxscan1218_done:
+    set rx1216_pos, $P10
+    ge rx1216_pos, rx1216_eos, rxscan1220_done
+  rxscan1220_scan:
+    set_addr $I10, rxscan1220_loop
+    rx1216_cur."!mark_push"(0, rx1216_pos, $I10)
+  rxscan1220_done:
 .annotate 'line', 525
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1219_fail
-    rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
+    set_addr $I10, rxcap_1221_fail
+    rx1216_cur."!mark_push"(0, rx1216_pos, $I10)
   # rx literal  "lt"
-    add $I11, rx1214_pos, 2
-    gt $I11, rx1214_eos, rx1214_fail
-    sub $I11, rx1214_pos, rx1214_off
-    substr $S10, rx1214_tgt, $I11, 2
-    ne $S10, "lt", rx1214_fail
-    add rx1214_pos, 2
-    set_addr $I10, rxcap_1219_fail
-    ($I12, $I11) = rx1214_cur."!mark_peek"($I10)
-    rx1214_cur."!cursor_pos"($I11)
-    ($P10) = rx1214_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1214_pos, "")
-    rx1214_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1216_pos, 2
+    gt $I11, rx1216_eos, rx1216_fail
+    sub $I11, rx1216_pos, rx1216_off
+    substr $S10, rx1216_tgt, $I11, 2
+    ne $S10, "lt", rx1216_fail
+    add rx1216_pos, 2
+    set_addr $I10, rxcap_1221_fail
+    ($I12, $I11) = rx1216_cur."!mark_peek"($I10)
+    rx1216_cur."!cursor_pos"($I11)
+    ($P10) = rx1216_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1216_pos, "")
+    rx1216_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1219_done
-  rxcap_1219_fail:
-    goto rx1214_fail
-  rxcap_1219_done:
+    goto rxcap_1221_done
+  rxcap_1221_fail:
+    goto rx1216_fail
+  rxcap_1221_done:
   # rx subrule "O" subtype=capture negate=
-    rx1214_cur."!cursor_pos"(rx1214_pos)
-    $P10 = rx1214_cur."O"("%relational, :pirop<islt ISs>")
-    unless $P10, rx1214_fail
-    rx1214_cur."!mark_push"(0, -1, 0, $P10)
+    rx1216_cur."!cursor_pos"(rx1216_pos)
+    $P10 = rx1216_cur."O"("%relational, :pirop<islt ISs>")
+    unless $P10, rx1216_fail
+    rx1216_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1214_pos = $P10."pos"()
+    rx1216_pos = $P10."pos"()
   # rx pass
-    rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym<lt>")
-    rx1214_cur."!cursor_debug"("PASS  ", "infix:sym<lt>", " at pos=", rx1214_pos)
-    .return (rx1214_cur)
-  rx1214_fail:
+    rx1216_cur."!cursor_pass"(rx1216_pos, "infix:sym<lt>")
+    rx1216_cur."!cursor_debug"("PASS  ", "infix:sym<lt>", " at pos=", rx1216_pos)
+    .return (rx1216_cur)
+  rx1216_fail:
 .annotate 'line', 446
-    (rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0)
-    lt rx1214_pos, -1, rx1214_done
-    eq rx1214_pos, -1, rx1214_fail
+    (rx1216_rep, rx1216_pos, $I10, $P10) = rx1216_cur."!mark_fail"(0)
+    lt rx1216_pos, -1, rx1216_done
+    eq rx1216_pos, -1, rx1216_fail
     jump $I10
-  rx1214_done:
-    rx1214_cur."!cursor_fail"()
-    rx1214_cur."!cursor_debug"("FAIL  ", "infix:sym<lt>")
-    .return (rx1214_cur)
+  rx1216_done:
+    rx1216_cur."!cursor_fail"()
+    rx1216_cur."!cursor_debug"("FAIL  ", "infix:sym<lt>")
+    .return (rx1216_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("307_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<lt>"  :subid("307_1277356913.9538") :method
 .annotate 'line', 446
-    $P1216 = self."!PREFIX__!subrule"("O", "lt")
-    new $P1217, "ResizablePMCArray"
-    push $P1217, $P1216
-    .return ($P1217)
+    $P1218 = self."!PREFIX__!subrule"("O", "lt")
+    new $P1219, "ResizablePMCArray"
+    push $P1219, $P1218
+    .return ($P1219)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("308_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<gt>"  :subid("308_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1221_tgt
-    .local int rx1221_pos
-    .local int rx1221_off
-    .local int rx1221_eos
-    .local int rx1221_rep
-    .local pmc rx1221_cur
-    (rx1221_cur, rx1221_pos, rx1221_tgt) = self."!cursor_start"()
-    rx1221_cur."!cursor_debug"("START ", "infix:sym<gt>")
-    .lex unicode:"$\x{a2}", rx1221_cur
+    .local string rx1223_tgt
+    .local int rx1223_pos
+    .local int rx1223_off
+    .local int rx1223_eos
+    .local int rx1223_rep
+    .local pmc rx1223_cur
+    (rx1223_cur, rx1223_pos, rx1223_tgt) = self."!cursor_start"()
+    rx1223_cur."!cursor_debug"("START ", "infix:sym<gt>")
+    .lex unicode:"$\x{a2}", rx1223_cur
     .local pmc match
     .lex "$/", match
-    length rx1221_eos, rx1221_tgt
-    gt rx1221_pos, rx1221_eos, rx1221_done
-    set rx1221_off, 0
-    lt rx1221_pos, 2, rx1221_start
-    sub rx1221_off, rx1221_pos, 1
-    substr rx1221_tgt, rx1221_tgt, rx1221_off
-  rx1221_start:
+    length rx1223_eos, rx1223_tgt
+    gt rx1223_pos, rx1223_eos, rx1223_done
+    set rx1223_off, 0
+    lt rx1223_pos, 2, rx1223_start
+    sub rx1223_off, rx1223_pos, 1
+    substr rx1223_tgt, rx1223_tgt, rx1223_off
+  rx1223_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1225_done
-    goto rxscan1225_scan
-  rxscan1225_loop:
-    ($P10) = rx1221_cur."from"()
+    ne $I10, -1, rxscan1227_done
+    goto rxscan1227_scan
+  rxscan1227_loop:
+    ($P10) = rx1223_cur."from"()
     inc $P10
-    set rx1221_pos, $P10
-    ge rx1221_pos, rx1221_eos, rxscan1225_done
-  rxscan1225_scan:
-    set_addr $I10, rxscan1225_loop
-    rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
-  rxscan1225_done:
+    set rx1223_pos, $P10
+    ge rx1223_pos, rx1223_eos, rxscan1227_done
+  rxscan1227_scan:
+    set_addr $I10, rxscan1227_loop
+    rx1223_cur."!mark_push"(0, rx1223_pos, $I10)
+  rxscan1227_done:
 .annotate 'line', 526
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1226_fail
-    rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
+    set_addr $I10, rxcap_1228_fail
+    rx1223_cur."!mark_push"(0, rx1223_pos, $I10)
   # rx literal  "gt"
-    add $I11, rx1221_pos, 2
-    gt $I11, rx1221_eos, rx1221_fail
-    sub $I11, rx1221_pos, rx1221_off
-    substr $S10, rx1221_tgt, $I11, 2
-    ne $S10, "gt", rx1221_fail
-    add rx1221_pos, 2
-    set_addr $I10, rxcap_1226_fail
-    ($I12, $I11) = rx1221_cur."!mark_peek"($I10)
-    rx1221_cur."!cursor_pos"($I11)
-    ($P10) = rx1221_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1221_pos, "")
-    rx1221_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1223_pos, 2
+    gt $I11, rx1223_eos, rx1223_fail
+    sub $I11, rx1223_pos, rx1223_off
+    substr $S10, rx1223_tgt, $I11, 2
+    ne $S10, "gt", rx1223_fail
+    add rx1223_pos, 2
+    set_addr $I10, rxcap_1228_fail
+    ($I12, $I11) = rx1223_cur."!mark_peek"($I10)
+    rx1223_cur."!cursor_pos"($I11)
+    ($P10) = rx1223_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1223_pos, "")
+    rx1223_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1226_done
-  rxcap_1226_fail:
-    goto rx1221_fail
-  rxcap_1226_done:
+    goto rxcap_1228_done
+  rxcap_1228_fail:
+    goto rx1223_fail
+  rxcap_1228_done:
   # rx subrule "O" subtype=capture negate=
-    rx1221_cur."!cursor_pos"(rx1221_pos)
-    $P10 = rx1221_cur."O"("%relational, :pirop<isgt ISs>")
-    unless $P10, rx1221_fail
-    rx1221_cur."!mark_push"(0, -1, 0, $P10)
+    rx1223_cur."!cursor_pos"(rx1223_pos)
+    $P10 = rx1223_cur."O"("%relational, :pirop<isgt ISs>")
+    unless $P10, rx1223_fail
+    rx1223_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1221_pos = $P10."pos"()
+    rx1223_pos = $P10."pos"()
   # rx pass
-    rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym<gt>")
-    rx1221_cur."!cursor_debug"("PASS  ", "infix:sym<gt>", " at pos=", rx1221_pos)
-    .return (rx1221_cur)
-  rx1221_fail:
+    rx1223_cur."!cursor_pass"(rx1223_pos, "infix:sym<gt>")
+    rx1223_cur."!cursor_debug"("PASS  ", "infix:sym<gt>", " at pos=", rx1223_pos)
+    .return (rx1223_cur)
+  rx1223_fail:
 .annotate 'line', 446
-    (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
-    lt rx1221_pos, -1, rx1221_done
-    eq rx1221_pos, -1, rx1221_fail
+    (rx1223_rep, rx1223_pos, $I10, $P10) = rx1223_cur."!mark_fail"(0)
+    lt rx1223_pos, -1, rx1223_done
+    eq rx1223_pos, -1, rx1223_fail
     jump $I10
-  rx1221_done:
-    rx1221_cur."!cursor_fail"()
-    rx1221_cur."!cursor_debug"("FAIL  ", "infix:sym<gt>")
-    .return (rx1221_cur)
+  rx1223_done:
+    rx1223_cur."!cursor_fail"()
+    rx1223_cur."!cursor_debug"("FAIL  ", "infix:sym<gt>")
+    .return (rx1223_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("309_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<gt>"  :subid("309_1277356913.9538") :method
 .annotate 'line', 446
-    $P1223 = self."!PREFIX__!subrule"("O", "gt")
-    new $P1224, "ResizablePMCArray"
-    push $P1224, $P1223
-    .return ($P1224)
+    $P1225 = self."!PREFIX__!subrule"("O", "gt")
+    new $P1226, "ResizablePMCArray"
+    push $P1226, $P1225
+    .return ($P1226)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("310_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<=:=>"  :subid("310_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1228_tgt
-    .local int rx1228_pos
-    .local int rx1228_off
-    .local int rx1228_eos
-    .local int rx1228_rep
-    .local pmc rx1228_cur
-    (rx1228_cur, rx1228_pos, rx1228_tgt) = self."!cursor_start"()
-    rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>")
-    .lex unicode:"$\x{a2}", rx1228_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1228_eos, rx1228_tgt
-    gt rx1228_pos, rx1228_eos, rx1228_done
-    set rx1228_off, 0
-    lt rx1228_pos, 2, rx1228_start
-    sub rx1228_off, rx1228_pos, 1
-    substr rx1228_tgt, rx1228_tgt, rx1228_off
-  rx1228_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1232_done
-    goto rxscan1232_scan
-  rxscan1232_loop:
-    ($P10) = rx1228_cur."from"()
-    inc $P10
-    set rx1228_pos, $P10
-    ge rx1228_pos, rx1228_eos, rxscan1232_done
-  rxscan1232_scan:
-    set_addr $I10, rxscan1232_loop
-    rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
-  rxscan1232_done:
+    .local string rx1230_tgt
+    .local int rx1230_pos
+    .local int rx1230_off
+    .local int rx1230_eos
+    .local int rx1230_rep
+    .local pmc rx1230_cur
+    (rx1230_cur, rx1230_pos, rx1230_tgt) = self."!cursor_start"()
+    rx1230_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+    .lex unicode:"$\x{a2}", rx1230_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1230_eos, rx1230_tgt
+    gt rx1230_pos, rx1230_eos, rx1230_done
+    set rx1230_off, 0
+    lt rx1230_pos, 2, rx1230_start
+    sub rx1230_off, rx1230_pos, 1
+    substr rx1230_tgt, rx1230_tgt, rx1230_off
+  rx1230_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1234_done
+    goto rxscan1234_scan
+  rxscan1234_loop:
+    ($P10) = rx1230_cur."from"()
+    inc $P10
+    set rx1230_pos, $P10
+    ge rx1230_pos, rx1230_eos, rxscan1234_done
+  rxscan1234_scan:
+    set_addr $I10, rxscan1234_loop
+    rx1230_cur."!mark_push"(0, rx1230_pos, $I10)
+  rxscan1234_done:
 .annotate 'line', 527
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1233_fail
-    rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
+    set_addr $I10, rxcap_1235_fail
+    rx1230_cur."!mark_push"(0, rx1230_pos, $I10)
   # rx literal  "=:="
-    add $I11, rx1228_pos, 3
-    gt $I11, rx1228_eos, rx1228_fail
-    sub $I11, rx1228_pos, rx1228_off
-    substr $S10, rx1228_tgt, $I11, 3
-    ne $S10, "=:=", rx1228_fail
-    add rx1228_pos, 3
-    set_addr $I10, rxcap_1233_fail
-    ($I12, $I11) = rx1228_cur."!mark_peek"($I10)
-    rx1228_cur."!cursor_pos"($I11)
-    ($P10) = rx1228_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1228_pos, "")
-    rx1228_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1230_pos, 3
+    gt $I11, rx1230_eos, rx1230_fail
+    sub $I11, rx1230_pos, rx1230_off
+    substr $S10, rx1230_tgt, $I11, 3
+    ne $S10, "=:=", rx1230_fail
+    add rx1230_pos, 3
+    set_addr $I10, rxcap_1235_fail
+    ($I12, $I11) = rx1230_cur."!mark_peek"($I10)
+    rx1230_cur."!cursor_pos"($I11)
+    ($P10) = rx1230_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1230_pos, "")
+    rx1230_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1233_done
-  rxcap_1233_fail:
-    goto rx1228_fail
-  rxcap_1233_done:
+    goto rxcap_1235_done
+  rxcap_1235_fail:
+    goto rx1230_fail
+  rxcap_1235_done:
   # rx subrule "O" subtype=capture negate=
-    rx1228_cur."!cursor_pos"(rx1228_pos)
-    $P10 = rx1228_cur."O"("%relational, :pirop<issame>")
-    unless $P10, rx1228_fail
-    rx1228_cur."!mark_push"(0, -1, 0, $P10)
+    rx1230_cur."!cursor_pos"(rx1230_pos)
+    $P10 = rx1230_cur."O"("%relational, :pirop<issame>")
+    unless $P10, rx1230_fail
+    rx1230_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1228_pos = $P10."pos"()
+    rx1230_pos = $P10."pos"()
   # rx pass
-    rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>")
-    rx1228_cur."!cursor_debug"("PASS  ", "infix:sym<=:=>", " at pos=", rx1228_pos)
-    .return (rx1228_cur)
-  rx1228_fail:
+    rx1230_cur."!cursor_pass"(rx1230_pos, "infix:sym<=:=>")
+    rx1230_cur."!cursor_debug"("PASS  ", "infix:sym<=:=>", " at pos=", rx1230_pos)
+    .return (rx1230_cur)
+  rx1230_fail:
 .annotate 'line', 446
-    (rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0)
-    lt rx1228_pos, -1, rx1228_done
-    eq rx1228_pos, -1, rx1228_fail
+    (rx1230_rep, rx1230_pos, $I10, $P10) = rx1230_cur."!mark_fail"(0)
+    lt rx1230_pos, -1, rx1230_done
+    eq rx1230_pos, -1, rx1230_fail
     jump $I10
-  rx1228_done:
-    rx1228_cur."!cursor_fail"()
-    rx1228_cur."!cursor_debug"("FAIL  ", "infix:sym<=:=>")
-    .return (rx1228_cur)
+  rx1230_done:
+    rx1230_cur."!cursor_fail"()
+    rx1230_cur."!cursor_debug"("FAIL  ", "infix:sym<=:=>")
+    .return (rx1230_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("311_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<=:=>"  :subid("311_1277356913.9538") :method
 .annotate 'line', 446
-    $P1230 = self."!PREFIX__!subrule"("O", "=:=")
-    new $P1231, "ResizablePMCArray"
-    push $P1231, $P1230
-    .return ($P1231)
+    $P1232 = self."!PREFIX__!subrule"("O", "=:=")
+    new $P1233, "ResizablePMCArray"
+    push $P1233, $P1232
+    .return ($P1233)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("312_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<~~>"  :subid("312_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1235_tgt
-    .local int rx1235_pos
-    .local int rx1235_off
-    .local int rx1235_eos
-    .local int rx1235_rep
-    .local pmc rx1235_cur
-    (rx1235_cur, rx1235_pos, rx1235_tgt) = self."!cursor_start"()
-    rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>")
-    .lex unicode:"$\x{a2}", rx1235_cur
+    .local string rx1237_tgt
+    .local int rx1237_pos
+    .local int rx1237_off
+    .local int rx1237_eos
+    .local int rx1237_rep
+    .local pmc rx1237_cur
+    (rx1237_cur, rx1237_pos, rx1237_tgt) = self."!cursor_start"()
+    rx1237_cur."!cursor_debug"("START ", "infix:sym<~~>")
+    .lex unicode:"$\x{a2}", rx1237_cur
     .local pmc match
     .lex "$/", match
-    length rx1235_eos, rx1235_tgt
-    gt rx1235_pos, rx1235_eos, rx1235_done
-    set rx1235_off, 0
-    lt rx1235_pos, 2, rx1235_start
-    sub rx1235_off, rx1235_pos, 1
-    substr rx1235_tgt, rx1235_tgt, rx1235_off
-  rx1235_start:
+    length rx1237_eos, rx1237_tgt
+    gt rx1237_pos, rx1237_eos, rx1237_done
+    set rx1237_off, 0
+    lt rx1237_pos, 2, rx1237_start
+    sub rx1237_off, rx1237_pos, 1
+    substr rx1237_tgt, rx1237_tgt, rx1237_off
+  rx1237_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1239_done
-    goto rxscan1239_scan
-  rxscan1239_loop:
-    ($P10) = rx1235_cur."from"()
+    ne $I10, -1, rxscan1241_done
+    goto rxscan1241_scan
+  rxscan1241_loop:
+    ($P10) = rx1237_cur."from"()
     inc $P10
-    set rx1235_pos, $P10
-    ge rx1235_pos, rx1235_eos, rxscan1239_done
-  rxscan1239_scan:
-    set_addr $I10, rxscan1239_loop
-    rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
-  rxscan1239_done:
+    set rx1237_pos, $P10
+    ge rx1237_pos, rx1237_eos, rxscan1241_done
+  rxscan1241_scan:
+    set_addr $I10, rxscan1241_loop
+    rx1237_cur."!mark_push"(0, rx1237_pos, $I10)
+  rxscan1241_done:
 .annotate 'line', 528
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1240_fail
-    rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
+    set_addr $I10, rxcap_1242_fail
+    rx1237_cur."!mark_push"(0, rx1237_pos, $I10)
   # rx literal  "~~"
-    add $I11, rx1235_pos, 2
-    gt $I11, rx1235_eos, rx1235_fail
-    sub $I11, rx1235_pos, rx1235_off
-    substr $S10, rx1235_tgt, $I11, 2
-    ne $S10, "~~", rx1235_fail
-    add rx1235_pos, 2
-    set_addr $I10, rxcap_1240_fail
-    ($I12, $I11) = rx1235_cur."!mark_peek"($I10)
-    rx1235_cur."!cursor_pos"($I11)
-    ($P10) = rx1235_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1235_pos, "")
-    rx1235_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1237_pos, 2
+    gt $I11, rx1237_eos, rx1237_fail
+    sub $I11, rx1237_pos, rx1237_off
+    substr $S10, rx1237_tgt, $I11, 2
+    ne $S10, "~~", rx1237_fail
+    add rx1237_pos, 2
+    set_addr $I10, rxcap_1242_fail
+    ($I12, $I11) = rx1237_cur."!mark_peek"($I10)
+    rx1237_cur."!cursor_pos"($I11)
+    ($P10) = rx1237_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1237_pos, "")
+    rx1237_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1240_done
-  rxcap_1240_fail:
-    goto rx1235_fail
-  rxcap_1240_done:
+    goto rxcap_1242_done
+  rxcap_1242_fail:
+    goto rx1237_fail
+  rxcap_1242_done:
   # rx subrule "O" subtype=capture negate=
-    rx1235_cur."!cursor_pos"(rx1235_pos)
-    $P10 = rx1235_cur."O"("%relational, :reducecheck<smartmatch>")
-    unless $P10, rx1235_fail
-    rx1235_cur."!mark_push"(0, -1, 0, $P10)
+    rx1237_cur."!cursor_pos"(rx1237_pos)
+    $P10 = rx1237_cur."O"("%relational, :reducecheck<smartmatch>")
+    unless $P10, rx1237_fail
+    rx1237_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1235_pos = $P10."pos"()
+    rx1237_pos = $P10."pos"()
   # rx pass
-    rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>")
-    rx1235_cur."!cursor_debug"("PASS  ", "infix:sym<~~>", " at pos=", rx1235_pos)
-    .return (rx1235_cur)
-  rx1235_fail:
+    rx1237_cur."!cursor_pass"(rx1237_pos, "infix:sym<~~>")
+    rx1237_cur."!cursor_debug"("PASS  ", "infix:sym<~~>", " at pos=", rx1237_pos)
+    .return (rx1237_cur)
+  rx1237_fail:
 .annotate 'line', 446
-    (rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0)
-    lt rx1235_pos, -1, rx1235_done
-    eq rx1235_pos, -1, rx1235_fail
+    (rx1237_rep, rx1237_pos, $I10, $P10) = rx1237_cur."!mark_fail"(0)
+    lt rx1237_pos, -1, rx1237_done
+    eq rx1237_pos, -1, rx1237_fail
     jump $I10
-  rx1235_done:
-    rx1235_cur."!cursor_fail"()
-    rx1235_cur."!cursor_debug"("FAIL  ", "infix:sym<~~>")
-    .return (rx1235_cur)
+  rx1237_done:
+    rx1237_cur."!cursor_fail"()
+    rx1237_cur."!cursor_debug"("FAIL  ", "infix:sym<~~>")
+    .return (rx1237_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("313_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<~~>"  :subid("313_1277356913.9538") :method
 .annotate 'line', 446
-    $P1237 = self."!PREFIX__!subrule"("O", "~~")
-    new $P1238, "ResizablePMCArray"
-    push $P1238, $P1237
-    .return ($P1238)
+    $P1239 = self."!PREFIX__!subrule"("O", "~~")
+    new $P1240, "ResizablePMCArray"
+    push $P1240, $P1239
+    .return ($P1240)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("314_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<&&>"  :subid("314_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1242_tgt
-    .local int rx1242_pos
-    .local int rx1242_off
-    .local int rx1242_eos
-    .local int rx1242_rep
-    .local pmc rx1242_cur
-    (rx1242_cur, rx1242_pos, rx1242_tgt) = self."!cursor_start"()
-    rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>")
-    .lex unicode:"$\x{a2}", rx1242_cur
+    .local string rx1244_tgt
+    .local int rx1244_pos
+    .local int rx1244_off
+    .local int rx1244_eos
+    .local int rx1244_rep
+    .local pmc rx1244_cur
+    (rx1244_cur, rx1244_pos, rx1244_tgt) = self."!cursor_start"()
+    rx1244_cur."!cursor_debug"("START ", "infix:sym<&&>")
+    .lex unicode:"$\x{a2}", rx1244_cur
     .local pmc match
     .lex "$/", match
-    length rx1242_eos, rx1242_tgt
-    gt rx1242_pos, rx1242_eos, rx1242_done
-    set rx1242_off, 0
-    lt rx1242_pos, 2, rx1242_start
-    sub rx1242_off, rx1242_pos, 1
-    substr rx1242_tgt, rx1242_tgt, rx1242_off
-  rx1242_start:
+    length rx1244_eos, rx1244_tgt
+    gt rx1244_pos, rx1244_eos, rx1244_done
+    set rx1244_off, 0
+    lt rx1244_pos, 2, rx1244_start
+    sub rx1244_off, rx1244_pos, 1
+    substr rx1244_tgt, rx1244_tgt, rx1244_off
+  rx1244_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1246_done
-    goto rxscan1246_scan
-  rxscan1246_loop:
-    ($P10) = rx1242_cur."from"()
+    ne $I10, -1, rxscan1248_done
+    goto rxscan1248_scan
+  rxscan1248_loop:
+    ($P10) = rx1244_cur."from"()
     inc $P10
-    set rx1242_pos, $P10
-    ge rx1242_pos, rx1242_eos, rxscan1246_done
-  rxscan1246_scan:
-    set_addr $I10, rxscan1246_loop
-    rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
-  rxscan1246_done:
+    set rx1244_pos, $P10
+    ge rx1244_pos, rx1244_eos, rxscan1248_done
+  rxscan1248_scan:
+    set_addr $I10, rxscan1248_loop
+    rx1244_cur."!mark_push"(0, rx1244_pos, $I10)
+  rxscan1248_done:
 .annotate 'line', 530
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1247_fail
-    rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
+    set_addr $I10, rxcap_1249_fail
+    rx1244_cur."!mark_push"(0, rx1244_pos, $I10)
   # rx literal  "&&"
-    add $I11, rx1242_pos, 2
-    gt $I11, rx1242_eos, rx1242_fail
-    sub $I11, rx1242_pos, rx1242_off
-    substr $S10, rx1242_tgt, $I11, 2
-    ne $S10, "&&", rx1242_fail
-    add rx1242_pos, 2
-    set_addr $I10, rxcap_1247_fail
-    ($I12, $I11) = rx1242_cur."!mark_peek"($I10)
-    rx1242_cur."!cursor_pos"($I11)
-    ($P10) = rx1242_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1242_pos, "")
-    rx1242_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1244_pos, 2
+    gt $I11, rx1244_eos, rx1244_fail
+    sub $I11, rx1244_pos, rx1244_off
+    substr $S10, rx1244_tgt, $I11, 2
+    ne $S10, "&&", rx1244_fail
+    add rx1244_pos, 2
+    set_addr $I10, rxcap_1249_fail
+    ($I12, $I11) = rx1244_cur."!mark_peek"($I10)
+    rx1244_cur."!cursor_pos"($I11)
+    ($P10) = rx1244_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1244_pos, "")
+    rx1244_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1247_done
-  rxcap_1247_fail:
-    goto rx1242_fail
-  rxcap_1247_done:
+    goto rxcap_1249_done
+  rxcap_1249_fail:
+    goto rx1244_fail
+  rxcap_1249_done:
   # rx subrule "O" subtype=capture negate=
-    rx1242_cur."!cursor_pos"(rx1242_pos)
-    $P10 = rx1242_cur."O"("%tight_and, :pasttype<if>")
-    unless $P10, rx1242_fail
-    rx1242_cur."!mark_push"(0, -1, 0, $P10)
+    rx1244_cur."!cursor_pos"(rx1244_pos)
+    $P10 = rx1244_cur."O"("%tight_and, :pasttype<if>")
+    unless $P10, rx1244_fail
+    rx1244_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1242_pos = $P10."pos"()
+    rx1244_pos = $P10."pos"()
   # rx pass
-    rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>")
-    rx1242_cur."!cursor_debug"("PASS  ", "infix:sym<&&>", " at pos=", rx1242_pos)
-    .return (rx1242_cur)
-  rx1242_fail:
+    rx1244_cur."!cursor_pass"(rx1244_pos, "infix:sym<&&>")
+    rx1244_cur."!cursor_debug"("PASS  ", "infix:sym<&&>", " at pos=", rx1244_pos)
+    .return (rx1244_cur)
+  rx1244_fail:
 .annotate 'line', 446
-    (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
-    lt rx1242_pos, -1, rx1242_done
-    eq rx1242_pos, -1, rx1242_fail
+    (rx1244_rep, rx1244_pos, $I10, $P10) = rx1244_cur."!mark_fail"(0)
+    lt rx1244_pos, -1, rx1244_done
+    eq rx1244_pos, -1, rx1244_fail
     jump $I10
-  rx1242_done:
-    rx1242_cur."!cursor_fail"()
-    rx1242_cur."!cursor_debug"("FAIL  ", "infix:sym<&&>")
-    .return (rx1242_cur)
+  rx1244_done:
+    rx1244_cur."!cursor_fail"()
+    rx1244_cur."!cursor_debug"("FAIL  ", "infix:sym<&&>")
+    .return (rx1244_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("315_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<&&>"  :subid("315_1277356913.9538") :method
 .annotate 'line', 446
-    $P1244 = self."!PREFIX__!subrule"("O", "&&")
-    new $P1245, "ResizablePMCArray"
-    push $P1245, $P1244
-    .return ($P1245)
+    $P1246 = self."!PREFIX__!subrule"("O", "&&")
+    new $P1247, "ResizablePMCArray"
+    push $P1247, $P1246
+    .return ($P1247)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("316_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<||>"  :subid("316_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1249_tgt
-    .local int rx1249_pos
-    .local int rx1249_off
-    .local int rx1249_eos
-    .local int rx1249_rep
-    .local pmc rx1249_cur
-    (rx1249_cur, rx1249_pos, rx1249_tgt) = self."!cursor_start"()
-    rx1249_cur."!cursor_debug"("START ", "infix:sym<||>")
-    .lex unicode:"$\x{a2}", rx1249_cur
+    .local string rx1251_tgt
+    .local int rx1251_pos
+    .local int rx1251_off
+    .local int rx1251_eos
+    .local int rx1251_rep
+    .local pmc rx1251_cur
+    (rx1251_cur, rx1251_pos, rx1251_tgt) = self."!cursor_start"()
+    rx1251_cur."!cursor_debug"("START ", "infix:sym<||>")
+    .lex unicode:"$\x{a2}", rx1251_cur
     .local pmc match
     .lex "$/", match
-    length rx1249_eos, rx1249_tgt
-    gt rx1249_pos, rx1249_eos, rx1249_done
-    set rx1249_off, 0
-    lt rx1249_pos, 2, rx1249_start
-    sub rx1249_off, rx1249_pos, 1
-    substr rx1249_tgt, rx1249_tgt, rx1249_off
-  rx1249_start:
+    length rx1251_eos, rx1251_tgt
+    gt rx1251_pos, rx1251_eos, rx1251_done
+    set rx1251_off, 0
+    lt rx1251_pos, 2, rx1251_start
+    sub rx1251_off, rx1251_pos, 1
+    substr rx1251_tgt, rx1251_tgt, rx1251_off
+  rx1251_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1253_done
-    goto rxscan1253_scan
-  rxscan1253_loop:
-    ($P10) = rx1249_cur."from"()
+    ne $I10, -1, rxscan1255_done
+    goto rxscan1255_scan
+  rxscan1255_loop:
+    ($P10) = rx1251_cur."from"()
     inc $P10
-    set rx1249_pos, $P10
-    ge rx1249_pos, rx1249_eos, rxscan1253_done
-  rxscan1253_scan:
-    set_addr $I10, rxscan1253_loop
-    rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
-  rxscan1253_done:
+    set rx1251_pos, $P10
+    ge rx1251_pos, rx1251_eos, rxscan1255_done
+  rxscan1255_scan:
+    set_addr $I10, rxscan1255_loop
+    rx1251_cur."!mark_push"(0, rx1251_pos, $I10)
+  rxscan1255_done:
 .annotate 'line', 532
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1254_fail
-    rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
+    set_addr $I10, rxcap_1256_fail
+    rx1251_cur."!mark_push"(0, rx1251_pos, $I10)
   # rx literal  "||"
-    add $I11, rx1249_pos, 2
-    gt $I11, rx1249_eos, rx1249_fail
-    sub $I11, rx1249_pos, rx1249_off
-    substr $S10, rx1249_tgt, $I11, 2
-    ne $S10, "||", rx1249_fail
-    add rx1249_pos, 2
-    set_addr $I10, rxcap_1254_fail
-    ($I12, $I11) = rx1249_cur."!mark_peek"($I10)
-    rx1249_cur."!cursor_pos"($I11)
-    ($P10) = rx1249_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1249_pos, "")
-    rx1249_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1251_pos, 2
+    gt $I11, rx1251_eos, rx1251_fail
+    sub $I11, rx1251_pos, rx1251_off
+    substr $S10, rx1251_tgt, $I11, 2
+    ne $S10, "||", rx1251_fail
+    add rx1251_pos, 2
+    set_addr $I10, rxcap_1256_fail
+    ($I12, $I11) = rx1251_cur."!mark_peek"($I10)
+    rx1251_cur."!cursor_pos"($I11)
+    ($P10) = rx1251_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1251_pos, "")
+    rx1251_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1254_done
-  rxcap_1254_fail:
-    goto rx1249_fail
-  rxcap_1254_done:
+    goto rxcap_1256_done
+  rxcap_1256_fail:
+    goto rx1251_fail
+  rxcap_1256_done:
   # rx subrule "O" subtype=capture negate=
-    rx1249_cur."!cursor_pos"(rx1249_pos)
-    $P10 = rx1249_cur."O"("%tight_or, :pasttype<unless>")
-    unless $P10, rx1249_fail
-    rx1249_cur."!mark_push"(0, -1, 0, $P10)
+    rx1251_cur."!cursor_pos"(rx1251_pos)
+    $P10 = rx1251_cur."O"("%tight_or, :pasttype<unless>")
+    unless $P10, rx1251_fail
+    rx1251_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1249_pos = $P10."pos"()
+    rx1251_pos = $P10."pos"()
   # rx pass
-    rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>")
-    rx1249_cur."!cursor_debug"("PASS  ", "infix:sym<||>", " at pos=", rx1249_pos)
-    .return (rx1249_cur)
-  rx1249_fail:
+    rx1251_cur."!cursor_pass"(rx1251_pos, "infix:sym<||>")
+    rx1251_cur."!cursor_debug"("PASS  ", "infix:sym<||>", " at pos=", rx1251_pos)
+    .return (rx1251_cur)
+  rx1251_fail:
 .annotate 'line', 446
-    (rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0)
-    lt rx1249_pos, -1, rx1249_done
-    eq rx1249_pos, -1, rx1249_fail
+    (rx1251_rep, rx1251_pos, $I10, $P10) = rx1251_cur."!mark_fail"(0)
+    lt rx1251_pos, -1, rx1251_done
+    eq rx1251_pos, -1, rx1251_fail
     jump $I10
-  rx1249_done:
-    rx1249_cur."!cursor_fail"()
-    rx1249_cur."!cursor_debug"("FAIL  ", "infix:sym<||>")
-    .return (rx1249_cur)
+  rx1251_done:
+    rx1251_cur."!cursor_fail"()
+    rx1251_cur."!cursor_debug"("FAIL  ", "infix:sym<||>")
+    .return (rx1251_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("317_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<||>"  :subid("317_1277356913.9538") :method
 .annotate 'line', 446
-    $P1251 = self."!PREFIX__!subrule"("O", "||")
-    new $P1252, "ResizablePMCArray"
-    push $P1252, $P1251
-    .return ($P1252)
+    $P1253 = self."!PREFIX__!subrule"("O", "||")
+    new $P1254, "ResizablePMCArray"
+    push $P1254, $P1253
+    .return ($P1254)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("318_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<//>"  :subid("318_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1256_tgt
-    .local int rx1256_pos
-    .local int rx1256_off
-    .local int rx1256_eos
-    .local int rx1256_rep
-    .local pmc rx1256_cur
-    (rx1256_cur, rx1256_pos, rx1256_tgt) = self."!cursor_start"()
-    rx1256_cur."!cursor_debug"("START ", "infix:sym<//>")
-    .lex unicode:"$\x{a2}", rx1256_cur
+    .local string rx1258_tgt
+    .local int rx1258_pos
+    .local int rx1258_off
+    .local int rx1258_eos
+    .local int rx1258_rep
+    .local pmc rx1258_cur
+    (rx1258_cur, rx1258_pos, rx1258_tgt) = self."!cursor_start"()
+    rx1258_cur."!cursor_debug"("START ", "infix:sym<//>")
+    .lex unicode:"$\x{a2}", rx1258_cur
     .local pmc match
     .lex "$/", match
-    length rx1256_eos, rx1256_tgt
-    gt rx1256_pos, rx1256_eos, rx1256_done
-    set rx1256_off, 0
-    lt rx1256_pos, 2, rx1256_start
-    sub rx1256_off, rx1256_pos, 1
-    substr rx1256_tgt, rx1256_tgt, rx1256_off
-  rx1256_start:
+    length rx1258_eos, rx1258_tgt
+    gt rx1258_pos, rx1258_eos, rx1258_done
+    set rx1258_off, 0
+    lt rx1258_pos, 2, rx1258_start
+    sub rx1258_off, rx1258_pos, 1
+    substr rx1258_tgt, rx1258_tgt, rx1258_off
+  rx1258_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1260_done
-    goto rxscan1260_scan
-  rxscan1260_loop:
-    ($P10) = rx1256_cur."from"()
+    ne $I10, -1, rxscan1262_done
+    goto rxscan1262_scan
+  rxscan1262_loop:
+    ($P10) = rx1258_cur."from"()
     inc $P10
-    set rx1256_pos, $P10
-    ge rx1256_pos, rx1256_eos, rxscan1260_done
-  rxscan1260_scan:
-    set_addr $I10, rxscan1260_loop
-    rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
-  rxscan1260_done:
+    set rx1258_pos, $P10
+    ge rx1258_pos, rx1258_eos, rxscan1262_done
+  rxscan1262_scan:
+    set_addr $I10, rxscan1262_loop
+    rx1258_cur."!mark_push"(0, rx1258_pos, $I10)
+  rxscan1262_done:
 .annotate 'line', 533
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1261_fail
-    rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
+    set_addr $I10, rxcap_1263_fail
+    rx1258_cur."!mark_push"(0, rx1258_pos, $I10)
   # rx literal  "//"
-    add $I11, rx1256_pos, 2
-    gt $I11, rx1256_eos, rx1256_fail
-    sub $I11, rx1256_pos, rx1256_off
-    substr $S10, rx1256_tgt, $I11, 2
-    ne $S10, "//", rx1256_fail
-    add rx1256_pos, 2
-    set_addr $I10, rxcap_1261_fail
-    ($I12, $I11) = rx1256_cur."!mark_peek"($I10)
-    rx1256_cur."!cursor_pos"($I11)
-    ($P10) = rx1256_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1256_pos, "")
-    rx1256_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1258_pos, 2
+    gt $I11, rx1258_eos, rx1258_fail
+    sub $I11, rx1258_pos, rx1258_off
+    substr $S10, rx1258_tgt, $I11, 2
+    ne $S10, "//", rx1258_fail
+    add rx1258_pos, 2
+    set_addr $I10, rxcap_1263_fail
+    ($I12, $I11) = rx1258_cur."!mark_peek"($I10)
+    rx1258_cur."!cursor_pos"($I11)
+    ($P10) = rx1258_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1258_pos, "")
+    rx1258_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1261_done
-  rxcap_1261_fail:
-    goto rx1256_fail
-  rxcap_1261_done:
+    goto rxcap_1263_done
+  rxcap_1263_fail:
+    goto rx1258_fail
+  rxcap_1263_done:
   # rx subrule "O" subtype=capture negate=
-    rx1256_cur."!cursor_pos"(rx1256_pos)
-    $P10 = rx1256_cur."O"("%tight_or, :pasttype<def_or>")
-    unless $P10, rx1256_fail
-    rx1256_cur."!mark_push"(0, -1, 0, $P10)
+    rx1258_cur."!cursor_pos"(rx1258_pos)
+    $P10 = rx1258_cur."O"("%tight_or, :pasttype<def_or>")
+    unless $P10, rx1258_fail
+    rx1258_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1256_pos = $P10."pos"()
+    rx1258_pos = $P10."pos"()
   # rx pass
-    rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym<//>")
-    rx1256_cur."!cursor_debug"("PASS  ", "infix:sym<//>", " at pos=", rx1256_pos)
-    .return (rx1256_cur)
-  rx1256_fail:
+    rx1258_cur."!cursor_pass"(rx1258_pos, "infix:sym<//>")
+    rx1258_cur."!cursor_debug"("PASS  ", "infix:sym<//>", " at pos=", rx1258_pos)
+    .return (rx1258_cur)
+  rx1258_fail:
 .annotate 'line', 446
-    (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
-    lt rx1256_pos, -1, rx1256_done
-    eq rx1256_pos, -1, rx1256_fail
+    (rx1258_rep, rx1258_pos, $I10, $P10) = rx1258_cur."!mark_fail"(0)
+    lt rx1258_pos, -1, rx1258_done
+    eq rx1258_pos, -1, rx1258_fail
     jump $I10
-  rx1256_done:
-    rx1256_cur."!cursor_fail"()
-    rx1256_cur."!cursor_debug"("FAIL  ", "infix:sym<//>")
-    .return (rx1256_cur)
+  rx1258_done:
+    rx1258_cur."!cursor_fail"()
+    rx1258_cur."!cursor_debug"("FAIL  ", "infix:sym<//>")
+    .return (rx1258_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("319_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<//>"  :subid("319_1277356913.9538") :method
 .annotate 'line', 446
-    $P1258 = self."!PREFIX__!subrule"("O", "//")
-    new $P1259, "ResizablePMCArray"
-    push $P1259, $P1258
-    .return ($P1259)
+    $P1260 = self."!PREFIX__!subrule"("O", "//")
+    new $P1261, "ResizablePMCArray"
+    push $P1261, $P1260
+    .return ($P1261)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("320_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<?? !!>"  :subid("320_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1263_tgt
-    .local int rx1263_pos
-    .local int rx1263_off
-    .local int rx1263_eos
-    .local int rx1263_rep
-    .local pmc rx1263_cur
-    (rx1263_cur, rx1263_pos, rx1263_tgt) = self."!cursor_start"()
-    rx1263_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
-    .lex unicode:"$\x{a2}", rx1263_cur
+    .local string rx1265_tgt
+    .local int rx1265_pos
+    .local int rx1265_off
+    .local int rx1265_eos
+    .local int rx1265_rep
+    .local pmc rx1265_cur
+    (rx1265_cur, rx1265_pos, rx1265_tgt) = self."!cursor_start"()
+    rx1265_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+    .lex unicode:"$\x{a2}", rx1265_cur
     .local pmc match
     .lex "$/", match
-    length rx1263_eos, rx1263_tgt
-    gt rx1263_pos, rx1263_eos, rx1263_done
-    set rx1263_off, 0
-    lt rx1263_pos, 2, rx1263_start
-    sub rx1263_off, rx1263_pos, 1
-    substr rx1263_tgt, rx1263_tgt, rx1263_off
-  rx1263_start:
+    length rx1265_eos, rx1265_tgt
+    gt rx1265_pos, rx1265_eos, rx1265_done
+    set rx1265_off, 0
+    lt rx1265_pos, 2, rx1265_start
+    sub rx1265_off, rx1265_pos, 1
+    substr rx1265_tgt, rx1265_tgt, rx1265_off
+  rx1265_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1267_done
-    goto rxscan1267_scan
-  rxscan1267_loop:
-    ($P10) = rx1263_cur."from"()
+    ne $I10, -1, rxscan1269_done
+    goto rxscan1269_scan
+  rxscan1269_loop:
+    ($P10) = rx1265_cur."from"()
     inc $P10
-    set rx1263_pos, $P10
-    ge rx1263_pos, rx1263_eos, rxscan1267_done
-  rxscan1267_scan:
-    set_addr $I10, rxscan1267_loop
-    rx1263_cur."!mark_push"(0, rx1263_pos, $I10)
-  rxscan1267_done:
+    set rx1265_pos, $P10
+    ge rx1265_pos, rx1265_eos, rxscan1269_done
+  rxscan1269_scan:
+    set_addr $I10, rxscan1269_loop
+    rx1265_cur."!mark_push"(0, rx1265_pos, $I10)
+  rxscan1269_done:
 .annotate 'line', 536
   # rx literal  "??"
-    add $I11, rx1263_pos, 2
-    gt $I11, rx1263_eos, rx1263_fail
-    sub $I11, rx1263_pos, rx1263_off
-    substr $S10, rx1263_tgt, $I11, 2
-    ne $S10, "??", rx1263_fail
-    add rx1263_pos, 2
+    add $I11, rx1265_pos, 2
+    gt $I11, rx1265_eos, rx1265_fail
+    sub $I11, rx1265_pos, rx1265_off
+    substr $S10, rx1265_tgt, $I11, 2
+    ne $S10, "??", rx1265_fail
+    add rx1265_pos, 2
 .annotate 'line', 537
   # rx subrule "ws" subtype=method negate=
-    rx1263_cur."!cursor_pos"(rx1263_pos)
-    $P10 = rx1263_cur."ws"()
-    unless $P10, rx1263_fail
-    rx1263_pos = $P10."pos"()
+    rx1265_cur."!cursor_pos"(rx1265_pos)
+    $P10 = rx1265_cur."ws"()
+    unless $P10, rx1265_fail
+    rx1265_pos = $P10."pos"()
 .annotate 'line', 538
   # rx subrule "EXPR" subtype=capture negate=
-    rx1263_cur."!cursor_pos"(rx1263_pos)
-    $P10 = rx1263_cur."EXPR"("i=")
-    unless $P10, rx1263_fail
-    rx1263_cur."!mark_push"(0, -1, 0, $P10)
+    rx1265_cur."!cursor_pos"(rx1265_pos)
+    $P10 = rx1265_cur."EXPR"("i=")
+    unless $P10, rx1265_fail
+    rx1265_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx1263_pos = $P10."pos"()
+    rx1265_pos = $P10."pos"()
 .annotate 'line', 539
   # rx literal  "!!"
-    add $I11, rx1263_pos, 2
-    gt $I11, rx1263_eos, rx1263_fail
-    sub $I11, rx1263_pos, rx1263_off
-    substr $S10, rx1263_tgt, $I11, 2
-    ne $S10, "!!", rx1263_fail
-    add rx1263_pos, 2
+    add $I11, rx1265_pos, 2
+    gt $I11, rx1265_eos, rx1265_fail
+    sub $I11, rx1265_pos, rx1265_off
+    substr $S10, rx1265_tgt, $I11, 2
+    ne $S10, "!!", rx1265_fail
+    add rx1265_pos, 2
 .annotate 'line', 540
   # rx subrule "O" subtype=capture negate=
-    rx1263_cur."!cursor_pos"(rx1263_pos)
-    $P10 = rx1263_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
-    unless $P10, rx1263_fail
-    rx1263_cur."!mark_push"(0, -1, 0, $P10)
+    rx1265_cur."!cursor_pos"(rx1265_pos)
+    $P10 = rx1265_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
+    unless $P10, rx1265_fail
+    rx1265_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1263_pos = $P10."pos"()
+    rx1265_pos = $P10."pos"()
 .annotate 'line', 535
   # rx pass
-    rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym<?? !!>")
-    rx1263_cur."!cursor_debug"("PASS  ", "infix:sym<?? !!>", " at pos=", rx1263_pos)
-    .return (rx1263_cur)
-  rx1263_fail:
+    rx1265_cur."!cursor_pass"(rx1265_pos, "infix:sym<?? !!>")
+    rx1265_cur."!cursor_debug"("PASS  ", "infix:sym<?? !!>", " at pos=", rx1265_pos)
+    .return (rx1265_cur)
+  rx1265_fail:
 .annotate 'line', 446
-    (rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0)
-    lt rx1263_pos, -1, rx1263_done
-    eq rx1263_pos, -1, rx1263_fail
+    (rx1265_rep, rx1265_pos, $I10, $P10) = rx1265_cur."!mark_fail"(0)
+    lt rx1265_pos, -1, rx1265_done
+    eq rx1265_pos, -1, rx1265_fail
     jump $I10
-  rx1263_done:
-    rx1263_cur."!cursor_fail"()
-    rx1263_cur."!cursor_debug"("FAIL  ", "infix:sym<?? !!>")
-    .return (rx1263_cur)
+  rx1265_done:
+    rx1265_cur."!cursor_fail"()
+    rx1265_cur."!cursor_debug"("FAIL  ", "infix:sym<?? !!>")
+    .return (rx1265_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("321_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("321_1277356913.9538") :method
 .annotate 'line', 446
-    $P1265 = self."!PREFIX__!subrule"("ws", "??")
-    new $P1266, "ResizablePMCArray"
-    push $P1266, $P1265
-    .return ($P1266)
+    $P1267 = self."!PREFIX__!subrule"("ws", "??")
+    new $P1268, "ResizablePMCArray"
+    push $P1268, $P1267
+    .return ($P1268)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("322_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<=>"  :subid("322_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1269_tgt
-    .local int rx1269_pos
-    .local int rx1269_off
-    .local int rx1269_eos
-    .local int rx1269_rep
-    .local pmc rx1269_cur
-    (rx1269_cur, rx1269_pos, rx1269_tgt) = self."!cursor_start"()
-    rx1269_cur."!cursor_debug"("START ", "infix:sym<=>")
-    .lex unicode:"$\x{a2}", rx1269_cur
+    .local string rx1271_tgt
+    .local int rx1271_pos
+    .local int rx1271_off
+    .local int rx1271_eos
+    .local int rx1271_rep
+    .local pmc rx1271_cur
+    (rx1271_cur, rx1271_pos, rx1271_tgt) = self."!cursor_start"()
+    rx1271_cur."!cursor_debug"("START ", "infix:sym<=>")
+    .lex unicode:"$\x{a2}", rx1271_cur
     .local pmc match
     .lex "$/", match
-    length rx1269_eos, rx1269_tgt
-    gt rx1269_pos, rx1269_eos, rx1269_done
-    set rx1269_off, 0
-    lt rx1269_pos, 2, rx1269_start
-    sub rx1269_off, rx1269_pos, 1
-    substr rx1269_tgt, rx1269_tgt, rx1269_off
-  rx1269_start:
+    length rx1271_eos, rx1271_tgt
+    gt rx1271_pos, rx1271_eos, rx1271_done
+    set rx1271_off, 0
+    lt rx1271_pos, 2, rx1271_start
+    sub rx1271_off, rx1271_pos, 1
+    substr rx1271_tgt, rx1271_tgt, rx1271_off
+  rx1271_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1273_done
-    goto rxscan1273_scan
-  rxscan1273_loop:
-    ($P10) = rx1269_cur."from"()
+    ne $I10, -1, rxscan1275_done
+    goto rxscan1275_scan
+  rxscan1275_loop:
+    ($P10) = rx1271_cur."from"()
     inc $P10
-    set rx1269_pos, $P10
-    ge rx1269_pos, rx1269_eos, rxscan1273_done
-  rxscan1273_scan:
-    set_addr $I10, rxscan1273_loop
-    rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
-  rxscan1273_done:
+    set rx1271_pos, $P10
+    ge rx1271_pos, rx1271_eos, rxscan1275_done
+  rxscan1275_scan:
+    set_addr $I10, rxscan1275_loop
+    rx1271_cur."!mark_push"(0, rx1271_pos, $I10)
+  rxscan1275_done:
 .annotate 'line', 544
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1274_fail
-    rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
+    set_addr $I10, rxcap_1276_fail
+    rx1271_cur."!mark_push"(0, rx1271_pos, $I10)
   # rx literal  "="
-    add $I11, rx1269_pos, 1
-    gt $I11, rx1269_eos, rx1269_fail
-    sub $I11, rx1269_pos, rx1269_off
-    substr $S10, rx1269_tgt, $I11, 1
-    ne $S10, "=", rx1269_fail
-    add rx1269_pos, 1
-    set_addr $I10, rxcap_1274_fail
-    ($I12, $I11) = rx1269_cur."!mark_peek"($I10)
-    rx1269_cur."!cursor_pos"($I11)
-    ($P10) = rx1269_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1269_pos, "")
-    rx1269_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1271_pos, 1
+    gt $I11, rx1271_eos, rx1271_fail
+    sub $I11, rx1271_pos, rx1271_off
+    substr $S10, rx1271_tgt, $I11, 1
+    ne $S10, "=", rx1271_fail
+    add rx1271_pos, 1
+    set_addr $I10, rxcap_1276_fail
+    ($I12, $I11) = rx1271_cur."!mark_peek"($I10)
+    rx1271_cur."!cursor_pos"($I11)
+    ($P10) = rx1271_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1271_pos, "")
+    rx1271_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1274_done
-  rxcap_1274_fail:
-    goto rx1269_fail
-  rxcap_1274_done:
+    goto rxcap_1276_done
+  rxcap_1276_fail:
+    goto rx1271_fail
+  rxcap_1276_done:
   # rx subrule "panic" subtype=method negate=
-    rx1269_cur."!cursor_pos"(rx1269_pos)
-    $P10 = rx1269_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
-    unless $P10, rx1269_fail
-    rx1269_pos = $P10."pos"()
+    rx1271_cur."!cursor_pos"(rx1271_pos)
+    $P10 = rx1271_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
+    unless $P10, rx1271_fail
+    rx1271_pos = $P10."pos"()
 .annotate 'line', 543
   # rx pass
-    rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>")
-    rx1269_cur."!cursor_debug"("PASS  ", "infix:sym<=>", " at pos=", rx1269_pos)
-    .return (rx1269_cur)
-  rx1269_fail:
+    rx1271_cur."!cursor_pass"(rx1271_pos, "infix:sym<=>")
+    rx1271_cur."!cursor_debug"("PASS  ", "infix:sym<=>", " at pos=", rx1271_pos)
+    .return (rx1271_cur)
+  rx1271_fail:
 .annotate 'line', 446
-    (rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0)
-    lt rx1269_pos, -1, rx1269_done
-    eq rx1269_pos, -1, rx1269_fail
+    (rx1271_rep, rx1271_pos, $I10, $P10) = rx1271_cur."!mark_fail"(0)
+    lt rx1271_pos, -1, rx1271_done
+    eq rx1271_pos, -1, rx1271_fail
     jump $I10
-  rx1269_done:
-    rx1269_cur."!cursor_fail"()
-    rx1269_cur."!cursor_debug"("FAIL  ", "infix:sym<=>")
-    .return (rx1269_cur)
+  rx1271_done:
+    rx1271_cur."!cursor_fail"()
+    rx1271_cur."!cursor_debug"("FAIL  ", "infix:sym<=>")
+    .return (rx1271_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("323_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<=>"  :subid("323_1277356913.9538") :method
 .annotate 'line', 446
-    $P1271 = self."!PREFIX__!subrule"("panic", "=")
-    new $P1272, "ResizablePMCArray"
-    push $P1272, $P1271
-    .return ($P1272)
+    $P1273 = self."!PREFIX__!subrule"("panic", "=")
+    new $P1274, "ResizablePMCArray"
+    push $P1274, $P1273
+    .return ($P1274)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("324_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<:=>"  :subid("324_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1276_tgt
-    .local int rx1276_pos
-    .local int rx1276_off
-    .local int rx1276_eos
-    .local int rx1276_rep
-    .local pmc rx1276_cur
-    (rx1276_cur, rx1276_pos, rx1276_tgt) = self."!cursor_start"()
-    rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>")
-    .lex unicode:"$\x{a2}", rx1276_cur
+    .local string rx1278_tgt
+    .local int rx1278_pos
+    .local int rx1278_off
+    .local int rx1278_eos
+    .local int rx1278_rep
+    .local pmc rx1278_cur
+    (rx1278_cur, rx1278_pos, rx1278_tgt) = self."!cursor_start"()
+    rx1278_cur."!cursor_debug"("START ", "infix:sym<:=>")
+    .lex unicode:"$\x{a2}", rx1278_cur
     .local pmc match
     .lex "$/", match
-    length rx1276_eos, rx1276_tgt
-    gt rx1276_pos, rx1276_eos, rx1276_done
-    set rx1276_off, 0
-    lt rx1276_pos, 2, rx1276_start
-    sub rx1276_off, rx1276_pos, 1
-    substr rx1276_tgt, rx1276_tgt, rx1276_off
-  rx1276_start:
+    length rx1278_eos, rx1278_tgt
+    gt rx1278_pos, rx1278_eos, rx1278_done
+    set rx1278_off, 0
+    lt rx1278_pos, 2, rx1278_start
+    sub rx1278_off, rx1278_pos, 1
+    substr rx1278_tgt, rx1278_tgt, rx1278_off
+  rx1278_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1280_done
-    goto rxscan1280_scan
-  rxscan1280_loop:
-    ($P10) = rx1276_cur."from"()
+    ne $I10, -1, rxscan1282_done
+    goto rxscan1282_scan
+  rxscan1282_loop:
+    ($P10) = rx1278_cur."from"()
     inc $P10
-    set rx1276_pos, $P10
-    ge rx1276_pos, rx1276_eos, rxscan1280_done
-  rxscan1280_scan:
-    set_addr $I10, rxscan1280_loop
-    rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
-  rxscan1280_done:
+    set rx1278_pos, $P10
+    ge rx1278_pos, rx1278_eos, rxscan1282_done
+  rxscan1282_scan:
+    set_addr $I10, rxscan1282_loop
+    rx1278_cur."!mark_push"(0, rx1278_pos, $I10)
+  rxscan1282_done:
 .annotate 'line', 546
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1281_fail
-    rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
+    set_addr $I10, rxcap_1283_fail
+    rx1278_cur."!mark_push"(0, rx1278_pos, $I10)
   # rx literal  ":="
-    add $I11, rx1276_pos, 2
-    gt $I11, rx1276_eos, rx1276_fail
-    sub $I11, rx1276_pos, rx1276_off
-    substr $S10, rx1276_tgt, $I11, 2
-    ne $S10, ":=", rx1276_fail
-    add rx1276_pos, 2
-    set_addr $I10, rxcap_1281_fail
-    ($I12, $I11) = rx1276_cur."!mark_peek"($I10)
-    rx1276_cur."!cursor_pos"($I11)
-    ($P10) = rx1276_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1276_pos, "")
-    rx1276_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1278_pos, 2
+    gt $I11, rx1278_eos, rx1278_fail
+    sub $I11, rx1278_pos, rx1278_off
+    substr $S10, rx1278_tgt, $I11, 2
+    ne $S10, ":=", rx1278_fail
+    add rx1278_pos, 2
+    set_addr $I10, rxcap_1283_fail
+    ($I12, $I11) = rx1278_cur."!mark_peek"($I10)
+    rx1278_cur."!cursor_pos"($I11)
+    ($P10) = rx1278_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1278_pos, "")
+    rx1278_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1281_done
-  rxcap_1281_fail:
-    goto rx1276_fail
-  rxcap_1281_done:
+    goto rxcap_1283_done
+  rxcap_1283_fail:
+    goto rx1278_fail
+  rxcap_1283_done:
   # rx subrule "O" subtype=capture negate=
-    rx1276_cur."!cursor_pos"(rx1276_pos)
-    $P10 = rx1276_cur."O"("%assignment, :pasttype<bind>")
-    unless $P10, rx1276_fail
-    rx1276_cur."!mark_push"(0, -1, 0, $P10)
+    rx1278_cur."!cursor_pos"(rx1278_pos)
+    $P10 = rx1278_cur."O"("%assignment, :pasttype<bind>")
+    unless $P10, rx1278_fail
+    rx1278_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1276_pos = $P10."pos"()
+    rx1278_pos = $P10."pos"()
   # rx pass
-    rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>")
-    rx1276_cur."!cursor_debug"("PASS  ", "infix:sym<:=>", " at pos=", rx1276_pos)
-    .return (rx1276_cur)
-  rx1276_fail:
+    rx1278_cur."!cursor_pass"(rx1278_pos, "infix:sym<:=>")
+    rx1278_cur."!cursor_debug"("PASS  ", "infix:sym<:=>", " at pos=", rx1278_pos)
+    .return (rx1278_cur)
+  rx1278_fail:
 .annotate 'line', 446
-    (rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0)
-    lt rx1276_pos, -1, rx1276_done
-    eq rx1276_pos, -1, rx1276_fail
+    (rx1278_rep, rx1278_pos, $I10, $P10) = rx1278_cur."!mark_fail"(0)
+    lt rx1278_pos, -1, rx1278_done
+    eq rx1278_pos, -1, rx1278_fail
     jump $I10
-  rx1276_done:
-    rx1276_cur."!cursor_fail"()
-    rx1276_cur."!cursor_debug"("FAIL  ", "infix:sym<:=>")
-    .return (rx1276_cur)
+  rx1278_done:
+    rx1278_cur."!cursor_fail"()
+    rx1278_cur."!cursor_debug"("FAIL  ", "infix:sym<:=>")
+    .return (rx1278_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("325_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<:=>"  :subid("325_1277356913.9538") :method
 .annotate 'line', 446
-    $P1278 = self."!PREFIX__!subrule"("O", ":=")
-    new $P1279, "ResizablePMCArray"
-    push $P1279, $P1278
-    .return ($P1279)
+    $P1280 = self."!PREFIX__!subrule"("O", ":=")
+    new $P1281, "ResizablePMCArray"
+    push $P1281, $P1280
+    .return ($P1281)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("326_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<::=>"  :subid("326_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1283_tgt
-    .local int rx1283_pos
-    .local int rx1283_off
-    .local int rx1283_eos
-    .local int rx1283_rep
-    .local pmc rx1283_cur
-    (rx1283_cur, rx1283_pos, rx1283_tgt) = self."!cursor_start"()
-    rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>")
-    .lex unicode:"$\x{a2}", rx1283_cur
+    .local string rx1285_tgt
+    .local int rx1285_pos
+    .local int rx1285_off
+    .local int rx1285_eos
+    .local int rx1285_rep
+    .local pmc rx1285_cur
+    (rx1285_cur, rx1285_pos, rx1285_tgt) = self."!cursor_start"()
+    rx1285_cur."!cursor_debug"("START ", "infix:sym<::=>")
+    .lex unicode:"$\x{a2}", rx1285_cur
     .local pmc match
     .lex "$/", match
-    length rx1283_eos, rx1283_tgt
-    gt rx1283_pos, rx1283_eos, rx1283_done
-    set rx1283_off, 0
-    lt rx1283_pos, 2, rx1283_start
-    sub rx1283_off, rx1283_pos, 1
-    substr rx1283_tgt, rx1283_tgt, rx1283_off
-  rx1283_start:
+    length rx1285_eos, rx1285_tgt
+    gt rx1285_pos, rx1285_eos, rx1285_done
+    set rx1285_off, 0
+    lt rx1285_pos, 2, rx1285_start
+    sub rx1285_off, rx1285_pos, 1
+    substr rx1285_tgt, rx1285_tgt, rx1285_off
+  rx1285_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1287_done
-    goto rxscan1287_scan
-  rxscan1287_loop:
-    ($P10) = rx1283_cur."from"()
+    ne $I10, -1, rxscan1289_done
+    goto rxscan1289_scan
+  rxscan1289_loop:
+    ($P10) = rx1285_cur."from"()
     inc $P10
-    set rx1283_pos, $P10
-    ge rx1283_pos, rx1283_eos, rxscan1287_done
-  rxscan1287_scan:
-    set_addr $I10, rxscan1287_loop
-    rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
-  rxscan1287_done:
+    set rx1285_pos, $P10
+    ge rx1285_pos, rx1285_eos, rxscan1289_done
+  rxscan1289_scan:
+    set_addr $I10, rxscan1289_loop
+    rx1285_cur."!mark_push"(0, rx1285_pos, $I10)
+  rxscan1289_done:
 .annotate 'line', 547
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1288_fail
-    rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
+    set_addr $I10, rxcap_1290_fail
+    rx1285_cur."!mark_push"(0, rx1285_pos, $I10)
   # rx literal  "::="
-    add $I11, rx1283_pos, 3
-    gt $I11, rx1283_eos, rx1283_fail
-    sub $I11, rx1283_pos, rx1283_off
-    substr $S10, rx1283_tgt, $I11, 3
-    ne $S10, "::=", rx1283_fail
-    add rx1283_pos, 3
-    set_addr $I10, rxcap_1288_fail
-    ($I12, $I11) = rx1283_cur."!mark_peek"($I10)
-    rx1283_cur."!cursor_pos"($I11)
-    ($P10) = rx1283_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1283_pos, "")
-    rx1283_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1285_pos, 3
+    gt $I11, rx1285_eos, rx1285_fail
+    sub $I11, rx1285_pos, rx1285_off
+    substr $S10, rx1285_tgt, $I11, 3
+    ne $S10, "::=", rx1285_fail
+    add rx1285_pos, 3
+    set_addr $I10, rxcap_1290_fail
+    ($I12, $I11) = rx1285_cur."!mark_peek"($I10)
+    rx1285_cur."!cursor_pos"($I11)
+    ($P10) = rx1285_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1285_pos, "")
+    rx1285_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1288_done
-  rxcap_1288_fail:
-    goto rx1283_fail
-  rxcap_1288_done:
+    goto rxcap_1290_done
+  rxcap_1290_fail:
+    goto rx1285_fail
+  rxcap_1290_done:
   # rx subrule "O" subtype=capture negate=
-    rx1283_cur."!cursor_pos"(rx1283_pos)
-    $P10 = rx1283_cur."O"("%assignment, :pasttype<bind>")
-    unless $P10, rx1283_fail
-    rx1283_cur."!mark_push"(0, -1, 0, $P10)
+    rx1285_cur."!cursor_pos"(rx1285_pos)
+    $P10 = rx1285_cur."O"("%assignment, :pasttype<bind>")
+    unless $P10, rx1285_fail
+    rx1285_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1283_pos = $P10."pos"()
+    rx1285_pos = $P10."pos"()
   # rx pass
-    rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>")
-    rx1283_cur."!cursor_debug"("PASS  ", "infix:sym<::=>", " at pos=", rx1283_pos)
-    .return (rx1283_cur)
-  rx1283_fail:
+    rx1285_cur."!cursor_pass"(rx1285_pos, "infix:sym<::=>")
+    rx1285_cur."!cursor_debug"("PASS  ", "infix:sym<::=>", " at pos=", rx1285_pos)
+    .return (rx1285_cur)
+  rx1285_fail:
 .annotate 'line', 446
-    (rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0)
-    lt rx1283_pos, -1, rx1283_done
-    eq rx1283_pos, -1, rx1283_fail
+    (rx1285_rep, rx1285_pos, $I10, $P10) = rx1285_cur."!mark_fail"(0)
+    lt rx1285_pos, -1, rx1285_done
+    eq rx1285_pos, -1, rx1285_fail
     jump $I10
-  rx1283_done:
-    rx1283_cur."!cursor_fail"()
-    rx1283_cur."!cursor_debug"("FAIL  ", "infix:sym<::=>")
-    .return (rx1283_cur)
+  rx1285_done:
+    rx1285_cur."!cursor_fail"()
+    rx1285_cur."!cursor_debug"("FAIL  ", "infix:sym<::=>")
+    .return (rx1285_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("327_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<::=>"  :subid("327_1277356913.9538") :method
 .annotate 'line', 446
-    $P1285 = self."!PREFIX__!subrule"("O", "::=")
-    new $P1286, "ResizablePMCArray"
-    push $P1286, $P1285
-    .return ($P1286)
+    $P1287 = self."!PREFIX__!subrule"("O", "::=")
+    new $P1288, "ResizablePMCArray"
+    push $P1288, $P1287
+    .return ($P1288)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("328_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "infix:sym<,>"  :subid("328_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1290_tgt
-    .local int rx1290_pos
-    .local int rx1290_off
-    .local int rx1290_eos
-    .local int rx1290_rep
-    .local pmc rx1290_cur
-    (rx1290_cur, rx1290_pos, rx1290_tgt) = self."!cursor_start"()
-    rx1290_cur."!cursor_debug"("START ", "infix:sym<,>")
-    .lex unicode:"$\x{a2}", rx1290_cur
+    .local string rx1292_tgt
+    .local int rx1292_pos
+    .local int rx1292_off
+    .local int rx1292_eos
+    .local int rx1292_rep
+    .local pmc rx1292_cur
+    (rx1292_cur, rx1292_pos, rx1292_tgt) = self."!cursor_start"()
+    rx1292_cur."!cursor_debug"("START ", "infix:sym<,>")
+    .lex unicode:"$\x{a2}", rx1292_cur
     .local pmc match
     .lex "$/", match
-    length rx1290_eos, rx1290_tgt
-    gt rx1290_pos, rx1290_eos, rx1290_done
-    set rx1290_off, 0
-    lt rx1290_pos, 2, rx1290_start
-    sub rx1290_off, rx1290_pos, 1
-    substr rx1290_tgt, rx1290_tgt, rx1290_off
-  rx1290_start:
+    length rx1292_eos, rx1292_tgt
+    gt rx1292_pos, rx1292_eos, rx1292_done
+    set rx1292_off, 0
+    lt rx1292_pos, 2, rx1292_start
+    sub rx1292_off, rx1292_pos, 1
+    substr rx1292_tgt, rx1292_tgt, rx1292_off
+  rx1292_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1294_done
-    goto rxscan1294_scan
-  rxscan1294_loop:
-    ($P10) = rx1290_cur."from"()
+    ne $I10, -1, rxscan1296_done
+    goto rxscan1296_scan
+  rxscan1296_loop:
+    ($P10) = rx1292_cur."from"()
     inc $P10
-    set rx1290_pos, $P10
-    ge rx1290_pos, rx1290_eos, rxscan1294_done
-  rxscan1294_scan:
-    set_addr $I10, rxscan1294_loop
-    rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
-  rxscan1294_done:
+    set rx1292_pos, $P10
+    ge rx1292_pos, rx1292_eos, rxscan1296_done
+  rxscan1296_scan:
+    set_addr $I10, rxscan1296_loop
+    rx1292_cur."!mark_push"(0, rx1292_pos, $I10)
+  rxscan1296_done:
 .annotate 'line', 549
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1295_fail
-    rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
+    set_addr $I10, rxcap_1297_fail
+    rx1292_cur."!mark_push"(0, rx1292_pos, $I10)
   # rx literal  ","
-    add $I11, rx1290_pos, 1
-    gt $I11, rx1290_eos, rx1290_fail
-    sub $I11, rx1290_pos, rx1290_off
-    substr $S10, rx1290_tgt, $I11, 1
-    ne $S10, ",", rx1290_fail
-    add rx1290_pos, 1
-    set_addr $I10, rxcap_1295_fail
-    ($I12, $I11) = rx1290_cur."!mark_peek"($I10)
-    rx1290_cur."!cursor_pos"($I11)
-    ($P10) = rx1290_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1290_pos, "")
-    rx1290_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1292_pos, 1
+    gt $I11, rx1292_eos, rx1292_fail
+    sub $I11, rx1292_pos, rx1292_off
+    substr $S10, rx1292_tgt, $I11, 1
+    ne $S10, ",", rx1292_fail
+    add rx1292_pos, 1
+    set_addr $I10, rxcap_1297_fail
+    ($I12, $I11) = rx1292_cur."!mark_peek"($I10)
+    rx1292_cur."!cursor_pos"($I11)
+    ($P10) = rx1292_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1292_pos, "")
+    rx1292_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1295_done
-  rxcap_1295_fail:
-    goto rx1290_fail
-  rxcap_1295_done:
+    goto rxcap_1297_done
+  rxcap_1297_fail:
+    goto rx1292_fail
+  rxcap_1297_done:
   # rx subrule "O" subtype=capture negate=
-    rx1290_cur."!cursor_pos"(rx1290_pos)
-    $P10 = rx1290_cur."O"("%comma, :pasttype<list>")
-    unless $P10, rx1290_fail
-    rx1290_cur."!mark_push"(0, -1, 0, $P10)
+    rx1292_cur."!cursor_pos"(rx1292_pos)
+    $P10 = rx1292_cur."O"("%comma, :pasttype<list>")
+    unless $P10, rx1292_fail
+    rx1292_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1290_pos = $P10."pos"()
+    rx1292_pos = $P10."pos"()
   # rx pass
-    rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>")
-    rx1290_cur."!cursor_debug"("PASS  ", "infix:sym<,>", " at pos=", rx1290_pos)
-    .return (rx1290_cur)
-  rx1290_fail:
+    rx1292_cur."!cursor_pass"(rx1292_pos, "infix:sym<,>")
+    rx1292_cur."!cursor_debug"("PASS  ", "infix:sym<,>", " at pos=", rx1292_pos)
+    .return (rx1292_cur)
+  rx1292_fail:
 .annotate 'line', 446
-    (rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0)
-    lt rx1290_pos, -1, rx1290_done
-    eq rx1290_pos, -1, rx1290_fail
+    (rx1292_rep, rx1292_pos, $I10, $P10) = rx1292_cur."!mark_fail"(0)
+    lt rx1292_pos, -1, rx1292_done
+    eq rx1292_pos, -1, rx1292_fail
     jump $I10
-  rx1290_done:
-    rx1290_cur."!cursor_fail"()
-    rx1290_cur."!cursor_debug"("FAIL  ", "infix:sym<,>")
-    .return (rx1290_cur)
+  rx1292_done:
+    rx1292_cur."!cursor_fail"()
+    rx1292_cur."!cursor_debug"("FAIL  ", "infix:sym<,>")
+    .return (rx1292_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("329_1275811487.95429") :method
+.sub "!PREFIX__infix:sym<,>"  :subid("329_1277356913.9538") :method
 .annotate 'line', 446
-    $P1292 = self."!PREFIX__!subrule"("O", ",")
-    new $P1293, "ResizablePMCArray"
-    push $P1293, $P1292
-    .return ($P1293)
+    $P1294 = self."!PREFIX__!subrule"("O", ",")
+    new $P1295, "ResizablePMCArray"
+    push $P1295, $P1294
+    .return ($P1295)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("330_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<return>"  :subid("330_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1297_tgt
-    .local int rx1297_pos
-    .local int rx1297_off
-    .local int rx1297_eos
-    .local int rx1297_rep
-    .local pmc rx1297_cur
-    (rx1297_cur, rx1297_pos, rx1297_tgt) = self."!cursor_start"()
-    rx1297_cur."!cursor_debug"("START ", "prefix:sym<return>")
-    .lex unicode:"$\x{a2}", rx1297_cur
+    .local string rx1299_tgt
+    .local int rx1299_pos
+    .local int rx1299_off
+    .local int rx1299_eos
+    .local int rx1299_rep
+    .local pmc rx1299_cur
+    (rx1299_cur, rx1299_pos, rx1299_tgt) = self."!cursor_start"()
+    rx1299_cur."!cursor_debug"("START ", "prefix:sym<return>")
+    .lex unicode:"$\x{a2}", rx1299_cur
     .local pmc match
     .lex "$/", match
-    length rx1297_eos, rx1297_tgt
-    gt rx1297_pos, rx1297_eos, rx1297_done
-    set rx1297_off, 0
-    lt rx1297_pos, 2, rx1297_start
-    sub rx1297_off, rx1297_pos, 1
-    substr rx1297_tgt, rx1297_tgt, rx1297_off
-  rx1297_start:
+    length rx1299_eos, rx1299_tgt
+    gt rx1299_pos, rx1299_eos, rx1299_done
+    set rx1299_off, 0
+    lt rx1299_pos, 2, rx1299_start
+    sub rx1299_off, rx1299_pos, 1
+    substr rx1299_tgt, rx1299_tgt, rx1299_off
+  rx1299_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1300_done
-    goto rxscan1300_scan
-  rxscan1300_loop:
-    ($P10) = rx1297_cur."from"()
+    ne $I10, -1, rxscan1302_done
+    goto rxscan1302_scan
+  rxscan1302_loop:
+    ($P10) = rx1299_cur."from"()
     inc $P10
-    set rx1297_pos, $P10
-    ge rx1297_pos, rx1297_eos, rxscan1300_done
-  rxscan1300_scan:
-    set_addr $I10, rxscan1300_loop
-    rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
-  rxscan1300_done:
+    set rx1299_pos, $P10
+    ge rx1299_pos, rx1299_eos, rxscan1302_done
+  rxscan1302_scan:
+    set_addr $I10, rxscan1302_loop
+    rx1299_cur."!mark_push"(0, rx1299_pos, $I10)
+  rxscan1302_done:
 .annotate 'line', 551
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1301_fail
-    rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
+    set_addr $I10, rxcap_1303_fail
+    rx1299_cur."!mark_push"(0, rx1299_pos, $I10)
   # rx literal  "return"
-    add $I11, rx1297_pos, 6
-    gt $I11, rx1297_eos, rx1297_fail
-    sub $I11, rx1297_pos, rx1297_off
-    substr $S10, rx1297_tgt, $I11, 6
-    ne $S10, "return", rx1297_fail
-    add rx1297_pos, 6
-    set_addr $I10, rxcap_1301_fail
-    ($I12, $I11) = rx1297_cur."!mark_peek"($I10)
-    rx1297_cur."!cursor_pos"($I11)
-    ($P10) = rx1297_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1297_pos, "")
-    rx1297_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1299_pos, 6
+    gt $I11, rx1299_eos, rx1299_fail
+    sub $I11, rx1299_pos, rx1299_off
+    substr $S10, rx1299_tgt, $I11, 6
+    ne $S10, "return", rx1299_fail
+    add rx1299_pos, 6
+    set_addr $I10, rxcap_1303_fail
+    ($I12, $I11) = rx1299_cur."!mark_peek"($I10)
+    rx1299_cur."!cursor_pos"($I11)
+    ($P10) = rx1299_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1299_pos, "")
+    rx1299_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1301_done
-  rxcap_1301_fail:
-    goto rx1297_fail
-  rxcap_1301_done:
+    goto rxcap_1303_done
+  rxcap_1303_fail:
+    goto rx1299_fail
+  rxcap_1303_done:
   # rx charclass s
-    ge rx1297_pos, rx1297_eos, rx1297_fail
-    sub $I10, rx1297_pos, rx1297_off
-    is_cclass $I11, 32, rx1297_tgt, $I10
-    unless $I11, rx1297_fail
-    inc rx1297_pos
+    ge rx1299_pos, rx1299_eos, rx1299_fail
+    sub $I10, rx1299_pos, rx1299_off
+    is_cclass $I11, 32, rx1299_tgt, $I10
+    unless $I11, rx1299_fail
+    inc rx1299_pos
   # rx subrule "O" subtype=capture negate=
-    rx1297_cur."!cursor_pos"(rx1297_pos)
-    $P10 = rx1297_cur."O"("%list_prefix, :pasttype<return>")
-    unless $P10, rx1297_fail
-    rx1297_cur."!mark_push"(0, -1, 0, $P10)
+    rx1299_cur."!cursor_pos"(rx1299_pos)
+    $P10 = rx1299_cur."O"("%list_prefix, :pasttype<return>")
+    unless $P10, rx1299_fail
+    rx1299_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1297_pos = $P10."pos"()
+    rx1299_pos = $P10."pos"()
   # rx pass
-    rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym<return>")
-    rx1297_cur."!cursor_debug"("PASS  ", "prefix:sym<return>", " at pos=", rx1297_pos)
-    .return (rx1297_cur)
-  rx1297_fail:
+    rx1299_cur."!cursor_pass"(rx1299_pos, "prefix:sym<return>")
+    rx1299_cur."!cursor_debug"("PASS  ", "prefix:sym<return>", " at pos=", rx1299_pos)
+    .return (rx1299_cur)
+  rx1299_fail:
 .annotate 'line', 446
-    (rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0)
-    lt rx1297_pos, -1, rx1297_done
-    eq rx1297_pos, -1, rx1297_fail
+    (rx1299_rep, rx1299_pos, $I10, $P10) = rx1299_cur."!mark_fail"(0)
+    lt rx1299_pos, -1, rx1299_done
+    eq rx1299_pos, -1, rx1299_fail
     jump $I10
-  rx1297_done:
-    rx1297_cur."!cursor_fail"()
-    rx1297_cur."!cursor_debug"("FAIL  ", "prefix:sym<return>")
-    .return (rx1297_cur)
+  rx1299_done:
+    rx1299_cur."!cursor_fail"()
+    rx1299_cur."!cursor_debug"("FAIL  ", "prefix:sym<return>")
+    .return (rx1299_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("331_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<return>"  :subid("331_1277356913.9538") :method
 .annotate 'line', 446
-    new $P1299, "ResizablePMCArray"
-    push $P1299, "return"
-    .return ($P1299)
+    new $P1301, "ResizablePMCArray"
+    push $P1301, "return"
+    .return ($P1301)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("332_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "prefix:sym<make>"  :subid("332_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1303_tgt
-    .local int rx1303_pos
-    .local int rx1303_off
-    .local int rx1303_eos
-    .local int rx1303_rep
-    .local pmc rx1303_cur
-    (rx1303_cur, rx1303_pos, rx1303_tgt) = self."!cursor_start"()
-    rx1303_cur."!cursor_debug"("START ", "prefix:sym<make>")
-    .lex unicode:"$\x{a2}", rx1303_cur
+    .local string rx1305_tgt
+    .local int rx1305_pos
+    .local int rx1305_off
+    .local int rx1305_eos
+    .local int rx1305_rep
+    .local pmc rx1305_cur
+    (rx1305_cur, rx1305_pos, rx1305_tgt) = self."!cursor_start"()
+    rx1305_cur."!cursor_debug"("START ", "prefix:sym<make>")
+    .lex unicode:"$\x{a2}", rx1305_cur
     .local pmc match
     .lex "$/", match
-    length rx1303_eos, rx1303_tgt
-    gt rx1303_pos, rx1303_eos, rx1303_done
-    set rx1303_off, 0
-    lt rx1303_pos, 2, rx1303_start
-    sub rx1303_off, rx1303_pos, 1
-    substr rx1303_tgt, rx1303_tgt, rx1303_off
-  rx1303_start:
+    length rx1305_eos, rx1305_tgt
+    gt rx1305_pos, rx1305_eos, rx1305_done
+    set rx1305_off, 0
+    lt rx1305_pos, 2, rx1305_start
+    sub rx1305_off, rx1305_pos, 1
+    substr rx1305_tgt, rx1305_tgt, rx1305_off
+  rx1305_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1306_done
-    goto rxscan1306_scan
-  rxscan1306_loop:
-    ($P10) = rx1303_cur."from"()
+    ne $I10, -1, rxscan1308_done
+    goto rxscan1308_scan
+  rxscan1308_loop:
+    ($P10) = rx1305_cur."from"()
     inc $P10
-    set rx1303_pos, $P10
-    ge rx1303_pos, rx1303_eos, rxscan1306_done
-  rxscan1306_scan:
-    set_addr $I10, rxscan1306_loop
-    rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
-  rxscan1306_done:
+    set rx1305_pos, $P10
+    ge rx1305_pos, rx1305_eos, rxscan1308_done
+  rxscan1308_scan:
+    set_addr $I10, rxscan1308_loop
+    rx1305_cur."!mark_push"(0, rx1305_pos, $I10)
+  rxscan1308_done:
 .annotate 'line', 552
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1307_fail
-    rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
+    set_addr $I10, rxcap_1309_fail
+    rx1305_cur."!mark_push"(0, rx1305_pos, $I10)
   # rx literal  "make"
-    add $I11, rx1303_pos, 4
-    gt $I11, rx1303_eos, rx1303_fail
-    sub $I11, rx1303_pos, rx1303_off
-    substr $S10, rx1303_tgt, $I11, 4
-    ne $S10, "make", rx1303_fail
-    add rx1303_pos, 4
-    set_addr $I10, rxcap_1307_fail
-    ($I12, $I11) = rx1303_cur."!mark_peek"($I10)
-    rx1303_cur."!cursor_pos"($I11)
-    ($P10) = rx1303_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1303_pos, "")
-    rx1303_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1305_pos, 4
+    gt $I11, rx1305_eos, rx1305_fail
+    sub $I11, rx1305_pos, rx1305_off
+    substr $S10, rx1305_tgt, $I11, 4
+    ne $S10, "make", rx1305_fail
+    add rx1305_pos, 4
+    set_addr $I10, rxcap_1309_fail
+    ($I12, $I11) = rx1305_cur."!mark_peek"($I10)
+    rx1305_cur."!cursor_pos"($I11)
+    ($P10) = rx1305_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1305_pos, "")
+    rx1305_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1307_done
-  rxcap_1307_fail:
-    goto rx1303_fail
-  rxcap_1307_done:
+    goto rxcap_1309_done
+  rxcap_1309_fail:
+    goto rx1305_fail
+  rxcap_1309_done:
   # rx charclass s
-    ge rx1303_pos, rx1303_eos, rx1303_fail
-    sub $I10, rx1303_pos, rx1303_off
-    is_cclass $I11, 32, rx1303_tgt, $I10
-    unless $I11, rx1303_fail
-    inc rx1303_pos
+    ge rx1305_pos, rx1305_eos, rx1305_fail
+    sub $I10, rx1305_pos, rx1305_off
+    is_cclass $I11, 32, rx1305_tgt, $I10
+    unless $I11, rx1305_fail
+    inc rx1305_pos
   # rx subrule "O" subtype=capture negate=
-    rx1303_cur."!cursor_pos"(rx1303_pos)
-    $P10 = rx1303_cur."O"("%list_prefix")
-    unless $P10, rx1303_fail
-    rx1303_cur."!mark_push"(0, -1, 0, $P10)
+    rx1305_cur."!cursor_pos"(rx1305_pos)
+    $P10 = rx1305_cur."O"("%list_prefix")
+    unless $P10, rx1305_fail
+    rx1305_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("O")
-    rx1303_pos = $P10."pos"()
+    rx1305_pos = $P10."pos"()
   # rx pass
-    rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym<make>")
-    rx1303_cur."!cursor_debug"("PASS  ", "prefix:sym<make>", " at pos=", rx1303_pos)
-    .return (rx1303_cur)
-  rx1303_fail:
+    rx1305_cur."!cursor_pass"(rx1305_pos, "prefix:sym<make>")
+    rx1305_cur."!cursor_debug"("PASS  ", "prefix:sym<make>", " at pos=", rx1305_pos)
+    .return (rx1305_cur)
+  rx1305_fail:
 .annotate 'line', 446
-    (rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0)
-    lt rx1303_pos, -1, rx1303_done
-    eq rx1303_pos, -1, rx1303_fail
+    (rx1305_rep, rx1305_pos, $I10, $P10) = rx1305_cur."!mark_fail"(0)
+    lt rx1305_pos, -1, rx1305_done
+    eq rx1305_pos, -1, rx1305_fail
     jump $I10
-  rx1303_done:
-    rx1303_cur."!cursor_fail"()
-    rx1303_cur."!cursor_debug"("FAIL  ", "prefix:sym<make>")
-    .return (rx1303_cur)
+  rx1305_done:
+    rx1305_cur."!cursor_fail"()
+    rx1305_cur."!cursor_debug"("FAIL  ", "prefix:sym<make>")
+    .return (rx1305_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("333_1275811487.95429") :method
+.sub "!PREFIX__prefix:sym<make>"  :subid("333_1277356913.9538") :method
 .annotate 'line', 446
-    new $P1305, "ResizablePMCArray"
-    push $P1305, "make"
-    .return ($P1305)
+    new $P1307, "ResizablePMCArray"
+    push $P1307, "make"
+    .return ($P1307)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<last>"  :subid("334_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<last>"  :subid("334_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1309_tgt
-    .local int rx1309_pos
-    .local int rx1309_off
-    .local int rx1309_eos
-    .local int rx1309_rep
-    .local pmc rx1309_cur
-    (rx1309_cur, rx1309_pos, rx1309_tgt) = self."!cursor_start"()
-    rx1309_cur."!cursor_debug"("START ", "term:sym<last>")
-    .lex unicode:"$\x{a2}", rx1309_cur
+    .local string rx1311_tgt
+    .local int rx1311_pos
+    .local int rx1311_off
+    .local int rx1311_eos
+    .local int rx1311_rep
+    .local pmc rx1311_cur
+    (rx1311_cur, rx1311_pos, rx1311_tgt) = self."!cursor_start"()
+    rx1311_cur."!cursor_debug"("START ", "term:sym<last>")
+    .lex unicode:"$\x{a2}", rx1311_cur
     .local pmc match
     .lex "$/", match
-    length rx1309_eos, rx1309_tgt
-    gt rx1309_pos, rx1309_eos, rx1309_done
-    set rx1309_off, 0
-    lt rx1309_pos, 2, rx1309_start
-    sub rx1309_off, rx1309_pos, 1
-    substr rx1309_tgt, rx1309_tgt, rx1309_off
-  rx1309_start:
+    length rx1311_eos, rx1311_tgt
+    gt rx1311_pos, rx1311_eos, rx1311_done
+    set rx1311_off, 0
+    lt rx1311_pos, 2, rx1311_start
+    sub rx1311_off, rx1311_pos, 1
+    substr rx1311_tgt, rx1311_tgt, rx1311_off
+  rx1311_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1312_done
-    goto rxscan1312_scan
-  rxscan1312_loop:
-    ($P10) = rx1309_cur."from"()
+    ne $I10, -1, rxscan1314_done
+    goto rxscan1314_scan
+  rxscan1314_loop:
+    ($P10) = rx1311_cur."from"()
     inc $P10
-    set rx1309_pos, $P10
-    ge rx1309_pos, rx1309_eos, rxscan1312_done
-  rxscan1312_scan:
-    set_addr $I10, rxscan1312_loop
-    rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
-  rxscan1312_done:
+    set rx1311_pos, $P10
+    ge rx1311_pos, rx1311_eos, rxscan1314_done
+  rxscan1314_scan:
+    set_addr $I10, rxscan1314_loop
+    rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
+  rxscan1314_done:
 .annotate 'line', 553
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1313_fail
-    rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
+    set_addr $I10, rxcap_1315_fail
+    rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
   # rx literal  "last"
-    add $I11, rx1309_pos, 4
-    gt $I11, rx1309_eos, rx1309_fail
-    sub $I11, rx1309_pos, rx1309_off
-    substr $S10, rx1309_tgt, $I11, 4
-    ne $S10, "last", rx1309_fail
-    add rx1309_pos, 4
-    set_addr $I10, rxcap_1313_fail
-    ($I12, $I11) = rx1309_cur."!mark_peek"($I10)
-    rx1309_cur."!cursor_pos"($I11)
-    ($P10) = rx1309_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1309_pos, "")
-    rx1309_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1311_pos, 4
+    gt $I11, rx1311_eos, rx1311_fail
+    sub $I11, rx1311_pos, rx1311_off
+    substr $S10, rx1311_tgt, $I11, 4
+    ne $S10, "last", rx1311_fail
+    add rx1311_pos, 4
+    set_addr $I10, rxcap_1315_fail
+    ($I12, $I11) = rx1311_cur."!mark_peek"($I10)
+    rx1311_cur."!cursor_pos"($I11)
+    ($P10) = rx1311_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1311_pos, "")
+    rx1311_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1313_done
-  rxcap_1313_fail:
-    goto rx1309_fail
-  rxcap_1313_done:
+    goto rxcap_1315_done
+  rxcap_1315_fail:
+    goto rx1311_fail
+  rxcap_1315_done:
   # rx pass
-    rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym<last>")
-    rx1309_cur."!cursor_debug"("PASS  ", "term:sym<last>", " at pos=", rx1309_pos)
-    .return (rx1309_cur)
-  rx1309_fail:
+    rx1311_cur."!cursor_pass"(rx1311_pos, "term:sym<last>")
+    rx1311_cur."!cursor_debug"("PASS  ", "term:sym<last>", " at pos=", rx1311_pos)
+    .return (rx1311_cur)
+  rx1311_fail:
 .annotate 'line', 446
-    (rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0)
-    lt rx1309_pos, -1, rx1309_done
-    eq rx1309_pos, -1, rx1309_fail
+    (rx1311_rep, rx1311_pos, $I10, $P10) = rx1311_cur."!mark_fail"(0)
+    lt rx1311_pos, -1, rx1311_done
+    eq rx1311_pos, -1, rx1311_fail
     jump $I10
-  rx1309_done:
-    rx1309_cur."!cursor_fail"()
-    rx1309_cur."!cursor_debug"("FAIL  ", "term:sym<last>")
-    .return (rx1309_cur)
+  rx1311_done:
+    rx1311_cur."!cursor_fail"()
+    rx1311_cur."!cursor_debug"("FAIL  ", "term:sym<last>")
+    .return (rx1311_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>"  :subid("335_1275811487.95429") :method
+.sub "!PREFIX__term:sym<last>"  :subid("335_1277356913.9538") :method
 .annotate 'line', 446
-    new $P1311, "ResizablePMCArray"
-    push $P1311, "last"
-    .return ($P1311)
+    new $P1313, "ResizablePMCArray"
+    push $P1313, "last"
+    .return ($P1313)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<next>"  :subid("336_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<next>"  :subid("336_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1315_tgt
-    .local int rx1315_pos
-    .local int rx1315_off
-    .local int rx1315_eos
-    .local int rx1315_rep
-    .local pmc rx1315_cur
-    (rx1315_cur, rx1315_pos, rx1315_tgt) = self."!cursor_start"()
-    rx1315_cur."!cursor_debug"("START ", "term:sym<next>")
-    .lex unicode:"$\x{a2}", rx1315_cur
+    .local string rx1317_tgt
+    .local int rx1317_pos
+    .local int rx1317_off
+    .local int rx1317_eos
+    .local int rx1317_rep
+    .local pmc rx1317_cur
+    (rx1317_cur, rx1317_pos, rx1317_tgt) = self."!cursor_start"()
+    rx1317_cur."!cursor_debug"("START ", "term:sym<next>")
+    .lex unicode:"$\x{a2}", rx1317_cur
     .local pmc match
     .lex "$/", match
-    length rx1315_eos, rx1315_tgt
-    gt rx1315_pos, rx1315_eos, rx1315_done
-    set rx1315_off, 0
-    lt rx1315_pos, 2, rx1315_start
-    sub rx1315_off, rx1315_pos, 1
-    substr rx1315_tgt, rx1315_tgt, rx1315_off
-  rx1315_start:
+    length rx1317_eos, rx1317_tgt
+    gt rx1317_pos, rx1317_eos, rx1317_done
+    set rx1317_off, 0
+    lt rx1317_pos, 2, rx1317_start
+    sub rx1317_off, rx1317_pos, 1
+    substr rx1317_tgt, rx1317_tgt, rx1317_off
+  rx1317_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1318_done
-    goto rxscan1318_scan
-  rxscan1318_loop:
-    ($P10) = rx1315_cur."from"()
+    ne $I10, -1, rxscan1320_done
+    goto rxscan1320_scan
+  rxscan1320_loop:
+    ($P10) = rx1317_cur."from"()
     inc $P10
-    set rx1315_pos, $P10
-    ge rx1315_pos, rx1315_eos, rxscan1318_done
-  rxscan1318_scan:
-    set_addr $I10, rxscan1318_loop
-    rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
-  rxscan1318_done:
+    set rx1317_pos, $P10
+    ge rx1317_pos, rx1317_eos, rxscan1320_done
+  rxscan1320_scan:
+    set_addr $I10, rxscan1320_loop
+    rx1317_cur."!mark_push"(0, rx1317_pos, $I10)
+  rxscan1320_done:
 .annotate 'line', 554
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1319_fail
-    rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
+    set_addr $I10, rxcap_1321_fail
+    rx1317_cur."!mark_push"(0, rx1317_pos, $I10)
   # rx literal  "next"
-    add $I11, rx1315_pos, 4
-    gt $I11, rx1315_eos, rx1315_fail
-    sub $I11, rx1315_pos, rx1315_off
-    substr $S10, rx1315_tgt, $I11, 4
-    ne $S10, "next", rx1315_fail
-    add rx1315_pos, 4
-    set_addr $I10, rxcap_1319_fail
-    ($I12, $I11) = rx1315_cur."!mark_peek"($I10)
-    rx1315_cur."!cursor_pos"($I11)
-    ($P10) = rx1315_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1315_pos, "")
-    rx1315_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1317_pos, 4
+    gt $I11, rx1317_eos, rx1317_fail
+    sub $I11, rx1317_pos, rx1317_off
+    substr $S10, rx1317_tgt, $I11, 4
+    ne $S10, "next", rx1317_fail
+    add rx1317_pos, 4
+    set_addr $I10, rxcap_1321_fail
+    ($I12, $I11) = rx1317_cur."!mark_peek"($I10)
+    rx1317_cur."!cursor_pos"($I11)
+    ($P10) = rx1317_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1317_pos, "")
+    rx1317_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1319_done
-  rxcap_1319_fail:
-    goto rx1315_fail
-  rxcap_1319_done:
+    goto rxcap_1321_done
+  rxcap_1321_fail:
+    goto rx1317_fail
+  rxcap_1321_done:
   # rx pass
-    rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym<next>")
-    rx1315_cur."!cursor_debug"("PASS  ", "term:sym<next>", " at pos=", rx1315_pos)
-    .return (rx1315_cur)
-  rx1315_fail:
+    rx1317_cur."!cursor_pass"(rx1317_pos, "term:sym<next>")
+    rx1317_cur."!cursor_debug"("PASS  ", "term:sym<next>", " at pos=", rx1317_pos)
+    .return (rx1317_cur)
+  rx1317_fail:
 .annotate 'line', 446
-    (rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0)
-    lt rx1315_pos, -1, rx1315_done
-    eq rx1315_pos, -1, rx1315_fail
+    (rx1317_rep, rx1317_pos, $I10, $P10) = rx1317_cur."!mark_fail"(0)
+    lt rx1317_pos, -1, rx1317_done
+    eq rx1317_pos, -1, rx1317_fail
     jump $I10
-  rx1315_done:
-    rx1315_cur."!cursor_fail"()
-    rx1315_cur."!cursor_debug"("FAIL  ", "term:sym<next>")
-    .return (rx1315_cur)
+  rx1317_done:
+    rx1317_cur."!cursor_fail"()
+    rx1317_cur."!cursor_debug"("FAIL  ", "term:sym<next>")
+    .return (rx1317_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>"  :subid("337_1275811487.95429") :method
+.sub "!PREFIX__term:sym<next>"  :subid("337_1277356913.9538") :method
 .annotate 'line', 446
-    new $P1317, "ResizablePMCArray"
-    push $P1317, "next"
-    .return ($P1317)
+    new $P1319, "ResizablePMCArray"
+    push $P1319, "next"
+    .return ($P1319)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>"  :subid("338_1275811487.95429") :method :outer("11_1275811487.95429")
+.sub "term:sym<redo>"  :subid("338_1277356913.9538") :method :outer("11_1277356913.9538")
 .annotate 'line', 446
-    .local string rx1321_tgt
-    .local int rx1321_pos
-    .local int rx1321_off
-    .local int rx1321_eos
-    .local int rx1321_rep
-    .local pmc rx1321_cur
-    (rx1321_cur, rx1321_pos, rx1321_tgt) = self."!cursor_start"()
-    rx1321_cur."!cursor_debug"("START ", "term:sym<redo>")
-    .lex unicode:"$\x{a2}", rx1321_cur
+    .local string rx1323_tgt
+    .local int rx1323_pos
+    .local int rx1323_off
+    .local int rx1323_eos
+    .local int rx1323_rep
+    .local pmc rx1323_cur
+    (rx1323_cur, rx1323_pos, rx1323_tgt) = self."!cursor_start"()
+    rx1323_cur."!cursor_debug"("START ", "term:sym<redo>")
+    .lex unicode:"$\x{a2}", rx1323_cur
     .local pmc match
     .lex "$/", match
-    length rx1321_eos, rx1321_tgt
-    gt rx1321_pos, rx1321_eos, rx1321_done
-    set rx1321_off, 0
-    lt rx1321_pos, 2, rx1321_start
-    sub rx1321_off, rx1321_pos, 1
-    substr rx1321_tgt, rx1321_tgt, rx1321_off
-  rx1321_start:
+    length rx1323_eos, rx1323_tgt
+    gt rx1323_pos, rx1323_eos, rx1323_done
+    set rx1323_off, 0
+    lt rx1323_pos, 2, rx1323_start
+    sub rx1323_off, rx1323_pos, 1
+    substr rx1323_tgt, rx1323_tgt, rx1323_off
+  rx1323_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan1324_done
-    goto rxscan1324_scan
-  rxscan1324_loop:
-    ($P10) = rx1321_cur."from"()
+    ne $I10, -1, rxscan1326_done
+    goto rxscan1326_scan
+  rxscan1326_loop:
+    ($P10) = rx1323_cur."from"()
     inc $P10
-    set rx1321_pos, $P10
-    ge rx1321_pos, rx1321_eos, rxscan1324_done
-  rxscan1324_scan:
-    set_addr $I10, rxscan1324_loop
-    rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
-  rxscan1324_done:
+    set rx1323_pos, $P10
+    ge rx1323_pos, rx1323_eos, rxscan1326_done
+  rxscan1326_scan:
+    set_addr $I10, rxscan1326_loop
+    rx1323_cur."!mark_push"(0, rx1323_pos, $I10)
+  rxscan1326_done:
 .annotate 'line', 555
   # rx subcapture "sym"
-    set_addr $I10, rxcap_1325_fail
-    rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
+    set_addr $I10, rxcap_1327_fail
+    rx1323_cur."!mark_push"(0, rx1323_pos, $I10)
   # rx literal  "redo"
-    add $I11, rx1321_pos, 4
-    gt $I11, rx1321_eos, rx1321_fail
-    sub $I11, rx1321_pos, rx1321_off
-    substr $S10, rx1321_tgt, $I11, 4
-    ne $S10, "redo", rx1321_fail
-    add rx1321_pos, 4
-    set_addr $I10, rxcap_1325_fail
-    ($I12, $I11) = rx1321_cur."!mark_peek"($I10)
-    rx1321_cur."!cursor_pos"($I11)
-    ($P10) = rx1321_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1321_pos, "")
-    rx1321_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx1323_pos, 4
+    gt $I11, rx1323_eos, rx1323_fail
+    sub $I11, rx1323_pos, rx1323_off
+    substr $S10, rx1323_tgt, $I11, 4
+    ne $S10, "redo", rx1323_fail
+    add rx1323_pos, 4
+    set_addr $I10, rxcap_1327_fail
+    ($I12, $I11) = rx1323_cur."!mark_peek"($I10)
+    rx1323_cur."!cursor_pos"($I11)
+    ($P10) = rx1323_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1323_pos, "")
+    rx1323_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_1325_done
-  rxcap_1325_fail:
-    goto rx1321_fail
-  rxcap_1325_done:
+    goto rxcap_1327_done
+  rxcap_1327_fail:
+    goto rx1323_fail
+  rxcap_1327_done:
   # rx pass
-    rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym<redo>")
-    rx1321_cur."!cursor_debug"("PASS  ", "term:sym<redo>", " at pos=", rx1321_pos)
-    .return (rx1321_cur)
-  rx1321_fail:
+    rx1323_cur."!cursor_pass"(rx1323_pos, "term:sym<redo>")
+    rx1323_cur."!cursor_debug"("PASS  ", "term:sym<redo>", " at pos=", rx1323_pos)
+    .return (rx1323_cur)
+  rx1323_fail:
 .annotate 'line', 446
-    (rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0)
-    lt rx1321_pos, -1, rx1321_done
-    eq rx1321_pos, -1, rx1321_fail
+    (rx1323_rep, rx1323_pos, $I10, $P10) = rx1323_cur."!mark_fail"(0)
+    lt rx1323_pos, -1, rx1323_done
+    eq rx1323_pos, -1, rx1323_fail
     jump $I10
-  rx1321_done:
-    rx1321_cur."!cursor_fail"()
-    rx1321_cur."!cursor_debug"("FAIL  ", "term:sym<redo>")
-    .return (rx1321_cur)
+  rx1323_done:
+    rx1323_cur."!cursor_fail"()
+    rx1323_cur."!cursor_debug"("FAIL  ", "term:sym<redo>")
+    .return (rx1323_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>"  :subid("339_1275811487.95429") :method
+.sub "!PREFIX__term:sym<redo>"  :subid("339_1277356913.9538") :method
 .annotate 'line', 446
-    new $P1323, "ResizablePMCArray"
-    push $P1323, "redo"
-    .return ($P1323)
+    new $P1325, "ResizablePMCArray"
+    push $P1325, "redo"
+    .return ($P1325)
 .end
 
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "smartmatch"  :subid("340_1275811487.95429") :method :outer("11_1275811487.95429")
-    .param pmc param_1329
+.sub "smartmatch"  :subid("340_1277356913.9538") :method :outer("11_1277356913.9538")
+    .param pmc param_1331
 .annotate 'line', 557
-    new $P1328, 'ExceptionHandler'
-    set_addr $P1328, control_1327
-    $P1328."handle_types"(.CONTROL_RETURN)
-    push_eh $P1328
+    new $P1330, 'ExceptionHandler'
+    set_addr $P1330, control_1329
+    $P1330."handle_types"(.CONTROL_RETURN)
+    push_eh $P1330
     .lex "self", self
-    .lex "$/", param_1329
+    .lex "$/", param_1331
 .annotate 'line', 559
-    new $P1330, "Undef"
-    .lex "$t", $P1330
-    find_lex $P1331, "$/"
-    unless_null $P1331, vivify_376
-    $P1331 = root_new ['parrot';'ResizablePMCArray']
-  vivify_376:
-    set $P1332, $P1331[0]
-    unless_null $P1332, vivify_377
     new $P1332, "Undef"
-  vivify_377:
-    store_lex "$t", $P1332
+    .lex "$t", $P1332
     find_lex $P1333, "$/"
-    unless_null $P1333, vivify_378
+    unless_null $P1333, vivify_376
     $P1333 = root_new ['parrot';'ResizablePMCArray']
-  vivify_378:
-    set $P1334, $P1333[1]
-    unless_null $P1334, vivify_379
+  vivify_376:
+    set $P1334, $P1333[0]
+    unless_null $P1334, vivify_377
     new $P1334, "Undef"
-  vivify_379:
+  vivify_377:
+    store_lex "$t", $P1334
     find_lex $P1335, "$/"
-    unless_null $P1335, vivify_380
+    unless_null $P1335, vivify_378
     $P1335 = root_new ['parrot';'ResizablePMCArray']
-    store_lex "$/", $P1335
-  vivify_380:
-    set $P1335[0], $P1334
-    find_lex $P1336, "$t"
+  vivify_378:
+    set $P1336, $P1335[1]
+    unless_null $P1336, vivify_379
+    new $P1336, "Undef"
+  vivify_379:
     find_lex $P1337, "$/"
-    unless_null $P1337, vivify_381
+    unless_null $P1337, vivify_380
     $P1337 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$/", $P1337
+  vivify_380:
+    set $P1337[0], $P1336
+    find_lex $P1338, "$t"
+    find_lex $P1339, "$/"
+    unless_null $P1339, vivify_381
+    $P1339 = root_new ['parrot';'ResizablePMCArray']
+    store_lex "$/", $P1339
   vivify_381:
-    set $P1337[1], $P1336
+    set $P1339[1], $P1338
 .annotate 'line', 557
-    .return ($P1336)
-  control_1327:
+    .return ($P1338)
+  control_1329:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P1338, exception, "payload"
-    .return ($P1338)
+    getattribute $P1340, exception, "payload"
+    .return ($P1340)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1339"  :subid("341_1275811487.95429") :outer("11_1275811487.95429")
+.sub "_block1341"  :subid("341_1277356913.9538") :outer("11_1277356913.9538")
 .annotate 'line', 563
-    .const 'Sub' $P1397 = "360_1275811487.95429" 
-    capture_lex $P1397
-    .const 'Sub' $P1392 = "358_1275811487.95429" 
-    capture_lex $P1392
-    .const 'Sub' $P1379 = "355_1275811487.95429" 
-    capture_lex $P1379
-    .const 'Sub' $P1369 = "352_1275811487.95429" 
-    capture_lex $P1369
-    .const 'Sub' $P1364 = "350_1275811487.95429" 
-    capture_lex $P1364
-    .const 'Sub' $P1355 = "347_1275811487.95429" 
-    capture_lex $P1355
-    .const 'Sub' $P1350 = "345_1275811487.95429" 
-    capture_lex $P1350
-    .const 'Sub' $P1341 = "342_1275811487.95429" 
-    capture_lex $P1341
-    .const 'Sub' $P1397 = "360_1275811487.95429" 
-    capture_lex $P1397
-    .return ($P1397)
+    .const 'Sub' $P1399 = "360_1277356913.9538" 
+    capture_lex $P1399
+    .const 'Sub' $P1394 = "358_1277356913.9538" 
+    capture_lex $P1394
+    .const 'Sub' $P1381 = "355_1277356913.9538" 
+    capture_lex $P1381
+    .const 'Sub' $P1371 = "352_1277356913.9538" 
+    capture_lex $P1371
+    .const 'Sub' $P1366 = "350_1277356913.9538" 
+    capture_lex $P1366
+    .const 'Sub' $P1357 = "347_1277356913.9538" 
+    capture_lex $P1357
+    .const 'Sub' $P1352 = "345_1277356913.9538" 
+    capture_lex $P1352
+    .const 'Sub' $P1343 = "342_1277356913.9538" 
+    capture_lex $P1343
+    .const 'Sub' $P1399 = "360_1277356913.9538" 
+    capture_lex $P1399
+    .return ($P1399)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>"  :subid("342_1275811487.95429") :method :outer("341_1275811487.95429")
+.sub "metachar:sym<:my>"  :subid("342_1277356913.9538") :method :outer("341_1277356913.9538")
 .annotate 'line', 563
-    .const 'Sub' $P1347 = "344_1275811487.95429" 
-    capture_lex $P1347
-    .local string rx1342_tgt
-    .local int rx1342_pos
-    .local int rx1342_off
-    .local int rx1342_eos
-    .local int rx1342_rep
-    .local pmc rx1342_cur
-    (rx1342_cur, rx1342_pos, rx1342_tgt) = self."!cursor_start"()
-    rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>")
-    .lex unicode:"$\x{a2}", rx1342_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1342_eos, rx1342_tgt
-    gt rx1342_pos, rx1342_eos, rx1342_done
-    set rx1342_off, 0
-    lt rx1342_pos, 2, rx1342_start
-    sub rx1342_off, rx1342_pos, 1
-    substr rx1342_tgt, rx1342_tgt, rx1342_off
-  rx1342_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1345_done
-    goto rxscan1345_scan
-  rxscan1345_loop:
-    ($P10) = rx1342_cur."from"()
-    inc $P10
-    set rx1342_pos, $P10
-    ge rx1342_pos, rx1342_eos, rxscan1345_done
-  rxscan1345_scan:
-    set_addr $I10, rxscan1345_loop
-    rx1342_cur."!mark_push"(0, rx1342_pos, $I10)
-  rxscan1345_done:
+    .const 'Sub' $P1349 = "344_1277356913.9538" 
+    capture_lex $P1349
+    .local string rx1344_tgt
+    .local int rx1344_pos
+    .local int rx1344_off
+    .local int rx1344_eos
+    .local int rx1344_rep
+    .local pmc rx1344_cur
+    (rx1344_cur, rx1344_pos, rx1344_tgt) = self."!cursor_start"()
+    rx1344_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+    .lex unicode:"$\x{a2}", rx1344_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1344_eos, rx1344_tgt
+    gt rx1344_pos, rx1344_eos, rx1344_done
+    set rx1344_off, 0
+    lt rx1344_pos, 2, rx1344_start
+    sub rx1344_off, rx1344_pos, 1
+    substr rx1344_tgt, rx1344_tgt, rx1344_off
+  rx1344_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1347_done
+    goto rxscan1347_scan
+  rxscan1347_loop:
+    ($P10) = rx1344_cur."from"()
+    inc $P10
+    set rx1344_pos, $P10
+    ge rx1344_pos, rx1344_eos, rxscan1347_done
+  rxscan1347_scan:
+    set_addr $I10, rxscan1347_loop
+    rx1344_cur."!mark_push"(0, rx1344_pos, $I10)
+  rxscan1347_done:
 .annotate 'line', 565
   # rx literal  ":"
-    add $I11, rx1342_pos, 1
-    gt $I11, rx1342_eos, rx1342_fail
-    sub $I11, rx1342_pos, rx1342_off
-    substr $S10, rx1342_tgt, $I11, 1
-    ne $S10, ":", rx1342_fail
-    add rx1342_pos, 1
+    add $I11, rx1344_pos, 1
+    gt $I11, rx1344_eos, rx1344_fail
+    sub $I11, rx1344_pos, rx1344_off
+    substr $S10, rx1344_tgt, $I11, 1
+    ne $S10, ":", rx1344_fail
+    add rx1344_pos, 1
   # rx subrule "before" subtype=zerowidth negate=
-    rx1342_cur."!cursor_pos"(rx1342_pos)
-    .const 'Sub' $P1347 = "344_1275811487.95429" 
-    capture_lex $P1347
-    $P10 = rx1342_cur."before"($P1347)
-    unless $P10, rx1342_fail
+    rx1344_cur."!cursor_pos"(rx1344_pos)
+    .const 'Sub' $P1349 = "344_1277356913.9538" 
+    capture_lex $P1349
+    $P10 = rx1344_cur."before"($P1349)
+    unless $P10, rx1344_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1342_cur."!cursor_pos"(rx1342_pos)
-    $P10 = rx1342_cur."LANG"("MAIN", "statement")
-    unless $P10, rx1342_fail
-    rx1342_cur."!mark_push"(0, -1, 0, $P10)
+    rx1344_cur."!cursor_pos"(rx1344_pos)
+    $P10 = rx1344_cur."LANG"("MAIN", "statement")
+    unless $P10, rx1344_fail
+    rx1344_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("statement")
-    rx1342_pos = $P10."pos"()
+    rx1344_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx1342_cur."!cursor_pos"(rx1342_pos)
-    $P10 = rx1342_cur."ws"()
-    unless $P10, rx1342_fail
-    rx1342_pos = $P10."pos"()
+    rx1344_cur."!cursor_pos"(rx1344_pos)
+    $P10 = rx1344_cur."ws"()
+    unless $P10, rx1344_fail
+    rx1344_pos = $P10."pos"()
   # rx literal  ";"
-    add $I11, rx1342_pos, 1
-    gt $I11, rx1342_eos, rx1342_fail
-    sub $I11, rx1342_pos, rx1342_off
-    substr $S10, rx1342_tgt, $I11, 1
-    ne $S10, ";", rx1342_fail
-    add rx1342_pos, 1
+    add $I11, rx1344_pos, 1
+    gt $I11, rx1344_eos, rx1344_fail
+    sub $I11, rx1344_pos, rx1344_off
+    substr $S10, rx1344_tgt, $I11, 1
+    ne $S10, ";", rx1344_fail
+    add rx1344_pos, 1
 .annotate 'line', 564
   # rx pass
-    rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>")
-    rx1342_cur."!cursor_debug"("PASS  ", "metachar:sym<:my>", " at pos=", rx1342_pos)
-    .return (rx1342_cur)
-  rx1342_fail:
+    rx1344_cur."!cursor_pass"(rx1344_pos, "metachar:sym<:my>")
+    rx1344_cur."!cursor_debug"("PASS  ", "metachar:sym<:my>", " at pos=", rx1344_pos)
+    .return (rx1344_cur)
+  rx1344_fail:
 .annotate 'line', 563
-    (rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0)
-    lt rx1342_pos, -1, rx1342_done
-    eq rx1342_pos, -1, rx1342_fail
-    jump $I10
-  rx1342_done:
-    rx1342_cur."!cursor_fail"()
-    rx1342_cur."!cursor_debug"("FAIL  ", "metachar:sym<:my>")
-    .return (rx1342_cur)
+    (rx1344_rep, rx1344_pos, $I10, $P10) = rx1344_cur."!mark_fail"(0)
+    lt rx1344_pos, -1, rx1344_done
+    eq rx1344_pos, -1, rx1344_fail
+    jump $I10
+  rx1344_done:
+    rx1344_cur."!cursor_fail"()
+    rx1344_cur."!cursor_debug"("FAIL  ", "metachar:sym<:my>")
+    .return (rx1344_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("343_1275811487.95429") :method
+.sub "!PREFIX__metachar:sym<:my>"  :subid("343_1277356913.9538") :method
 .annotate 'line', 563
-    new $P1344, "ResizablePMCArray"
-    push $P1344, ":"
-    .return ($P1344)
+    new $P1346, "ResizablePMCArray"
+    push $P1346, ":"
+    .return ($P1346)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1346"  :anon :subid("344_1275811487.95429") :method :outer("342_1275811487.95429")
+.sub "_block1348"  :anon :subid("344_1277356913.9538") :method :outer("342_1277356913.9538")
 .annotate 'line', 565
-    .local string rx1348_tgt
-    .local int rx1348_pos
-    .local int rx1348_off
-    .local int rx1348_eos
-    .local int rx1348_rep
-    .local pmc rx1348_cur
-    (rx1348_cur, rx1348_pos, rx1348_tgt) = self."!cursor_start"()
-    rx1348_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1348_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1348_eos, rx1348_tgt
-    gt rx1348_pos, rx1348_eos, rx1348_done
-    set rx1348_off, 0
-    lt rx1348_pos, 2, rx1348_start
-    sub rx1348_off, rx1348_pos, 1
-    substr rx1348_tgt, rx1348_tgt, rx1348_off
-  rx1348_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1349_done
-    goto rxscan1349_scan
-  rxscan1349_loop:
-    ($P10) = rx1348_cur."from"()
-    inc $P10
-    set rx1348_pos, $P10
-    ge rx1348_pos, rx1348_eos, rxscan1349_done
-  rxscan1349_scan:
-    set_addr $I10, rxscan1349_loop
-    rx1348_cur."!mark_push"(0, rx1348_pos, $I10)
-  rxscan1349_done:
+    .local string rx1350_tgt
+    .local int rx1350_pos
+    .local int rx1350_off
+    .local int rx1350_eos
+    .local int rx1350_rep
+    .local pmc rx1350_cur
+    (rx1350_cur, rx1350_pos, rx1350_tgt) = self."!cursor_start"()
+    rx1350_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1350_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1350_eos, rx1350_tgt
+    gt rx1350_pos, rx1350_eos, rx1350_done
+    set rx1350_off, 0
+    lt rx1350_pos, 2, rx1350_start
+    sub rx1350_off, rx1350_pos, 1
+    substr rx1350_tgt, rx1350_tgt, rx1350_off
+  rx1350_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1351_done
+    goto rxscan1351_scan
+  rxscan1351_loop:
+    ($P10) = rx1350_cur."from"()
+    inc $P10
+    set rx1350_pos, $P10
+    ge rx1350_pos, rx1350_eos, rxscan1351_done
+  rxscan1351_scan:
+    set_addr $I10, rxscan1351_loop
+    rx1350_cur."!mark_push"(0, rx1350_pos, $I10)
+  rxscan1351_done:
   # rx literal  "my"
-    add $I11, rx1348_pos, 2
-    gt $I11, rx1348_eos, rx1348_fail
-    sub $I11, rx1348_pos, rx1348_off
-    substr $S10, rx1348_tgt, $I11, 2
-    ne $S10, "my", rx1348_fail
-    add rx1348_pos, 2
-  # rx pass
-    rx1348_cur."!cursor_pass"(rx1348_pos, "")
-    rx1348_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1348_pos)
-    .return (rx1348_cur)
-  rx1348_fail:
-    (rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0)
-    lt rx1348_pos, -1, rx1348_done
-    eq rx1348_pos, -1, rx1348_fail
-    jump $I10
-  rx1348_done:
-    rx1348_cur."!cursor_fail"()
-    rx1348_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1348_cur)
+    add $I11, rx1350_pos, 2
+    gt $I11, rx1350_eos, rx1350_fail
+    sub $I11, rx1350_pos, rx1350_off
+    substr $S10, rx1350_tgt, $I11, 2
+    ne $S10, "my", rx1350_fail
+    add rx1350_pos, 2
+  # rx pass
+    rx1350_cur."!cursor_pass"(rx1350_pos, "")
+    rx1350_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1350_pos)
+    .return (rx1350_cur)
+  rx1350_fail:
+    (rx1350_rep, rx1350_pos, $I10, $P10) = rx1350_cur."!mark_fail"(0)
+    lt rx1350_pos, -1, rx1350_done
+    eq rx1350_pos, -1, rx1350_fail
+    jump $I10
+  rx1350_done:
+    rx1350_cur."!cursor_fail"()
+    rx1350_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1350_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("345_1275811487.95429") :method :outer("341_1275811487.95429")
+.sub "metachar:sym<{ }>"  :subid("345_1277356913.9538") :method :outer("341_1277356913.9538")
 .annotate 'line', 563
-    .local string rx1351_tgt
-    .local int rx1351_pos
-    .local int rx1351_off
-    .local int rx1351_eos
-    .local int rx1351_rep
-    .local pmc rx1351_cur
-    (rx1351_cur, rx1351_pos, rx1351_tgt) = self."!cursor_start"()
-    rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx1351_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1351_eos, rx1351_tgt
-    gt rx1351_pos, rx1351_eos, rx1351_done
-    set rx1351_off, 0
-    lt rx1351_pos, 2, rx1351_start
-    sub rx1351_off, rx1351_pos, 1
-    substr rx1351_tgt, rx1351_tgt, rx1351_off
-  rx1351_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1354_done
-    goto rxscan1354_scan
-  rxscan1354_loop:
-    ($P10) = rx1351_cur."from"()
-    inc $P10
-    set rx1351_pos, $P10
-    ge rx1351_pos, rx1351_eos, rxscan1354_done
-  rxscan1354_scan:
-    set_addr $I10, rxscan1354_loop
-    rx1351_cur."!mark_push"(0, rx1351_pos, $I10)
-  rxscan1354_done:
+    .local string rx1353_tgt
+    .local int rx1353_pos
+    .local int rx1353_off
+    .local int rx1353_eos
+    .local int rx1353_rep
+    .local pmc rx1353_cur
+    (rx1353_cur, rx1353_pos, rx1353_tgt) = self."!cursor_start"()
+    rx1353_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx1353_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1353_eos, rx1353_tgt
+    gt rx1353_pos, rx1353_eos, rx1353_done
+    set rx1353_off, 0
+    lt rx1353_pos, 2, rx1353_start
+    sub rx1353_off, rx1353_pos, 1
+    substr rx1353_tgt, rx1353_tgt, rx1353_off
+  rx1353_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1356_done
+    goto rxscan1356_scan
+  rxscan1356_loop:
+    ($P10) = rx1353_cur."from"()
+    inc $P10
+    set rx1353_pos, $P10
+    ge rx1353_pos, rx1353_eos, rxscan1356_done
+  rxscan1356_scan:
+    set_addr $I10, rxscan1356_loop
+    rx1353_cur."!mark_push"(0, rx1353_pos, $I10)
+  rxscan1356_done:
 .annotate 'line', 569
   # rx enumcharlist negate=0 zerowidth
-    ge rx1351_pos, rx1351_eos, rx1351_fail
-    sub $I10, rx1351_pos, rx1351_off
-    substr $S10, rx1351_tgt, $I10, 1
+    ge rx1353_pos, rx1353_eos, rx1353_fail
+    sub $I10, rx1353_pos, rx1353_off
+    substr $S10, rx1353_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx1351_fail
+    lt $I11, 0, rx1353_fail
   # rx subrule "codeblock" subtype=capture negate=
-    rx1351_cur."!cursor_pos"(rx1351_pos)
-    $P10 = rx1351_cur."codeblock"()
-    unless $P10, rx1351_fail
-    rx1351_cur."!mark_push"(0, -1, 0, $P10)
+    rx1353_cur."!cursor_pos"(rx1353_pos)
+    $P10 = rx1353_cur."codeblock"()
+    unless $P10, rx1353_fail
+    rx1353_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1351_pos = $P10."pos"()
+    rx1353_pos = $P10."pos"()
 .annotate 'line', 568
   # rx pass
-    rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>")
-    rx1351_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1351_pos)
-    .return (rx1351_cur)
-  rx1351_fail:
+    rx1353_cur."!cursor_pass"(rx1353_pos, "metachar:sym<{ }>")
+    rx1353_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1353_pos)
+    .return (rx1353_cur)
+  rx1353_fail:
 .annotate 'line', 563
-    (rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0)
-    lt rx1351_pos, -1, rx1351_done
-    eq rx1351_pos, -1, rx1351_fail
-    jump $I10
-  rx1351_done:
-    rx1351_cur."!cursor_fail"()
-    rx1351_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
-    .return (rx1351_cur)
+    (rx1353_rep, rx1353_pos, $I10, $P10) = rx1353_cur."!mark_fail"(0)
+    lt rx1353_pos, -1, rx1353_done
+    eq rx1353_pos, -1, rx1353_fail
+    jump $I10
+  rx1353_done:
+    rx1353_cur."!cursor_fail"()
+    rx1353_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
+    .return (rx1353_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("346_1275811487.95429") :method
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("346_1277356913.9538") :method
 .annotate 'line', 563
-    new $P1353, "ResizablePMCArray"
-    push $P1353, "{"
-    .return ($P1353)
+    new $P1355, "ResizablePMCArray"
+    push $P1355, "{"
+    .return ($P1355)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<nqpvar>"  :subid("347_1275811487.95429") :method :outer("341_1275811487.95429")
+.sub "metachar:sym<nqpvar>"  :subid("347_1277356913.9538") :method :outer("341_1277356913.9538")
 .annotate 'line', 563
-    .const 'Sub' $P1361 = "349_1275811487.95429" 
-    capture_lex $P1361
-    .local string rx1356_tgt
-    .local int rx1356_pos
-    .local int rx1356_off
-    .local int rx1356_eos
-    .local int rx1356_rep
-    .local pmc rx1356_cur
-    (rx1356_cur, rx1356_pos, rx1356_tgt) = self."!cursor_start"()
-    rx1356_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
-    .lex unicode:"$\x{a2}", rx1356_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1356_eos, rx1356_tgt
-    gt rx1356_pos, rx1356_eos, rx1356_done
-    set rx1356_off, 0
-    lt rx1356_pos, 2, rx1356_start
-    sub rx1356_off, rx1356_pos, 1
-    substr rx1356_tgt, rx1356_tgt, rx1356_off
-  rx1356_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1359_done
-    goto rxscan1359_scan
-  rxscan1359_loop:
-    ($P10) = rx1356_cur."from"()
-    inc $P10
-    set rx1356_pos, $P10
-    ge rx1356_pos, rx1356_eos, rxscan1359_done
-  rxscan1359_scan:
-    set_addr $I10, rxscan1359_loop
-    rx1356_cur."!mark_push"(0, rx1356_pos, $I10)
-  rxscan1359_done:
+    .const 'Sub' $P1363 = "349_1277356913.9538" 
+    capture_lex $P1363
+    .local string rx1358_tgt
+    .local int rx1358_pos
+    .local int rx1358_off
+    .local int rx1358_eos
+    .local int rx1358_rep
+    .local pmc rx1358_cur
+    (rx1358_cur, rx1358_pos, rx1358_tgt) = self."!cursor_start"()
+    rx1358_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
+    .lex unicode:"$\x{a2}", rx1358_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1358_eos, rx1358_tgt
+    gt rx1358_pos, rx1358_eos, rx1358_done
+    set rx1358_off, 0
+    lt rx1358_pos, 2, rx1358_start
+    sub rx1358_off, rx1358_pos, 1
+    substr rx1358_tgt, rx1358_tgt, rx1358_off
+  rx1358_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1361_done
+    goto rxscan1361_scan
+  rxscan1361_loop:
+    ($P10) = rx1358_cur."from"()
+    inc $P10
+    set rx1358_pos, $P10
+    ge rx1358_pos, rx1358_eos, rxscan1361_done
+  rxscan1361_scan:
+    set_addr $I10, rxscan1361_loop
+    rx1358_cur."!mark_push"(0, rx1358_pos, $I10)
+  rxscan1361_done:
 .annotate 'line', 573
   # rx enumcharlist negate=0 zerowidth
-    ge rx1356_pos, rx1356_eos, rx1356_fail
-    sub $I10, rx1356_pos, rx1356_off
-    substr $S10, rx1356_tgt, $I10, 1
+    ge rx1358_pos, rx1358_eos, rx1358_fail
+    sub $I10, rx1358_pos, rx1358_off
+    substr $S10, rx1358_tgt, $I10, 1
     index $I11, "$@", $S10
-    lt $I11, 0, rx1356_fail
+    lt $I11, 0, rx1358_fail
   # rx subrule "before" subtype=zerowidth negate=
-    rx1356_cur."!cursor_pos"(rx1356_pos)
-    .const 'Sub' $P1361 = "349_1275811487.95429" 
-    capture_lex $P1361
-    $P10 = rx1356_cur."before"($P1361)
-    unless $P10, rx1356_fail
+    rx1358_cur."!cursor_pos"(rx1358_pos)
+    .const 'Sub' $P1363 = "349_1277356913.9538" 
+    capture_lex $P1363
+    $P10 = rx1358_cur."before"($P1363)
+    unless $P10, rx1358_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1356_cur."!cursor_pos"(rx1356_pos)
-    $P10 = rx1356_cur."LANG"("MAIN", "variable")
-    unless $P10, rx1356_fail
-    rx1356_cur."!mark_push"(0, -1, 0, $P10)
+    rx1358_cur."!cursor_pos"(rx1358_pos)
+    $P10 = rx1358_cur."LANG"("MAIN", "variable")
+    unless $P10, rx1358_fail
+    rx1358_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("var")
-    rx1356_pos = $P10."pos"()
+    rx1358_pos = $P10."pos"()
 .annotate 'line', 572
   # rx pass
-    rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym<nqpvar>")
-    rx1356_cur."!cursor_debug"("PASS  ", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
-    .return (rx1356_cur)
-  rx1356_fail:
+    rx1358_cur."!cursor_pass"(rx1358_pos, "metachar:sym<nqpvar>")
+    rx1358_cur."!cursor_debug"("PASS  ", "metachar:sym<nqpvar>", " at pos=", rx1358_pos)
+    .return (rx1358_cur)
+  rx1358_fail:
 .annotate 'line', 563
-    (rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0)
-    lt rx1356_pos, -1, rx1356_done
-    eq rx1356_pos, -1, rx1356_fail
-    jump $I10
-  rx1356_done:
-    rx1356_cur."!cursor_fail"()
-    rx1356_cur."!cursor_debug"("FAIL  ", "metachar:sym<nqpvar>")
-    .return (rx1356_cur)
+    (rx1358_rep, rx1358_pos, $I10, $P10) = rx1358_cur."!mark_fail"(0)
+    lt rx1358_pos, -1, rx1358_done
+    eq rx1358_pos, -1, rx1358_fail
+    jump $I10
+  rx1358_done:
+    rx1358_cur."!cursor_fail"()
+    rx1358_cur."!cursor_debug"("FAIL  ", "metachar:sym<nqpvar>")
+    .return (rx1358_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("348_1275811487.95429") :method
+.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("348_1277356913.9538") :method
 .annotate 'line', 563
-    new $P1358, "ResizablePMCArray"
-    push $P1358, "$"
-    push $P1358, "@"
-    .return ($P1358)
+    new $P1360, "ResizablePMCArray"
+    push $P1360, "$"
+    push $P1360, "@"
+    .return ($P1360)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1360"  :anon :subid("349_1275811487.95429") :method :outer("347_1275811487.95429")
+.sub "_block1362"  :anon :subid("349_1277356913.9538") :method :outer("347_1277356913.9538")
 .annotate 'line', 573
-    .local string rx1362_tgt
-    .local int rx1362_pos
-    .local int rx1362_off
-    .local int rx1362_eos
-    .local int rx1362_rep
-    .local pmc rx1362_cur
-    (rx1362_cur, rx1362_pos, rx1362_tgt) = self."!cursor_start"()
-    rx1362_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1362_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1362_eos, rx1362_tgt
-    gt rx1362_pos, rx1362_eos, rx1362_done
-    set rx1362_off, 0
-    lt rx1362_pos, 2, rx1362_start
-    sub rx1362_off, rx1362_pos, 1
-    substr rx1362_tgt, rx1362_tgt, rx1362_off
-  rx1362_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1363_done
-    goto rxscan1363_scan
-  rxscan1363_loop:
-    ($P10) = rx1362_cur."from"()
-    inc $P10
-    set rx1362_pos, $P10
-    ge rx1362_pos, rx1362_eos, rxscan1363_done
-  rxscan1363_scan:
-    set_addr $I10, rxscan1363_loop
-    rx1362_cur."!mark_push"(0, rx1362_pos, $I10)
-  rxscan1363_done:
+    .local string rx1364_tgt
+    .local int rx1364_pos
+    .local int rx1364_off
+    .local int rx1364_eos
+    .local int rx1364_rep
+    .local pmc rx1364_cur
+    (rx1364_cur, rx1364_pos, rx1364_tgt) = self."!cursor_start"()
+    rx1364_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1364_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1364_eos, rx1364_tgt
+    gt rx1364_pos, rx1364_eos, rx1364_done
+    set rx1364_off, 0
+    lt rx1364_pos, 2, rx1364_start
+    sub rx1364_off, rx1364_pos, 1
+    substr rx1364_tgt, rx1364_tgt, rx1364_off
+  rx1364_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1365_done
+    goto rxscan1365_scan
+  rxscan1365_loop:
+    ($P10) = rx1364_cur."from"()
+    inc $P10
+    set rx1364_pos, $P10
+    ge rx1364_pos, rx1364_eos, rxscan1365_done
+  rxscan1365_scan:
+    set_addr $I10, rxscan1365_loop
+    rx1364_cur."!mark_push"(0, rx1364_pos, $I10)
+  rxscan1365_done:
   # rx charclass .
-    ge rx1362_pos, rx1362_eos, rx1362_fail
-    inc rx1362_pos
+    ge rx1364_pos, rx1364_eos, rx1364_fail
+    inc rx1364_pos
   # rx charclass w
-    ge rx1362_pos, rx1362_eos, rx1362_fail
-    sub $I10, rx1362_pos, rx1362_off
-    is_cclass $I11, 8192, rx1362_tgt, $I10
-    unless $I11, rx1362_fail
-    inc rx1362_pos
-  # rx pass
-    rx1362_cur."!cursor_pass"(rx1362_pos, "")
-    rx1362_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1362_pos)
-    .return (rx1362_cur)
-  rx1362_fail:
-    (rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0)
-    lt rx1362_pos, -1, rx1362_done
-    eq rx1362_pos, -1, rx1362_fail
-    jump $I10
-  rx1362_done:
-    rx1362_cur."!cursor_fail"()
-    rx1362_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1362_cur)
+    ge rx1364_pos, rx1364_eos, rx1364_fail
+    sub $I10, rx1364_pos, rx1364_off
+    is_cclass $I11, 8192, rx1364_tgt, $I10
+    unless $I11, rx1364_fail
+    inc rx1364_pos
+  # rx pass
+    rx1364_cur."!cursor_pass"(rx1364_pos, "")
+    rx1364_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1364_pos)
+    .return (rx1364_cur)
+  rx1364_fail:
+    (rx1364_rep, rx1364_pos, $I10, $P10) = rx1364_cur."!mark_fail"(0)
+    lt rx1364_pos, -1, rx1364_done
+    eq rx1364_pos, -1, rx1364_fail
+    jump $I10
+  rx1364_done:
+    rx1364_cur."!cursor_fail"()
+    rx1364_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1364_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("350_1275811487.95429") :method :outer("341_1275811487.95429")
+.sub "assertion:sym<{ }>"  :subid("350_1277356913.9538") :method :outer("341_1277356913.9538")
 .annotate 'line', 563
-    .local string rx1365_tgt
-    .local int rx1365_pos
-    .local int rx1365_off
-    .local int rx1365_eos
-    .local int rx1365_rep
-    .local pmc rx1365_cur
-    (rx1365_cur, rx1365_pos, rx1365_tgt) = self."!cursor_start"()
-    rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx1365_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1365_eos, rx1365_tgt
-    gt rx1365_pos, rx1365_eos, rx1365_done
-    set rx1365_off, 0
-    lt rx1365_pos, 2, rx1365_start
-    sub rx1365_off, rx1365_pos, 1
-    substr rx1365_tgt, rx1365_tgt, rx1365_off
-  rx1365_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1368_done
-    goto rxscan1368_scan
-  rxscan1368_loop:
-    ($P10) = rx1365_cur."from"()
-    inc $P10
-    set rx1365_pos, $P10
-    ge rx1365_pos, rx1365_eos, rxscan1368_done
-  rxscan1368_scan:
-    set_addr $I10, rxscan1368_loop
-    rx1365_cur."!mark_push"(0, rx1365_pos, $I10)
-  rxscan1368_done:
+    .local string rx1367_tgt
+    .local int rx1367_pos
+    .local int rx1367_off
+    .local int rx1367_eos
+    .local int rx1367_rep
+    .local pmc rx1367_cur
+    (rx1367_cur, rx1367_pos, rx1367_tgt) = self."!cursor_start"()
+    rx1367_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx1367_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1367_eos, rx1367_tgt
+    gt rx1367_pos, rx1367_eos, rx1367_done
+    set rx1367_off, 0
+    lt rx1367_pos, 2, rx1367_start
+    sub rx1367_off, rx1367_pos, 1
+    substr rx1367_tgt, rx1367_tgt, rx1367_off
+  rx1367_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1370_done
+    goto rxscan1370_scan
+  rxscan1370_loop:
+    ($P10) = rx1367_cur."from"()
+    inc $P10
+    set rx1367_pos, $P10
+    ge rx1367_pos, rx1367_eos, rxscan1370_done
+  rxscan1370_scan:
+    set_addr $I10, rxscan1370_loop
+    rx1367_cur."!mark_push"(0, rx1367_pos, $I10)
+  rxscan1370_done:
 .annotate 'line', 577
   # rx enumcharlist negate=0 zerowidth
-    ge rx1365_pos, rx1365_eos, rx1365_fail
-    sub $I10, rx1365_pos, rx1365_off
-    substr $S10, rx1365_tgt, $I10, 1
+    ge rx1367_pos, rx1367_eos, rx1367_fail
+    sub $I10, rx1367_pos, rx1367_off
+    substr $S10, rx1367_tgt, $I10, 1
     index $I11, "{", $S10
-    lt $I11, 0, rx1365_fail
+    lt $I11, 0, rx1367_fail
   # rx subrule "codeblock" subtype=capture negate=
-    rx1365_cur."!cursor_pos"(rx1365_pos)
-    $P10 = rx1365_cur."codeblock"()
-    unless $P10, rx1365_fail
-    rx1365_cur."!mark_push"(0, -1, 0, $P10)
+    rx1367_cur."!cursor_pos"(rx1367_pos)
+    $P10 = rx1367_cur."codeblock"()
+    unless $P10, rx1367_fail
+    rx1367_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1365_pos = $P10."pos"()
+    rx1367_pos = $P10."pos"()
 .annotate 'line', 576
   # rx pass
-    rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>")
-    rx1365_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1365_pos)
-    .return (rx1365_cur)
-  rx1365_fail:
+    rx1367_cur."!cursor_pass"(rx1367_pos, "assertion:sym<{ }>")
+    rx1367_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1367_pos)
+    .return (rx1367_cur)
+  rx1367_fail:
 .annotate 'line', 563
-    (rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0)
-    lt rx1365_pos, -1, rx1365_done
-    eq rx1365_pos, -1, rx1365_fail
-    jump $I10
-  rx1365_done:
-    rx1365_cur."!cursor_fail"()
-    rx1365_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
-    .return (rx1365_cur)
+    (rx1367_rep, rx1367_pos, $I10, $P10) = rx1367_cur."!mark_fail"(0)
+    lt rx1367_pos, -1, rx1367_done
+    eq rx1367_pos, -1, rx1367_fail
+    jump $I10
+  rx1367_done:
+    rx1367_cur."!cursor_fail"()
+    rx1367_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
+    .return (rx1367_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("351_1275811487.95429") :method
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("351_1277356913.9538") :method
 .annotate 'line', 563
-    new $P1367, "ResizablePMCArray"
-    push $P1367, "{"
-    .return ($P1367)
+    new $P1369, "ResizablePMCArray"
+    push $P1369, "{"
+    .return ($P1369)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<?{ }>"  :subid("352_1275811487.95429") :method :outer("341_1275811487.95429")
+.sub "assertion:sym<?{ }>"  :subid("352_1277356913.9538") :method :outer("341_1277356913.9538")
 .annotate 'line', 563
-    .const 'Sub' $P1375 = "354_1275811487.95429" 
-    capture_lex $P1375
-    .local string rx1370_tgt
-    .local int rx1370_pos
-    .local int rx1370_off
-    .local int rx1370_eos
-    .local int rx1370_rep
-    .local pmc rx1370_cur
-    (rx1370_cur, rx1370_pos, rx1370_tgt) = self."!cursor_start"()
-    rx1370_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
-    .lex unicode:"$\x{a2}", rx1370_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1370_eos, rx1370_tgt
-    gt rx1370_pos, rx1370_eos, rx1370_done
-    set rx1370_off, 0
-    lt rx1370_pos, 2, rx1370_start
-    sub rx1370_off, rx1370_pos, 1
-    substr rx1370_tgt, rx1370_tgt, rx1370_off
-  rx1370_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1373_done
-    goto rxscan1373_scan
-  rxscan1373_loop:
-    ($P10) = rx1370_cur."from"()
-    inc $P10
-    set rx1370_pos, $P10
-    ge rx1370_pos, rx1370_eos, rxscan1373_done
-  rxscan1373_scan:
-    set_addr $I10, rxscan1373_loop
-    rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
-  rxscan1373_done:
+    .const 'Sub' $P1377 = "354_1277356913.9538" 
+    capture_lex $P1377
+    .local string rx1372_tgt
+    .local int rx1372_pos
+    .local int rx1372_off
+    .local int rx1372_eos
+    .local int rx1372_rep
+    .local pmc rx1372_cur
+    (rx1372_cur, rx1372_pos, rx1372_tgt) = self."!cursor_start"()
+    rx1372_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
+    .lex unicode:"$\x{a2}", rx1372_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1372_eos, rx1372_tgt
+    gt rx1372_pos, rx1372_eos, rx1372_done
+    set rx1372_off, 0
+    lt rx1372_pos, 2, rx1372_start
+    sub rx1372_off, rx1372_pos, 1
+    substr rx1372_tgt, rx1372_tgt, rx1372_off
+  rx1372_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1375_done
+    goto rxscan1375_scan
+  rxscan1375_loop:
+    ($P10) = rx1372_cur."from"()
+    inc $P10
+    set rx1372_pos, $P10
+    ge rx1372_pos, rx1372_eos, rxscan1375_done
+  rxscan1375_scan:
+    set_addr $I10, rxscan1375_loop
+    rx1372_cur."!mark_push"(0, rx1372_pos, $I10)
+  rxscan1375_done:
 .annotate 'line', 581
   # rx subcapture "zw"
-    set_addr $I10, rxcap_1378_fail
-    rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
+    set_addr $I10, rxcap_1380_fail
+    rx1372_cur."!mark_push"(0, rx1372_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx1370_pos, rx1370_eos, rx1370_fail
-    sub $I10, rx1370_pos, rx1370_off
-    substr $S10, rx1370_tgt, $I10, 1
+    ge rx1372_pos, rx1372_eos, rx1372_fail
+    sub $I10, rx1372_pos, rx1372_off
+    substr $S10, rx1372_tgt, $I10, 1
     index $I11, "?!", $S10
-    lt $I11, 0, rx1370_fail
-    inc rx1370_pos
+    lt $I11, 0, rx1372_fail
+    inc rx1372_pos
   # rx subrule "before" subtype=zerowidth negate=
-    rx1370_cur."!cursor_pos"(rx1370_pos)
-    .const 'Sub' $P1375 = "354_1275811487.95429" 
-    capture_lex $P1375
-    $P10 = rx1370_cur."before"($P1375)
-    unless $P10, rx1370_fail
-    set_addr $I10, rxcap_1378_fail
-    ($I12, $I11) = rx1370_cur."!mark_peek"($I10)
-    rx1370_cur."!cursor_pos"($I11)
-    ($P10) = rx1370_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1370_pos, "")
-    rx1370_cur."!mark_push"(0, -1, 0, $P10)
+    rx1372_cur."!cursor_pos"(rx1372_pos)
+    .const 'Sub' $P1377 = "354_1277356913.9538" 
+    capture_lex $P1377
+    $P10 = rx1372_cur."before"($P1377)
+    unless $P10, rx1372_fail
+    set_addr $I10, rxcap_1380_fail
+    ($I12, $I11) = rx1372_cur."!mark_peek"($I10)
+    rx1372_cur."!cursor_pos"($I11)
+    ($P10) = rx1372_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1372_pos, "")
+    rx1372_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("zw")
-    goto rxcap_1378_done
-  rxcap_1378_fail:
-    goto rx1370_fail
-  rxcap_1378_done:
+    goto rxcap_1380_done
+  rxcap_1380_fail:
+    goto rx1372_fail
+  rxcap_1380_done:
   # rx subrule "codeblock" subtype=capture negate=
-    rx1370_cur."!cursor_pos"(rx1370_pos)
-    $P10 = rx1370_cur."codeblock"()
-    unless $P10, rx1370_fail
-    rx1370_cur."!mark_push"(0, -1, 0, $P10)
+    rx1372_cur."!cursor_pos"(rx1372_pos)
+    $P10 = rx1372_cur."codeblock"()
+    unless $P10, rx1372_fail
+    rx1372_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("codeblock")
-    rx1370_pos = $P10."pos"()
+    rx1372_pos = $P10."pos"()
 .annotate 'line', 580
   # rx pass
-    rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym<?{ }>")
-    rx1370_cur."!cursor_debug"("PASS  ", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
-    .return (rx1370_cur)
-  rx1370_fail:
+    rx1372_cur."!cursor_pass"(rx1372_pos, "assertion:sym<?{ }>")
+    rx1372_cur."!cursor_debug"("PASS  ", "assertion:sym<?{ }>", " at pos=", rx1372_pos)
+    .return (rx1372_cur)
+  rx1372_fail:
 .annotate 'line', 563
-    (rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0)
-    lt rx1370_pos, -1, rx1370_done
-    eq rx1370_pos, -1, rx1370_fail
-    jump $I10
-  rx1370_done:
-    rx1370_cur."!cursor_fail"()
-    rx1370_cur."!cursor_debug"("FAIL  ", "assertion:sym<?{ }>")
-    .return (rx1370_cur)
+    (rx1372_rep, rx1372_pos, $I10, $P10) = rx1372_cur."!mark_fail"(0)
+    lt rx1372_pos, -1, rx1372_done
+    eq rx1372_pos, -1, rx1372_fail
+    jump $I10
+  rx1372_done:
+    rx1372_cur."!cursor_fail"()
+    rx1372_cur."!cursor_debug"("FAIL  ", "assertion:sym<?{ }>")
+    .return (rx1372_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<?{ }>"  :subid("353_1275811487.95429") :method
+.sub "!PREFIX__assertion:sym<?{ }>"  :subid("353_1277356913.9538") :method
 .annotate 'line', 563
-    new $P1372, "ResizablePMCArray"
-    push $P1372, "!"
-    push $P1372, "?"
-    .return ($P1372)
+    new $P1374, "ResizablePMCArray"
+    push $P1374, "!"
+    push $P1374, "?"
+    .return ($P1374)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1374"  :anon :subid("354_1275811487.95429") :method :outer("352_1275811487.95429")
+.sub "_block1376"  :anon :subid("354_1277356913.9538") :method :outer("352_1277356913.9538")
 .annotate 'line', 581
-    .local string rx1376_tgt
-    .local int rx1376_pos
-    .local int rx1376_off
-    .local int rx1376_eos
-    .local int rx1376_rep
-    .local pmc rx1376_cur
-    (rx1376_cur, rx1376_pos, rx1376_tgt) = self."!cursor_start"()
-    rx1376_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1376_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1376_eos, rx1376_tgt
-    gt rx1376_pos, rx1376_eos, rx1376_done
-    set rx1376_off, 0
-    lt rx1376_pos, 2, rx1376_start
-    sub rx1376_off, rx1376_pos, 1
-    substr rx1376_tgt, rx1376_tgt, rx1376_off
-  rx1376_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1377_done
-    goto rxscan1377_scan
-  rxscan1377_loop:
-    ($P10) = rx1376_cur."from"()
-    inc $P10
-    set rx1376_pos, $P10
-    ge rx1376_pos, rx1376_eos, rxscan1377_done
-  rxscan1377_scan:
-    set_addr $I10, rxscan1377_loop
-    rx1376_cur."!mark_push"(0, rx1376_pos, $I10)
-  rxscan1377_done:
+    .local string rx1378_tgt
+    .local int rx1378_pos
+    .local int rx1378_off
+    .local int rx1378_eos
+    .local int rx1378_rep
+    .local pmc rx1378_cur
+    (rx1378_cur, rx1378_pos, rx1378_tgt) = self."!cursor_start"()
+    rx1378_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1378_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1378_eos, rx1378_tgt
+    gt rx1378_pos, rx1378_eos, rx1378_done
+    set rx1378_off, 0
+    lt rx1378_pos, 2, rx1378_start
+    sub rx1378_off, rx1378_pos, 1
+    substr rx1378_tgt, rx1378_tgt, rx1378_off
+  rx1378_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1379_done
+    goto rxscan1379_scan
+  rxscan1379_loop:
+    ($P10) = rx1378_cur."from"()
+    inc $P10
+    set rx1378_pos, $P10
+    ge rx1378_pos, rx1378_eos, rxscan1379_done
+  rxscan1379_scan:
+    set_addr $I10, rxscan1379_loop
+    rx1378_cur."!mark_push"(0, rx1378_pos, $I10)
+  rxscan1379_done:
   # rx literal  "{"
-    add $I11, rx1376_pos, 1
-    gt $I11, rx1376_eos, rx1376_fail
-    sub $I11, rx1376_pos, rx1376_off
-    substr $S10, rx1376_tgt, $I11, 1
-    ne $S10, "{", rx1376_fail
-    add rx1376_pos, 1
-  # rx pass
-    rx1376_cur."!cursor_pass"(rx1376_pos, "")
-    rx1376_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1376_pos)
-    .return (rx1376_cur)
-  rx1376_fail:
-    (rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0)
-    lt rx1376_pos, -1, rx1376_done
-    eq rx1376_pos, -1, rx1376_fail
-    jump $I10
-  rx1376_done:
-    rx1376_cur."!cursor_fail"()
-    rx1376_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1376_cur)
+    add $I11, rx1378_pos, 1
+    gt $I11, rx1378_eos, rx1378_fail
+    sub $I11, rx1378_pos, rx1378_off
+    substr $S10, rx1378_tgt, $I11, 1
+    ne $S10, "{", rx1378_fail
+    add rx1378_pos, 1
+  # rx pass
+    rx1378_cur."!cursor_pass"(rx1378_pos, "")
+    rx1378_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1378_pos)
+    .return (rx1378_cur)
+  rx1378_fail:
+    (rx1378_rep, rx1378_pos, $I10, $P10) = rx1378_cur."!mark_fail"(0)
+    lt rx1378_pos, -1, rx1378_done
+    eq rx1378_pos, -1, rx1378_fail
+    jump $I10
+  rx1378_done:
+    rx1378_cur."!cursor_fail"()
+    rx1378_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1378_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("355_1275811487.95429") :method :outer("341_1275811487.95429")
+.sub "assertion:sym<name>"  :subid("355_1277356913.9538") :method :outer("341_1277356913.9538")
 .annotate 'line', 563
-    .const 'Sub' $P1388 = "357_1275811487.95429" 
-    capture_lex $P1388
-    .local string rx1380_tgt
-    .local int rx1380_pos
-    .local int rx1380_off
-    .local int rx1380_eos
-    .local int rx1380_rep
-    .local pmc rx1380_cur
-    (rx1380_cur, rx1380_pos, rx1380_tgt) = self."!cursor_start"()
-    rx1380_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx1380_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
-    .lex unicode:"$\x{a2}", rx1380_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1380_eos, rx1380_tgt
-    gt rx1380_pos, rx1380_eos, rx1380_done
-    set rx1380_off, 0
-    lt rx1380_pos, 2, rx1380_start
-    sub rx1380_off, rx1380_pos, 1
-    substr rx1380_tgt, rx1380_tgt, rx1380_off
-  rx1380_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1383_done
-    goto rxscan1383_scan
-  rxscan1383_loop:
-    ($P10) = rx1380_cur."from"()
-    inc $P10
-    set rx1380_pos, $P10
-    ge rx1380_pos, rx1380_eos, rxscan1383_done
-  rxscan1383_scan:
-    set_addr $I10, rxscan1383_loop
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
-  rxscan1383_done:
+    .const 'Sub' $P1390 = "357_1277356913.9538" 
+    capture_lex $P1390
+    .local string rx1382_tgt
+    .local int rx1382_pos
+    .local int rx1382_off
+    .local int rx1382_eos
+    .local int rx1382_rep
+    .local pmc rx1382_cur
+    (rx1382_cur, rx1382_pos, rx1382_tgt) = self."!cursor_start"()
+    rx1382_cur."!cursor_debug"("START ", "assertion:sym<name>")
+    rx1382_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+    .lex unicode:"$\x{a2}", rx1382_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1382_eos, rx1382_tgt
+    gt rx1382_pos, rx1382_eos, rx1382_done
+    set rx1382_off, 0
+    lt rx1382_pos, 2, rx1382_start
+    sub rx1382_off, rx1382_pos, 1
+    substr rx1382_tgt, rx1382_tgt, rx1382_off
+  rx1382_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1386_done
+    goto rxscan1386_scan
+  rxscan1386_loop:
+    ($P10) = rx1382_cur."from"()
+    inc $P10
+    set rx1382_pos, $P10
+    ge rx1382_pos, rx1382_eos, rxscan1386_done
+  rxscan1386_scan:
+    set_addr $I10, rxscan1386_loop
+    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
+  rxscan1386_done:
 .annotate 'line', 585
-  # rx subcapture "longname"
-    set_addr $I10, rxcap_1384_fail
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
-  # rx charclass_q w r 1..-1
-    sub $I10, rx1380_pos, rx1380_off
-    find_not_cclass $I11, 8192, rx1380_tgt, $I10, rx1380_eos
-    add $I12, $I10, 1
-    lt $I11, $I12, rx1380_fail
-    add rx1380_pos, rx1380_off, $I11
-    set_addr $I10, rxcap_1384_fail
-    ($I12, $I11) = rx1380_cur."!mark_peek"($I10)
-    rx1380_cur."!cursor_pos"($I11)
-    ($P10) = rx1380_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx1380_pos, "")
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+  # rx subrule "identifier" subtype=capture negate=
+    rx1382_cur."!cursor_pos"(rx1382_pos)
+    $P10 = rx1382_cur."identifier"()
+    unless $P10, rx1382_fail
+    rx1382_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("longname")
-    goto rxcap_1384_done
-  rxcap_1384_fail:
-    goto rx1380_fail
-  rxcap_1384_done:
+    rx1382_pos = $P10."pos"()
 .annotate 'line', 592
-  # rx rxquantr1385 ** 0..1
-    set_addr $I1391, rxquantr1385_done
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I1391)
-  rxquantr1385_loop:
-  alt1386_0:
+  # rx rxquantr1387 ** 0..1
+    set_addr $I1393, rxquantr1387_done
+    rx1382_cur."!mark_push"(0, rx1382_pos, $I1393)
+  rxquantr1387_loop:
+  alt1388_0:
 .annotate 'line', 586
-    set_addr $I10, alt1386_1
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+    set_addr $I10, alt1388_1
+    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
 .annotate 'line', 587
   # rx subrule "before" subtype=zerowidth negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    .const 'Sub' $P1388 = "357_1275811487.95429" 
-    capture_lex $P1388
-    $P10 = rx1380_cur."before"($P1388)
-    unless $P10, rx1380_fail
-    goto alt1386_end
-  alt1386_1:
-    set_addr $I10, alt1386_2
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+    rx1382_cur."!cursor_pos"(rx1382_pos)
+    .const 'Sub' $P1390 = "357_1277356913.9538" 
+    capture_lex $P1390
+    $P10 = rx1382_cur."before"($P1390)
+    unless $P10, rx1382_fail
+    goto alt1388_end
+  alt1388_1:
+    set_addr $I10, alt1388_2
+    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
 .annotate 'line', 588
   # rx literal  "="
-    add $I11, rx1380_pos, 1
-    gt $I11, rx1380_eos, rx1380_fail
-    sub $I11, rx1380_pos, rx1380_off
-    substr $S10, rx1380_tgt, $I11, 1
-    ne $S10, "=", rx1380_fail
-    add rx1380_pos, 1
+    add $I11, rx1382_pos, 1
+    gt $I11, rx1382_eos, rx1382_fail
+    sub $I11, rx1382_pos, rx1382_off
+    substr $S10, rx1382_tgt, $I11, 1
+    ne $S10, "=", rx1382_fail
+    add rx1382_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."assertion"()
-    unless $P10, rx1380_fail
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+    rx1382_cur."!cursor_pos"(rx1382_pos)
+    $P10 = rx1382_cur."assertion"()
+    unless $P10, rx1382_fail
+    rx1382_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx1380_pos = $P10."pos"()
-    goto alt1386_end
-  alt1386_2:
-    set_addr $I10, alt1386_3
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+    rx1382_pos = $P10."pos"()
+    goto alt1388_end
+  alt1388_2:
+    set_addr $I10, alt1388_3
+    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
 .annotate 'line', 589
   # rx literal  ":"
-    add $I11, rx1380_pos, 1
-    gt $I11, rx1380_eos, rx1380_fail
-    sub $I11, rx1380_pos, rx1380_off
-    substr $S10, rx1380_tgt, $I11, 1
-    ne $S10, ":", rx1380_fail
-    add rx1380_pos, 1
+    add $I11, rx1382_pos, 1
+    gt $I11, rx1382_eos, rx1382_fail
+    sub $I11, rx1382_pos, rx1382_off
+    substr $S10, rx1382_tgt, $I11, 1
+    ne $S10, ":", rx1382_fail
+    add rx1382_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."arglist"()
-    unless $P10, rx1380_fail
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+    rx1382_cur."!cursor_pos"(rx1382_pos)
+    $P10 = rx1382_cur."arglist"()
+    unless $P10, rx1382_fail
+    rx1382_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx1380_pos = $P10."pos"()
-    goto alt1386_end
-  alt1386_3:
-    set_addr $I10, alt1386_4
-    rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+    rx1382_pos = $P10."pos"()
+    goto alt1388_end
+  alt1388_3:
+    set_addr $I10, alt1388_4
+    rx1382_cur."!mark_push"(0, rx1382_pos, $I10)
 .annotate 'line', 590
   # rx literal  "("
-    add $I11, rx1380_pos, 1
-    gt $I11, rx1380_eos, rx1380_fail
-    sub $I11, rx1380_pos, rx1380_off
-    substr $S10, rx1380_tgt, $I11, 1
-    ne $S10, "(", rx1380_fail
-    add rx1380_pos, 1
+    add $I11, rx1382_pos, 1
+    gt $I11, rx1382_eos, rx1382_fail
+    sub $I11, rx1382_pos, rx1382_off
+    substr $S10, rx1382_tgt, $I11, 1
+    ne $S10, "(", rx1382_fail
+    add rx1382_pos, 1
   # rx subrule "LANG" subtype=capture negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."LANG"("MAIN", "arglist")
-    unless $P10, rx1380_fail
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+    rx1382_cur."!cursor_pos"(rx1382_pos)
+    $P10 = rx1382_cur."LANG"("MAIN", "arglist")
+    unless $P10, rx1382_fail
+    rx1382_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx1380_pos = $P10."pos"()
+    rx1382_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx1380_pos, 1
-    gt $I11, rx1380_eos, rx1380_fail
-    sub $I11, rx1380_pos, rx1380_off
-    substr $S10, rx1380_tgt, $I11, 1
-    ne $S10, ")", rx1380_fail
-    add rx1380_pos, 1
-    goto alt1386_end
-  alt1386_4:
+    add $I11, rx1382_pos, 1
+    gt $I11, rx1382_eos, rx1382_fail
+    sub $I11, rx1382_pos, rx1382_off
+    substr $S10, rx1382_tgt, $I11, 1
+    ne $S10, ")", rx1382_fail
+    add rx1382_pos, 1
+    goto alt1388_end
+  alt1388_4:
 .annotate 'line', 591
   # rx subrule "normspace" subtype=method negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."normspace"()
-    unless $P10, rx1380_fail
-    rx1380_pos = $P10."pos"()
+    rx1382_cur."!cursor_pos"(rx1382_pos)
+    $P10 = rx1382_cur."normspace"()
+    unless $P10, rx1382_fail
+    rx1382_pos = $P10."pos"()
   # rx subrule "nibbler" subtype=capture negate=
-    rx1380_cur."!cursor_pos"(rx1380_pos)
-    $P10 = rx1380_cur."nibbler"()
-    unless $P10, rx1380_fail
-    rx1380_cur."!mark_push"(0, -1, 0, $P10)
+    rx1382_cur."!cursor_pos"(rx1382_pos)
+    $P10 = rx1382_cur."nibbler"()
+    unless $P10, rx1382_fail
+    rx1382_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx1380_pos = $P10."pos"()
-  alt1386_end:
+    rx1382_pos = $P10."pos"()
+  alt1388_end:
 .annotate 'line', 592
-    (rx1380_rep) = rx1380_cur."!mark_commit"($I1391)
-  rxquantr1385_done:
+    (rx1382_rep) = rx1382_cur."!mark_commit"($I1393)
+  rxquantr1387_done:
 .annotate 'line', 584
   # rx pass
-    rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym<name>")
-    rx1380_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1380_pos)
-    .return (rx1380_cur)
-  rx1380_fail:
+    rx1382_cur."!cursor_pass"(rx1382_pos, "assertion:sym<name>")
+    rx1382_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1382_pos)
+    .return (rx1382_cur)
+  rx1382_fail:
 .annotate 'line', 563
-    (rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0)
-    lt rx1380_pos, -1, rx1380_done
-    eq rx1380_pos, -1, rx1380_fail
-    jump $I10
-  rx1380_done:
-    rx1380_cur."!cursor_fail"()
-    rx1380_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
-    .return (rx1380_cur)
+    (rx1382_rep, rx1382_pos, $I10, $P10) = rx1382_cur."!mark_fail"(0)
+    lt rx1382_pos, -1, rx1382_done
+    eq rx1382_pos, -1, rx1382_fail
+    jump $I10
+  rx1382_done:
+    rx1382_cur."!cursor_fail"()
+    rx1382_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    .return (rx1382_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("356_1275811487.95429") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("356_1277356913.9538") :method
 .annotate 'line', 563
-    new $P1382, "ResizablePMCArray"
-    push $P1382, ""
-    .return ($P1382)
+    $P1384 = self."!PREFIX__!subrule"("identifier", "")
+    new $P1385, "ResizablePMCArray"
+    push $P1385, $P1384
+    .return ($P1385)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1387"  :anon :subid("357_1275811487.95429") :method :outer("355_1275811487.95429")
+.sub "_block1389"  :anon :subid("357_1277356913.9538") :method :outer("355_1277356913.9538")
 .annotate 'line', 587
-    .local string rx1389_tgt
-    .local int rx1389_pos
-    .local int rx1389_off
-    .local int rx1389_eos
-    .local int rx1389_rep
-    .local pmc rx1389_cur
-    (rx1389_cur, rx1389_pos, rx1389_tgt) = self."!cursor_start"()
-    rx1389_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1389_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1389_eos, rx1389_tgt
-    gt rx1389_pos, rx1389_eos, rx1389_done
-    set rx1389_off, 0
-    lt rx1389_pos, 2, rx1389_start
-    sub rx1389_off, rx1389_pos, 1
-    substr rx1389_tgt, rx1389_tgt, rx1389_off
-  rx1389_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1390_done
-    goto rxscan1390_scan
-  rxscan1390_loop:
-    ($P10) = rx1389_cur."from"()
-    inc $P10
-    set rx1389_pos, $P10
-    ge rx1389_pos, rx1389_eos, rxscan1390_done
-  rxscan1390_scan:
-    set_addr $I10, rxscan1390_loop
-    rx1389_cur."!mark_push"(0, rx1389_pos, $I10)
-  rxscan1390_done:
+    .local string rx1391_tgt
+    .local int rx1391_pos
+    .local int rx1391_off
+    .local int rx1391_eos
+    .local int rx1391_rep
+    .local pmc rx1391_cur
+    (rx1391_cur, rx1391_pos, rx1391_tgt) = self."!cursor_start"()
+    rx1391_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1391_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1391_eos, rx1391_tgt
+    gt rx1391_pos, rx1391_eos, rx1391_done
+    set rx1391_off, 0
+    lt rx1391_pos, 2, rx1391_start
+    sub rx1391_off, rx1391_pos, 1
+    substr rx1391_tgt, rx1391_tgt, rx1391_off
+  rx1391_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1392_done
+    goto rxscan1392_scan
+  rxscan1392_loop:
+    ($P10) = rx1391_cur."from"()
+    inc $P10
+    set rx1391_pos, $P10
+    ge rx1391_pos, rx1391_eos, rxscan1392_done
+  rxscan1392_scan:
+    set_addr $I10, rxscan1392_loop
+    rx1391_cur."!mark_push"(0, rx1391_pos, $I10)
+  rxscan1392_done:
   # rx literal  ">"
-    add $I11, rx1389_pos, 1
-    gt $I11, rx1389_eos, rx1389_fail
-    sub $I11, rx1389_pos, rx1389_off
-    substr $S10, rx1389_tgt, $I11, 1
-    ne $S10, ">", rx1389_fail
-    add rx1389_pos, 1
-  # rx pass
-    rx1389_cur."!cursor_pass"(rx1389_pos, "")
-    rx1389_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1389_pos)
-    .return (rx1389_cur)
-  rx1389_fail:
-    (rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0)
-    lt rx1389_pos, -1, rx1389_done
-    eq rx1389_pos, -1, rx1389_fail
-    jump $I10
-  rx1389_done:
-    rx1389_cur."!cursor_fail"()
-    rx1389_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1389_cur)
+    add $I11, rx1391_pos, 1
+    gt $I11, rx1391_eos, rx1391_fail
+    sub $I11, rx1391_pos, rx1391_off
+    substr $S10, rx1391_tgt, $I11, 1
+    ne $S10, ">", rx1391_fail
+    add rx1391_pos, 1
+  # rx pass
+    rx1391_cur."!cursor_pass"(rx1391_pos, "")
+    rx1391_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1391_pos)
+    .return (rx1391_cur)
+  rx1391_fail:
+    (rx1391_rep, rx1391_pos, $I10, $P10) = rx1391_cur."!mark_fail"(0)
+    lt rx1391_pos, -1, rx1391_done
+    eq rx1391_pos, -1, rx1391_fail
+    jump $I10
+  rx1391_done:
+    rx1391_cur."!cursor_fail"()
+    rx1391_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1391_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<var>"  :subid("358_1275811487.95429") :method :outer("341_1275811487.95429")
+.sub "assertion:sym<var>"  :subid("358_1277356913.9538") :method :outer("341_1277356913.9538")
 .annotate 'line', 563
-    .local string rx1393_tgt
-    .local int rx1393_pos
-    .local int rx1393_off
-    .local int rx1393_eos
-    .local int rx1393_rep
-    .local pmc rx1393_cur
-    (rx1393_cur, rx1393_pos, rx1393_tgt) = self."!cursor_start"()
-    rx1393_cur."!cursor_debug"("START ", "assertion:sym<var>")
-    .lex unicode:"$\x{a2}", rx1393_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1393_eos, rx1393_tgt
-    gt rx1393_pos, rx1393_eos, rx1393_done
-    set rx1393_off, 0
-    lt rx1393_pos, 2, rx1393_start
-    sub rx1393_off, rx1393_pos, 1
-    substr rx1393_tgt, rx1393_tgt, rx1393_off
-  rx1393_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1396_done
-    goto rxscan1396_scan
-  rxscan1396_loop:
-    ($P10) = rx1393_cur."from"()
-    inc $P10
-    set rx1393_pos, $P10
-    ge rx1393_pos, rx1393_eos, rxscan1396_done
-  rxscan1396_scan:
-    set_addr $I10, rxscan1396_loop
-    rx1393_cur."!mark_push"(0, rx1393_pos, $I10)
-  rxscan1396_done:
+    .local string rx1395_tgt
+    .local int rx1395_pos
+    .local int rx1395_off
+    .local int rx1395_eos
+    .local int rx1395_rep
+    .local pmc rx1395_cur
+    (rx1395_cur, rx1395_pos, rx1395_tgt) = self."!cursor_start"()
+    rx1395_cur."!cursor_debug"("START ", "assertion:sym<var>")
+    .lex unicode:"$\x{a2}", rx1395_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1395_eos, rx1395_tgt
+    gt rx1395_pos, rx1395_eos, rx1395_done
+    set rx1395_off, 0
+    lt rx1395_pos, 2, rx1395_start
+    sub rx1395_off, rx1395_pos, 1
+    substr rx1395_tgt, rx1395_tgt, rx1395_off
+  rx1395_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1398_done
+    goto rxscan1398_scan
+  rxscan1398_loop:
+    ($P10) = rx1395_cur."from"()
+    inc $P10
+    set rx1395_pos, $P10
+    ge rx1395_pos, rx1395_eos, rxscan1398_done
+  rxscan1398_scan:
+    set_addr $I10, rxscan1398_loop
+    rx1395_cur."!mark_push"(0, rx1395_pos, $I10)
+  rxscan1398_done:
 .annotate 'line', 596
   # rx enumcharlist negate=0 zerowidth
-    ge rx1393_pos, rx1393_eos, rx1393_fail
-    sub $I10, rx1393_pos, rx1393_off
-    substr $S10, rx1393_tgt, $I10, 1
+    ge rx1395_pos, rx1395_eos, rx1395_fail
+    sub $I10, rx1395_pos, rx1395_off
+    substr $S10, rx1395_tgt, $I10, 1
     index $I11, "$@", $S10
-    lt $I11, 0, rx1393_fail
+    lt $I11, 0, rx1395_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1393_cur."!cursor_pos"(rx1393_pos)
-    $P10 = rx1393_cur."LANG"("MAIN", "variable")
-    unless $P10, rx1393_fail
-    rx1393_cur."!mark_push"(0, -1, 0, $P10)
+    rx1395_cur."!cursor_pos"(rx1395_pos)
+    $P10 = rx1395_cur."LANG"("MAIN", "variable")
+    unless $P10, rx1395_fail
+    rx1395_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("var")
-    rx1393_pos = $P10."pos"()
+    rx1395_pos = $P10."pos"()
 .annotate 'line', 595
   # rx pass
-    rx1393_cur."!cursor_pass"(rx1393_pos, "assertion:sym<var>")
-    rx1393_cur."!cursor_debug"("PASS  ", "assertion:sym<var>", " at pos=", rx1393_pos)
-    .return (rx1393_cur)
-  rx1393_fail:
+    rx1395_cur."!cursor_pass"(rx1395_pos, "assertion:sym<var>")
+    rx1395_cur."!cursor_debug"("PASS  ", "assertion:sym<var>", " at pos=", rx1395_pos)
+    .return (rx1395_cur)
+  rx1395_fail:
 .annotate 'line', 563
-    (rx1393_rep, rx1393_pos, $I10, $P10) = rx1393_cur."!mark_fail"(0)
-    lt rx1393_pos, -1, rx1393_done
-    eq rx1393_pos, -1, rx1393_fail
-    jump $I10
-  rx1393_done:
-    rx1393_cur."!cursor_fail"()
-    rx1393_cur."!cursor_debug"("FAIL  ", "assertion:sym<var>")
-    .return (rx1393_cur)
+    (rx1395_rep, rx1395_pos, $I10, $P10) = rx1395_cur."!mark_fail"(0)
+    lt rx1395_pos, -1, rx1395_done
+    eq rx1395_pos, -1, rx1395_fail
+    jump $I10
+  rx1395_done:
+    rx1395_cur."!cursor_fail"()
+    rx1395_cur."!cursor_debug"("FAIL  ", "assertion:sym<var>")
+    .return (rx1395_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<var>"  :subid("359_1275811487.95429") :method
+.sub "!PREFIX__assertion:sym<var>"  :subid("359_1277356913.9538") :method
 .annotate 'line', 563
-    new $P1395, "ResizablePMCArray"
-    push $P1395, "$"
-    push $P1395, "@"
-    .return ($P1395)
+    new $P1397, "ResizablePMCArray"
+    push $P1397, "$"
+    push $P1397, "@"
+    .return ($P1397)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("360_1275811487.95429") :method :outer("341_1275811487.95429")
+.sub "codeblock"  :subid("360_1277356913.9538") :method :outer("341_1277356913.9538")
 .annotate 'line', 563
-    .local string rx1398_tgt
-    .local int rx1398_pos
-    .local int rx1398_off
-    .local int rx1398_eos
-    .local int rx1398_rep
-    .local pmc rx1398_cur
-    (rx1398_cur, rx1398_pos, rx1398_tgt) = self."!cursor_start"()
-    rx1398_cur."!cursor_debug"("START ", "codeblock")
-    .lex unicode:"$\x{a2}", rx1398_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1398_eos, rx1398_tgt
-    gt rx1398_pos, rx1398_eos, rx1398_done
-    set rx1398_off, 0
-    lt rx1398_pos, 2, rx1398_start
-    sub rx1398_off, rx1398_pos, 1
-    substr rx1398_tgt, rx1398_tgt, rx1398_off
-  rx1398_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1402_done
-    goto rxscan1402_scan
-  rxscan1402_loop:
-    ($P10) = rx1398_cur."from"()
-    inc $P10
-    set rx1398_pos, $P10
-    ge rx1398_pos, rx1398_eos, rxscan1402_done
-  rxscan1402_scan:
-    set_addr $I10, rxscan1402_loop
-    rx1398_cur."!mark_push"(0, rx1398_pos, $I10)
-  rxscan1402_done:
+    .local string rx1400_tgt
+    .local int rx1400_pos
+    .local int rx1400_off
+    .local int rx1400_eos
+    .local int rx1400_rep
+    .local pmc rx1400_cur
+    (rx1400_cur, rx1400_pos, rx1400_tgt) = self."!cursor_start"()
+    rx1400_cur."!cursor_debug"("START ", "codeblock")
+    .lex unicode:"$\x{a2}", rx1400_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1400_eos, rx1400_tgt
+    gt rx1400_pos, rx1400_eos, rx1400_done
+    set rx1400_off, 0
+    lt rx1400_pos, 2, rx1400_start
+    sub rx1400_off, rx1400_pos, 1
+    substr rx1400_tgt, rx1400_tgt, rx1400_off
+  rx1400_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1404_done
+    goto rxscan1404_scan
+  rxscan1404_loop:
+    ($P10) = rx1400_cur."from"()
+    inc $P10
+    set rx1400_pos, $P10
+    ge rx1400_pos, rx1400_eos, rxscan1404_done
+  rxscan1404_scan:
+    set_addr $I10, rxscan1404_loop
+    rx1400_cur."!mark_push"(0, rx1400_pos, $I10)
+  rxscan1404_done:
 .annotate 'line', 600
   # rx subrule "LANG" subtype=capture negate=
-    rx1398_cur."!cursor_pos"(rx1398_pos)
-    $P10 = rx1398_cur."LANG"("MAIN", "pblock")
-    unless $P10, rx1398_fail
-    rx1398_cur."!mark_push"(0, -1, 0, $P10)
+    rx1400_cur."!cursor_pos"(rx1400_pos)
+    $P10 = rx1400_cur."LANG"("MAIN", "pblock")
+    unless $P10, rx1400_fail
+    rx1400_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("block")
-    rx1398_pos = $P10."pos"()
+    rx1400_pos = $P10."pos"()
 .annotate 'line', 599
   # rx pass
-    rx1398_cur."!cursor_pass"(rx1398_pos, "codeblock")
-    rx1398_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1398_pos)
-    .return (rx1398_cur)
-  rx1398_fail:
+    rx1400_cur."!cursor_pass"(rx1400_pos, "codeblock")
+    rx1400_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1400_pos)
+    .return (rx1400_cur)
+  rx1400_fail:
 .annotate 'line', 563
-    (rx1398_rep, rx1398_pos, $I10, $P10) = rx1398_cur."!mark_fail"(0)
-    lt rx1398_pos, -1, rx1398_done
-    eq rx1398_pos, -1, rx1398_fail
-    jump $I10
-  rx1398_done:
-    rx1398_cur."!cursor_fail"()
-    rx1398_cur."!cursor_debug"("FAIL  ", "codeblock")
-    .return (rx1398_cur)
+    (rx1400_rep, rx1400_pos, $I10, $P10) = rx1400_cur."!mark_fail"(0)
+    lt rx1400_pos, -1, rx1400_done
+    eq rx1400_pos, -1, rx1400_fail
+    jump $I10
+  rx1400_done:
+    rx1400_cur."!cursor_fail"()
+    rx1400_cur."!cursor_debug"("FAIL  ", "codeblock")
+    .return (rx1400_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("361_1275811487.95429") :method
+.sub "!PREFIX__codeblock"  :subid("361_1277356913.9538") :method
 .annotate 'line', 563
-    $P1400 = self."!PREFIX__!subrule"("LANG", "")
-    new $P1401, "ResizablePMCArray"
-    push $P1401, $P1400
-    .return ($P1401)
+    $P1402 = self."!PREFIX__!subrule"("LANG", "")
+    new $P1403, "ResizablePMCArray"
+    push $P1403, $P1402
+    .return ($P1403)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block1404" :load :anon :subid("362_1275811487.95429")
+.sub "_block1406" :load :anon :subid("362_1277356913.9538")
 .annotate 'line', 4
-    .const 'Sub' $P1406 = "11_1275811487.95429" 
-    $P1407 = $P1406()
-    .return ($P1407)
+    .const 'Sub' $P1408 = "11_1277356913.9538" 
+    $P1409 = $P1408()
+    .return ($P1409)
 .end
 
 
 .namespace []
-.sub "_block1425" :load :anon :subid("363_1275811487.95429")
+.sub "_block1427" :load :anon :subid("363_1277356913.9538")
 .annotate 'line', 1
-    .const 'Sub' $P1427 = "10_1275811487.95429" 
-    $P1428 = $P1427()
-    .return ($P1428)
+    .const 'Sub' $P1429 = "10_1277356913.9538" 
+    $P1430 = $P1429()
+    .return ($P1430)
 .end
 
 ### .include 'gen/nqp-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1275811497.55064")
+.sub "_block11"  :anon :subid("10_1277356919.52295")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
@@ -17450,15 +17456,15 @@
     $P2424 = $P14()
 .annotate 'line', 1
     .return ($P2424)
-    .const 'Sub' $P2426 = "143_1275811497.55064" 
+    .const 'Sub' $P2426 = "143_1277356919.52295" 
     .return ($P2426)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post144") :outer("10_1275811497.55064")
+.sub "" :load :init :subid("post144") :outer("10_1277356919.52295")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1275811497.55064" 
+    .const 'Sub' $P12 = "10_1277356919.52295" 
     .local pmc block
     set block, $P12
     $P2429 = get_root_global ["parrot"], "P6metaclass"
@@ -17467,217 +17473,217 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1275811497.55064") :outer("10_1275811497.55064")
+.sub "_block13"  :subid("11_1277356919.52295") :outer("10_1277356919.52295")
 .annotate 'line', 3
-    .const 'Sub' $P2420 = "142_1275811497.55064" 
+    .const 'Sub' $P2420 = "142_1277356919.52295" 
     capture_lex $P2420
     get_hll_global $P2303, ["NQP";"RegexActions"], "_block2302" 
     capture_lex $P2303
-    .const 'Sub' $P2292 = "132_1275811497.55064" 
+    .const 'Sub' $P2292 = "132_1277356919.52295" 
     capture_lex $P2292
-    .const 'Sub' $P2285 = "131_1275811497.55064" 
+    .const 'Sub' $P2285 = "131_1277356919.52295" 
     capture_lex $P2285
-    .const 'Sub' $P2278 = "130_1275811497.55064" 
+    .const 'Sub' $P2278 = "130_1277356919.52295" 
     capture_lex $P2278
-    .const 'Sub' $P2271 = "129_1275811497.55064" 
+    .const 'Sub' $P2271 = "129_1277356919.52295" 
     capture_lex $P2271
-    .const 'Sub' $P2258 = "128_1275811497.55064" 
+    .const 'Sub' $P2258 = "128_1277356919.52295" 
     capture_lex $P2258
-    .const 'Sub' $P2248 = "127_1275811497.55064" 
+    .const 'Sub' $P2248 = "127_1277356919.52295" 
     capture_lex $P2248
-    .const 'Sub' $P2238 = "126_1275811497.55064" 
+    .const 'Sub' $P2238 = "126_1277356919.52295" 
     capture_lex $P2238
-    .const 'Sub' $P2228 = "125_1275811497.55064" 
+    .const 'Sub' $P2228 = "125_1277356919.52295" 
     capture_lex $P2228
-    .const 'Sub' $P2221 = "124_1275811497.55064" 
+    .const 'Sub' $P2221 = "124_1277356919.52295" 
     capture_lex $P2221
-    .const 'Sub' $P2207 = "123_1275811497.55064" 
+    .const 'Sub' $P2207 = "123_1277356919.52295" 
     capture_lex $P2207
-    .const 'Sub' $P2197 = "122_1275811497.55064" 
+    .const 'Sub' $P2197 = "122_1277356919.52295" 
     capture_lex $P2197
-    .const 'Sub' $P2160 = "121_1275811497.55064" 
+    .const 'Sub' $P2160 = "121_1277356919.52295" 
     capture_lex $P2160
-    .const 'Sub' $P2146 = "120_1275811497.55064" 
+    .const 'Sub' $P2146 = "120_1277356919.52295" 
     capture_lex $P2146
-    .const 'Sub' $P2136 = "119_1275811497.55064" 
+    .const 'Sub' $P2136 = "119_1277356919.52295" 
     capture_lex $P2136
-    .const 'Sub' $P2126 = "118_1275811497.55064" 
+    .const 'Sub' $P2126 = "118_1277356919.52295" 
     capture_lex $P2126
-    .const 'Sub' $P2116 = "117_1275811497.55064" 
+    .const 'Sub' $P2116 = "117_1277356919.52295" 
     capture_lex $P2116
-    .const 'Sub' $P2106 = "116_1275811497.55064" 
+    .const 'Sub' $P2106 = "116_1277356919.52295" 
     capture_lex $P2106
-    .const 'Sub' $P2096 = "115_1275811497.55064" 
+    .const 'Sub' $P2096 = "115_1277356919.52295" 
     capture_lex $P2096
-    .const 'Sub' $P2068 = "114_1275811497.55064" 
+    .const 'Sub' $P2068 = "114_1277356919.52295" 
     capture_lex $P2068
-    .const 'Sub' $P2051 = "113_1275811497.55064" 
+    .const 'Sub' $P2051 = "113_1277356919.52295" 
     capture_lex $P2051
-    .const 'Sub' $P2041 = "112_1275811497.55064" 
+    .const 'Sub' $P2041 = "112_1277356919.52295" 
     capture_lex $P2041
-    .const 'Sub' $P2028 = "111_1275811497.55064" 
+    .const 'Sub' $P2028 = "111_1277356919.52295" 
     capture_lex $P2028
-    .const 'Sub' $P2015 = "110_1275811497.55064" 
+    .const 'Sub' $P2015 = "110_1277356919.52295" 
     capture_lex $P2015
-    .const 'Sub' $P2002 = "109_1275811497.55064" 
+    .const 'Sub' $P2002 = "109_1277356919.52295" 
     capture_lex $P2002
-    .const 'Sub' $P1992 = "108_1275811497.55064" 
+    .const 'Sub' $P1992 = "108_1277356919.52295" 
     capture_lex $P1992
-    .const 'Sub' $P1963 = "107_1275811497.55064" 
+    .const 'Sub' $P1963 = "107_1277356919.52295" 
     capture_lex $P1963
-    .const 'Sub' $P1939 = "106_1275811497.55064" 
+    .const 'Sub' $P1939 = "106_1277356919.52295" 
     capture_lex $P1939
-    .const 'Sub' $P1929 = "105_1275811497.55064" 
+    .const 'Sub' $P1929 = "105_1277356919.52295" 
     capture_lex $P1929
-    .const 'Sub' $P1919 = "104_1275811497.55064" 
+    .const 'Sub' $P1919 = "104_1277356919.52295" 
     capture_lex $P1919
-    .const 'Sub' $P1892 = "103_1275811497.55064" 
+    .const 'Sub' $P1892 = "103_1277356919.52295" 
     capture_lex $P1892
-    .const 'Sub' $P1874 = "102_1275811497.55064" 
+    .const 'Sub' $P1874 = "102_1277356919.52295" 
     capture_lex $P1874
-    .const 'Sub' $P1864 = "101_1275811497.55064" 
+    .const 'Sub' $P1864 = "101_1277356919.52295" 
     capture_lex $P1864
-    .const 'Sub' $P1760 = "98_1275811497.55064" 
+    .const 'Sub' $P1760 = "98_1277356919.52295" 
     capture_lex $P1760
-    .const 'Sub' $P1750 = "97_1275811497.55064" 
+    .const 'Sub' $P1750 = "97_1277356919.52295" 
     capture_lex $P1750
-    .const 'Sub' $P1721 = "96_1275811497.55064" 
+    .const 'Sub' $P1721 = "96_1277356919.52295" 
     capture_lex $P1721
-    .const 'Sub' $P1679 = "95_1275811497.55064" 
+    .const 'Sub' $P1679 = "95_1277356919.52295" 
     capture_lex $P1679
-    .const 'Sub' $P1663 = "94_1275811497.55064" 
+    .const 'Sub' $P1663 = "94_1277356919.52295" 
     capture_lex $P1663
-    .const 'Sub' $P1654 = "93_1275811497.55064" 
+    .const 'Sub' $P1654 = "93_1277356919.52295" 
     capture_lex $P1654
-    .const 'Sub' $P1622 = "92_1275811497.55064" 
+    .const 'Sub' $P1622 = "92_1277356919.52295" 
     capture_lex $P1622
-    .const 'Sub' $P1523 = "89_1275811497.55064" 
+    .const 'Sub' $P1523 = "89_1277356919.52295" 
     capture_lex $P1523
-    .const 'Sub' $P1506 = "88_1275811497.55064" 
+    .const 'Sub' $P1506 = "88_1277356919.52295" 
     capture_lex $P1506
-    .const 'Sub' $P1486 = "87_1275811497.55064" 
+    .const 'Sub' $P1486 = "87_1277356919.52295" 
     capture_lex $P1486
-    .const 'Sub' $P1374 = "84_1275811497.55064" 
+    .const 'Sub' $P1374 = "84_1277356919.52295" 
     capture_lex $P1374
-    .const 'Sub' $P1317 = "80_1275811497.55064" 
+    .const 'Sub' $P1317 = "80_1277356919.52295" 
     capture_lex $P1317
-    .const 'Sub' $P1277 = "78_1275811497.55064" 
+    .const 'Sub' $P1277 = "78_1277356919.52295" 
     capture_lex $P1277
-    .const 'Sub' $P1227 = "76_1275811497.55064" 
+    .const 'Sub' $P1227 = "76_1277356919.52295" 
     capture_lex $P1227
-    .const 'Sub' $P1217 = "75_1275811497.55064" 
+    .const 'Sub' $P1217 = "75_1277356919.52295" 
     capture_lex $P1217
-    .const 'Sub' $P1207 = "74_1275811497.55064" 
+    .const 'Sub' $P1207 = "74_1277356919.52295" 
     capture_lex $P1207
-    .const 'Sub' $P1136 = "72_1275811497.55064" 
+    .const 'Sub' $P1136 = "72_1277356919.52295" 
     capture_lex $P1136
-    .const 'Sub' $P1126 = "71_1275811497.55064" 
+    .const 'Sub' $P1126 = "71_1277356919.52295" 
     capture_lex $P1126
-    .const 'Sub' $P1109 = "70_1275811497.55064" 
+    .const 'Sub' $P1109 = "70_1277356919.52295" 
     capture_lex $P1109
-    .const 'Sub' $P1092 = "69_1275811497.55064" 
+    .const 'Sub' $P1092 = "69_1277356919.52295" 
     capture_lex $P1092
-    .const 'Sub' $P1075 = "68_1275811497.55064" 
+    .const 'Sub' $P1075 = "68_1277356919.52295" 
     capture_lex $P1075
-    .const 'Sub' $P1065 = "67_1275811497.55064" 
+    .const 'Sub' $P1065 = "67_1277356919.52295" 
     capture_lex $P1065
-    .const 'Sub' $P1055 = "66_1275811497.55064" 
+    .const 'Sub' $P1055 = "66_1277356919.52295" 
     capture_lex $P1055
-    .const 'Sub' $P1045 = "65_1275811497.55064" 
+    .const 'Sub' $P1045 = "65_1277356919.52295" 
     capture_lex $P1045
-    .const 'Sub' $P1021 = "64_1275811497.55064" 
+    .const 'Sub' $P1021 = "64_1277356919.52295" 
     capture_lex $P1021
-    .const 'Sub' $P968 = "63_1275811497.55064" 
+    .const 'Sub' $P968 = "63_1277356919.52295" 
     capture_lex $P968
-    .const 'Sub' $P958 = "62_1275811497.55064" 
+    .const 'Sub' $P958 = "62_1277356919.52295" 
     capture_lex $P958
-    .const 'Sub' $P869 = "60_1275811497.55064" 
+    .const 'Sub' $P869 = "60_1277356919.52295" 
     capture_lex $P869
-    .const 'Sub' $P843 = "59_1275811497.55064" 
+    .const 'Sub' $P843 = "59_1277356919.52295" 
     capture_lex $P843
-    .const 'Sub' $P827 = "58_1275811497.55064" 
+    .const 'Sub' $P827 = "58_1277356919.52295" 
     capture_lex $P827
-    .const 'Sub' $P817 = "57_1275811497.55064" 
+    .const 'Sub' $P817 = "57_1277356919.52295" 
     capture_lex $P817
-    .const 'Sub' $P807 = "56_1275811497.55064" 
+    .const 'Sub' $P807 = "56_1277356919.52295" 
     capture_lex $P807
-    .const 'Sub' $P797 = "55_1275811497.55064" 
+    .const 'Sub' $P797 = "55_1277356919.52295" 
     capture_lex $P797
-    .const 'Sub' $P787 = "54_1275811497.55064" 
+    .const 'Sub' $P787 = "54_1277356919.52295" 
     capture_lex $P787
-    .const 'Sub' $P777 = "53_1275811497.55064" 
+    .const 'Sub' $P777 = "53_1277356919.52295" 
     capture_lex $P777
-    .const 'Sub' $P767 = "52_1275811497.55064" 
+    .const 'Sub' $P767 = "52_1277356919.52295" 
     capture_lex $P767
-    .const 'Sub' $P757 = "51_1275811497.55064" 
+    .const 'Sub' $P757 = "51_1277356919.52295" 
     capture_lex $P757
-    .const 'Sub' $P747 = "50_1275811497.55064" 
+    .const 'Sub' $P747 = "50_1277356919.52295" 
     capture_lex $P747
-    .const 'Sub' $P737 = "49_1275811497.55064" 
+    .const 'Sub' $P737 = "49_1277356919.52295" 
     capture_lex $P737
-    .const 'Sub' $P727 = "48_1275811497.55064" 
+    .const 'Sub' $P727 = "48_1277356919.52295" 
     capture_lex $P727
-    .const 'Sub' $P717 = "47_1275811497.55064" 
+    .const 'Sub' $P717 = "47_1277356919.52295" 
     capture_lex $P717
-    .const 'Sub' $P707 = "46_1275811497.55064" 
+    .const 'Sub' $P707 = "46_1277356919.52295" 
     capture_lex $P707
-    .const 'Sub' $P697 = "45_1275811497.55064" 
+    .const 'Sub' $P697 = "45_1277356919.52295" 
     capture_lex $P697
-    .const 'Sub' $P679 = "44_1275811497.55064" 
+    .const 'Sub' $P679 = "44_1277356919.52295" 
     capture_lex $P679
-    .const 'Sub' $P644 = "43_1275811497.55064" 
+    .const 'Sub' $P644 = "43_1277356919.52295" 
     capture_lex $P644
-    .const 'Sub' $P628 = "42_1275811497.55064" 
+    .const 'Sub' $P628 = "42_1277356919.52295" 
     capture_lex $P628
-    .const 'Sub' $P607 = "41_1275811497.55064" 
+    .const 'Sub' $P607 = "41_1277356919.52295" 
     capture_lex $P607
-    .const 'Sub' $P587 = "40_1275811497.55064" 
+    .const 'Sub' $P587 = "40_1277356919.52295" 
     capture_lex $P587
-    .const 'Sub' $P574 = "39_1275811497.55064" 
+    .const 'Sub' $P574 = "39_1277356919.52295" 
     capture_lex $P574
-    .const 'Sub' $P548 = "38_1275811497.55064" 
+    .const 'Sub' $P548 = "38_1277356919.52295" 
     capture_lex $P548
-    .const 'Sub' $P512 = "37_1275811497.55064" 
+    .const 'Sub' $P512 = "37_1277356919.52295" 
     capture_lex $P512
-    .const 'Sub' $P495 = "36_1275811497.55064" 
+    .const 'Sub' $P495 = "36_1277356919.52295" 
     capture_lex $P495
-    .const 'Sub' $P481 = "35_1275811497.55064" 
+    .const 'Sub' $P481 = "35_1277356919.52295" 
     capture_lex $P481
-    .const 'Sub' $P428 = "33_1275811497.55064" 
+    .const 'Sub' $P428 = "33_1277356919.52295" 
     capture_lex $P428
-    .const 'Sub' $P417 = "32_1275811497.55064" 
+    .const 'Sub' $P417 = "32_1277356919.52295" 
     capture_lex $P417
-    .const 'Sub' $P404 = "31_1275811497.55064" 
+    .const 'Sub' $P404 = "31_1277356919.52295" 
     capture_lex $P404
-    .const 'Sub' $P384 = "30_1275811497.55064" 
+    .const 'Sub' $P384 = "30_1277356919.52295" 
     capture_lex $P384
-    .const 'Sub' $P374 = "29_1275811497.55064" 
+    .const 'Sub' $P374 = "29_1277356919.52295" 
     capture_lex $P374
-    .const 'Sub' $P364 = "28_1275811497.55064" 
+    .const 'Sub' $P364 = "28_1277356919.52295" 
     capture_lex $P364
-    .const 'Sub' $P348 = "27_1275811497.55064" 
+    .const 'Sub' $P348 = "27_1277356919.52295" 
     capture_lex $P348
-    .const 'Sub' $P288 = "25_1275811497.55064" 
+    .const 'Sub' $P288 = "25_1277356919.52295" 
     capture_lex $P288
-    .const 'Sub' $P245 = "23_1275811497.55064" 
+    .const 'Sub' $P245 = "23_1277356919.52295" 
     capture_lex $P245
-    .const 'Sub' $P213 = "22_1275811497.55064" 
+    .const 'Sub' $P213 = "22_1277356919.52295" 
     capture_lex $P213
-    .const 'Sub' $P180 = "21_1275811497.55064" 
+    .const 'Sub' $P180 = "21_1277356919.52295" 
     capture_lex $P180
-    .const 'Sub' $P170 = "20_1275811497.55064" 
+    .const 'Sub' $P170 = "20_1277356919.52295" 
     capture_lex $P170
-    .const 'Sub' $P151 = "19_1275811497.55064" 
+    .const 'Sub' $P151 = "19_1277356919.52295" 
     capture_lex $P151
-    .const 'Sub' $P100 = "18_1275811497.55064" 
+    .const 'Sub' $P100 = "18_1277356919.52295" 
     capture_lex $P100
-    .const 'Sub' $P84 = "17_1275811497.55064" 
+    .const 'Sub' $P84 = "17_1277356919.52295" 
     capture_lex $P84
-    .const 'Sub' $P63 = "16_1275811497.55064" 
+    .const 'Sub' $P63 = "16_1277356919.52295" 
     capture_lex $P63
-    .const 'Sub' $P27 = "13_1275811497.55064" 
+    .const 'Sub' $P27 = "13_1277356919.52295" 
     capture_lex $P27
-    .const 'Sub' $P16 = "12_1275811497.55064" 
+    .const 'Sub' $P16 = "12_1277356919.52295" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
     unless_null $P15, vivify_147
@@ -17685,27 +17691,27 @@
     set_global "@BLOCK", $P15
   vivify_147:
 .annotate 'line', 9
-    .const 'Sub' $P16 = "12_1275811497.55064" 
+    .const 'Sub' $P16 = "12_1277356919.52295" 
     newclosure $P26, $P16
     .lex "xblock_immediate", $P26
 .annotate 'line', 14
-    .const 'Sub' $P27 = "13_1275811497.55064" 
+    .const 'Sub' $P27 = "13_1277356919.52295" 
     newclosure $P62, $P27
     .lex "block_immediate", $P62
 .annotate 'line', 24
-    .const 'Sub' $P63 = "16_1275811497.55064" 
+    .const 'Sub' $P63 = "16_1277356919.52295" 
     newclosure $P83, $P63
     .lex "vivitype", $P83
 .annotate 'line', 43
-    .const 'Sub' $P84 = "17_1275811497.55064" 
+    .const 'Sub' $P84 = "17_1277356919.52295" 
     newclosure $P99, $P84
     .lex "colonpair_str", $P99
 .annotate 'line', 213
-    .const 'Sub' $P100 = "18_1275811497.55064" 
+    .const 'Sub' $P100 = "18_1277356919.52295" 
     newclosure $P150, $P100
     .lex "push_block_handler", $P150
 .annotate 'line', 822
-    .const 'Sub' $P151 = "19_1275811497.55064" 
+    .const 'Sub' $P151 = "19_1277356919.52295" 
     newclosure $P165, $P151
     .lex "control", $P165
 .annotate 'line', 3
@@ -17732,19 +17738,19 @@
     $P2414 = $P2303()
 .annotate 'line', 3
     .return ($P2414)
-    .const 'Sub' $P2416 = "141_1275811497.55064" 
+    .const 'Sub' $P2416 = "141_1277356919.52295" 
     .return ($P2416)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post145") :outer("11_1275811497.55064")
+.sub "" :load :init :subid("post145") :outer("11_1277356919.52295")
 .annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 5
-    .const 'Sub' $P2420 = "142_1275811497.55064" 
+    .const 'Sub' $P2420 = "142_1277356919.52295" 
     capture_lex $P2420
     $P2420()
     $P2423 = get_root_global ["parrot"], "P6metaclass"
@@ -17753,7 +17759,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2419"  :anon :subid("142_1275811497.55064") :outer("11_1275811497.55064")
+.sub "_block2419"  :anon :subid("142_1277356919.52295") :outer("11_1277356919.52295")
 .annotate 'line', 6
     get_global $P2421, "@BLOCK"
     unless_null $P2421, vivify_146
@@ -17769,7 +17775,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock_immediate"  :subid("12_1275811497.55064") :outer("11_1275811497.55064")
+.sub "xblock_immediate"  :subid("12_1277356919.52295") :outer("11_1277356919.52295")
     .param pmc param_19
 .annotate 'line', 9
     new $P18, 'ExceptionHandler'
@@ -17806,10 +17812,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block_immediate"  :subid("13_1275811497.55064") :outer("11_1275811497.55064")
+.sub "block_immediate"  :subid("13_1277356919.52295") :outer("11_1277356919.52295")
     .param pmc param_30
 .annotate 'line', 14
-    .const 'Sub' $P40 = "14_1275811497.55064" 
+    .const 'Sub' $P40 = "14_1277356919.52295" 
     capture_lex $P40
     new $P29, 'ExceptionHandler'
     set_addr $P29, control_28
@@ -17831,7 +17837,7 @@
     set $P33, $P38
   unless_34_end:
     if $P33, unless_32_end
-    .const 'Sub' $P40 = "14_1275811497.55064" 
+    .const 'Sub' $P40 = "14_1277356919.52295" 
     capture_lex $P40
     $P40()
   unless_32_end:
@@ -17848,9 +17854,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block39"  :anon :subid("14_1275811497.55064") :outer("13_1275811497.55064")
+.sub "_block39"  :anon :subid("14_1277356919.52295") :outer("13_1277356919.52295")
 .annotate 'line', 16
-    .const 'Sub' $P51 = "15_1275811497.55064" 
+    .const 'Sub' $P51 = "15_1277356919.52295" 
     capture_lex $P51
 .annotate 'line', 17
     new $P41, "Undef"
@@ -17873,7 +17879,7 @@
     unless $P45, loop56_done
     shift $P49, $P45
   loop56_redo:
-    .const 'Sub' $P51 = "15_1275811497.55064" 
+    .const 'Sub' $P51 = "15_1277356919.52295" 
     capture_lex $P51
     $P51($P49)
   loop56_next:
@@ -17896,7 +17902,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block50"  :anon :subid("15_1275811497.55064") :outer("14_1275811497.55064")
+.sub "_block50"  :anon :subid("15_1277356919.52295") :outer("14_1277356919.52295")
     .param pmc param_52
 .annotate 'line', 18
     .lex "$_", param_52
@@ -17909,7 +17915,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "vivitype"  :subid("16_1275811497.55064") :outer("11_1275811497.55064")
+.sub "vivitype"  :subid("16_1277356919.52295") :outer("11_1277356919.52295")
     .param pmc param_66
 .annotate 'line', 24
     new $P65, 'ExceptionHandler'
@@ -17958,7 +17964,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair_str"  :subid("17_1275811497.55064") :outer("11_1275811497.55064")
+.sub "colonpair_str"  :subid("17_1277356919.52295") :outer("11_1277356919.52295")
     .param pmc param_87
 .annotate 'line', 43
     new $P86, 'ExceptionHandler'
@@ -17997,7 +18003,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "push_block_handler"  :subid("18_1275811497.55064") :outer("11_1275811497.55064")
+.sub "push_block_handler"  :subid("18_1277356919.52295") :outer("11_1277356919.52295")
     .param pmc param_103
     .param pmc param_104
 .annotate 'line', 213
@@ -18115,7 +18121,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "control"  :subid("19_1275811497.55064") :outer("11_1275811497.55064")
+.sub "control"  :subid("19_1277356919.52295") :outer("11_1277356919.52295")
     .param pmc param_154
     .param pmc param_155
 .annotate 'line', 822
@@ -18148,7 +18154,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("20_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "TOP"  :subid("20_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_173
 .annotate 'line', 33
     new $P172, 'ExceptionHandler'
@@ -18179,7 +18185,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "deflongname"  :subid("21_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "deflongname"  :subid("21_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_183
 .annotate 'line', 35
     new $P182, 'ExceptionHandler'
@@ -18269,7 +18275,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "comp_unit"  :subid("22_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "comp_unit"  :subid("22_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_216
 .annotate 'line', 49
     new $P215, 'ExceptionHandler'
@@ -18344,10 +18350,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statementlist"  :subid("23_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statementlist"  :subid("23_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_248
 .annotate 'line', 76
-    .const 'Sub' $P262 = "24_1275811497.55064" 
+    .const 'Sub' $P262 = "24_1277356919.52295" 
     capture_lex $P262
     new $P247, 'ExceptionHandler'
     set_addr $P247, control_246
@@ -18392,7 +18398,7 @@
     unless $P256, loop281_done
     shift $P260, $P256
   loop281_redo:
-    .const 'Sub' $P262 = "24_1275811497.55064" 
+    .const 'Sub' $P262 = "24_1277356919.52295" 
     capture_lex $P262
     $P262($P260)
   loop281_next:
@@ -18422,7 +18428,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block261"  :anon :subid("24_1275811497.55064") :outer("23_1275811497.55064")
+.sub "_block261"  :anon :subid("24_1277356919.52295") :outer("23_1277356919.52295")
     .param pmc param_264
 .annotate 'line', 80
     new $P263, "Undef"
@@ -18477,12 +18483,12 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement"  :subid("25_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement"  :subid("25_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_291
     .param pmc param_292 :optional
     .param int has_param_292 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P300 = "26_1275811497.55064" 
+    .const 'Sub' $P300 = "26_1277356919.52295" 
     capture_lex $P300
     new $P290, 'ExceptionHandler'
     set_addr $P290, control_289
@@ -18541,7 +18547,7 @@
     goto if_296_end
   if_296:
 .annotate 'line', 91
-    .const 'Sub' $P300 = "26_1275811497.55064" 
+    .const 'Sub' $P300 = "26_1277356919.52295" 
     capture_lex $P300
     $P300()
   if_296_end:
@@ -18560,7 +18566,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block299"  :anon :subid("26_1275811497.55064") :outer("25_1275811497.55064")
+.sub "_block299"  :anon :subid("26_1277356919.52295") :outer("25_1277356919.52295")
 .annotate 'line', 92
     new $P301, "Undef"
     .lex "$mc", $P301
@@ -18674,7 +18680,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock"  :subid("27_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "xblock"  :subid("27_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_351
 .annotate 'line', 107
     new $P350, 'ExceptionHandler'
@@ -18719,7 +18725,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "pblock"  :subid("28_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "pblock"  :subid("28_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_367
 .annotate 'line', 111
     new $P366, 'ExceptionHandler'
@@ -18752,7 +18758,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block"  :subid("29_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "block"  :subid("29_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_377
 .annotate 'line', 115
     new $P376, 'ExceptionHandler'
@@ -18785,7 +18791,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blockoid"  :subid("30_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "blockoid"  :subid("30_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_387
 .annotate 'line', 119
     new $P386, 'ExceptionHandler'
@@ -18842,7 +18848,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "newpad"  :subid("31_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "newpad"  :subid("31_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_407
 .annotate 'line', 128
     new $P406, 'ExceptionHandler'
@@ -18878,7 +18884,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "outerctx"  :subid("32_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "outerctx"  :subid("32_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_420
 .annotate 'line', 133
     new $P419, 'ExceptionHandler'
@@ -18918,10 +18924,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<if>"  :subid("33_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_control:sym<if>"  :subid("33_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_431
 .annotate 'line', 140
-    .const 'Sub' $P459 = "34_1275811497.55064" 
+    .const 'Sub' $P459 = "34_1277356919.52295" 
     capture_lex $P459
     new $P430, 'ExceptionHandler'
     set_addr $P430, control_429
@@ -19006,7 +19012,7 @@
     isgt $I457, $N456, 0.0
     unless $I457, loop474_done
   loop474_redo:
-    .const 'Sub' $P459 = "34_1275811497.55064" 
+    .const 'Sub' $P459 = "34_1277356919.52295" 
     capture_lex $P459
     $P459()
   loop474_next:
@@ -19034,7 +19040,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block458"  :anon :subid("34_1275811497.55064") :outer("33_1275811497.55064")
+.sub "_block458"  :anon :subid("34_1277356919.52295") :outer("33_1277356919.52295")
 .annotate 'line', 149
     new $P460, "Undef"
     .lex "$else", $P460
@@ -19074,7 +19080,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<unless>"  :subid("35_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_control:sym<unless>"  :subid("35_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_484
 .annotate 'line', 156
     new $P483, 'ExceptionHandler'
@@ -19116,7 +19122,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<while>"  :subid("36_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_control:sym<while>"  :subid("36_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_498
 .annotate 'line', 162
     new $P497, 'ExceptionHandler'
@@ -19167,7 +19173,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<repeat>"  :subid("37_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_control:sym<repeat>"  :subid("37_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_515
 .annotate 'line', 168
     new $P514, 'ExceptionHandler'
@@ -19268,7 +19274,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<for>"  :subid("38_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_control:sym<for>"  :subid("38_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_551
 .annotate 'line', 182
     new $P550, 'ExceptionHandler'
@@ -19349,7 +19355,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<return>"  :subid("39_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_control:sym<return>"  :subid("39_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_577
 .annotate 'line', 195
     new $P576, 'ExceptionHandler'
@@ -19385,7 +19391,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CATCH>"  :subid("40_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_control:sym<CATCH>"  :subid("40_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_590
 .annotate 'line', 199
     new $P589, 'ExceptionHandler'
@@ -19444,7 +19450,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CONTROL>"  :subid("41_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_control:sym<CONTROL>"  :subid("41_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_610
 .annotate 'line', 206
     new $P609, 'ExceptionHandler'
@@ -19503,7 +19509,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_prefix:sym<INIT>"  :subid("42_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_prefix:sym<INIT>"  :subid("42_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_631
 .annotate 'line', 250
     new $P630, 'ExceptionHandler'
@@ -19550,7 +19556,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_prefix:sym<try>"  :subid("43_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_prefix:sym<try>"  :subid("43_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_647
 .annotate 'line', 255
     new $P646, 'ExceptionHandler'
@@ -19628,7 +19634,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blorst"  :subid("44_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "blorst"  :subid("44_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_682
 .annotate 'line', 278
     new $P681, 'ExceptionHandler'
@@ -19688,7 +19694,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<if>"  :subid("45_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_mod_cond:sym<if>"  :subid("45_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_700
 .annotate 'line', 286
     new $P699, 'ExceptionHandler'
@@ -19719,7 +19725,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<unless>"  :subid("46_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_mod_cond:sym<unless>"  :subid("46_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_710
 .annotate 'line', 287
     new $P709, 'ExceptionHandler'
@@ -19750,7 +19756,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_loop:sym<while>"  :subid("47_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_mod_loop:sym<while>"  :subid("47_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_720
 .annotate 'line', 289
     new $P719, 'ExceptionHandler'
@@ -19781,7 +19787,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_loop:sym<until>"  :subid("48_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "statement_mod_loop:sym<until>"  :subid("48_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_730
 .annotate 'line', 290
     new $P729, 'ExceptionHandler'
@@ -19812,7 +19818,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<fatarrow>"  :subid("49_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<fatarrow>"  :subid("49_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_740
 .annotate 'line', 294
     new $P739, 'ExceptionHandler'
@@ -19843,7 +19849,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<colonpair>"  :subid("50_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<colonpair>"  :subid("50_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_750
 .annotate 'line', 295
     new $P749, 'ExceptionHandler'
@@ -19874,7 +19880,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<variable>"  :subid("51_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<variable>"  :subid("51_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_760
 .annotate 'line', 296
     new $P759, 'ExceptionHandler'
@@ -19905,7 +19911,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<package_declarator>"  :subid("52_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<package_declarator>"  :subid("52_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_770
 .annotate 'line', 297
     new $P769, 'ExceptionHandler'
@@ -19936,7 +19942,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<scope_declarator>"  :subid("53_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<scope_declarator>"  :subid("53_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_780
 .annotate 'line', 298
     new $P779, 'ExceptionHandler'
@@ -19967,7 +19973,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<routine_declarator>"  :subid("54_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<routine_declarator>"  :subid("54_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_790
 .annotate 'line', 299
     new $P789, 'ExceptionHandler'
@@ -19998,7 +20004,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<regex_declarator>"  :subid("55_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<regex_declarator>"  :subid("55_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_800
 .annotate 'line', 300
     new $P799, 'ExceptionHandler'
@@ -20029,7 +20035,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<statement_prefix>"  :subid("56_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<statement_prefix>"  :subid("56_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_810
 .annotate 'line', 301
     new $P809, 'ExceptionHandler'
@@ -20060,7 +20066,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<lambda>"  :subid("57_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<lambda>"  :subid("57_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_820
 .annotate 'line', 302
     new $P819, 'ExceptionHandler'
@@ -20091,7 +20097,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "fatarrow"  :subid("58_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "fatarrow"  :subid("58_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_830
 .annotate 'line', 304
     new $P829, 'ExceptionHandler'
@@ -20141,7 +20147,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair"  :subid("59_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "colonpair"  :subid("59_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_846
 .annotate 'line', 310
     new $P845, 'ExceptionHandler'
@@ -20223,10 +20229,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable"  :subid("60_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "variable"  :subid("60_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_872
 .annotate 'line', 318
-    .const 'Sub' $P885 = "61_1275811497.55064" 
+    .const 'Sub' $P885 = "61_1277356919.52295" 
     capture_lex $P885
     new $P871, 'ExceptionHandler'
     set_addr $P871, control_870
@@ -20250,7 +20256,7 @@
   vivify_319:
     if $P877, if_875
 .annotate 'line', 324
-    .const 'Sub' $P885 = "61_1275811497.55064" 
+    .const 'Sub' $P885 = "61_1277356919.52295" 
     capture_lex $P885
     $P885()
     goto if_875_end
@@ -20287,7 +20293,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block884"  :anon :subid("61_1275811497.55064") :outer("60_1275811497.55064")
+.sub "_block884"  :anon :subid("61_1277356919.52295") :outer("60_1277356919.52295")
 .annotate 'line', 325
     $P886 = root_new ['parrot';'ResizablePMCArray']
     .lex "@name", $P886
@@ -20457,7 +20463,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<module>"  :subid("62_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "package_declarator:sym<module>"  :subid("62_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_961
 .annotate 'line', 356
     new $P960, 'ExceptionHandler'
@@ -20488,7 +20494,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<class>"  :subid("63_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "package_declarator:sym<class>"  :subid("63_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_971
 .annotate 'line', 357
     new $P970, 'ExceptionHandler'
@@ -20646,7 +20652,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_def"  :subid("64_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "package_def"  :subid("64_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1024
 .annotate 'line', 380
     new $P1023, 'ExceptionHandler'
@@ -20725,7 +20731,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<my>"  :subid("65_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "scope_declarator:sym<my>"  :subid("65_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1048
 .annotate 'line', 387
     new $P1047, 'ExceptionHandler'
@@ -20756,7 +20762,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<our>"  :subid("66_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "scope_declarator:sym<our>"  :subid("66_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1058
 .annotate 'line', 388
     new $P1057, 'ExceptionHandler'
@@ -20787,7 +20793,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<has>"  :subid("67_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "scope_declarator:sym<has>"  :subid("67_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1068
 .annotate 'line', 389
     new $P1067, 'ExceptionHandler'
@@ -20818,7 +20824,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scoped"  :subid("68_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "scoped"  :subid("68_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1078
 .annotate 'line', 391
     new $P1077, 'ExceptionHandler'
@@ -20877,7 +20883,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "declarator"  :subid("69_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "declarator"  :subid("69_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1095
 .annotate 'line', 397
     new $P1094, 'ExceptionHandler'
@@ -20936,7 +20942,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<multi>"  :subid("70_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "multi_declarator:sym<multi>"  :subid("70_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1112
 .annotate 'line', 403
     new $P1111, 'ExceptionHandler'
@@ -20990,7 +20996,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<null>"  :subid("71_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "multi_declarator:sym<null>"  :subid("71_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1129
 .annotate 'line', 404
     new $P1128, 'ExceptionHandler'
@@ -21021,10 +21027,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable_declarator"  :subid("72_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "variable_declarator"  :subid("72_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1139
 .annotate 'line', 407
-    .const 'Sub' $P1179 = "73_1275811497.55064" 
+    .const 'Sub' $P1179 = "73_1277356919.52295" 
     capture_lex $P1179
     new $P1138, 'ExceptionHandler'
     set_addr $P1138, control_1137
@@ -21106,7 +21112,7 @@
     iseq $I1164, $S1163, "has"
     if $I1164, if_1161
 .annotate 'line', 424
-    .const 'Sub' $P1179 = "73_1275811497.55064" 
+    .const 'Sub' $P1179 = "73_1277356919.52295" 
     capture_lex $P1179
     $P1179()
     goto if_1161_end
@@ -21166,7 +21172,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1178"  :anon :subid("73_1275811497.55064") :outer("72_1275811497.55064")
+.sub "_block1178"  :anon :subid("73_1277356919.52295") :outer("72_1277356919.52295")
 .annotate 'line', 425
     new $P1180, "Undef"
     .lex "$scope", $P1180
@@ -21228,7 +21234,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_declarator:sym<sub>"  :subid("74_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "routine_declarator:sym<sub>"  :subid("74_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1210
 .annotate 'line', 435
     new $P1209, 'ExceptionHandler'
@@ -21259,7 +21265,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_declarator:sym<method>"  :subid("75_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "routine_declarator:sym<method>"  :subid("75_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1220
 .annotate 'line', 436
     new $P1219, 'ExceptionHandler'
@@ -21290,10 +21296,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_def"  :subid("76_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "routine_def"  :subid("76_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1230
 .annotate 'line', 438
-    .const 'Sub' $P1241 = "77_1275811497.55064" 
+    .const 'Sub' $P1241 = "77_1277356919.52295" 
     capture_lex $P1241
     new $P1229, 'ExceptionHandler'
     set_addr $P1229, control_1228
@@ -21330,7 +21336,7 @@
     new $P1239, "Undef"
   vivify_417:
     unless $P1239, if_1237_end
-    .const 'Sub' $P1241 = "77_1275811497.55064" 
+    .const 'Sub' $P1241 = "77_1277356919.52295" 
     capture_lex $P1241
     $P1241()
   if_1237_end:
@@ -21349,7 +21355,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1240"  :anon :subid("77_1275811497.55064") :outer("76_1275811497.55064")
+.sub "_block1240"  :anon :subid("77_1277356919.52295") :outer("76_1277356919.52295")
 .annotate 'line', 443
     new $P1242, "Undef"
     .lex "$name", $P1242
@@ -21446,10 +21452,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "method_def"  :subid("78_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "method_def"  :subid("78_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1280
 .annotate 'line', 456
-    .const 'Sub' $P1296 = "79_1275811497.55064" 
+    .const 'Sub' $P1296 = "79_1277356919.52295" 
     capture_lex $P1296
     new $P1279, 'ExceptionHandler'
     set_addr $P1279, control_1278
@@ -21501,7 +21507,7 @@
     new $P1294, "Undef"
   vivify_436:
     unless $P1294, if_1292_end
-    .const 'Sub' $P1296 = "79_1275811497.55064" 
+    .const 'Sub' $P1296 = "79_1277356919.52295" 
     capture_lex $P1296
     $P1296()
   if_1292_end:
@@ -21535,7 +21541,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1295"  :anon :subid("79_1275811497.55064") :outer("78_1275811497.55064")
+.sub "_block1295"  :anon :subid("79_1277356919.52295") :outer("78_1277356919.52295")
 .annotate 'line', 463
     new $P1297, "Undef"
     .lex "$name", $P1297
@@ -21567,12 +21573,12 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "signature"  :subid("80_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "signature"  :subid("80_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1320
 .annotate 'line', 471
-    .const 'Sub' $P1346 = "82_1275811497.55064" 
+    .const 'Sub' $P1346 = "82_1277356919.52295" 
     capture_lex $P1346
-    .const 'Sub' $P1331 = "81_1275811497.55064" 
+    .const 'Sub' $P1331 = "81_1277356919.52295" 
     capture_lex $P1331
     new $P1319, 'ExceptionHandler'
     set_addr $P1319, control_1318
@@ -21616,7 +21622,7 @@
     unless $P1325, loop1337_done
     shift $P1329, $P1325
   loop1337_redo:
-    .const 'Sub' $P1331 = "81_1275811497.55064" 
+    .const 'Sub' $P1331 = "81_1277356919.52295" 
     capture_lex $P1331
     $P1331($P1329)
   loop1337_next:
@@ -21645,7 +21651,7 @@
     set $P1340, $I1344
     goto if_1341_end
   if_1341:
-    .const 'Sub' $P1346 = "82_1275811497.55064" 
+    .const 'Sub' $P1346 = "82_1277356919.52295" 
     capture_lex $P1346
     $P1372 = $P1346()
     set $P1340, $P1372
@@ -21661,7 +21667,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1330"  :anon :subid("81_1275811497.55064") :outer("80_1275811497.55064")
+.sub "_block1330"  :anon :subid("81_1277356919.52295") :outer("80_1277356919.52295")
     .param pmc param_1332
 .annotate 'line', 474
     .lex "$_", param_1332
@@ -21675,9 +21681,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1345"  :anon :subid("82_1275811497.55064") :outer("80_1275811497.55064")
+.sub "_block1345"  :anon :subid("82_1277356919.52295") :outer("80_1277356919.52295")
 .annotate 'line', 477
-    .const 'Sub' $P1355 = "83_1275811497.55064" 
+    .const 'Sub' $P1355 = "83_1277356919.52295" 
     capture_lex $P1355
 .annotate 'line', 478
     $P1347 = root_new ['parrot';'ResizablePMCArray']
@@ -21698,7 +21704,7 @@
     unless $P1349, loop1365_done
     shift $P1353, $P1349
   loop1365_redo:
-    .const 'Sub' $P1355 = "83_1275811497.55064" 
+    .const 'Sub' $P1355 = "83_1277356919.52295" 
     capture_lex $P1355
     $P1355($P1353)
   loop1365_next:
@@ -21729,7 +21735,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1354"  :anon :subid("83_1275811497.55064") :outer("82_1275811497.55064")
+.sub "_block1354"  :anon :subid("83_1277356919.52295") :outer("82_1277356919.52295")
     .param pmc param_1356
 .annotate 'line', 479
     .lex "$_", param_1356
@@ -21752,10 +21758,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "parameter"  :subid("84_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "parameter"  :subid("84_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1377
 .annotate 'line', 486
-    .const 'Sub' $P1458 = "85_1275811497.55064" 
+    .const 'Sub' $P1458 = "85_1277356919.52295" 
     capture_lex $P1458
     new $P1376, 'ExceptionHandler'
     set_addr $P1376, control_1375
@@ -21981,7 +21987,7 @@
     new $P1456, "Undef"
   vivify_482:
     unless $P1456, if_1454_end
-    .const 'Sub' $P1458 = "85_1275811497.55064" 
+    .const 'Sub' $P1458 = "85_1277356919.52295" 
     capture_lex $P1458
     $P1458()
   if_1454_end:
@@ -22001,9 +22007,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1457"  :anon :subid("85_1275811497.55064") :outer("84_1275811497.55064")
+.sub "_block1457"  :anon :subid("85_1277356919.52295") :outer("84_1277356919.52295")
 .annotate 'line', 517
-    .const 'Sub' $P1470 = "86_1275811497.55064" 
+    .const 'Sub' $P1470 = "86_1277356919.52295" 
     capture_lex $P1470
 .annotate 'line', 518
     $P1459 = root_new ['parrot';'ResizablePMCArray']
@@ -22042,7 +22048,7 @@
     unless $P1461, loop1476_done
     shift $P1468, $P1461
   loop1476_redo:
-    .const 'Sub' $P1470 = "86_1275811497.55064" 
+    .const 'Sub' $P1470 = "86_1277356919.52295" 
     capture_lex $P1470
     $P1470($P1468)
   loop1476_next:
@@ -22066,7 +22072,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1469"  :anon :subid("86_1275811497.55064") :outer("85_1275811497.55064")
+.sub "_block1469"  :anon :subid("86_1277356919.52295") :outer("85_1277356919.52295")
     .param pmc param_1471
 .annotate 'line', 519
     .lex "$_", param_1471
@@ -22080,7 +22086,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "param_var"  :subid("87_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "param_var"  :subid("87_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1489
 .annotate 'line', 526
     new $P1488, 'ExceptionHandler'
@@ -22134,7 +22140,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "named_param"  :subid("88_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "named_param"  :subid("88_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1509
 .annotate 'line', 534
     new $P1508, 'ExceptionHandler'
@@ -22188,14 +22194,14 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "regex_declarator"  :subid("89_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "regex_declarator"  :subid("89_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1526
     .param pmc param_1527 :optional
     .param int has_param_1527 :opt_flag
 .annotate 'line', 540
-    .const 'Sub' $P1597 = "91_1275811497.55064" 
+    .const 'Sub' $P1597 = "91_1277356919.52295" 
     capture_lex $P1597
-    .const 'Sub' $P1569 = "90_1275811497.55064" 
+    .const 'Sub' $P1569 = "90_1277356919.52295" 
     capture_lex $P1569
     new $P1525, 'ExceptionHandler'
     set_addr $P1525, control_1524
@@ -22253,13 +22259,13 @@
     iseq $I1567, $S1566, "open"
     if $I1567, if_1564
 .annotate 'line', 586
-    .const 'Sub' $P1597 = "91_1275811497.55064" 
+    .const 'Sub' $P1597 = "91_1277356919.52295" 
     capture_lex $P1597
     $P1597()
     goto if_1564_end
   if_1564:
 .annotate 'line', 573
-    .const 'Sub' $P1569 = "90_1275811497.55064" 
+    .const 'Sub' $P1569 = "90_1277356919.52295" 
     capture_lex $P1569
     $P1569()
   if_1564_end:
@@ -22316,7 +22322,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1596"  :anon :subid("91_1275811497.55064") :outer("89_1275811497.55064")
+.sub "_block1596"  :anon :subid("91_1277356919.52295") :outer("89_1277356919.52295")
 .annotate 'line', 587
     new $P1598, "Undef"
     .lex "$regex", $P1598
@@ -22368,7 +22374,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1568"  :anon :subid("90_1275811497.55064") :outer("89_1275811497.55064")
+.sub "_block1568"  :anon :subid("90_1277356919.52295") :outer("89_1277356919.52295")
 .annotate 'line', 574
     $P1570 = root_new ['parrot';'Hash']
     .lex "%h", $P1570
@@ -22467,7 +22473,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "dotty"  :subid("92_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "dotty"  :subid("92_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1625
 .annotate 'line', 604
     new $P1624, 'ExceptionHandler'
@@ -22565,7 +22571,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<self>"  :subid("93_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<self>"  :subid("93_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1657
 .annotate 'line', 613
     new $P1656, 'ExceptionHandler'
@@ -22591,7 +22597,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<identifier>"  :subid("94_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<identifier>"  :subid("94_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1666
 .annotate 'line', 617
     new $P1665, 'ExceptionHandler'
@@ -22619,7 +22625,7 @@
     unless_null $P1672, vivify_528
     $P1672 = root_new ['parrot';'Hash']
   vivify_528:
-    set $P1673, $P1672["identifier"]
+    set $P1673, $P1672["deflongname"]
     unless_null $P1673, vivify_529
     new $P1673, "Undef"
   vivify_529:
@@ -22641,7 +22647,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<name>"  :subid("95_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<name>"  :subid("95_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1682
 .annotate 'line', 623
     new $P1681, 'ExceptionHandler'
@@ -22760,7 +22766,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<pir::op>"  :subid("96_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<pir::op>"  :subid("96_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1724
 .annotate 'line', 637
     new $P1723, 'ExceptionHandler'
@@ -22852,7 +22858,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "args"  :subid("97_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "args"  :subid("97_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1753
 .annotate 'line', 652
     new $P1752, 'ExceptionHandler'
@@ -22883,10 +22889,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("98_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "arglist"  :subid("98_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1763
 .annotate 'line', 654
-    .const 'Sub' $P1774 = "99_1275811497.55064" 
+    .const 'Sub' $P1774 = "99_1277356919.52295" 
     capture_lex $P1774
     new $P1762, 'ExceptionHandler'
     set_addr $P1762, control_1761
@@ -22918,7 +22924,7 @@
     new $P1772, "Undef"
   vivify_550:
     unless $P1772, if_1770_end
-    .const 'Sub' $P1774 = "99_1275811497.55064" 
+    .const 'Sub' $P1774 = "99_1277356919.52295" 
     capture_lex $P1774
     $P1774()
   if_1770_end:
@@ -23075,9 +23081,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1773"  :anon :subid("99_1275811497.55064") :outer("98_1275811497.55064")
+.sub "_block1773"  :anon :subid("99_1277356919.52295") :outer("98_1277356919.52295")
 .annotate 'line', 656
-    .const 'Sub' $P1795 = "100_1275811497.55064" 
+    .const 'Sub' $P1795 = "100_1277356919.52295" 
     capture_lex $P1795
 .annotate 'line', 657
     new $P1775, "Undef"
@@ -23130,7 +23136,7 @@
     unless $P1789, loop1800_done
     shift $P1793, $P1789
   loop1800_redo:
-    .const 'Sub' $P1795 = "100_1275811497.55064" 
+    .const 'Sub' $P1795 = "100_1277356919.52295" 
     capture_lex $P1795
     $P1795($P1793)
   loop1800_next:
@@ -23153,7 +23159,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1794"  :anon :subid("100_1275811497.55064") :outer("99_1275811497.55064")
+.sub "_block1794"  :anon :subid("100_1277356919.52295") :outer("99_1277356919.52295")
     .param pmc param_1796
 .annotate 'line', 659
     .lex "$_", param_1796
@@ -23166,7 +23172,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<value>"  :subid("101_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<value>"  :subid("101_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1867
 .annotate 'line', 680
     new $P1866, 'ExceptionHandler'
@@ -23197,7 +23203,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<( )>"  :subid("102_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "circumfix:sym<( )>"  :subid("102_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1877
 .annotate 'line', 682
     new $P1876, 'ExceptionHandler'
@@ -23254,7 +23260,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<[ ]>"  :subid("103_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "circumfix:sym<[ ]>"  :subid("103_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1895
 .annotate 'line', 688
     new $P1894, 'ExceptionHandler'
@@ -23331,7 +23337,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<ang>"  :subid("104_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "circumfix:sym<ang>"  :subid("104_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1922
 .annotate 'line', 703
     new $P1921, 'ExceptionHandler'
@@ -23362,7 +23368,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1932
 .annotate 'line', 704
     new $P1931, 'ExceptionHandler'
@@ -23393,7 +23399,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<{ }>"  :subid("106_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "circumfix:sym<{ }>"  :subid("106_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1942
 .annotate 'line', 706
     new $P1941, 'ExceptionHandler'
@@ -23472,7 +23478,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<sigil>"  :subid("107_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "circumfix:sym<sigil>"  :subid("107_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1966
 .annotate 'line', 714
     new $P1965, 'ExceptionHandler'
@@ -23552,7 +23558,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "semilist"  :subid("108_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "semilist"  :subid("108_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_1995
 .annotate 'line', 721
     new $P1994, 'ExceptionHandler'
@@ -23583,7 +23589,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<[ ]>"  :subid("109_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "postcircumfix:sym<[ ]>"  :subid("109_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2005
 .annotate 'line', 723
     new $P2004, 'ExceptionHandler'
@@ -23621,7 +23627,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<{ }>"  :subid("110_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "postcircumfix:sym<{ }>"  :subid("110_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2018
 .annotate 'line', 729
     new $P2017, 'ExceptionHandler'
@@ -23659,7 +23665,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<ang>"  :subid("111_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "postcircumfix:sym<ang>"  :subid("111_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2031
 .annotate 'line', 735
     new $P2030, 'ExceptionHandler'
@@ -23697,7 +23703,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<( )>"  :subid("112_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "postcircumfix:sym<( )>"  :subid("112_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2044
 .annotate 'line', 741
     new $P2043, 'ExceptionHandler'
@@ -23730,7 +23736,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "value"  :subid("113_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "value"  :subid("113_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2054
 .annotate 'line', 745
     new $P2053, 'ExceptionHandler'
@@ -23786,7 +23792,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "number"  :subid("114_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "number"  :subid("114_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2071
 .annotate 'line', 749
     new $P2070, 'ExceptionHandler'
@@ -23865,7 +23871,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<apos>"  :subid("115_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote:sym<apos>"  :subid("115_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2099
 .annotate 'line', 755
     new $P2098, 'ExceptionHandler'
@@ -23896,7 +23902,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<dblq>"  :subid("116_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote:sym<dblq>"  :subid("116_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2109
 .annotate 'line', 756
     new $P2108, 'ExceptionHandler'
@@ -23927,7 +23933,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<qq>"  :subid("117_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote:sym<qq>"  :subid("117_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2119
 .annotate 'line', 757
     new $P2118, 'ExceptionHandler'
@@ -23958,7 +23964,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<q>"  :subid("118_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote:sym<q>"  :subid("118_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2129
 .annotate 'line', 758
     new $P2128, 'ExceptionHandler'
@@ -23989,7 +23995,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q>"  :subid("119_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote:sym<Q>"  :subid("119_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2139
 .annotate 'line', 759
     new $P2138, 'ExceptionHandler'
@@ -24020,7 +24026,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q:PIR>"  :subid("120_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote:sym<Q:PIR>"  :subid("120_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2149
 .annotate 'line', 760
     new $P2148, 'ExceptionHandler'
@@ -24057,7 +24063,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym</ />"  :subid("121_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote:sym</ />"  :subid("121_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2163
     .param pmc param_2164 :optional
     .param int has_param_2164 :opt_flag
@@ -24167,7 +24173,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<$>"  :subid("122_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote_escape:sym<$>"  :subid("122_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2200
 .annotate 'line', 789
     new $P2199, 'ExceptionHandler'
@@ -24198,7 +24204,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<{ }>"  :subid("123_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote_escape:sym<{ }>"  :subid("123_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2210
 .annotate 'line', 790
     new $P2209, 'ExceptionHandler'
@@ -24237,7 +24243,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("124_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "quote_escape:sym<esc>"  :subid("124_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2224
 .annotate 'line', 795
     new $P2223, 'ExceptionHandler'
@@ -24259,7 +24265,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<.>"  :subid("125_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "postfix:sym<.>"  :subid("125_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2231
 .annotate 'line', 799
     new $P2230, 'ExceptionHandler'
@@ -24290,7 +24296,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<++>"  :subid("126_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "postfix:sym<++>"  :subid("126_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2241
 .annotate 'line', 801
     new $P2240, 'ExceptionHandler'
@@ -24321,7 +24327,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<-->"  :subid("127_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "postfix:sym<-->"  :subid("127_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2251
 .annotate 'line', 807
     new $P2250, 'ExceptionHandler'
@@ -24352,7 +24358,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "prefix:sym<make>"  :subid("128_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "prefix:sym<make>"  :subid("128_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2261
 .annotate 'line', 813
     new $P2260, 'ExceptionHandler'
@@ -24383,7 +24389,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<next>"  :subid("129_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<next>"  :subid("129_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2274
 .annotate 'line', 831
     new $P2273, 'ExceptionHandler'
@@ -24405,7 +24411,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<last>"  :subid("130_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<last>"  :subid("130_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2281
 .annotate 'line', 832
     new $P2280, 'ExceptionHandler'
@@ -24427,7 +24433,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<redo>"  :subid("131_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "term:sym<redo>"  :subid("131_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2288
 .annotate 'line', 833
     new $P2287, 'ExceptionHandler'
@@ -24449,7 +24455,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "infix:sym<~~>"  :subid("132_1275811497.55064") :method :outer("11_1275811497.55064")
+.sub "infix:sym<~~>"  :subid("132_1277356919.52295") :method :outer("11_1277356919.52295")
     .param pmc param_2295
 .annotate 'line', 835
     new $P2294, 'ExceptionHandler'
@@ -24475,24 +24481,24 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "_block2302"  :subid("133_1275811497.55064") :outer("11_1275811497.55064")
+.sub "_block2302"  :subid("133_1277356919.52295") :outer("11_1277356919.52295")
 .annotate 'line', 840
-    .const 'Sub' $P2388 = "140_1275811497.55064" 
+    .const 'Sub' $P2388 = "140_1277356919.52295" 
     capture_lex $P2388
-    .const 'Sub' $P2375 = "139_1275811497.55064" 
+    .const 'Sub' $P2375 = "139_1277356919.52295" 
     capture_lex $P2375
-    .const 'Sub' $P2358 = "138_1275811497.55064" 
+    .const 'Sub' $P2358 = "138_1277356919.52295" 
     capture_lex $P2358
-    .const 'Sub' $P2345 = "137_1275811497.55064" 
+    .const 'Sub' $P2345 = "137_1277356919.52295" 
     capture_lex $P2345
-    .const 'Sub' $P2332 = "136_1275811497.55064" 
+    .const 'Sub' $P2332 = "136_1277356919.52295" 
     capture_lex $P2332
-    .const 'Sub' $P2319 = "135_1275811497.55064" 
+    .const 'Sub' $P2319 = "135_1277356919.52295" 
     capture_lex $P2319
-    .const 'Sub' $P2304 = "134_1275811497.55064" 
+    .const 'Sub' $P2304 = "134_1277356919.52295" 
     capture_lex $P2304
 .annotate 'line', 874
-    .const 'Sub' $P2388 = "140_1275811497.55064" 
+    .const 'Sub' $P2388 = "140_1277356919.52295" 
     newclosure $P2413, $P2388
 .annotate 'line', 840
     .return ($P2413)
@@ -24501,7 +24507,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<:my>"  :subid("134_1275811497.55064") :method :outer("133_1275811497.55064")
+.sub "metachar:sym<:my>"  :subid("134_1277356919.52295") :method :outer("133_1277356919.52295")
     .param pmc param_2307
 .annotate 'line', 842
     new $P2306, 'ExceptionHandler'
@@ -24542,7 +24548,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<{ }>"  :subid("135_1275811497.55064") :method :outer("133_1275811497.55064")
+.sub "metachar:sym<{ }>"  :subid("135_1277356919.52295") :method :outer("133_1277356919.52295")
     .param pmc param_2322
 .annotate 'line', 848
     new $P2321, 'ExceptionHandler'
@@ -24578,7 +24584,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<nqpvar>"  :subid("136_1275811497.55064") :method :outer("133_1275811497.55064")
+.sub "metachar:sym<nqpvar>"  :subid("136_1277356919.52295") :method :outer("133_1277356919.52295")
     .param pmc param_2335
 .annotate 'line', 853
     new $P2334, 'ExceptionHandler'
@@ -24614,7 +24620,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<{ }>"  :subid("137_1275811497.55064") :method :outer("133_1275811497.55064")
+.sub "assertion:sym<{ }>"  :subid("137_1277356919.52295") :method :outer("133_1277356919.52295")
     .param pmc param_2348
 .annotate 'line', 858
     new $P2347, 'ExceptionHandler'
@@ -24650,7 +24656,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<?{ }>"  :subid("138_1275811497.55064") :method :outer("133_1275811497.55064")
+.sub "assertion:sym<?{ }>"  :subid("138_1277356919.52295") :method :outer("133_1277356919.52295")
     .param pmc param_2361
 .annotate 'line', 863
     new $P2360, 'ExceptionHandler'
@@ -24698,7 +24704,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<var>"  :subid("139_1275811497.55064") :method :outer("133_1275811497.55064")
+.sub "assertion:sym<var>"  :subid("139_1277356919.52295") :method :outer("133_1277356919.52295")
     .param pmc param_2378
 .annotate 'line', 869
     new $P2377, 'ExceptionHandler'
@@ -24734,7 +24740,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "codeblock"  :subid("140_1275811497.55064") :method :outer("133_1275811497.55064")
+.sub "codeblock"  :subid("140_1277356919.52295") :method :outer("133_1277356919.52295")
     .param pmc param_2391
 .annotate 'line', 874
     new $P2390, 'ExceptionHandler'
@@ -24798,18 +24804,18 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2415" :load :anon :subid("141_1275811497.55064")
+.sub "_block2415" :load :anon :subid("141_1277356919.52295")
 .annotate 'line', 3
-    .const 'Sub' $P2417 = "11_1275811497.55064" 
+    .const 'Sub' $P2417 = "11_1277356919.52295" 
     $P2418 = $P2417()
     .return ($P2418)
 .end
 
 
 .namespace []
-.sub "_block2425" :load :anon :subid("143_1275811497.55064")
+.sub "_block2425" :load :anon :subid("143_1277356919.52295")
 .annotate 'line', 1
-    .const 'Sub' $P2427 = "10_1275811497.55064" 
+    .const 'Sub' $P2427 = "10_1277356919.52295" 
     $P2428 = $P2427()
     .return ($P2428)
 .end

Modified: branches/dynop_mapping/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/dynop_mapping/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -16,7 +16,7 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1275811476.7961")
+.sub "_block11"  :anon :subid("10_1277356887.58177")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
@@ -30,151 +30,153 @@
 .annotate 'line', 3
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
-    $P588 = $P14()
+    $P596 = $P14()
 .annotate 'line', 1
-    .return ($P588)
-    .const 'Sub' $P590 = "159_1275811476.7961" 
-    .return ($P590)
+    .return ($P596)
+    .const 'Sub' $P598 = "161_1277356887.58177" 
+    .return ($P598)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post160") :outer("10_1275811476.7961")
+.sub "" :load :init :subid("post162") :outer("10_1277356887.58177")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1275811476.7961" 
+    .const 'Sub' $P12 = "10_1277356887.58177" 
     .local pmc block
     set block, $P12
-    $P593 = get_root_global ["parrot"], "P6metaclass"
-    $P593."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
+    $P601 = get_root_global ["parrot"], "P6metaclass"
+    $P601."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13"  :subid("11_1275811476.7961") :outer("10_1275811476.7961")
+.sub "_block13"  :subid("11_1277356887.58177") :outer("10_1277356887.58177")
 .annotate 'line', 3
-    .const 'Sub' $P576 = "156_1275811476.7961" 
+    .const 'Sub' $P584 = "158_1277356887.58177" 
+    capture_lex $P584
+    .const 'Sub' $P576 = "156_1277356887.58177" 
     capture_lex $P576
-    .const 'Sub' $P568 = "154_1275811476.7961" 
+    .const 'Sub' $P568 = "154_1277356887.58177" 
     capture_lex $P568
-    .const 'Sub' $P560 = "152_1275811476.7961" 
-    capture_lex $P560
-    .const 'Sub' $P539 = "147_1275811476.7961" 
-    capture_lex $P539
-    .const 'Sub' $P504 = "141_1275811476.7961" 
-    capture_lex $P504
-    .const 'Sub' $P492 = "138_1275811476.7961" 
-    capture_lex $P492
-    .const 'Sub' $P479 = "135_1275811476.7961" 
-    capture_lex $P479
-    .const 'Sub' $P473 = "133_1275811476.7961" 
-    capture_lex $P473
-    .const 'Sub' $P462 = "130_1275811476.7961" 
-    capture_lex $P462
-    .const 'Sub' $P451 = "127_1275811476.7961" 
-    capture_lex $P451
-    .const 'Sub' $P442 = "123_1275811476.7961" 
-    capture_lex $P442
-    .const 'Sub' $P436 = "121_1275811476.7961" 
-    capture_lex $P436
-    .const 'Sub' $P430 = "119_1275811476.7961" 
-    capture_lex $P430
-    .const 'Sub' $P424 = "117_1275811476.7961" 
-    capture_lex $P424
-    .const 'Sub' $P418 = "115_1275811476.7961" 
+    .const 'Sub' $P547 = "149_1277356887.58177" 
+    capture_lex $P547
+    .const 'Sub' $P512 = "143_1277356887.58177" 
+    capture_lex $P512
+    .const 'Sub' $P500 = "140_1277356887.58177" 
+    capture_lex $P500
+    .const 'Sub' $P487 = "137_1277356887.58177" 
+    capture_lex $P487
+    .const 'Sub' $P481 = "135_1277356887.58177" 
+    capture_lex $P481
+    .const 'Sub' $P470 = "132_1277356887.58177" 
+    capture_lex $P470
+    .const 'Sub' $P459 = "129_1277356887.58177" 
+    capture_lex $P459
+    .const 'Sub' $P450 = "125_1277356887.58177" 
+    capture_lex $P450
+    .const 'Sub' $P444 = "123_1277356887.58177" 
+    capture_lex $P444
+    .const 'Sub' $P438 = "121_1277356887.58177" 
+    capture_lex $P438
+    .const 'Sub' $P432 = "119_1277356887.58177" 
+    capture_lex $P432
+    .const 'Sub' $P426 = "117_1277356887.58177" 
+    capture_lex $P426
+    .const 'Sub' $P418 = "115_1277356887.58177" 
     capture_lex $P418
-    .const 'Sub' $P410 = "113_1275811476.7961" 
-    capture_lex $P410
-    .const 'Sub' $P399 = "111_1275811476.7961" 
-    capture_lex $P399
-    .const 'Sub' $P388 = "109_1275811476.7961" 
-    capture_lex $P388
-    .const 'Sub' $P382 = "107_1275811476.7961" 
-    capture_lex $P382
-    .const 'Sub' $P376 = "105_1275811476.7961" 
-    capture_lex $P376
-    .const 'Sub' $P370 = "103_1275811476.7961" 
-    capture_lex $P370
-    .const 'Sub' $P364 = "101_1275811476.7961" 
-    capture_lex $P364
-    .const 'Sub' $P358 = "99_1275811476.7961" 
-    capture_lex $P358
-    .const 'Sub' $P352 = "97_1275811476.7961" 
-    capture_lex $P352
-    .const 'Sub' $P346 = "95_1275811476.7961" 
-    capture_lex $P346
-    .const 'Sub' $P340 = "93_1275811476.7961" 
-    capture_lex $P340
-    .const 'Sub' $P328 = "89_1275811476.7961" 
-    capture_lex $P328
-    .const 'Sub' $P316 = "87_1275811476.7961" 
-    capture_lex $P316
-    .const 'Sub' $P309 = "85_1275811476.7961" 
-    capture_lex $P309
-    .const 'Sub' $P292 = "83_1275811476.7961" 
-    capture_lex $P292
-    .const 'Sub' $P285 = "81_1275811476.7961" 
-    capture_lex $P285
-    .const 'Sub' $P279 = "79_1275811476.7961" 
-    capture_lex $P279
-    .const 'Sub' $P273 = "77_1275811476.7961" 
-    capture_lex $P273
-    .const 'Sub' $P266 = "75_1275811476.7961" 
-    capture_lex $P266
-    .const 'Sub' $P259 = "73_1275811476.7961" 
-    capture_lex $P259
-    .const 'Sub' $P252 = "71_1275811476.7961" 
-    capture_lex $P252
-    .const 'Sub' $P245 = "69_1275811476.7961" 
-    capture_lex $P245
-    .const 'Sub' $P239 = "67_1275811476.7961" 
-    capture_lex $P239
-    .const 'Sub' $P233 = "65_1275811476.7961" 
-    capture_lex $P233
-    .const 'Sub' $P227 = "63_1275811476.7961" 
-    capture_lex $P227
-    .const 'Sub' $P221 = "61_1275811476.7961" 
-    capture_lex $P221
-    .const 'Sub' $P215 = "59_1275811476.7961" 
-    capture_lex $P215
-    .const 'Sub' $P210 = "57_1275811476.7961" 
-    capture_lex $P210
-    .const 'Sub' $P205 = "55_1275811476.7961" 
-    capture_lex $P205
-    .const 'Sub' $P199 = "53_1275811476.7961" 
-    capture_lex $P199
-    .const 'Sub' $P193 = "51_1275811476.7961" 
-    capture_lex $P193
-    .const 'Sub' $P187 = "49_1275811476.7961" 
-    capture_lex $P187
-    .const 'Sub' $P171 = "44_1275811476.7961" 
-    capture_lex $P171
-    .const 'Sub' $P155 = "42_1275811476.7961" 
-    capture_lex $P155
-    .const 'Sub' $P148 = "40_1275811476.7961" 
-    capture_lex $P148
-    .const 'Sub' $P141 = "38_1275811476.7961" 
-    capture_lex $P141
-    .const 'Sub' $P134 = "36_1275811476.7961" 
-    capture_lex $P134
-    .const 'Sub' $P115 = "31_1275811476.7961" 
-    capture_lex $P115
-    .const 'Sub' $P102 = "28_1275811476.7961" 
-    capture_lex $P102
-    .const 'Sub' $P95 = "26_1275811476.7961" 
-    capture_lex $P95
-    .const 'Sub' $P83 = "24_1275811476.7961" 
-    capture_lex $P83
-    .const 'Sub' $P76 = "22_1275811476.7961" 
-    capture_lex $P76
-    .const 'Sub' $P63 = "20_1275811476.7961" 
-    capture_lex $P63
-    .const 'Sub' $P56 = "18_1275811476.7961" 
+    .const 'Sub' $P407 = "113_1277356887.58177" 
+    capture_lex $P407
+    .const 'Sub' $P396 = "111_1277356887.58177" 
+    capture_lex $P396
+    .const 'Sub' $P390 = "109_1277356887.58177" 
+    capture_lex $P390
+    .const 'Sub' $P384 = "107_1277356887.58177" 
+    capture_lex $P384
+    .const 'Sub' $P378 = "105_1277356887.58177" 
+    capture_lex $P378
+    .const 'Sub' $P372 = "103_1277356887.58177" 
+    capture_lex $P372
+    .const 'Sub' $P366 = "101_1277356887.58177" 
+    capture_lex $P366
+    .const 'Sub' $P360 = "99_1277356887.58177" 
+    capture_lex $P360
+    .const 'Sub' $P354 = "97_1277356887.58177" 
+    capture_lex $P354
+    .const 'Sub' $P348 = "95_1277356887.58177" 
+    capture_lex $P348
+    .const 'Sub' $P336 = "91_1277356887.58177" 
+    capture_lex $P336
+    .const 'Sub' $P324 = "89_1277356887.58177" 
+    capture_lex $P324
+    .const 'Sub' $P317 = "87_1277356887.58177" 
+    capture_lex $P317
+    .const 'Sub' $P300 = "85_1277356887.58177" 
+    capture_lex $P300
+    .const 'Sub' $P293 = "83_1277356887.58177" 
+    capture_lex $P293
+    .const 'Sub' $P287 = "81_1277356887.58177" 
+    capture_lex $P287
+    .const 'Sub' $P281 = "79_1277356887.58177" 
+    capture_lex $P281
+    .const 'Sub' $P274 = "77_1277356887.58177" 
+    capture_lex $P274
+    .const 'Sub' $P267 = "75_1277356887.58177" 
+    capture_lex $P267
+    .const 'Sub' $P260 = "73_1277356887.58177" 
+    capture_lex $P260
+    .const 'Sub' $P253 = "71_1277356887.58177" 
+    capture_lex $P253
+    .const 'Sub' $P247 = "69_1277356887.58177" 
+    capture_lex $P247
+    .const 'Sub' $P241 = "67_1277356887.58177" 
+    capture_lex $P241
+    .const 'Sub' $P235 = "65_1277356887.58177" 
+    capture_lex $P235
+    .const 'Sub' $P229 = "63_1277356887.58177" 
+    capture_lex $P229
+    .const 'Sub' $P223 = "61_1277356887.58177" 
+    capture_lex $P223
+    .const 'Sub' $P218 = "59_1277356887.58177" 
+    capture_lex $P218
+    .const 'Sub' $P213 = "57_1277356887.58177" 
+    capture_lex $P213
+    .const 'Sub' $P207 = "55_1277356887.58177" 
+    capture_lex $P207
+    .const 'Sub' $P201 = "53_1277356887.58177" 
+    capture_lex $P201
+    .const 'Sub' $P195 = "51_1277356887.58177" 
+    capture_lex $P195
+    .const 'Sub' $P179 = "46_1277356887.58177" 
+    capture_lex $P179
+    .const 'Sub' $P163 = "44_1277356887.58177" 
+    capture_lex $P163
+    .const 'Sub' $P156 = "42_1277356887.58177" 
+    capture_lex $P156
+    .const 'Sub' $P149 = "40_1277356887.58177" 
+    capture_lex $P149
+    .const 'Sub' $P142 = "38_1277356887.58177" 
+    capture_lex $P142
+    .const 'Sub' $P123 = "33_1277356887.58177" 
+    capture_lex $P123
+    .const 'Sub' $P110 = "30_1277356887.58177" 
+    capture_lex $P110
+    .const 'Sub' $P103 = "28_1277356887.58177" 
+    capture_lex $P103
+    .const 'Sub' $P91 = "26_1277356887.58177" 
+    capture_lex $P91
+    .const 'Sub' $P84 = "24_1277356887.58177" 
+    capture_lex $P84
+    .const 'Sub' $P71 = "22_1277356887.58177" 
+    capture_lex $P71
+    .const 'Sub' $P64 = "20_1277356887.58177" 
+    capture_lex $P64
+    .const 'Sub' $P56 = "18_1277356887.58177" 
     capture_lex $P56
-    .const 'Sub' $P46 = "15_1275811476.7961" 
+    .const 'Sub' $P46 = "15_1277356887.58177" 
     capture_lex $P46
-    .const 'Sub' $P38 = "13_1275811476.7961" 
+    .const 'Sub' $P38 = "13_1277356887.58177" 
     capture_lex $P38
-    .const 'Sub' $P15 = "12_1275811476.7961" 
+    .const 'Sub' $P15 = "12_1277356887.58177" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -182,17 +184,17 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    .const 'Sub' $P576 = "156_1275811476.7961" 
-    capture_lex $P576
-    .return ($P576)
-    .const 'Sub' $P585 = "158_1275811476.7961" 
-    .return ($P585)
+    .const 'Sub' $P584 = "158_1277356887.58177" 
+    capture_lex $P584
+    .return ($P584)
+    .const 'Sub' $P593 = "160_1277356887.58177" 
+    .return ($P593)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
 .include "except_types.pasm"
-.sub "obs"  :subid("12_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "obs"  :subid("12_1277356887.58177") :method :outer("11_1277356887.58177")
     .param pmc param_18
     .param pmc param_19
     .param pmc param_20 :optional
@@ -205,11 +207,11 @@
     .lex "self", self
     .lex "$old", param_18
     .lex "$new", param_19
-    if has_param_20, optparam_161
+    if has_param_20, optparam_163
     new $P21, "String"
     assign $P21, "in Perl 6"
     set param_20, $P21
-  optparam_161:
+  optparam_163:
     .lex "$when", param_20
 .annotate 'line', 4
     find_lex $P22, "self"
@@ -240,7 +242,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws"  :subid("13_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "ws"  :subid("13_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
     .local string rx39_tgt
     .local int rx39_pos
@@ -323,7 +325,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1275811476.7961") :method
+.sub "!PREFIX__ws"  :subid("14_1277356887.58177") :method
 .annotate 'line', 3
     new $P41, "ResizablePMCArray"
     push $P41, ""
@@ -332,9 +334,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "normspace"  :subid("15_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .const 'Sub' $P52 = "17_1275811476.7961" 
+    .const 'Sub' $P52 = "17_1277356887.58177" 
     capture_lex $P52
     .local string rx47_tgt
     .local int rx47_pos
@@ -369,7 +371,7 @@
 .annotate 'line', 10
   # rx subrule "before" subtype=zerowidth negate=
     rx47_cur."!cursor_pos"(rx47_pos)
-    .const 'Sub' $P52 = "17_1275811476.7961" 
+    .const 'Sub' $P52 = "17_1277356887.58177" 
     capture_lex $P52
     $P10 = rx47_cur."before"($P52)
     unless $P10, rx47_fail
@@ -397,7 +399,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1275811476.7961") :method
+.sub "!PREFIX__normspace"  :subid("16_1277356887.58177") :method
 .annotate 'line', 3
     new $P49, "ResizablePMCArray"
     push $P49, ""
@@ -406,7 +408,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51"  :anon :subid("17_1275811476.7961") :method :outer("15_1275811476.7961")
+.sub "_block51"  :anon :subid("17_1277356887.58177") :method :outer("15_1277356887.58177")
 .annotate 'line', 10
     .local string rx53_tgt
     .local int rx53_pos
@@ -475,7 +477,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("18_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "identifier"  :subid("18_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
     .local string rx57_tgt
     .local int rx57_pos
@@ -484,7 +486,7 @@
     .local int rx57_rep
     .local pmc rx57_cur
     (rx57_cur, rx57_pos, rx57_tgt) = self."!cursor_start"()
-    rx57_cur."!cursor_debug"("START ", "arg")
+    rx57_cur."!cursor_debug"("START ", "identifier")
     .lex unicode:"$\x{a2}", rx57_cur
     .local pmc match
     .lex "$/", match
@@ -496,81 +498,46 @@
     substr rx57_tgt, rx57_tgt, rx57_off
   rx57_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan60_done
-    goto rxscan60_scan
-  rxscan60_loop:
+    ne $I10, -1, rxscan61_done
+    goto rxscan61_scan
+  rxscan61_loop:
     ($P10) = rx57_cur."from"()
     inc $P10
     set rx57_pos, $P10
-    ge rx57_pos, rx57_eos, rxscan60_done
-  rxscan60_scan:
-    set_addr $I10, rxscan60_loop
-    rx57_cur."!mark_push"(0, rx57_pos, $I10)
-  rxscan60_done:
-  alt61_0:
-.annotate 'line', 13
-    set_addr $I10, alt61_1
+    ge rx57_pos, rx57_eos, rxscan61_done
+  rxscan61_scan:
+    set_addr $I10, rxscan61_loop
     rx57_cur."!mark_push"(0, rx57_pos, $I10)
-.annotate 'line', 14
-  # rx enumcharlist negate=0 zerowidth
-    ge rx57_pos, rx57_eos, rx57_fail
-    sub $I10, rx57_pos, rx57_off
-    substr $S10, rx57_tgt, $I10, 1
-    index $I11, "'", $S10
-    lt $I11, 0, rx57_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
+  rxscan61_done:
+.annotate 'line', 12
+  # rx subrule "ident" subtype=method negate=
     rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."quote_EXPR"(":q")
+    $P10 = rx57_cur."ident"()
     unless $P10, rx57_fail
-    rx57_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
     rx57_pos = $P10."pos"()
-    goto alt61_end
-  alt61_1:
-    set_addr $I10, alt61_2
-    rx57_cur."!mark_push"(0, rx57_pos, $I10)
-.annotate 'line', 15
-  # rx enumcharlist negate=0 zerowidth
+  # rx rxquantr62 ** 0..*
+    set_addr $I63, rxquantr62_done
+    rx57_cur."!mark_push"(0, rx57_pos, $I63)
+  rxquantr62_loop:
+  # rx enumcharlist negate=0 
     ge rx57_pos, rx57_eos, rx57_fail
     sub $I10, rx57_pos, rx57_off
     substr $S10, rx57_tgt, $I10, 1
-    index $I11, "\"", $S10
+    index $I11, "-'", $S10
     lt $I11, 0, rx57_fail
-  # rx subrule "quote_EXPR" subtype=capture negate=
+    inc rx57_pos
+  # rx subrule "ident" subtype=method negate=
     rx57_cur."!cursor_pos"(rx57_pos)
-    $P10 = rx57_cur."quote_EXPR"(":qq")
+    $P10 = rx57_cur."ident"()
     unless $P10, rx57_fail
-    rx57_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("quote_EXPR")
     rx57_pos = $P10."pos"()
-    goto alt61_end
-  alt61_2:
-.annotate 'line', 16
-  # rx subcapture "val"
-    set_addr $I10, rxcap_62_fail
-    rx57_cur."!mark_push"(0, rx57_pos, $I10)
-  # rx charclass_q d r 1..-1
-    sub $I10, rx57_pos, rx57_off
-    find_not_cclass $I11, 8, rx57_tgt, $I10, rx57_eos
-    add $I12, $I10, 1
-    lt $I11, $I12, rx57_fail
-    add rx57_pos, rx57_off, $I11
-    set_addr $I10, rxcap_62_fail
-    ($I12, $I11) = rx57_cur."!mark_peek"($I10)
-    rx57_cur."!cursor_pos"($I11)
-    ($P10) = rx57_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx57_pos, "")
-    rx57_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("val")
-    goto rxcap_62_done
-  rxcap_62_fail:
-    goto rx57_fail
-  rxcap_62_done:
-  alt61_end:
-.annotate 'line', 12
+    (rx57_rep) = rx57_cur."!mark_commit"($I63)
+    rx57_cur."!mark_push"(rx57_rep, rx57_pos, $I63)
+    goto rxquantr62_loop
+  rxquantr62_done:
   # rx pass
-    rx57_cur."!cursor_pass"(rx57_pos, "arg")
-    rx57_cur."!cursor_debug"("PASS  ", "arg", " at pos=", rx57_pos)
+    rx57_cur."!cursor_pass"(rx57_pos, "identifier")
+    rx57_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx57_pos)
     .return (rx57_cur)
   rx57_fail:
 .annotate 'line', 3
@@ -580,837 +547,887 @@
     jump $I10
   rx57_done:
     rx57_cur."!cursor_fail"()
-    rx57_cur."!cursor_debug"("FAIL  ", "arg")
+    rx57_cur."!cursor_debug"("FAIL  ", "identifier")
     .return (rx57_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("19_1275811476.7961") :method
+.sub "!PREFIX__identifier"  :subid("19_1277356887.58177") :method
 .annotate 'line', 3
-    new $P59, "ResizablePMCArray"
-    push $P59, ""
-    push $P59, "\""
-    push $P59, "'"
-    .return ($P59)
+    $P59 = self."!PREFIX__!subrule"("ident", "")
+    new $P60, "ResizablePMCArray"
+    push $P60, $P59
+    .return ($P60)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("20_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .local string rx64_tgt
-    .local int rx64_pos
-    .local int rx64_off
-    .local int rx64_eos
-    .local int rx64_rep
-    .local pmc rx64_cur
-    (rx64_cur, rx64_pos, rx64_tgt) = self."!cursor_start"()
-    rx64_cur."!cursor_debug"("START ", "arglist")
-    rx64_cur."!cursor_caparray"("arg")
-    .lex unicode:"$\x{a2}", rx64_cur
-    .local pmc match
-    .lex "$/", match
-    length rx64_eos, rx64_tgt
-    gt rx64_pos, rx64_eos, rx64_done
-    set rx64_off, 0
-    lt rx64_pos, 2, rx64_start
-    sub rx64_off, rx64_pos, 1
-    substr rx64_tgt, rx64_tgt, rx64_off
-  rx64_start:
+.sub "arg"  :subid("20_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .local string rx65_tgt
+    .local int rx65_pos
+    .local int rx65_off
+    .local int rx65_eos
+    .local int rx65_rep
+    .local pmc rx65_cur
+    (rx65_cur, rx65_pos, rx65_tgt) = self."!cursor_start"()
+    rx65_cur."!cursor_debug"("START ", "arg")
+    .lex unicode:"$\x{a2}", rx65_cur
+    .local pmc match
+    .lex "$/", match
+    length rx65_eos, rx65_tgt
+    gt rx65_pos, rx65_eos, rx65_done
+    set rx65_off, 0
+    lt rx65_pos, 2, rx65_start
+    sub rx65_off, rx65_pos, 1
+    substr rx65_tgt, rx65_tgt, rx65_off
+  rx65_start:
     $I10 = self.'from'()
     ne $I10, -1, rxscan68_done
     goto rxscan68_scan
   rxscan68_loop:
-    ($P10) = rx64_cur."from"()
+    ($P10) = rx65_cur."from"()
     inc $P10
-    set rx64_pos, $P10
-    ge rx64_pos, rx64_eos, rxscan68_done
+    set rx65_pos, $P10
+    ge rx65_pos, rx65_eos, rxscan68_done
   rxscan68_scan:
     set_addr $I10, rxscan68_loop
-    rx64_cur."!mark_push"(0, rx64_pos, $I10)
+    rx65_cur."!mark_push"(0, rx65_pos, $I10)
   rxscan68_done:
-.annotate 'line', 20
+  alt69_0:
+.annotate 'line', 15
+    set_addr $I10, alt69_1
+    rx65_cur."!mark_push"(0, rx65_pos, $I10)
+.annotate 'line', 16
+  # rx enumcharlist negate=0 zerowidth
+    ge rx65_pos, rx65_eos, rx65_fail
+    sub $I10, rx65_pos, rx65_off
+    substr $S10, rx65_tgt, $I10, 1
+    index $I11, "'", $S10
+    lt $I11, 0, rx65_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx65_cur."!cursor_pos"(rx65_pos)
+    $P10 = rx65_cur."quote_EXPR"(":q")
+    unless $P10, rx65_fail
+    rx65_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx65_pos = $P10."pos"()
+    goto alt69_end
+  alt69_1:
+    set_addr $I10, alt69_2
+    rx65_cur."!mark_push"(0, rx65_pos, $I10)
+.annotate 'line', 17
+  # rx enumcharlist negate=0 zerowidth
+    ge rx65_pos, rx65_eos, rx65_fail
+    sub $I10, rx65_pos, rx65_off
+    substr $S10, rx65_tgt, $I10, 1
+    index $I11, "\"", $S10
+    lt $I11, 0, rx65_fail
+  # rx subrule "quote_EXPR" subtype=capture negate=
+    rx65_cur."!cursor_pos"(rx65_pos)
+    $P10 = rx65_cur."quote_EXPR"(":qq")
+    unless $P10, rx65_fail
+    rx65_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("quote_EXPR")
+    rx65_pos = $P10."pos"()
+    goto alt69_end
+  alt69_2:
+.annotate 'line', 18
+  # rx subcapture "val"
+    set_addr $I10, rxcap_70_fail
+    rx65_cur."!mark_push"(0, rx65_pos, $I10)
+  # rx charclass_q d r 1..-1
+    sub $I10, rx65_pos, rx65_off
+    find_not_cclass $I11, 8, rx65_tgt, $I10, rx65_eos
+    add $I12, $I10, 1
+    lt $I11, $I12, rx65_fail
+    add rx65_pos, rx65_off, $I11
+    set_addr $I10, rxcap_70_fail
+    ($I12, $I11) = rx65_cur."!mark_peek"($I10)
+    rx65_cur."!cursor_pos"($I11)
+    ($P10) = rx65_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx65_pos, "")
+    rx65_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("val")
+    goto rxcap_70_done
+  rxcap_70_fail:
+    goto rx65_fail
+  rxcap_70_done:
+  alt69_end:
+.annotate 'line', 14
+  # rx pass
+    rx65_cur."!cursor_pass"(rx65_pos, "arg")
+    rx65_cur."!cursor_debug"("PASS  ", "arg", " at pos=", rx65_pos)
+    .return (rx65_cur)
+  rx65_fail:
+.annotate 'line', 3
+    (rx65_rep, rx65_pos, $I10, $P10) = rx65_cur."!mark_fail"(0)
+    lt rx65_pos, -1, rx65_done
+    eq rx65_pos, -1, rx65_fail
+    jump $I10
+  rx65_done:
+    rx65_cur."!cursor_fail"()
+    rx65_cur."!cursor_debug"("FAIL  ", "arg")
+    .return (rx65_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__arg"  :subid("21_1277356887.58177") :method
+.annotate 'line', 3
+    new $P67, "ResizablePMCArray"
+    push $P67, ""
+    push $P67, "\""
+    push $P67, "'"
+    .return ($P67)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "arglist"  :subid("22_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .local string rx72_tgt
+    .local int rx72_pos
+    .local int rx72_off
+    .local int rx72_eos
+    .local int rx72_rep
+    .local pmc rx72_cur
+    (rx72_cur, rx72_pos, rx72_tgt) = self."!cursor_start"()
+    rx72_cur."!cursor_debug"("START ", "arglist")
+    rx72_cur."!cursor_caparray"("arg")
+    .lex unicode:"$\x{a2}", rx72_cur
+    .local pmc match
+    .lex "$/", match
+    length rx72_eos, rx72_tgt
+    gt rx72_pos, rx72_eos, rx72_done
+    set rx72_off, 0
+    lt rx72_pos, 2, rx72_start
+    sub rx72_off, rx72_pos, 1
+    substr rx72_tgt, rx72_tgt, rx72_off
+  rx72_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan76_done
+    goto rxscan76_scan
+  rxscan76_loop:
+    ($P10) = rx72_cur."from"()
+    inc $P10
+    set rx72_pos, $P10
+    ge rx72_pos, rx72_eos, rxscan76_done
+  rxscan76_scan:
+    set_addr $I10, rxscan76_loop
+    rx72_cur."!mark_push"(0, rx72_pos, $I10)
+  rxscan76_done:
+.annotate 'line', 22
   # rx subrule "ws" subtype=method negate=
-    rx64_cur."!cursor_pos"(rx64_pos)
-    $P10 = rx64_cur."ws"()
-    unless $P10, rx64_fail
-    rx64_pos = $P10."pos"()
+    rx72_cur."!cursor_pos"(rx72_pos)
+    $P10 = rx72_cur."ws"()
+    unless $P10, rx72_fail
+    rx72_pos = $P10."pos"()
   # rx subrule "arg" subtype=capture negate=
-    rx64_cur."!cursor_pos"(rx64_pos)
-    $P10 = rx64_cur."arg"()
-    unless $P10, rx64_fail
-    rx64_cur."!mark_push"(0, -1, 0, $P10)
+    rx72_cur."!cursor_pos"(rx72_pos)
+    $P10 = rx72_cur."arg"()
+    unless $P10, rx72_fail
+    rx72_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arg")
-    rx64_pos = $P10."pos"()
+    rx72_pos = $P10."pos"()
   # rx subrule "ws" subtype=method negate=
-    rx64_cur."!cursor_pos"(rx64_pos)
-    $P10 = rx64_cur."ws"()
-    unless $P10, rx64_fail
-    rx64_pos = $P10."pos"()
-  # rx rxquantr71 ** 0..*
-    set_addr $I74, rxquantr71_done
-    rx64_cur."!mark_push"(0, rx64_pos, $I74)
-  rxquantr71_loop:
+    rx72_cur."!cursor_pos"(rx72_pos)
+    $P10 = rx72_cur."ws"()
+    unless $P10, rx72_fail
+    rx72_pos = $P10."pos"()
+  # rx rxquantr79 ** 0..*
+    set_addr $I82, rxquantr79_done
+    rx72_cur."!mark_push"(0, rx72_pos, $I82)
+  rxquantr79_loop:
   # rx subrule "ws" subtype=method negate=
-    rx64_cur."!cursor_pos"(rx64_pos)
-    $P10 = rx64_cur."ws"()
-    unless $P10, rx64_fail
-    rx64_pos = $P10."pos"()
+    rx72_cur."!cursor_pos"(rx72_pos)
+    $P10 = rx72_cur."ws"()
+    unless $P10, rx72_fail
+    rx72_pos = $P10."pos"()
   # rx literal  ","
-    add $I11, rx64_pos, 1
-    gt $I11, rx64_eos, rx64_fail
-    sub $I11, rx64_pos, rx64_off
-    substr $S10, rx64_tgt, $I11, 1
-    ne $S10, ",", rx64_fail
-    add rx64_pos, 1
+    add $I11, rx72_pos, 1
+    gt $I11, rx72_eos, rx72_fail
+    sub $I11, rx72_pos, rx72_off
+    substr $S10, rx72_tgt, $I11, 1
+    ne $S10, ",", rx72_fail
+    add rx72_pos, 1
   # rx subrule "ws" subtype=method negate=
-    rx64_cur."!cursor_pos"(rx64_pos)
-    $P10 = rx64_cur."ws"()
-    unless $P10, rx64_fail
-    rx64_pos = $P10."pos"()
+    rx72_cur."!cursor_pos"(rx72_pos)
+    $P10 = rx72_cur."ws"()
+    unless $P10, rx72_fail
+    rx72_pos = $P10."pos"()
   # rx subrule "arg" subtype=capture negate=
-    rx64_cur."!cursor_pos"(rx64_pos)
-    $P10 = rx64_cur."arg"()
-    unless $P10, rx64_fail
-    rx64_cur."!mark_push"(0, -1, 0, $P10)
+    rx72_cur."!cursor_pos"(rx72_pos)
+    $P10 = rx72_cur."arg"()
+    unless $P10, rx72_fail
+    rx72_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arg")
-    rx64_pos = $P10."pos"()
-    (rx64_rep) = rx64_cur."!mark_commit"($I74)
-    rx64_cur."!mark_push"(rx64_rep, rx64_pos, $I74)
-    goto rxquantr71_loop
-  rxquantr71_done:
+    rx72_pos = $P10."pos"()
+    (rx72_rep) = rx72_cur."!mark_commit"($I82)
+    rx72_cur."!mark_push"(rx72_rep, rx72_pos, $I82)
+    goto rxquantr79_loop
+  rxquantr79_done:
   # rx subrule "ws" subtype=method negate=
-    rx64_cur."!cursor_pos"(rx64_pos)
-    $P10 = rx64_cur."ws"()
-    unless $P10, rx64_fail
-    rx64_pos = $P10."pos"()
+    rx72_cur."!cursor_pos"(rx72_pos)
+    $P10 = rx72_cur."ws"()
+    unless $P10, rx72_fail
+    rx72_pos = $P10."pos"()
   # rx pass
-    rx64_cur."!cursor_pass"(rx64_pos, "arglist")
-    rx64_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx64_pos)
-    .return (rx64_cur)
-  rx64_fail:
+    rx72_cur."!cursor_pass"(rx72_pos, "arglist")
+    rx72_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx72_pos)
+    .return (rx72_cur)
+  rx72_fail:
 .annotate 'line', 3
-    (rx64_rep, rx64_pos, $I10, $P10) = rx64_cur."!mark_fail"(0)
-    lt rx64_pos, -1, rx64_done
-    eq rx64_pos, -1, rx64_fail
+    (rx72_rep, rx72_pos, $I10, $P10) = rx72_cur."!mark_fail"(0)
+    lt rx72_pos, -1, rx72_done
+    eq rx72_pos, -1, rx72_fail
     jump $I10
-  rx64_done:
-    rx64_cur."!cursor_fail"()
-    rx64_cur."!cursor_debug"("FAIL  ", "arglist")
-    .return (rx64_cur)
+  rx72_done:
+    rx72_cur."!cursor_fail"()
+    rx72_cur."!cursor_debug"("FAIL  ", "arglist")
+    .return (rx72_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("21_1275811476.7961") :method
+.sub "!PREFIX__arglist"  :subid("23_1277356887.58177") :method
 .annotate 'line', 3
-    $P66 = self."!PREFIX__!subrule"("ws", "")
-    new $P67, "ResizablePMCArray"
-    push $P67, $P66
-    .return ($P67)
+    $P74 = self."!PREFIX__!subrule"("ws", "")
+    new $P75, "ResizablePMCArray"
+    push $P75, $P74
+    .return ($P75)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("22_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "TOP"  :subid("24_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx77_tgt
-    .local int rx77_pos
-    .local int rx77_off
-    .local int rx77_eos
-    .local int rx77_rep
-    .local pmc rx77_cur
-    (rx77_cur, rx77_pos, rx77_tgt) = self."!cursor_start"()
-    rx77_cur."!cursor_debug"("START ", "TOP")
-    .lex unicode:"$\x{a2}", rx77_cur
-    .local pmc match
-    .lex "$/", match
-    length rx77_eos, rx77_tgt
-    gt rx77_pos, rx77_eos, rx77_done
-    set rx77_off, 0
-    lt rx77_pos, 2, rx77_start
-    sub rx77_off, rx77_pos, 1
-    substr rx77_tgt, rx77_tgt, rx77_off
-  rx77_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan81_done
-    goto rxscan81_scan
-  rxscan81_loop:
-    ($P10) = rx77_cur."from"()
-    inc $P10
-    set rx77_pos, $P10
-    ge rx77_pos, rx77_eos, rxscan81_done
-  rxscan81_scan:
-    set_addr $I10, rxscan81_loop
-    rx77_cur."!mark_push"(0, rx77_pos, $I10)
-  rxscan81_done:
-.annotate 'line', 23
+    .local string rx85_tgt
+    .local int rx85_pos
+    .local int rx85_off
+    .local int rx85_eos
+    .local int rx85_rep
+    .local pmc rx85_cur
+    (rx85_cur, rx85_pos, rx85_tgt) = self."!cursor_start"()
+    rx85_cur."!cursor_debug"("START ", "TOP")
+    .lex unicode:"$\x{a2}", rx85_cur
+    .local pmc match
+    .lex "$/", match
+    length rx85_eos, rx85_tgt
+    gt rx85_pos, rx85_eos, rx85_done
+    set rx85_off, 0
+    lt rx85_pos, 2, rx85_start
+    sub rx85_off, rx85_pos, 1
+    substr rx85_tgt, rx85_tgt, rx85_off
+  rx85_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan89_done
+    goto rxscan89_scan
+  rxscan89_loop:
+    ($P10) = rx85_cur."from"()
+    inc $P10
+    set rx85_pos, $P10
+    ge rx85_pos, rx85_eos, rxscan89_done
+  rxscan89_scan:
+    set_addr $I10, rxscan89_loop
+    rx85_cur."!mark_push"(0, rx85_pos, $I10)
+  rxscan89_done:
+.annotate 'line', 25
   # rx subrule "nibbler" subtype=capture negate=
-    rx77_cur."!cursor_pos"(rx77_pos)
-    $P10 = rx77_cur."nibbler"()
-    unless $P10, rx77_fail
-    rx77_cur."!mark_push"(0, -1, 0, $P10)
+    rx85_cur."!cursor_pos"(rx85_pos)
+    $P10 = rx85_cur."nibbler"()
+    unless $P10, rx85_fail
+    rx85_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx77_pos = $P10."pos"()
-  alt82_0:
-.annotate 'line', 24
-    set_addr $I10, alt82_1
-    rx77_cur."!mark_push"(0, rx77_pos, $I10)
+    rx85_pos = $P10."pos"()
+  alt90_0:
+.annotate 'line', 26
+    set_addr $I10, alt90_1
+    rx85_cur."!mark_push"(0, rx85_pos, $I10)
   # rxanchor eos
-    ne rx77_pos, rx77_eos, rx77_fail
-    goto alt82_end
-  alt82_1:
+    ne rx85_pos, rx85_eos, rx85_fail
+    goto alt90_end
+  alt90_1:
   # rx subrule "panic" subtype=method negate=
-    rx77_cur."!cursor_pos"(rx77_pos)
-    $P10 = rx77_cur."panic"("Confused")
-    unless $P10, rx77_fail
-    rx77_pos = $P10."pos"()
-  alt82_end:
-.annotate 'line', 22
+    rx85_cur."!cursor_pos"(rx85_pos)
+    $P10 = rx85_cur."panic"("Confused")
+    unless $P10, rx85_fail
+    rx85_pos = $P10."pos"()
+  alt90_end:
+.annotate 'line', 24
   # rx pass
-    rx77_cur."!cursor_pass"(rx77_pos, "TOP")
-    rx77_cur."!cursor_debug"("PASS  ", "TOP", " at pos=", rx77_pos)
-    .return (rx77_cur)
-  rx77_fail:
+    rx85_cur."!cursor_pass"(rx85_pos, "TOP")
+    rx85_cur."!cursor_debug"("PASS  ", "TOP", " at pos=", rx85_pos)
+    .return (rx85_cur)
+  rx85_fail:
 .annotate 'line', 3
-    (rx77_rep, rx77_pos, $I10, $P10) = rx77_cur."!mark_fail"(0)
-    lt rx77_pos, -1, rx77_done
-    eq rx77_pos, -1, rx77_fail
+    (rx85_rep, rx85_pos, $I10, $P10) = rx85_cur."!mark_fail"(0)
+    lt rx85_pos, -1, rx85_done
+    eq rx85_pos, -1, rx85_fail
     jump $I10
-  rx77_done:
-    rx77_cur."!cursor_fail"()
-    rx77_cur."!cursor_debug"("FAIL  ", "TOP")
-    .return (rx77_cur)
+  rx85_done:
+    rx85_cur."!cursor_fail"()
+    rx85_cur."!cursor_debug"("FAIL  ", "TOP")
+    .return (rx85_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("23_1275811476.7961") :method
+.sub "!PREFIX__TOP"  :subid("25_1277356887.58177") :method
 .annotate 'line', 3
-    $P79 = self."!PREFIX__!subrule"("nibbler", "")
-    new $P80, "ResizablePMCArray"
-    push $P80, $P79
-    .return ($P80)
+    $P87 = self."!PREFIX__!subrule"("nibbler", "")
+    new $P88, "ResizablePMCArray"
+    push $P88, $P87
+    .return ($P88)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("24_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "nibbler"  :subid("26_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx84_tgt
-    .local int rx84_pos
-    .local int rx84_off
-    .local int rx84_eos
-    .local int rx84_rep
-    .local pmc rx84_cur
-    (rx84_cur, rx84_pos, rx84_tgt) = self."!cursor_start"()
-    rx84_cur."!cursor_debug"("START ", "nibbler")
-    rx84_cur."!cursor_caparray"("termish")
-    .lex unicode:"$\x{a2}", rx84_cur
+    .local string rx92_tgt
+    .local int rx92_pos
+    .local int rx92_off
+    .local int rx92_eos
+    .local int rx92_rep
+    .local pmc rx92_cur
+    (rx92_cur, rx92_pos, rx92_tgt) = self."!cursor_start"()
+    rx92_cur."!cursor_debug"("START ", "nibbler")
+    rx92_cur."!cursor_caparray"("termish")
+    .lex unicode:"$\x{a2}", rx92_cur
     .local pmc match
     .lex "$/", match
-    length rx84_eos, rx84_tgt
-    gt rx84_pos, rx84_eos, rx84_done
-    set rx84_off, 0
-    lt rx84_pos, 2, rx84_start
-    sub rx84_off, rx84_pos, 1
-    substr rx84_tgt, rx84_tgt, rx84_off
-  rx84_start:
+    length rx92_eos, rx92_tgt
+    gt rx92_pos, rx92_eos, rx92_done
+    set rx92_off, 0
+    lt rx92_pos, 2, rx92_start
+    sub rx92_off, rx92_pos, 1
+    substr rx92_tgt, rx92_tgt, rx92_off
+  rx92_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan87_done
-    goto rxscan87_scan
-  rxscan87_loop:
-    ($P10) = rx84_cur."from"()
+    ne $I10, -1, rxscan95_done
+    goto rxscan95_scan
+  rxscan95_loop:
+    ($P10) = rx92_cur."from"()
     inc $P10
-    set rx84_pos, $P10
-    ge rx84_pos, rx84_eos, rxscan87_done
-  rxscan87_scan:
-    set_addr $I10, rxscan87_loop
-    rx84_cur."!mark_push"(0, rx84_pos, $I10)
-  rxscan87_done:
-.annotate 'line', 28
+    set rx92_pos, $P10
+    ge rx92_pos, rx92_eos, rxscan95_done
+  rxscan95_scan:
+    set_addr $I10, rxscan95_loop
+    rx92_cur."!mark_push"(0, rx92_pos, $I10)
+  rxscan95_done:
+.annotate 'line', 30
   # rx reduce name="nibbler" key="open"
-    rx84_cur."!cursor_pos"(rx84_pos)
-    rx84_cur."!reduce"("nibbler", "open")
-.annotate 'line', 29
-  # rx rxquantr88 ** 0..1
-    set_addr $I90, rxquantr88_done
-    rx84_cur."!mark_push"(0, rx84_pos, $I90)
-  rxquantr88_loop:
+    rx92_cur."!cursor_pos"(rx92_pos)
+    rx92_cur."!reduce"("nibbler", "open")
+.annotate 'line', 31
+  # rx rxquantr96 ** 0..1
+    set_addr $I98, rxquantr96_done
+    rx92_cur."!mark_push"(0, rx92_pos, $I98)
+  rxquantr96_loop:
   # rx subrule "ws" subtype=method negate=
-    rx84_cur."!cursor_pos"(rx84_pos)
-    $P10 = rx84_cur."ws"()
-    unless $P10, rx84_fail
-    rx84_pos = $P10."pos"()
-  alt89_0:
-    set_addr $I10, alt89_1
-    rx84_cur."!mark_push"(0, rx84_pos, $I10)
+    rx92_cur."!cursor_pos"(rx92_pos)
+    $P10 = rx92_cur."ws"()
+    unless $P10, rx92_fail
+    rx92_pos = $P10."pos"()
+  alt97_0:
+    set_addr $I10, alt97_1
+    rx92_cur."!mark_push"(0, rx92_pos, $I10)
   # rx literal  "||"
-    add $I11, rx84_pos, 2
-    gt $I11, rx84_eos, rx84_fail
-    sub $I11, rx84_pos, rx84_off
-    substr $S10, rx84_tgt, $I11, 2
-    ne $S10, "||", rx84_fail
-    add rx84_pos, 2
-    goto alt89_end
-  alt89_1:
-    set_addr $I10, alt89_2
-    rx84_cur."!mark_push"(0, rx84_pos, $I10)
+    add $I11, rx92_pos, 2
+    gt $I11, rx92_eos, rx92_fail
+    sub $I11, rx92_pos, rx92_off
+    substr $S10, rx92_tgt, $I11, 2
+    ne $S10, "||", rx92_fail
+    add rx92_pos, 2
+    goto alt97_end
+  alt97_1:
+    set_addr $I10, alt97_2
+    rx92_cur."!mark_push"(0, rx92_pos, $I10)
   # rx literal  "|"
-    add $I11, rx84_pos, 1
-    gt $I11, rx84_eos, rx84_fail
-    sub $I11, rx84_pos, rx84_off
-    substr $S10, rx84_tgt, $I11, 1
-    ne $S10, "|", rx84_fail
-    add rx84_pos, 1
-    goto alt89_end
-  alt89_2:
-    set_addr $I10, alt89_3
-    rx84_cur."!mark_push"(0, rx84_pos, $I10)
+    add $I11, rx92_pos, 1
+    gt $I11, rx92_eos, rx92_fail
+    sub $I11, rx92_pos, rx92_off
+    substr $S10, rx92_tgt, $I11, 1
+    ne $S10, "|", rx92_fail
+    add rx92_pos, 1
+    goto alt97_end
+  alt97_2:
+    set_addr $I10, alt97_3
+    rx92_cur."!mark_push"(0, rx92_pos, $I10)
   # rx literal  "&&"
-    add $I11, rx84_pos, 2
-    gt $I11, rx84_eos, rx84_fail
-    sub $I11, rx84_pos, rx84_off
-    substr $S10, rx84_tgt, $I11, 2
-    ne $S10, "&&", rx84_fail
-    add rx84_pos, 2
-    goto alt89_end
-  alt89_3:
+    add $I11, rx92_pos, 2
+    gt $I11, rx92_eos, rx92_fail
+    sub $I11, rx92_pos, rx92_off
+    substr $S10, rx92_tgt, $I11, 2
+    ne $S10, "&&", rx92_fail
+    add rx92_pos, 2
+    goto alt97_end
+  alt97_3:
   # rx literal  "&"
-    add $I11, rx84_pos, 1
-    gt $I11, rx84_eos, rx84_fail
-    sub $I11, rx84_pos, rx84_off
-    substr $S10, rx84_tgt, $I11, 1
-    ne $S10, "&", rx84_fail
-    add rx84_pos, 1
-  alt89_end:
-    (rx84_rep) = rx84_cur."!mark_commit"($I90)
-  rxquantr88_done:
-.annotate 'line', 30
+    add $I11, rx92_pos, 1
+    gt $I11, rx92_eos, rx92_fail
+    sub $I11, rx92_pos, rx92_off
+    substr $S10, rx92_tgt, $I11, 1
+    ne $S10, "&", rx92_fail
+    add rx92_pos, 1
+  alt97_end:
+    (rx92_rep) = rx92_cur."!mark_commit"($I98)
+  rxquantr96_done:
+.annotate 'line', 32
   # rx subrule "termish" subtype=capture negate=
-    rx84_cur."!cursor_pos"(rx84_pos)
-    $P10 = rx84_cur."termish"()
-    unless $P10, rx84_fail
-    rx84_cur."!mark_push"(0, -1, 0, $P10)
+    rx92_cur."!cursor_pos"(rx92_pos)
+    $P10 = rx92_cur."termish"()
+    unless $P10, rx92_fail
+    rx92_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("termish")
-    rx84_pos = $P10."pos"()
+    rx92_pos = $P10."pos"()
+.annotate 'line', 35
+  # rx rxquantr99 ** 0..*
+    set_addr $I102, rxquantr99_done
+    rx92_cur."!mark_push"(0, rx92_pos, $I102)
+  rxquantr99_loop:
+  alt100_0:
 .annotate 'line', 33
-  # rx rxquantr91 ** 0..*
-    set_addr $I94, rxquantr91_done
-    rx84_cur."!mark_push"(0, rx84_pos, $I94)
-  rxquantr91_loop:
-  alt92_0:
-.annotate 'line', 31
-    set_addr $I10, alt92_1
-    rx84_cur."!mark_push"(0, rx84_pos, $I10)
+    set_addr $I10, alt100_1
+    rx92_cur."!mark_push"(0, rx92_pos, $I10)
   # rx literal  "||"
-    add $I11, rx84_pos, 2
-    gt $I11, rx84_eos, rx84_fail
-    sub $I11, rx84_pos, rx84_off
-    substr $S10, rx84_tgt, $I11, 2
-    ne $S10, "||", rx84_fail
-    add rx84_pos, 2
-    goto alt92_end
-  alt92_1:
+    add $I11, rx92_pos, 2
+    gt $I11, rx92_eos, rx92_fail
+    sub $I11, rx92_pos, rx92_off
+    substr $S10, rx92_tgt, $I11, 2
+    ne $S10, "||", rx92_fail
+    add rx92_pos, 2
+    goto alt100_end
+  alt100_1:
   # rx literal  "|"
-    add $I11, rx84_pos, 1
-    gt $I11, rx84_eos, rx84_fail
-    sub $I11, rx84_pos, rx84_off
-    substr $S10, rx84_tgt, $I11, 1
-    ne $S10, "|", rx84_fail
-    add rx84_pos, 1
-  alt92_end:
-  alt93_0:
-.annotate 'line', 32
-    set_addr $I10, alt93_1
-    rx84_cur."!mark_push"(0, rx84_pos, $I10)
+    add $I11, rx92_pos, 1
+    gt $I11, rx92_eos, rx92_fail
+    sub $I11, rx92_pos, rx92_off
+    substr $S10, rx92_tgt, $I11, 1
+    ne $S10, "|", rx92_fail
+    add rx92_pos, 1
+  alt100_end:
+  alt101_0:
+.annotate 'line', 34
+    set_addr $I10, alt101_1
+    rx92_cur."!mark_push"(0, rx92_pos, $I10)
   # rx subrule "termish" subtype=capture negate=
-    rx84_cur."!cursor_pos"(rx84_pos)
-    $P10 = rx84_cur."termish"()
-    unless $P10, rx84_fail
-    rx84_cur."!mark_push"(0, -1, 0, $P10)
+    rx92_cur."!cursor_pos"(rx92_pos)
+    $P10 = rx92_cur."termish"()
+    unless $P10, rx92_fail
+    rx92_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("termish")
-    rx84_pos = $P10."pos"()
-    goto alt93_end
-  alt93_1:
+    rx92_pos = $P10."pos"()
+    goto alt101_end
+  alt101_1:
   # rx subrule "panic" subtype=method negate=
-    rx84_cur."!cursor_pos"(rx84_pos)
-    $P10 = rx84_cur."panic"("Null pattern not allowed")
-    unless $P10, rx84_fail
-    rx84_pos = $P10."pos"()
-  alt93_end:
-.annotate 'line', 33
-    (rx84_rep) = rx84_cur."!mark_commit"($I94)
-    rx84_cur."!mark_push"(rx84_rep, rx84_pos, $I94)
-    goto rxquantr91_loop
-  rxquantr91_done:
-.annotate 'line', 27
+    rx92_cur."!cursor_pos"(rx92_pos)
+    $P10 = rx92_cur."panic"("Null pattern not allowed")
+    unless $P10, rx92_fail
+    rx92_pos = $P10."pos"()
+  alt101_end:
+.annotate 'line', 35
+    (rx92_rep) = rx92_cur."!mark_commit"($I102)
+    rx92_cur."!mark_push"(rx92_rep, rx92_pos, $I102)
+    goto rxquantr99_loop
+  rxquantr99_done:
+.annotate 'line', 29
   # rx pass
-    rx84_cur."!cursor_pass"(rx84_pos, "nibbler")
-    rx84_cur."!cursor_debug"("PASS  ", "nibbler", " at pos=", rx84_pos)
-    .return (rx84_cur)
-  rx84_fail:
+    rx92_cur."!cursor_pass"(rx92_pos, "nibbler")
+    rx92_cur."!cursor_debug"("PASS  ", "nibbler", " at pos=", rx92_pos)
+    .return (rx92_cur)
+  rx92_fail:
 .annotate 'line', 3
-    (rx84_rep, rx84_pos, $I10, $P10) = rx84_cur."!mark_fail"(0)
-    lt rx84_pos, -1, rx84_done
-    eq rx84_pos, -1, rx84_fail
+    (rx92_rep, rx92_pos, $I10, $P10) = rx92_cur."!mark_fail"(0)
+    lt rx92_pos, -1, rx92_done
+    eq rx92_pos, -1, rx92_fail
     jump $I10
-  rx84_done:
-    rx84_cur."!cursor_fail"()
-    rx84_cur."!cursor_debug"("FAIL  ", "nibbler")
-    .return (rx84_cur)
+  rx92_done:
+    rx92_cur."!cursor_fail"()
+    rx92_cur."!cursor_debug"("FAIL  ", "nibbler")
+    .return (rx92_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("25_1275811476.7961") :method
+.sub "!PREFIX__nibbler"  :subid("27_1277356887.58177") :method
 .annotate 'line', 3
-    new $P86, "ResizablePMCArray"
-    push $P86, ""
-    .return ($P86)
+    new $P94, "ResizablePMCArray"
+    push $P94, ""
+    .return ($P94)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("26_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "termish"  :subid("28_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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) = self."!cursor_start"()
-    rx96_cur."!cursor_debug"("START ", "termish")
-    rx96_cur."!cursor_caparray"("noun")
-    .lex unicode:"$\x{a2}", rx96_cur
+    .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 ", "termish")
+    rx104_cur."!cursor_caparray"("noun")
+    .lex unicode:"$\x{a2}", rx104_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:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan99_done
-    goto rxscan99_scan
-  rxscan99_loop:
-    ($P10) = rx96_cur."from"()
+    ne $I10, -1, rxscan107_done
+    goto rxscan107_scan
+  rxscan107_loop:
+    ($P10) = rx104_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', 37
-  # rx rxquantr100 ** 1..*
-    set_addr $I101, rxquantr100_done
-    rx96_cur."!mark_push"(0, -1, $I101)
-  rxquantr100_loop:
+    set rx104_pos, $P10
+    ge rx104_pos, rx104_eos, rxscan107_done
+  rxscan107_scan:
+    set_addr $I10, rxscan107_loop
+    rx104_cur."!mark_push"(0, rx104_pos, $I10)
+  rxscan107_done:
+.annotate 'line', 39
+  # rx rxquantr108 ** 1..*
+    set_addr $I109, rxquantr108_done
+    rx104_cur."!mark_push"(0, -1, $I109)
+  rxquantr108_loop:
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx96_cur."!cursor_pos"(rx96_pos)
-    $P10 = rx96_cur."quantified_atom"()
-    unless $P10, rx96_fail
-    rx96_cur."!mark_push"(0, -1, 0, $P10)
+    rx104_cur."!cursor_pos"(rx104_pos)
+    $P10 = rx104_cur."quantified_atom"()
+    unless $P10, rx104_fail
+    rx104_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("noun")
-    rx96_pos = $P10."pos"()
-    (rx96_rep) = rx96_cur."!mark_commit"($I101)
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I101)
-    goto rxquantr100_loop
-  rxquantr100_done:
-.annotate 'line', 36
+    rx104_pos = $P10."pos"()
+    (rx104_rep) = rx104_cur."!mark_commit"($I109)
+    rx104_cur."!mark_push"(rx104_rep, rx104_pos, $I109)
+    goto rxquantr108_loop
+  rxquantr108_done:
+.annotate 'line', 38
   # rx pass
-    rx96_cur."!cursor_pass"(rx96_pos, "termish")
-    rx96_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx96_pos)
-    .return (rx96_cur)
-  rx96_fail:
+    rx104_cur."!cursor_pass"(rx104_pos, "termish")
+    rx104_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx104_pos)
+    .return (rx104_cur)
+  rx104_fail:
 .annotate 'line', 3
-    (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
-    lt rx96_pos, -1, rx96_done
-    eq rx96_pos, -1, rx96_fail
+    (rx104_rep, rx104_pos, $I10, $P10) = rx104_cur."!mark_fail"(0)
+    lt rx104_pos, -1, rx104_done
+    eq rx104_pos, -1, rx104_fail
     jump $I10
-  rx96_done:
-    rx96_cur."!cursor_fail"()
-    rx96_cur."!cursor_debug"("FAIL  ", "termish")
-    .return (rx96_cur)
+  rx104_done:
+    rx104_cur."!cursor_fail"()
+    rx104_cur."!cursor_debug"("FAIL  ", "termish")
+    .return (rx104_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish"  :subid("27_1275811476.7961") :method
+.sub "!PREFIX__termish"  :subid("29_1277356887.58177") :method
 .annotate 'line', 3
-    new $P98, "ResizablePMCArray"
-    push $P98, ""
-    .return ($P98)
+    new $P106, "ResizablePMCArray"
+    push $P106, ""
+    .return ($P106)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom"  :subid("28_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "quantified_atom"  :subid("30_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .const 'Sub' $P111 = "30_1275811476.7961" 
-    capture_lex $P111
-    .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) = self."!cursor_start"()
-    rx103_cur."!cursor_debug"("START ", "quantified_atom")
-    rx103_cur."!cursor_caparray"("quantifier", "backmod")
-    .lex unicode:"$\x{a2}", rx103_cur
-    .local pmc match
-    .lex "$/", match
-    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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan107_done
-    goto rxscan107_scan
-  rxscan107_loop:
-    ($P10) = rx103_cur."from"()
-    inc $P10
-    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', 41
+    .const 'Sub' $P119 = "32_1277356887.58177" 
+    capture_lex $P119
+    .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) = self."!cursor_start"()
+    rx111_cur."!cursor_debug"("START ", "quantified_atom")
+    rx111_cur."!cursor_caparray"("quantifier", "backmod")
+    .lex unicode:"$\x{a2}", rx111_cur
+    .local pmc match
+    .lex "$/", match
+    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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan115_done
+    goto rxscan115_scan
+  rxscan115_loop:
+    ($P10) = rx111_cur."from"()
+    inc $P10
+    set rx111_pos, $P10
+    ge rx111_pos, rx111_eos, rxscan115_done
+  rxscan115_scan:
+    set_addr $I10, rxscan115_loop
+    rx111_cur."!mark_push"(0, rx111_pos, $I10)
+  rxscan115_done:
+.annotate 'line', 43
   # rx subrule "atom" subtype=capture negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."atom"()
-    unless $P10, rx103_fail
-    rx103_cur."!mark_push"(0, -1, 0, $P10)
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."atom"()
+    unless $P10, rx111_fail
+    rx111_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("atom")
-    rx103_pos = $P10."pos"()
-  # rx rxquantr108 ** 0..1
-    set_addr $I114, rxquantr108_done
-    rx103_cur."!mark_push"(0, rx103_pos, $I114)
-  rxquantr108_loop:
+    rx111_pos = $P10."pos"()
+  # rx rxquantr116 ** 0..1
+    set_addr $I122, rxquantr116_done
+    rx111_cur."!mark_push"(0, rx111_pos, $I122)
+  rxquantr116_loop:
   # rx subrule "ws" subtype=method negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."ws"()
-    unless $P10, rx103_fail
-    rx103_pos = $P10."pos"()
-  alt109_0:
-    set_addr $I10, alt109_1
-    rx103_cur."!mark_push"(0, rx103_pos, $I10)
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."ws"()
+    unless $P10, rx111_fail
+    rx111_pos = $P10."pos"()
+  alt117_0:
+    set_addr $I10, alt117_1
+    rx111_cur."!mark_push"(0, rx111_pos, $I10)
   # rx subrule "quantifier" subtype=capture negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."quantifier"()
-    unless $P10, rx103_fail
-    rx103_cur."!mark_push"(0, -1, 0, $P10)
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."quantifier"()
+    unless $P10, rx111_fail
+    rx111_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantifier")
-    rx103_pos = $P10."pos"()
-    goto alt109_end
-  alt109_1:
+    rx111_pos = $P10."pos"()
+    goto alt117_end
+  alt117_1:
   # rx subrule "before" subtype=zerowidth negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    .const 'Sub' $P111 = "30_1275811476.7961" 
-    capture_lex $P111
-    $P10 = rx103_cur."before"($P111)
-    unless $P10, rx103_fail
+    rx111_cur."!cursor_pos"(rx111_pos)
+    .const 'Sub' $P119 = "32_1277356887.58177" 
+    capture_lex $P119
+    $P10 = rx111_cur."before"($P119)
+    unless $P10, rx111_fail
   # rx subrule "backmod" subtype=capture negate=
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."backmod"()
-    unless $P10, rx103_fail
-    rx103_cur."!mark_push"(0, -1, 0, $P10)
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."backmod"()
+    unless $P10, rx111_fail
+    rx111_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx103_pos = $P10."pos"()
+    rx111_pos = $P10."pos"()
   # rx subrule "alpha" subtype=zerowidth negate=1
-    rx103_cur."!cursor_pos"(rx103_pos)
-    $P10 = rx103_cur."alpha"()
-    if $P10, rx103_fail
-  alt109_end:
-    (rx103_rep) = rx103_cur."!mark_commit"($I114)
-  rxquantr108_done:
-.annotate 'line', 40
+    rx111_cur."!cursor_pos"(rx111_pos)
+    $P10 = rx111_cur."alpha"()
+    if $P10, rx111_fail
+  alt117_end:
+    (rx111_rep) = rx111_cur."!mark_commit"($I122)
+  rxquantr116_done:
+.annotate 'line', 42
   # rx pass
-    rx103_cur."!cursor_pass"(rx103_pos, "quantified_atom")
-    rx103_cur."!cursor_debug"("PASS  ", "quantified_atom", " at pos=", rx103_pos)
-    .return (rx103_cur)
-  rx103_fail:
+    rx111_cur."!cursor_pass"(rx111_pos, "quantified_atom")
+    rx111_cur."!cursor_debug"("PASS  ", "quantified_atom", " at pos=", rx111_pos)
+    .return (rx111_cur)
+  rx111_fail:
 .annotate 'line', 3
-    (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
-    lt rx103_pos, -1, rx103_done
-    eq rx103_pos, -1, rx103_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
-  rx103_done:
-    rx103_cur."!cursor_fail"()
-    rx103_cur."!cursor_debug"("FAIL  ", "quantified_atom")
-    .return (rx103_cur)
+  rx111_done:
+    rx111_cur."!cursor_fail"()
+    rx111_cur."!cursor_debug"("FAIL  ", "quantified_atom")
+    .return (rx111_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom"  :subid("29_1275811476.7961") :method
+.sub "!PREFIX__quantified_atom"  :subid("31_1277356887.58177") :method
 .annotate 'line', 3
-    $P105 = self."!PREFIX__!subrule"("atom", "")
-    new $P106, "ResizablePMCArray"
-    push $P106, $P105
-    .return ($P106)
+    $P113 = self."!PREFIX__!subrule"("atom", "")
+    new $P114, "ResizablePMCArray"
+    push $P114, $P113
+    .return ($P114)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block110"  :anon :subid("30_1275811476.7961") :method :outer("28_1275811476.7961")
-.annotate 'line', 41
-    .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 ", "")
-    .lex unicode:"$\x{a2}", rx112_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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan113_done
-    goto rxscan113_scan
-  rxscan113_loop:
-    ($P10) = rx112_cur."from"()
-    inc $P10
-    set rx112_pos, $P10
-    ge rx112_pos, rx112_eos, rxscan113_done
-  rxscan113_scan:
-    set_addr $I10, rxscan113_loop
-    rx112_cur."!mark_push"(0, rx112_pos, $I10)
-  rxscan113_done:
+.sub "_block118"  :anon :subid("32_1277356887.58177") :method :outer("30_1277356887.58177")
+.annotate 'line', 43
+    .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) = self."!cursor_start"()
+    rx120_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx120_cur
+    .local pmc match
+    .lex "$/", match
+    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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan121_done
+    goto rxscan121_scan
+  rxscan121_loop:
+    ($P10) = rx120_cur."from"()
+    inc $P10
+    set rx120_pos, $P10
+    ge rx120_pos, rx120_eos, rxscan121_done
+  rxscan121_scan:
+    set_addr $I10, rxscan121_loop
+    rx120_cur."!mark_push"(0, rx120_pos, $I10)
+  rxscan121_done:
   # rx literal  ":"
-    add $I11, rx112_pos, 1
-    gt $I11, rx112_eos, rx112_fail
-    sub $I11, rx112_pos, rx112_off
-    substr $S10, rx112_tgt, $I11, 1
-    ne $S10, ":", rx112_fail
-    add rx112_pos, 1
-  # rx pass
-    rx112_cur."!cursor_pass"(rx112_pos, "")
-    rx112_cur."!cursor_debug"("PASS  ", "", " at pos=", rx112_pos)
-    .return (rx112_cur)
-  rx112_fail:
-    (rx112_rep, rx112_pos, $I10, $P10) = rx112_cur."!mark_fail"(0)
-    lt rx112_pos, -1, rx112_done
-    eq rx112_pos, -1, rx112_fail
-    jump $I10
-  rx112_done:
-    rx112_cur."!cursor_fail"()
-    rx112_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx112_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom"  :subid("31_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .const 'Sub' $P126 = "33_1275811476.7961" 
-    capture_lex $P126
-    .local string rx116_tgt
-    .local int rx116_pos
-    .local int rx116_off
-    .local int rx116_eos
-    .local int rx116_rep
-    .local pmc rx116_cur
-    (rx116_cur, rx116_pos, rx116_tgt) = self."!cursor_start"()
-    rx116_cur."!cursor_debug"("START ", "atom")
-    .lex unicode:"$\x{a2}", rx116_cur
-    .local pmc match
-    .lex "$/", match
-    length rx116_eos, rx116_tgt
-    gt rx116_pos, rx116_eos, rx116_done
-    set rx116_off, 0
-    lt rx116_pos, 2, rx116_start
-    sub rx116_off, rx116_pos, 1
-    substr rx116_tgt, rx116_tgt, rx116_off
-  rx116_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan120_done
-    goto rxscan120_scan
-  rxscan120_loop:
-    ($P10) = rx116_cur."from"()
-    inc $P10
-    set rx116_pos, $P10
-    ge rx116_pos, rx116_eos, rxscan120_done
-  rxscan120_scan:
-    set_addr $I10, rxscan120_loop
-    rx116_cur."!mark_push"(0, rx116_pos, $I10)
-  rxscan120_done:
-  alt121_0:
-.annotate 'line', 46
-    set_addr $I10, alt121_1
-    rx116_cur."!mark_push"(0, rx116_pos, $I10)
-.annotate 'line', 47
-  # rx charclass w
-    ge rx116_pos, rx116_eos, rx116_fail
-    sub $I10, rx116_pos, rx116_off
-    is_cclass $I11, 8192, rx116_tgt, $I10
-    unless $I11, rx116_fail
-    inc rx116_pos
-  # rx rxquantr122 ** 0..1
-    set_addr $I129, rxquantr122_done
-    rx116_cur."!mark_push"(0, rx116_pos, $I129)
-  rxquantr122_loop:
-  # rx rxquantg123 ** 1..*
-    set_addr $I124, rxquantg123_done
-  rxquantg123_loop:
-  # rx charclass w
-    ge rx116_pos, rx116_eos, rx116_fail
-    sub $I10, rx116_pos, rx116_off
-    is_cclass $I11, 8192, rx116_tgt, $I10
-    unless $I11, rx116_fail
-    inc rx116_pos
-    rx116_cur."!mark_push"(rx116_rep, rx116_pos, $I124)
-    goto rxquantg123_loop
-  rxquantg123_done:
-  # rx subrule "before" subtype=zerowidth negate=
-    rx116_cur."!cursor_pos"(rx116_pos)
-    .const 'Sub' $P126 = "33_1275811476.7961" 
-    capture_lex $P126
-    $P10 = rx116_cur."before"($P126)
-    unless $P10, rx116_fail
-    (rx116_rep) = rx116_cur."!mark_commit"($I129)
-  rxquantr122_done:
-    goto alt121_end
-  alt121_1:
-.annotate 'line', 48
-  # rx subrule "metachar" subtype=capture negate=
-    rx116_cur."!cursor_pos"(rx116_pos)
-    $P10 = rx116_cur."metachar"()
-    unless $P10, rx116_fail
-    rx116_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("metachar")
-    rx116_pos = $P10."pos"()
-  alt121_end:
-.annotate 'line', 44
+    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
   # rx pass
-    rx116_cur."!cursor_pass"(rx116_pos, "atom")
-    rx116_cur."!cursor_debug"("PASS  ", "atom", " at pos=", rx116_pos)
-    .return (rx116_cur)
-  rx116_fail:
-.annotate 'line', 3
-    (rx116_rep, rx116_pos, $I10, $P10) = rx116_cur."!mark_fail"(0)
-    lt rx116_pos, -1, rx116_done
-    eq rx116_pos, -1, rx116_fail
+    rx120_cur."!cursor_pass"(rx120_pos, "")
+    rx120_cur."!cursor_debug"("PASS  ", "", " at pos=", rx120_pos)
+    .return (rx120_cur)
+  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
-  rx116_done:
-    rx116_cur."!cursor_fail"()
-    rx116_cur."!cursor_debug"("FAIL  ", "atom")
-    .return (rx116_cur)
+  rx120_done:
+    rx120_cur."!cursor_fail"()
+    rx120_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx120_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom"  :subid("32_1275811476.7961") :method
+.sub "atom"  :subid("33_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    $P118 = self."!PREFIX__!subrule"("metachar", "")
-    new $P119, "ResizablePMCArray"
-    push $P119, $P118
-    push $P119, ""
-    .return ($P119)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block125"  :anon :subid("33_1275811476.7961") :method :outer("31_1275811476.7961")
-.annotate 'line', 47
-    .local string rx127_tgt
-    .local int rx127_pos
-    .local int rx127_off
-    .local int rx127_eos
-    .local int rx127_rep
-    .local pmc rx127_cur
-    (rx127_cur, rx127_pos, rx127_tgt) = self."!cursor_start"()
-    rx127_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx127_cur
-    .local pmc match
-    .lex "$/", match
-    length rx127_eos, rx127_tgt
-    gt rx127_pos, rx127_eos, rx127_done
-    set rx127_off, 0
-    lt rx127_pos, 2, rx127_start
-    sub rx127_off, rx127_pos, 1
-    substr rx127_tgt, rx127_tgt, rx127_off
-  rx127_start:
+    .const 'Sub' $P134 = "35_1277356887.58177" 
+    capture_lex $P134
+    .local string rx124_tgt
+    .local int rx124_pos
+    .local int rx124_off
+    .local int rx124_eos
+    .local int rx124_rep
+    .local pmc rx124_cur
+    (rx124_cur, rx124_pos, rx124_tgt) = self."!cursor_start"()
+    rx124_cur."!cursor_debug"("START ", "atom")
+    .lex unicode:"$\x{a2}", rx124_cur
+    .local pmc match
+    .lex "$/", match
+    length rx124_eos, rx124_tgt
+    gt rx124_pos, rx124_eos, rx124_done
+    set rx124_off, 0
+    lt rx124_pos, 2, rx124_start
+    sub rx124_off, rx124_pos, 1
+    substr rx124_tgt, rx124_tgt, rx124_off
+  rx124_start:
     $I10 = self.'from'()
     ne $I10, -1, rxscan128_done
     goto rxscan128_scan
   rxscan128_loop:
-    ($P10) = rx127_cur."from"()
+    ($P10) = rx124_cur."from"()
     inc $P10
-    set rx127_pos, $P10
-    ge rx127_pos, rx127_eos, rxscan128_done
+    set rx124_pos, $P10
+    ge rx124_pos, rx124_eos, rxscan128_done
   rxscan128_scan:
     set_addr $I10, rxscan128_loop
-    rx127_cur."!mark_push"(0, rx127_pos, $I10)
+    rx124_cur."!mark_push"(0, rx124_pos, $I10)
   rxscan128_done:
+  alt129_0:
+.annotate 'line', 48
+    set_addr $I10, alt129_1
+    rx124_cur."!mark_push"(0, rx124_pos, $I10)
+.annotate 'line', 49
+  # rx charclass w
+    ge rx124_pos, rx124_eos, rx124_fail
+    sub $I10, rx124_pos, rx124_off
+    is_cclass $I11, 8192, rx124_tgt, $I10
+    unless $I11, rx124_fail
+    inc rx124_pos
+  # rx rxquantr130 ** 0..1
+    set_addr $I137, rxquantr130_done
+    rx124_cur."!mark_push"(0, rx124_pos, $I137)
+  rxquantr130_loop:
+  # rx rxquantg131 ** 1..*
+    set_addr $I132, rxquantg131_done
+  rxquantg131_loop:
   # rx charclass w
-    ge rx127_pos, rx127_eos, rx127_fail
-    sub $I10, rx127_pos, rx127_off
-    is_cclass $I11, 8192, rx127_tgt, $I10
-    unless $I11, rx127_fail
-    inc rx127_pos
+    ge rx124_pos, rx124_eos, rx124_fail
+    sub $I10, rx124_pos, rx124_off
+    is_cclass $I11, 8192, rx124_tgt, $I10
+    unless $I11, rx124_fail
+    inc rx124_pos
+    rx124_cur."!mark_push"(rx124_rep, rx124_pos, $I132)
+    goto rxquantg131_loop
+  rxquantg131_done:
+  # rx subrule "before" subtype=zerowidth negate=
+    rx124_cur."!cursor_pos"(rx124_pos)
+    .const 'Sub' $P134 = "35_1277356887.58177" 
+    capture_lex $P134
+    $P10 = rx124_cur."before"($P134)
+    unless $P10, rx124_fail
+    (rx124_rep) = rx124_cur."!mark_commit"($I137)
+  rxquantr130_done:
+    goto alt129_end
+  alt129_1:
+.annotate 'line', 50
+  # rx subrule "metachar" subtype=capture negate=
+    rx124_cur."!cursor_pos"(rx124_pos)
+    $P10 = rx124_cur."metachar"()
+    unless $P10, rx124_fail
+    rx124_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("metachar")
+    rx124_pos = $P10."pos"()
+  alt129_end:
+.annotate 'line', 46
   # rx pass
-    rx127_cur."!cursor_pass"(rx127_pos, "")
-    rx127_cur."!cursor_debug"("PASS  ", "", " at pos=", rx127_pos)
-    .return (rx127_cur)
-  rx127_fail:
-    (rx127_rep, rx127_pos, $I10, $P10) = rx127_cur."!mark_fail"(0)
-    lt rx127_pos, -1, rx127_done
-    eq rx127_pos, -1, rx127_fail
+    rx124_cur."!cursor_pass"(rx124_pos, "atom")
+    rx124_cur."!cursor_debug"("PASS  ", "atom", " at pos=", rx124_pos)
+    .return (rx124_cur)
+  rx124_fail:
+.annotate 'line', 3
+    (rx124_rep, rx124_pos, $I10, $P10) = rx124_cur."!mark_fail"(0)
+    lt rx124_pos, -1, rx124_done
+    eq rx124_pos, -1, rx124_fail
     jump $I10
-  rx127_done:
-    rx127_cur."!cursor_fail"()
-    rx127_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx127_cur)
+  rx124_done:
+    rx124_cur."!cursor_fail"()
+    rx124_cur."!cursor_debug"("FAIL  ", "atom")
+    .return (rx124_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier"  :subid("34_1275811476.7961") :method
-.annotate 'line', 52
-    $P131 = self."!protoregex"("quantifier")
-    .return ($P131)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier"  :subid("35_1275811476.7961") :method
-.annotate 'line', 52
-    $P133 = self."!PREFIX__!protoregex"("quantifier")
-    .return ($P133)
+.sub "!PREFIX__atom"  :subid("34_1277356887.58177") :method
+.annotate 'line', 3
+    $P126 = self."!PREFIX__!subrule"("metachar", "")
+    new $P127, "ResizablePMCArray"
+    push $P127, $P126
+    push $P127, ""
+    .return ($P127)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>"  :subid("36_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
+.sub "_block133"  :anon :subid("35_1277356887.58177") :method :outer("33_1277356887.58177")
+.annotate 'line', 49
     .local string rx135_tgt
     .local int rx135_pos
     .local int rx135_off
@@ -1418,7 +1435,7 @@
     .local int rx135_rep
     .local pmc rx135_cur
     (rx135_cur, rx135_pos, rx135_tgt) = self."!cursor_start"()
-    rx135_cur."!cursor_debug"("START ", "quantifier:sym<*>")
+    rx135_cur."!cursor_debug"("START ", "")
     .lex unicode:"$\x{a2}", rx135_cur
     .local pmc match
     .lex "$/", match
@@ -1430,3637 +1447,3617 @@
     substr rx135_tgt, rx135_tgt, rx135_off
   rx135_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan139_done
-    goto rxscan139_scan
-  rxscan139_loop:
+    ne $I10, -1, rxscan136_done
+    goto rxscan136_scan
+  rxscan136_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', 53
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_140_fail
+    ge rx135_pos, rx135_eos, rxscan136_done
+  rxscan136_scan:
+    set_addr $I10, rxscan136_loop
     rx135_cur."!mark_push"(0, rx135_pos, $I10)
-  # rx literal  "*"
-    add $I11, rx135_pos, 1
-    gt $I11, rx135_eos, rx135_fail
-    sub $I11, rx135_pos, rx135_off
-    substr $S10, rx135_tgt, $I11, 1
-    ne $S10, "*", rx135_fail
-    add rx135_pos, 1
-    set_addr $I10, rxcap_140_fail
-    ($I12, $I11) = rx135_cur."!mark_peek"($I10)
-    rx135_cur."!cursor_pos"($I11)
-    ($P10) = rx135_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx135_pos, "")
-    rx135_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_140_done
-  rxcap_140_fail:
-    goto rx135_fail
-  rxcap_140_done:
-  # rx subrule "backmod" subtype=capture negate=
-    rx135_cur."!cursor_pos"(rx135_pos)
-    $P10 = rx135_cur."backmod"()
-    unless $P10, rx135_fail
-    rx135_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("backmod")
-    rx135_pos = $P10."pos"()
+  rxscan136_done:
+  # rx charclass w
+    ge rx135_pos, rx135_eos, rx135_fail
+    sub $I10, rx135_pos, rx135_off
+    is_cclass $I11, 8192, rx135_tgt, $I10
+    unless $I11, rx135_fail
+    inc rx135_pos
   # rx pass
-    rx135_cur."!cursor_pass"(rx135_pos, "quantifier:sym<*>")
-    rx135_cur."!cursor_debug"("PASS  ", "quantifier:sym<*>", " at pos=", rx135_pos)
+    rx135_cur."!cursor_pass"(rx135_pos, "")
+    rx135_cur."!cursor_debug"("PASS  ", "", " at pos=", rx135_pos)
     .return (rx135_cur)
   rx135_fail:
-.annotate 'line', 3
     (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  ", "quantifier:sym<*>")
+    rx135_cur."!cursor_debug"("FAIL  ", "")
     .return (rx135_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>"  :subid("37_1275811476.7961") :method
-.annotate 'line', 3
-    $P137 = self."!PREFIX__!subrule"("backmod", "*")
-    new $P138, "ResizablePMCArray"
-    push $P138, $P137
-    .return ($P138)
+.sub "quantifier"  :subid("36_1277356887.58177") :method
+.annotate 'line', 54
+    $P139 = self."!protoregex"("quantifier")
+    .return ($P139)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>"  :subid("38_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .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) = self."!cursor_start"()
-    rx142_cur."!cursor_debug"("START ", "quantifier:sym<+>")
-    .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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan146_done
-    goto rxscan146_scan
-  rxscan146_loop:
-    ($P10) = rx142_cur."from"()
-    inc $P10
-    set rx142_pos, $P10
-    ge rx142_pos, rx142_eos, rxscan146_done
-  rxscan146_scan:
-    set_addr $I10, rxscan146_loop
-    rx142_cur."!mark_push"(0, rx142_pos, $I10)
-  rxscan146_done:
+.sub "!PREFIX__quantifier"  :subid("37_1277356887.58177") :method
 .annotate 'line', 54
+    $P141 = self."!PREFIX__!protoregex"("quantifier")
+    .return ($P141)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "quantifier:sym<*>"  :subid("38_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .local string rx143_tgt
+    .local int rx143_pos
+    .local int rx143_off
+    .local int rx143_eos
+    .local int rx143_rep
+    .local pmc rx143_cur
+    (rx143_cur, rx143_pos, rx143_tgt) = self."!cursor_start"()
+    rx143_cur."!cursor_debug"("START ", "quantifier:sym<*>")
+    .lex unicode:"$\x{a2}", rx143_cur
+    .local pmc match
+    .lex "$/", match
+    length rx143_eos, rx143_tgt
+    gt rx143_pos, rx143_eos, rx143_done
+    set rx143_off, 0
+    lt rx143_pos, 2, rx143_start
+    sub rx143_off, rx143_pos, 1
+    substr rx143_tgt, rx143_tgt, rx143_off
+  rx143_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan147_done
+    goto rxscan147_scan
+  rxscan147_loop:
+    ($P10) = rx143_cur."from"()
+    inc $P10
+    set rx143_pos, $P10
+    ge rx143_pos, rx143_eos, rxscan147_done
+  rxscan147_scan:
+    set_addr $I10, rxscan147_loop
+    rx143_cur."!mark_push"(0, rx143_pos, $I10)
+  rxscan147_done:
+.annotate 'line', 55
   # rx subcapture "sym"
-    set_addr $I10, rxcap_147_fail
-    rx142_cur."!mark_push"(0, rx142_pos, $I10)
-  # rx literal  "+"
-    add $I11, rx142_pos, 1
-    gt $I11, rx142_eos, rx142_fail
-    sub $I11, rx142_pos, rx142_off
-    substr $S10, rx142_tgt, $I11, 1
-    ne $S10, "+", rx142_fail
-    add rx142_pos, 1
-    set_addr $I10, rxcap_147_fail
-    ($I12, $I11) = rx142_cur."!mark_peek"($I10)
-    rx142_cur."!cursor_pos"($I11)
-    ($P10) = rx142_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx142_pos, "")
-    rx142_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_148_fail
+    rx143_cur."!mark_push"(0, rx143_pos, $I10)
+  # rx literal  "*"
+    add $I11, rx143_pos, 1
+    gt $I11, rx143_eos, rx143_fail
+    sub $I11, rx143_pos, rx143_off
+    substr $S10, rx143_tgt, $I11, 1
+    ne $S10, "*", rx143_fail
+    add rx143_pos, 1
+    set_addr $I10, rxcap_148_fail
+    ($I12, $I11) = rx143_cur."!mark_peek"($I10)
+    rx143_cur."!cursor_pos"($I11)
+    ($P10) = rx143_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx143_pos, "")
+    rx143_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_147_done
-  rxcap_147_fail:
-    goto rx142_fail
-  rxcap_147_done:
+    goto rxcap_148_done
+  rxcap_148_fail:
+    goto rx143_fail
+  rxcap_148_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx142_cur."!cursor_pos"(rx142_pos)
-    $P10 = rx142_cur."backmod"()
-    unless $P10, rx142_fail
-    rx142_cur."!mark_push"(0, -1, 0, $P10)
+    rx143_cur."!cursor_pos"(rx143_pos)
+    $P10 = rx143_cur."backmod"()
+    unless $P10, rx143_fail
+    rx143_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx142_pos = $P10."pos"()
+    rx143_pos = $P10."pos"()
   # rx pass
-    rx142_cur."!cursor_pass"(rx142_pos, "quantifier:sym<+>")
-    rx142_cur."!cursor_debug"("PASS  ", "quantifier:sym<+>", " at pos=", rx142_pos)
-    .return (rx142_cur)
-  rx142_fail:
+    rx143_cur."!cursor_pass"(rx143_pos, "quantifier:sym<*>")
+    rx143_cur."!cursor_debug"("PASS  ", "quantifier:sym<*>", " at pos=", rx143_pos)
+    .return (rx143_cur)
+  rx143_fail:
 .annotate 'line', 3
-    (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
-    lt rx142_pos, -1, rx142_done
-    eq rx142_pos, -1, rx142_fail
+    (rx143_rep, rx143_pos, $I10, $P10) = rx143_cur."!mark_fail"(0)
+    lt rx143_pos, -1, rx143_done
+    eq rx143_pos, -1, rx143_fail
     jump $I10
-  rx142_done:
-    rx142_cur."!cursor_fail"()
-    rx142_cur."!cursor_debug"("FAIL  ", "quantifier:sym<+>")
-    .return (rx142_cur)
+  rx143_done:
+    rx143_cur."!cursor_fail"()
+    rx143_cur."!cursor_debug"("FAIL  ", "quantifier:sym<*>")
+    .return (rx143_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>"  :subid("39_1275811476.7961") :method
+.sub "!PREFIX__quantifier:sym<*>"  :subid("39_1277356887.58177") :method
 .annotate 'line', 3
-    $P144 = self."!PREFIX__!subrule"("backmod", "+")
-    new $P145, "ResizablePMCArray"
-    push $P145, $P144
-    .return ($P145)
+    $P145 = self."!PREFIX__!subrule"("backmod", "*")
+    new $P146, "ResizablePMCArray"
+    push $P146, $P145
+    .return ($P146)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>"  :subid("40_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "quantifier:sym<+>"  :subid("40_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx149_tgt
-    .local int rx149_pos
-    .local int rx149_off
-    .local int rx149_eos
-    .local int rx149_rep
-    .local pmc rx149_cur
-    (rx149_cur, rx149_pos, rx149_tgt) = self."!cursor_start"()
-    rx149_cur."!cursor_debug"("START ", "quantifier:sym<?>")
-    .lex unicode:"$\x{a2}", rx149_cur
+    .local string rx150_tgt
+    .local int rx150_pos
+    .local int rx150_off
+    .local int rx150_eos
+    .local int rx150_rep
+    .local pmc rx150_cur
+    (rx150_cur, rx150_pos, rx150_tgt) = self."!cursor_start"()
+    rx150_cur."!cursor_debug"("START ", "quantifier:sym<+>")
+    .lex unicode:"$\x{a2}", rx150_cur
     .local pmc match
     .lex "$/", match
-    length rx149_eos, rx149_tgt
-    gt rx149_pos, rx149_eos, rx149_done
-    set rx149_off, 0
-    lt rx149_pos, 2, rx149_start
-    sub rx149_off, rx149_pos, 1
-    substr rx149_tgt, rx149_tgt, rx149_off
-  rx149_start:
+    length rx150_eos, rx150_tgt
+    gt rx150_pos, rx150_eos, rx150_done
+    set rx150_off, 0
+    lt rx150_pos, 2, rx150_start
+    sub rx150_off, rx150_pos, 1
+    substr rx150_tgt, rx150_tgt, rx150_off
+  rx150_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan153_done
-    goto rxscan153_scan
-  rxscan153_loop:
-    ($P10) = rx149_cur."from"()
+    ne $I10, -1, rxscan154_done
+    goto rxscan154_scan
+  rxscan154_loop:
+    ($P10) = rx150_cur."from"()
     inc $P10
-    set rx149_pos, $P10
-    ge rx149_pos, rx149_eos, rxscan153_done
-  rxscan153_scan:
-    set_addr $I10, rxscan153_loop
-    rx149_cur."!mark_push"(0, rx149_pos, $I10)
-  rxscan153_done:
-.annotate 'line', 55
+    set rx150_pos, $P10
+    ge rx150_pos, rx150_eos, rxscan154_done
+  rxscan154_scan:
+    set_addr $I10, rxscan154_loop
+    rx150_cur."!mark_push"(0, rx150_pos, $I10)
+  rxscan154_done:
+.annotate 'line', 56
   # rx subcapture "sym"
-    set_addr $I10, rxcap_154_fail
-    rx149_cur."!mark_push"(0, rx149_pos, $I10)
-  # rx literal  "?"
-    add $I11, rx149_pos, 1
-    gt $I11, rx149_eos, rx149_fail
-    sub $I11, rx149_pos, rx149_off
-    substr $S10, rx149_tgt, $I11, 1
-    ne $S10, "?", rx149_fail
-    add rx149_pos, 1
-    set_addr $I10, rxcap_154_fail
-    ($I12, $I11) = rx149_cur."!mark_peek"($I10)
-    rx149_cur."!cursor_pos"($I11)
-    ($P10) = rx149_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx149_pos, "")
-    rx149_cur."!mark_push"(0, -1, 0, $P10)
+    set_addr $I10, rxcap_155_fail
+    rx150_cur."!mark_push"(0, rx150_pos, $I10)
+  # rx literal  "+"
+    add $I11, rx150_pos, 1
+    gt $I11, rx150_eos, rx150_fail
+    sub $I11, rx150_pos, rx150_off
+    substr $S10, rx150_tgt, $I11, 1
+    ne $S10, "+", rx150_fail
+    add rx150_pos, 1
+    set_addr $I10, rxcap_155_fail
+    ($I12, $I11) = rx150_cur."!mark_peek"($I10)
+    rx150_cur."!cursor_pos"($I11)
+    ($P10) = rx150_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx150_pos, "")
+    rx150_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_154_done
-  rxcap_154_fail:
-    goto rx149_fail
-  rxcap_154_done:
+    goto rxcap_155_done
+  rxcap_155_fail:
+    goto rx150_fail
+  rxcap_155_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx149_cur."!cursor_pos"(rx149_pos)
-    $P10 = rx149_cur."backmod"()
-    unless $P10, rx149_fail
-    rx149_cur."!mark_push"(0, -1, 0, $P10)
+    rx150_cur."!cursor_pos"(rx150_pos)
+    $P10 = rx150_cur."backmod"()
+    unless $P10, rx150_fail
+    rx150_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx149_pos = $P10."pos"()
+    rx150_pos = $P10."pos"()
   # rx pass
-    rx149_cur."!cursor_pass"(rx149_pos, "quantifier:sym<?>")
-    rx149_cur."!cursor_debug"("PASS  ", "quantifier:sym<?>", " at pos=", rx149_pos)
-    .return (rx149_cur)
-  rx149_fail:
+    rx150_cur."!cursor_pass"(rx150_pos, "quantifier:sym<+>")
+    rx150_cur."!cursor_debug"("PASS  ", "quantifier:sym<+>", " at pos=", rx150_pos)
+    .return (rx150_cur)
+  rx150_fail:
 .annotate 'line', 3
-    (rx149_rep, rx149_pos, $I10, $P10) = rx149_cur."!mark_fail"(0)
-    lt rx149_pos, -1, rx149_done
-    eq rx149_pos, -1, rx149_fail
+    (rx150_rep, rx150_pos, $I10, $P10) = rx150_cur."!mark_fail"(0)
+    lt rx150_pos, -1, rx150_done
+    eq rx150_pos, -1, rx150_fail
     jump $I10
-  rx149_done:
-    rx149_cur."!cursor_fail"()
-    rx149_cur."!cursor_debug"("FAIL  ", "quantifier:sym<?>")
-    .return (rx149_cur)
+  rx150_done:
+    rx150_cur."!cursor_fail"()
+    rx150_cur."!cursor_debug"("FAIL  ", "quantifier:sym<+>")
+    .return (rx150_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>"  :subid("41_1275811476.7961") :method
+.sub "!PREFIX__quantifier:sym<+>"  :subid("41_1277356887.58177") :method
 .annotate 'line', 3
-    $P151 = self."!PREFIX__!subrule"("backmod", "?")
-    new $P152, "ResizablePMCArray"
-    push $P152, $P151
-    .return ($P152)
+    $P152 = self."!PREFIX__!subrule"("backmod", "+")
+    new $P153, "ResizablePMCArray"
+    push $P153, $P152
+    .return ($P153)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>"  :subid("42_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "quantifier:sym<?>"  :subid("42_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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) = self."!cursor_start"()
-    rx156_cur."!cursor_debug"("START ", "quantifier:sym<**>")
-    rx156_cur."!cursor_caparray"("max", "normspace")
-    .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:
-    $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:
+    .local string rx157_tgt
+    .local int rx157_pos
+    .local int rx157_off
+    .local int rx157_eos
+    .local int rx157_rep
+    .local pmc rx157_cur
+    (rx157_cur, rx157_pos, rx157_tgt) = self."!cursor_start"()
+    rx157_cur."!cursor_debug"("START ", "quantifier:sym<?>")
+    .lex unicode:"$\x{a2}", rx157_cur
+    .local pmc match
+    .lex "$/", match
+    length rx157_eos, rx157_tgt
+    gt rx157_pos, rx157_eos, rx157_done
+    set rx157_off, 0
+    lt rx157_pos, 2, rx157_start
+    sub rx157_off, rx157_pos, 1
+    substr rx157_tgt, rx157_tgt, rx157_off
+  rx157_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan161_done
+    goto rxscan161_scan
+  rxscan161_loop:
+    ($P10) = rx157_cur."from"()
+    inc $P10
+    set rx157_pos, $P10
+    ge rx157_pos, rx157_eos, rxscan161_done
+  rxscan161_scan:
+    set_addr $I10, rxscan161_loop
+    rx157_cur."!mark_push"(0, rx157_pos, $I10)
+  rxscan161_done:
 .annotate 'line', 57
   # rx subcapture "sym"
-    set_addr $I10, rxcap_160_fail
-    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+    set_addr $I10, rxcap_162_fail
+    rx157_cur."!mark_push"(0, rx157_pos, $I10)
+  # rx literal  "?"
+    add $I11, rx157_pos, 1
+    gt $I11, rx157_eos, rx157_fail
+    sub $I11, rx157_pos, rx157_off
+    substr $S10, rx157_tgt, $I11, 1
+    ne $S10, "?", rx157_fail
+    add rx157_pos, 1
+    set_addr $I10, rxcap_162_fail
+    ($I12, $I11) = rx157_cur."!mark_peek"($I10)
+    rx157_cur."!cursor_pos"($I11)
+    ($P10) = rx157_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx157_pos, "")
+    rx157_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_162_done
+  rxcap_162_fail:
+    goto rx157_fail
+  rxcap_162_done:
+  # rx subrule "backmod" subtype=capture negate=
+    rx157_cur."!cursor_pos"(rx157_pos)
+    $P10 = rx157_cur."backmod"()
+    unless $P10, rx157_fail
+    rx157_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("backmod")
+    rx157_pos = $P10."pos"()
+  # rx pass
+    rx157_cur."!cursor_pass"(rx157_pos, "quantifier:sym<?>")
+    rx157_cur."!cursor_debug"("PASS  ", "quantifier:sym<?>", " at pos=", rx157_pos)
+    .return (rx157_cur)
+  rx157_fail:
+.annotate 'line', 3
+    (rx157_rep, rx157_pos, $I10, $P10) = rx157_cur."!mark_fail"(0)
+    lt rx157_pos, -1, rx157_done
+    eq rx157_pos, -1, rx157_fail
+    jump $I10
+  rx157_done:
+    rx157_cur."!cursor_fail"()
+    rx157_cur."!cursor_debug"("FAIL  ", "quantifier:sym<?>")
+    .return (rx157_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__quantifier:sym<?>"  :subid("43_1277356887.58177") :method
+.annotate 'line', 3
+    $P159 = self."!PREFIX__!subrule"("backmod", "?")
+    new $P160, "ResizablePMCArray"
+    push $P160, $P159
+    .return ($P160)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "quantifier:sym<**>"  :subid("44_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .local string rx164_tgt
+    .local int rx164_pos
+    .local int rx164_off
+    .local int rx164_eos
+    .local int rx164_rep
+    .local pmc rx164_cur
+    (rx164_cur, rx164_pos, rx164_tgt) = self."!cursor_start"()
+    rx164_cur."!cursor_debug"("START ", "quantifier:sym<**>")
+    rx164_cur."!cursor_caparray"("max", "normspace")
+    .lex unicode:"$\x{a2}", rx164_cur
+    .local pmc match
+    .lex "$/", match
+    length rx164_eos, rx164_tgt
+    gt rx164_pos, rx164_eos, rx164_done
+    set rx164_off, 0
+    lt rx164_pos, 2, rx164_start
+    sub rx164_off, rx164_pos, 1
+    substr rx164_tgt, rx164_tgt, rx164_off
+  rx164_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan167_done
+    goto rxscan167_scan
+  rxscan167_loop:
+    ($P10) = rx164_cur."from"()
+    inc $P10
+    set rx164_pos, $P10
+    ge rx164_pos, rx164_eos, rxscan167_done
+  rxscan167_scan:
+    set_addr $I10, rxscan167_loop
+    rx164_cur."!mark_push"(0, rx164_pos, $I10)
+  rxscan167_done:
+.annotate 'line', 59
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_168_fail
+    rx164_cur."!mark_push"(0, rx164_pos, $I10)
   # rx literal  "**"
-    add $I11, rx156_pos, 2
-    gt $I11, rx156_eos, rx156_fail
-    sub $I11, rx156_pos, rx156_off
-    substr $S10, rx156_tgt, $I11, 2
-    ne $S10, "**", rx156_fail
-    add rx156_pos, 2
-    set_addr $I10, rxcap_160_fail
-    ($I12, $I11) = rx156_cur."!mark_peek"($I10)
-    rx156_cur."!cursor_pos"($I11)
-    ($P10) = rx156_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx156_pos, "")
-    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx164_pos, 2
+    gt $I11, rx164_eos, rx164_fail
+    sub $I11, rx164_pos, rx164_off
+    substr $S10, rx164_tgt, $I11, 2
+    ne $S10, "**", rx164_fail
+    add rx164_pos, 2
+    set_addr $I10, rxcap_168_fail
+    ($I12, $I11) = rx164_cur."!mark_peek"($I10)
+    rx164_cur."!cursor_pos"($I11)
+    ($P10) = rx164_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx164_pos, "")
+    rx164_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_160_done
-  rxcap_160_fail:
-    goto rx156_fail
-  rxcap_160_done:
-  # rx rxquantr161 ** 0..1
-    set_addr $I162, rxquantr161_done
-    rx156_cur."!mark_push"(0, rx156_pos, $I162)
-  rxquantr161_loop:
+    goto rxcap_168_done
+  rxcap_168_fail:
+    goto rx164_fail
+  rxcap_168_done:
+  # rx rxquantr169 ** 0..1
+    set_addr $I170, rxquantr169_done
+    rx164_cur."!mark_push"(0, rx164_pos, $I170)
+  rxquantr169_loop:
   # rx subrule "normspace" subtype=capture negate=
-    rx156_cur."!cursor_pos"(rx156_pos)
-    $P10 = rx156_cur."normspace"()
-    unless $P10, rx156_fail
-    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    rx164_cur."!cursor_pos"(rx164_pos)
+    $P10 = rx164_cur."normspace"()
+    unless $P10, rx164_fail
+    rx164_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("normspace")
-    rx156_pos = $P10."pos"()
-    (rx156_rep) = rx156_cur."!mark_commit"($I162)
-  rxquantr161_done:
+    rx164_pos = $P10."pos"()
+    (rx164_rep) = rx164_cur."!mark_commit"($I170)
+  rxquantr169_done:
   # rx subrule "backmod" subtype=capture negate=
-    rx156_cur."!cursor_pos"(rx156_pos)
-    $P10 = rx156_cur."backmod"()
-    unless $P10, rx156_fail
-    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    rx164_cur."!cursor_pos"(rx164_pos)
+    $P10 = rx164_cur."backmod"()
+    unless $P10, rx164_fail
+    rx164_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backmod")
-    rx156_pos = $P10."pos"()
-  # rx rxquantr163 ** 0..1
-    set_addr $I164, rxquantr163_done
-    rx156_cur."!mark_push"(0, rx156_pos, $I164)
-  rxquantr163_loop:
+    rx164_pos = $P10."pos"()
+  # rx rxquantr171 ** 0..1
+    set_addr $I172, rxquantr171_done
+    rx164_cur."!mark_push"(0, rx164_pos, $I172)
+  rxquantr171_loop:
   # rx subrule "normspace" subtype=capture negate=
-    rx156_cur."!cursor_pos"(rx156_pos)
-    $P10 = rx156_cur."normspace"()
-    unless $P10, rx156_fail
-    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    rx164_cur."!cursor_pos"(rx164_pos)
+    $P10 = rx164_cur."normspace"()
+    unless $P10, rx164_fail
+    rx164_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("normspace")
-    rx156_pos = $P10."pos"()
-    (rx156_rep) = rx156_cur."!mark_commit"($I164)
-  rxquantr163_done:
-  alt165_0:
-.annotate 'line', 58
-    set_addr $I10, alt165_1
-    rx156_cur."!mark_push"(0, rx156_pos, $I10)
-.annotate 'line', 59
+    rx164_pos = $P10."pos"()
+    (rx164_rep) = rx164_cur."!mark_commit"($I172)
+  rxquantr171_done:
+  alt173_0:
+.annotate 'line', 60
+    set_addr $I10, alt173_1
+    rx164_cur."!mark_push"(0, rx164_pos, $I10)
+.annotate 'line', 61
   # rx subcapture "min"
-    set_addr $I10, rxcap_166_fail
-    rx156_cur."!mark_push"(0, rx156_pos, $I10)
+    set_addr $I10, rxcap_174_fail
+    rx164_cur."!mark_push"(0, rx164_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx156_pos, rx156_off
-    find_not_cclass $I11, 8, rx156_tgt, $I10, rx156_eos
+    sub $I10, rx164_pos, rx164_off
+    find_not_cclass $I11, 8, rx164_tgt, $I10, rx164_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx156_fail
-    add rx156_pos, rx156_off, $I11
-    set_addr $I10, rxcap_166_fail
-    ($I12, $I11) = rx156_cur."!mark_peek"($I10)
-    rx156_cur."!cursor_pos"($I11)
-    ($P10) = rx156_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx156_pos, "")
-    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx164_fail
+    add rx164_pos, rx164_off, $I11
+    set_addr $I10, rxcap_174_fail
+    ($I12, $I11) = rx164_cur."!mark_peek"($I10)
+    rx164_cur."!cursor_pos"($I11)
+    ($P10) = rx164_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx164_pos, "")
+    rx164_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("min")
-    goto rxcap_166_done
-  rxcap_166_fail:
-    goto rx156_fail
-  rxcap_166_done:
-.annotate 'line', 66
-  # rx rxquantr167 ** 0..1
-    set_addr $I170, rxquantr167_done
-    rx156_cur."!mark_push"(0, rx156_pos, $I170)
-  rxquantr167_loop:
-.annotate 'line', 60
+    goto rxcap_174_done
+  rxcap_174_fail:
+    goto rx164_fail
+  rxcap_174_done:
+.annotate 'line', 68
+  # rx rxquantr175 ** 0..1
+    set_addr $I178, rxquantr175_done
+    rx164_cur."!mark_push"(0, rx164_pos, $I178)
+  rxquantr175_loop:
+.annotate 'line', 62
   # rx literal  ".."
-    add $I11, rx156_pos, 2
-    gt $I11, rx156_eos, rx156_fail
-    sub $I11, rx156_pos, rx156_off
-    substr $S10, rx156_tgt, $I11, 2
-    ne $S10, "..", rx156_fail
-    add rx156_pos, 2
-.annotate 'line', 61
+    add $I11, rx164_pos, 2
+    gt $I11, rx164_eos, rx164_fail
+    sub $I11, rx164_pos, rx164_off
+    substr $S10, rx164_tgt, $I11, 2
+    ne $S10, "..", rx164_fail
+    add rx164_pos, 2
+.annotate 'line', 63
   # rx subcapture "max"
-    set_addr $I10, rxcap_169_fail
-    rx156_cur."!mark_push"(0, rx156_pos, $I10)
-  alt168_0:
-    set_addr $I10, alt168_1
-    rx156_cur."!mark_push"(0, rx156_pos, $I10)
-.annotate 'line', 62
+    set_addr $I10, rxcap_177_fail
+    rx164_cur."!mark_push"(0, rx164_pos, $I10)
+  alt176_0:
+    set_addr $I10, alt176_1
+    rx164_cur."!mark_push"(0, rx164_pos, $I10)
+.annotate 'line', 64
   # rx charclass_q d r 1..-1
-    sub $I10, rx156_pos, rx156_off
-    find_not_cclass $I11, 8, rx156_tgt, $I10, rx156_eos
+    sub $I10, rx164_pos, rx164_off
+    find_not_cclass $I11, 8, rx164_tgt, $I10, rx164_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx156_fail
-    add rx156_pos, rx156_off, $I11
-    goto alt168_end
-  alt168_1:
-    set_addr $I10, alt168_2
-    rx156_cur."!mark_push"(0, rx156_pos, $I10)
-.annotate 'line', 63
+    lt $I11, $I12, rx164_fail
+    add rx164_pos, rx164_off, $I11
+    goto alt176_end
+  alt176_1:
+    set_addr $I10, alt176_2
+    rx164_cur."!mark_push"(0, rx164_pos, $I10)
+.annotate 'line', 65
   # rx literal  "*"
-    add $I11, rx156_pos, 1
-    gt $I11, rx156_eos, rx156_fail
-    sub $I11, rx156_pos, rx156_off
-    substr $S10, rx156_tgt, $I11, 1
-    ne $S10, "*", rx156_fail
-    add rx156_pos, 1
-    goto alt168_end
-  alt168_2:
-.annotate 'line', 64
+    add $I11, rx164_pos, 1
+    gt $I11, rx164_eos, rx164_fail
+    sub $I11, rx164_pos, rx164_off
+    substr $S10, rx164_tgt, $I11, 1
+    ne $S10, "*", rx164_fail
+    add rx164_pos, 1
+    goto alt176_end
+  alt176_2:
+.annotate 'line', 66
   # rx subrule "panic" subtype=method negate=
-    rx156_cur."!cursor_pos"(rx156_pos)
-    $P10 = rx156_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
-    unless $P10, rx156_fail
-    rx156_pos = $P10."pos"()
-  alt168_end:
-.annotate 'line', 61
-    set_addr $I10, rxcap_169_fail
-    ($I12, $I11) = rx156_cur."!mark_peek"($I10)
-    rx156_cur."!cursor_pos"($I11)
-    ($P10) = rx156_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx156_pos, "")
-    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    rx164_cur."!cursor_pos"(rx164_pos)
+    $P10 = rx164_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
+    unless $P10, rx164_fail
+    rx164_pos = $P10."pos"()
+  alt176_end:
+.annotate 'line', 63
+    set_addr $I10, rxcap_177_fail
+    ($I12, $I11) = rx164_cur."!mark_peek"($I10)
+    rx164_cur."!cursor_pos"($I11)
+    ($P10) = rx164_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx164_pos, "")
+    rx164_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("max")
-    goto rxcap_169_done
-  rxcap_169_fail:
-    goto rx156_fail
-  rxcap_169_done:
-.annotate 'line', 66
-    (rx156_rep) = rx156_cur."!mark_commit"($I170)
-  rxquantr167_done:
-.annotate 'line', 59
-    goto alt165_end
-  alt165_1:
-.annotate 'line', 67
+    goto rxcap_177_done
+  rxcap_177_fail:
+    goto rx164_fail
+  rxcap_177_done:
+.annotate 'line', 68
+    (rx164_rep) = rx164_cur."!mark_commit"($I178)
+  rxquantr175_done:
+.annotate 'line', 61
+    goto alt173_end
+  alt173_1:
+.annotate 'line', 69
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx156_cur."!cursor_pos"(rx156_pos)
-    $P10 = rx156_cur."quantified_atom"()
-    unless $P10, rx156_fail
-    rx156_cur."!mark_push"(0, -1, 0, $P10)
+    rx164_cur."!cursor_pos"(rx164_pos)
+    $P10 = rx164_cur."quantified_atom"()
+    unless $P10, rx164_fail
+    rx164_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantified_atom")
-    rx156_pos = $P10."pos"()
-  alt165_end:
-.annotate 'line', 56
+    rx164_pos = $P10."pos"()
+  alt173_end:
+.annotate 'line', 58
   # rx pass
-    rx156_cur."!cursor_pass"(rx156_pos, "quantifier:sym<**>")
-    rx156_cur."!cursor_debug"("PASS  ", "quantifier:sym<**>", " at pos=", rx156_pos)
-    .return (rx156_cur)
-  rx156_fail:
+    rx164_cur."!cursor_pass"(rx164_pos, "quantifier:sym<**>")
+    rx164_cur."!cursor_debug"("PASS  ", "quantifier:sym<**>", " at pos=", rx164_pos)
+    .return (rx164_cur)
+  rx164_fail:
 .annotate 'line', 3
-    (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
-    lt rx156_pos, -1, rx156_done
-    eq rx156_pos, -1, rx156_fail
+    (rx164_rep, rx164_pos, $I10, $P10) = rx164_cur."!mark_fail"(0)
+    lt rx164_pos, -1, rx164_done
+    eq rx164_pos, -1, rx164_fail
     jump $I10
-  rx156_done:
-    rx156_cur."!cursor_fail"()
-    rx156_cur."!cursor_debug"("FAIL  ", "quantifier:sym<**>")
-    .return (rx156_cur)
+  rx164_done:
+    rx164_cur."!cursor_fail"()
+    rx164_cur."!cursor_debug"("FAIL  ", "quantifier:sym<**>")
+    .return (rx164_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>"  :subid("43_1275811476.7961") :method
+.sub "!PREFIX__quantifier:sym<**>"  :subid("45_1277356887.58177") :method
 .annotate 'line', 3
-    new $P158, "ResizablePMCArray"
-    push $P158, "**"
-    .return ($P158)
+    new $P166, "ResizablePMCArray"
+    push $P166, "**"
+    .return ($P166)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod"  :subid("44_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backmod"  :subid("46_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .const 'Sub' $P180 = "46_1275811476.7961" 
-    capture_lex $P180
-    .local string rx172_tgt
-    .local int rx172_pos
-    .local int rx172_off
-    .local int rx172_eos
-    .local int rx172_rep
-    .local pmc rx172_cur
-    (rx172_cur, rx172_pos, rx172_tgt) = self."!cursor_start"()
-    rx172_cur."!cursor_debug"("START ", "backmod")
-    .lex unicode:"$\x{a2}", rx172_cur
+    .const 'Sub' $P188 = "48_1277356887.58177" 
+    capture_lex $P188
+    .local string rx180_tgt
+    .local int rx180_pos
+    .local int rx180_off
+    .local int rx180_eos
+    .local int rx180_rep
+    .local pmc rx180_cur
+    (rx180_cur, rx180_pos, rx180_tgt) = self."!cursor_start"()
+    rx180_cur."!cursor_debug"("START ", "backmod")
+    .lex unicode:"$\x{a2}", rx180_cur
     .local pmc match
     .lex "$/", match
-    length rx172_eos, rx172_tgt
-    gt rx172_pos, rx172_eos, rx172_done
-    set rx172_off, 0
-    lt rx172_pos, 2, rx172_start
-    sub rx172_off, rx172_pos, 1
-    substr rx172_tgt, rx172_tgt, rx172_off
-  rx172_start:
+    length rx180_eos, rx180_tgt
+    gt rx180_pos, rx180_eos, rx180_done
+    set rx180_off, 0
+    lt rx180_pos, 2, rx180_start
+    sub rx180_off, rx180_pos, 1
+    substr rx180_tgt, rx180_tgt, rx180_off
+  rx180_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan175_done
-    goto rxscan175_scan
-  rxscan175_loop:
-    ($P10) = rx172_cur."from"()
+    ne $I10, -1, rxscan183_done
+    goto rxscan183_scan
+  rxscan183_loop:
+    ($P10) = rx180_cur."from"()
     inc $P10
-    set rx172_pos, $P10
-    ge rx172_pos, rx172_eos, rxscan175_done
-  rxscan175_scan:
-    set_addr $I10, rxscan175_loop
-    rx172_cur."!mark_push"(0, rx172_pos, $I10)
-  rxscan175_done:
-.annotate 'line', 71
-  # rx rxquantr176 ** 0..1
-    set_addr $I177, rxquantr176_done
-    rx172_cur."!mark_push"(0, rx172_pos, $I177)
-  rxquantr176_loop:
+    set rx180_pos, $P10
+    ge rx180_pos, rx180_eos, rxscan183_done
+  rxscan183_scan:
+    set_addr $I10, rxscan183_loop
+    rx180_cur."!mark_push"(0, rx180_pos, $I10)
+  rxscan183_done:
+.annotate 'line', 73
+  # rx rxquantr184 ** 0..1
+    set_addr $I185, rxquantr184_done
+    rx180_cur."!mark_push"(0, rx180_pos, $I185)
+  rxquantr184_loop:
   # rx literal  ":"
-    add $I11, rx172_pos, 1
-    gt $I11, rx172_eos, rx172_fail
-    sub $I11, rx172_pos, rx172_off
-    substr $S10, rx172_tgt, $I11, 1
-    ne $S10, ":", rx172_fail
-    add rx172_pos, 1
-    (rx172_rep) = rx172_cur."!mark_commit"($I177)
-  rxquantr176_done:
-  alt178_0:
-    set_addr $I10, alt178_1
-    rx172_cur."!mark_push"(0, rx172_pos, $I10)
+    add $I11, rx180_pos, 1
+    gt $I11, rx180_eos, rx180_fail
+    sub $I11, rx180_pos, rx180_off
+    substr $S10, rx180_tgt, $I11, 1
+    ne $S10, ":", rx180_fail
+    add rx180_pos, 1
+    (rx180_rep) = rx180_cur."!mark_commit"($I185)
+  rxquantr184_done:
+  alt186_0:
+    set_addr $I10, alt186_1
+    rx180_cur."!mark_push"(0, rx180_pos, $I10)
   # rx literal  "?"
-    add $I11, rx172_pos, 1
-    gt $I11, rx172_eos, rx172_fail
-    sub $I11, rx172_pos, rx172_off
-    substr $S10, rx172_tgt, $I11, 1
-    ne $S10, "?", rx172_fail
-    add rx172_pos, 1
-    goto alt178_end
-  alt178_1:
-    set_addr $I10, alt178_2
-    rx172_cur."!mark_push"(0, rx172_pos, $I10)
+    add $I11, rx180_pos, 1
+    gt $I11, rx180_eos, rx180_fail
+    sub $I11, rx180_pos, rx180_off
+    substr $S10, rx180_tgt, $I11, 1
+    ne $S10, "?", rx180_fail
+    add rx180_pos, 1
+    goto alt186_end
+  alt186_1:
+    set_addr $I10, alt186_2
+    rx180_cur."!mark_push"(0, rx180_pos, $I10)
   # rx literal  "!"
-    add $I11, rx172_pos, 1
-    gt $I11, rx172_eos, rx172_fail
-    sub $I11, rx172_pos, rx172_off
-    substr $S10, rx172_tgt, $I11, 1
-    ne $S10, "!", rx172_fail
-    add rx172_pos, 1
-    goto alt178_end
-  alt178_2:
+    add $I11, rx180_pos, 1
+    gt $I11, rx180_eos, rx180_fail
+    sub $I11, rx180_pos, rx180_off
+    substr $S10, rx180_tgt, $I11, 1
+    ne $S10, "!", rx180_fail
+    add rx180_pos, 1
+    goto alt186_end
+  alt186_2:
   # rx subrule "before" subtype=zerowidth negate=1
-    rx172_cur."!cursor_pos"(rx172_pos)
-    .const 'Sub' $P180 = "46_1275811476.7961" 
-    capture_lex $P180
-    $P10 = rx172_cur."before"($P180)
-    if $P10, rx172_fail
-  alt178_end:
+    rx180_cur."!cursor_pos"(rx180_pos)
+    .const 'Sub' $P188 = "48_1277356887.58177" 
+    capture_lex $P188
+    $P10 = rx180_cur."before"($P188)
+    if $P10, rx180_fail
+  alt186_end:
   # rx pass
-    rx172_cur."!cursor_pass"(rx172_pos, "backmod")
-    rx172_cur."!cursor_debug"("PASS  ", "backmod", " at pos=", rx172_pos)
-    .return (rx172_cur)
-  rx172_fail:
+    rx180_cur."!cursor_pass"(rx180_pos, "backmod")
+    rx180_cur."!cursor_debug"("PASS  ", "backmod", " at pos=", rx180_pos)
+    .return (rx180_cur)
+  rx180_fail:
 .annotate 'line', 3
-    (rx172_rep, rx172_pos, $I10, $P10) = rx172_cur."!mark_fail"(0)
-    lt rx172_pos, -1, rx172_done
-    eq rx172_pos, -1, rx172_fail
+    (rx180_rep, rx180_pos, $I10, $P10) = rx180_cur."!mark_fail"(0)
+    lt rx180_pos, -1, rx180_done
+    eq rx180_pos, -1, rx180_fail
     jump $I10
-  rx172_done:
-    rx172_cur."!cursor_fail"()
-    rx172_cur."!cursor_debug"("FAIL  ", "backmod")
-    .return (rx172_cur)
+  rx180_done:
+    rx180_cur."!cursor_fail"()
+    rx180_cur."!cursor_debug"("FAIL  ", "backmod")
+    .return (rx180_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod"  :subid("45_1275811476.7961") :method
+.sub "!PREFIX__backmod"  :subid("47_1277356887.58177") :method
 .annotate 'line', 3
-    new $P174, "ResizablePMCArray"
-    push $P174, ""
-    .return ($P174)
+    new $P182, "ResizablePMCArray"
+    push $P182, ""
+    .return ($P182)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block179"  :anon :subid("46_1275811476.7961") :method :outer("44_1275811476.7961")
-.annotate 'line', 71
-    .local string rx181_tgt
-    .local int rx181_pos
-    .local int rx181_off
-    .local int rx181_eos
-    .local int rx181_rep
-    .local pmc rx181_cur
-    (rx181_cur, rx181_pos, rx181_tgt) = self."!cursor_start"()
-    rx181_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx181_cur
-    .local pmc match
-    .lex "$/", match
-    length rx181_eos, rx181_tgt
-    gt rx181_pos, rx181_eos, rx181_done
-    set rx181_off, 0
-    lt rx181_pos, 2, rx181_start
-    sub rx181_off, rx181_pos, 1
-    substr rx181_tgt, rx181_tgt, rx181_off
-  rx181_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan182_done
-    goto rxscan182_scan
-  rxscan182_loop:
-    ($P10) = rx181_cur."from"()
-    inc $P10
-    set rx181_pos, $P10
-    ge rx181_pos, rx181_eos, rxscan182_done
-  rxscan182_scan:
-    set_addr $I10, rxscan182_loop
-    rx181_cur."!mark_push"(0, rx181_pos, $I10)
-  rxscan182_done:
+.sub "_block187"  :anon :subid("48_1277356887.58177") :method :outer("46_1277356887.58177")
+.annotate 'line', 73
+    .local string rx189_tgt
+    .local int rx189_pos
+    .local int rx189_off
+    .local int rx189_eos
+    .local int rx189_rep
+    .local pmc rx189_cur
+    (rx189_cur, rx189_pos, rx189_tgt) = self."!cursor_start"()
+    rx189_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx189_cur
+    .local pmc match
+    .lex "$/", match
+    length rx189_eos, rx189_tgt
+    gt rx189_pos, rx189_eos, rx189_done
+    set rx189_off, 0
+    lt rx189_pos, 2, rx189_start
+    sub rx189_off, rx189_pos, 1
+    substr rx189_tgt, rx189_tgt, rx189_off
+  rx189_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan190_done
+    goto rxscan190_scan
+  rxscan190_loop:
+    ($P10) = rx189_cur."from"()
+    inc $P10
+    set rx189_pos, $P10
+    ge rx189_pos, rx189_eos, rxscan190_done
+  rxscan190_scan:
+    set_addr $I10, rxscan190_loop
+    rx189_cur."!mark_push"(0, rx189_pos, $I10)
+  rxscan190_done:
   # rx literal  ":"
-    add $I11, rx181_pos, 1
-    gt $I11, rx181_eos, rx181_fail
-    sub $I11, rx181_pos, rx181_off
-    substr $S10, rx181_tgt, $I11, 1
-    ne $S10, ":", rx181_fail
-    add rx181_pos, 1
+    add $I11, rx189_pos, 1
+    gt $I11, rx189_eos, rx189_fail
+    sub $I11, rx189_pos, rx189_off
+    substr $S10, rx189_tgt, $I11, 1
+    ne $S10, ":", rx189_fail
+    add rx189_pos, 1
   # rx pass
-    rx181_cur."!cursor_pass"(rx181_pos, "")
-    rx181_cur."!cursor_debug"("PASS  ", "", " at pos=", rx181_pos)
-    .return (rx181_cur)
-  rx181_fail:
-    (rx181_rep, rx181_pos, $I10, $P10) = rx181_cur."!mark_fail"(0)
-    lt rx181_pos, -1, rx181_done
-    eq rx181_pos, -1, rx181_fail
+    rx189_cur."!cursor_pass"(rx189_pos, "")
+    rx189_cur."!cursor_debug"("PASS  ", "", " at pos=", rx189_pos)
+    .return (rx189_cur)
+  rx189_fail:
+    (rx189_rep, rx189_pos, $I10, $P10) = rx189_cur."!mark_fail"(0)
+    lt rx189_pos, -1, rx189_done
+    eq rx189_pos, -1, rx189_fail
     jump $I10
-  rx181_done:
-    rx181_cur."!cursor_fail"()
-    rx181_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx181_cur)
+  rx189_done:
+    rx189_cur."!cursor_fail"()
+    rx189_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx189_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar"  :subid("47_1275811476.7961") :method
-.annotate 'line', 73
-    $P184 = self."!protoregex"("metachar")
-    .return ($P184)
+.sub "metachar"  :subid("49_1277356887.58177") :method
+.annotate 'line', 75
+    $P192 = self."!protoregex"("metachar")
+    .return ($P192)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar"  :subid("48_1275811476.7961") :method
-.annotate 'line', 73
-    $P186 = self."!PREFIX__!protoregex"("metachar")
-    .return ($P186)
+.sub "!PREFIX__metachar"  :subid("50_1277356887.58177") :method
+.annotate 'line', 75
+    $P194 = self."!PREFIX__!protoregex"("metachar")
+    .return ($P194)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>"  :subid("49_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<ws>"  :subid("51_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx188_tgt
-    .local int rx188_pos
-    .local int rx188_off
-    .local int rx188_eos
-    .local int rx188_rep
-    .local pmc rx188_cur
-    (rx188_cur, rx188_pos, rx188_tgt) = self."!cursor_start"()
-    rx188_cur."!cursor_debug"("START ", "metachar:sym<ws>")
-    .lex unicode:"$\x{a2}", rx188_cur
-    .local pmc match
-    .lex "$/", match
-    length rx188_eos, rx188_tgt
-    gt rx188_pos, rx188_eos, rx188_done
-    set rx188_off, 0
-    lt rx188_pos, 2, rx188_start
-    sub rx188_off, rx188_pos, 1
-    substr rx188_tgt, rx188_tgt, rx188_off
-  rx188_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan192_done
-    goto rxscan192_scan
-  rxscan192_loop:
-    ($P10) = rx188_cur."from"()
-    inc $P10
-    set rx188_pos, $P10
-    ge rx188_pos, rx188_eos, rxscan192_done
-  rxscan192_scan:
-    set_addr $I10, rxscan192_loop
-    rx188_cur."!mark_push"(0, rx188_pos, $I10)
-  rxscan192_done:
-.annotate 'line', 74
+    .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 ", "metachar:sym<ws>")
+    .lex unicode:"$\x{a2}", rx196_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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan200_done
+    goto rxscan200_scan
+  rxscan200_loop:
+    ($P10) = rx196_cur."from"()
+    inc $P10
+    set rx196_pos, $P10
+    ge rx196_pos, rx196_eos, rxscan200_done
+  rxscan200_scan:
+    set_addr $I10, rxscan200_loop
+    rx196_cur."!mark_push"(0, rx196_pos, $I10)
+  rxscan200_done:
+.annotate 'line', 76
   # rx subrule "normspace" subtype=method negate=
-    rx188_cur."!cursor_pos"(rx188_pos)
-    $P10 = rx188_cur."normspace"()
-    unless $P10, rx188_fail
-    rx188_pos = $P10."pos"()
+    rx196_cur."!cursor_pos"(rx196_pos)
+    $P10 = rx196_cur."normspace"()
+    unless $P10, rx196_fail
+    rx196_pos = $P10."pos"()
   # rx pass
-    rx188_cur."!cursor_pass"(rx188_pos, "metachar:sym<ws>")
-    rx188_cur."!cursor_debug"("PASS  ", "metachar:sym<ws>", " at pos=", rx188_pos)
-    .return (rx188_cur)
-  rx188_fail:
+    rx196_cur."!cursor_pass"(rx196_pos, "metachar:sym<ws>")
+    rx196_cur."!cursor_debug"("PASS  ", "metachar:sym<ws>", " at pos=", rx196_pos)
+    .return (rx196_cur)
+  rx196_fail:
 .annotate 'line', 3
-    (rx188_rep, rx188_pos, $I10, $P10) = rx188_cur."!mark_fail"(0)
-    lt rx188_pos, -1, rx188_done
-    eq rx188_pos, -1, rx188_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
-  rx188_done:
-    rx188_cur."!cursor_fail"()
-    rx188_cur."!cursor_debug"("FAIL  ", "metachar:sym<ws>")
-    .return (rx188_cur)
+  rx196_done:
+    rx196_cur."!cursor_fail"()
+    rx196_cur."!cursor_debug"("FAIL  ", "metachar:sym<ws>")
+    .return (rx196_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>"  :subid("50_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<ws>"  :subid("52_1277356887.58177") :method
 .annotate 'line', 3
-    $P190 = self."!PREFIX__!subrule"("normspace", "")
-    new $P191, "ResizablePMCArray"
-    push $P191, $P190
-    .return ($P191)
+    $P198 = self."!PREFIX__!subrule"("normspace", "")
+    new $P199, "ResizablePMCArray"
+    push $P199, $P198
+    .return ($P199)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>"  :subid("51_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<[ ]>"  :subid("53_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx194_tgt
-    .local int rx194_pos
-    .local int rx194_off
-    .local int rx194_eos
-    .local int rx194_rep
-    .local pmc rx194_cur
-    (rx194_cur, rx194_pos, rx194_tgt) = self."!cursor_start"()
-    rx194_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
-    .lex unicode:"$\x{a2}", rx194_cur
+    .local string rx202_tgt
+    .local int rx202_pos
+    .local int rx202_off
+    .local int rx202_eos
+    .local int rx202_rep
+    .local pmc rx202_cur
+    (rx202_cur, rx202_pos, rx202_tgt) = self."!cursor_start"()
+    rx202_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
+    .lex unicode:"$\x{a2}", rx202_cur
     .local pmc match
     .lex "$/", match
-    length rx194_eos, rx194_tgt
-    gt rx194_pos, rx194_eos, rx194_done
-    set rx194_off, 0
-    lt rx194_pos, 2, rx194_start
-    sub rx194_off, rx194_pos, 1
-    substr rx194_tgt, rx194_tgt, rx194_off
-  rx194_start:
+    length rx202_eos, rx202_tgt
+    gt rx202_pos, rx202_eos, rx202_done
+    set rx202_off, 0
+    lt rx202_pos, 2, rx202_start
+    sub rx202_off, rx202_pos, 1
+    substr rx202_tgt, rx202_tgt, rx202_off
+  rx202_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan198_done
-    goto rxscan198_scan
-  rxscan198_loop:
-    ($P10) = rx194_cur."from"()
+    ne $I10, -1, rxscan206_done
+    goto rxscan206_scan
+  rxscan206_loop:
+    ($P10) = rx202_cur."from"()
     inc $P10
-    set rx194_pos, $P10
-    ge rx194_pos, rx194_eos, rxscan198_done
-  rxscan198_scan:
-    set_addr $I10, rxscan198_loop
-    rx194_cur."!mark_push"(0, rx194_pos, $I10)
-  rxscan198_done:
-.annotate 'line', 75
+    set rx202_pos, $P10
+    ge rx202_pos, rx202_eos, rxscan206_done
+  rxscan206_scan:
+    set_addr $I10, rxscan206_loop
+    rx202_cur."!mark_push"(0, rx202_pos, $I10)
+  rxscan206_done:
+.annotate 'line', 77
   # rx literal  "["
-    add $I11, rx194_pos, 1
-    gt $I11, rx194_eos, rx194_fail
-    sub $I11, rx194_pos, rx194_off
-    substr $S10, rx194_tgt, $I11, 1
-    ne $S10, "[", rx194_fail
-    add rx194_pos, 1
+    add $I11, rx202_pos, 1
+    gt $I11, rx202_eos, rx202_fail
+    sub $I11, rx202_pos, rx202_off
+    substr $S10, rx202_tgt, $I11, 1
+    ne $S10, "[", rx202_fail
+    add rx202_pos, 1
   # rx subrule "nibbler" subtype=capture negate=
-    rx194_cur."!cursor_pos"(rx194_pos)
-    $P10 = rx194_cur."nibbler"()
-    unless $P10, rx194_fail
-    rx194_cur."!mark_push"(0, -1, 0, $P10)
+    rx202_cur."!cursor_pos"(rx202_pos)
+    $P10 = rx202_cur."nibbler"()
+    unless $P10, rx202_fail
+    rx202_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx194_pos = $P10."pos"()
+    rx202_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx194_pos, 1
-    gt $I11, rx194_eos, rx194_fail
-    sub $I11, rx194_pos, rx194_off
-    substr $S10, rx194_tgt, $I11, 1
-    ne $S10, "]", rx194_fail
-    add rx194_pos, 1
+    add $I11, rx202_pos, 1
+    gt $I11, rx202_eos, rx202_fail
+    sub $I11, rx202_pos, rx202_off
+    substr $S10, rx202_tgt, $I11, 1
+    ne $S10, "]", rx202_fail
+    add rx202_pos, 1
   # rx pass
-    rx194_cur."!cursor_pass"(rx194_pos, "metachar:sym<[ ]>")
-    rx194_cur."!cursor_debug"("PASS  ", "metachar:sym<[ ]>", " at pos=", rx194_pos)
-    .return (rx194_cur)
-  rx194_fail:
+    rx202_cur."!cursor_pass"(rx202_pos, "metachar:sym<[ ]>")
+    rx202_cur."!cursor_debug"("PASS  ", "metachar:sym<[ ]>", " at pos=", rx202_pos)
+    .return (rx202_cur)
+  rx202_fail:
 .annotate 'line', 3
-    (rx194_rep, rx194_pos, $I10, $P10) = rx194_cur."!mark_fail"(0)
-    lt rx194_pos, -1, rx194_done
-    eq rx194_pos, -1, rx194_fail
+    (rx202_rep, rx202_pos, $I10, $P10) = rx202_cur."!mark_fail"(0)
+    lt rx202_pos, -1, rx202_done
+    eq rx202_pos, -1, rx202_fail
     jump $I10
-  rx194_done:
-    rx194_cur."!cursor_fail"()
-    rx194_cur."!cursor_debug"("FAIL  ", "metachar:sym<[ ]>")
-    .return (rx194_cur)
+  rx202_done:
+    rx202_cur."!cursor_fail"()
+    rx202_cur."!cursor_debug"("FAIL  ", "metachar:sym<[ ]>")
+    .return (rx202_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>"  :subid("52_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<[ ]>"  :subid("54_1277356887.58177") :method
 .annotate 'line', 3
-    $P196 = self."!PREFIX__!subrule"("nibbler", "[")
-    new $P197, "ResizablePMCArray"
-    push $P197, $P196
-    .return ($P197)
+    $P204 = self."!PREFIX__!subrule"("nibbler", "[")
+    new $P205, "ResizablePMCArray"
+    push $P205, $P204
+    .return ($P205)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>"  :subid("53_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<( )>"  :subid("55_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx200_tgt
-    .local int rx200_pos
-    .local int rx200_off
-    .local int rx200_eos
-    .local int rx200_rep
-    .local pmc rx200_cur
-    (rx200_cur, rx200_pos, rx200_tgt) = self."!cursor_start"()
-    rx200_cur."!cursor_debug"("START ", "metachar:sym<( )>")
-    .lex unicode:"$\x{a2}", rx200_cur
-    .local pmc match
-    .lex "$/", match
-    length rx200_eos, rx200_tgt
-    gt rx200_pos, rx200_eos, rx200_done
-    set rx200_off, 0
-    lt rx200_pos, 2, rx200_start
-    sub rx200_off, rx200_pos, 1
-    substr rx200_tgt, rx200_tgt, rx200_off
-  rx200_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan204_done
-    goto rxscan204_scan
-  rxscan204_loop:
-    ($P10) = rx200_cur."from"()
-    inc $P10
-    set rx200_pos, $P10
-    ge rx200_pos, rx200_eos, rxscan204_done
-  rxscan204_scan:
-    set_addr $I10, rxscan204_loop
-    rx200_cur."!mark_push"(0, rx200_pos, $I10)
-  rxscan204_done:
-.annotate 'line', 76
+    .local string rx208_tgt
+    .local int rx208_pos
+    .local int rx208_off
+    .local int rx208_eos
+    .local int rx208_rep
+    .local pmc rx208_cur
+    (rx208_cur, rx208_pos, rx208_tgt) = self."!cursor_start"()
+    rx208_cur."!cursor_debug"("START ", "metachar:sym<( )>")
+    .lex unicode:"$\x{a2}", rx208_cur
+    .local pmc match
+    .lex "$/", match
+    length rx208_eos, rx208_tgt
+    gt rx208_pos, rx208_eos, rx208_done
+    set rx208_off, 0
+    lt rx208_pos, 2, rx208_start
+    sub rx208_off, rx208_pos, 1
+    substr rx208_tgt, rx208_tgt, rx208_off
+  rx208_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan212_done
+    goto rxscan212_scan
+  rxscan212_loop:
+    ($P10) = rx208_cur."from"()
+    inc $P10
+    set rx208_pos, $P10
+    ge rx208_pos, rx208_eos, rxscan212_done
+  rxscan212_scan:
+    set_addr $I10, rxscan212_loop
+    rx208_cur."!mark_push"(0, rx208_pos, $I10)
+  rxscan212_done:
+.annotate 'line', 78
   # rx literal  "("
-    add $I11, rx200_pos, 1
-    gt $I11, rx200_eos, rx200_fail
-    sub $I11, rx200_pos, rx200_off
-    substr $S10, rx200_tgt, $I11, 1
-    ne $S10, "(", rx200_fail
-    add rx200_pos, 1
+    add $I11, rx208_pos, 1
+    gt $I11, rx208_eos, rx208_fail
+    sub $I11, rx208_pos, rx208_off
+    substr $S10, rx208_tgt, $I11, 1
+    ne $S10, "(", rx208_fail
+    add rx208_pos, 1
   # rx subrule "nibbler" subtype=capture negate=
-    rx200_cur."!cursor_pos"(rx200_pos)
-    $P10 = rx200_cur."nibbler"()
-    unless $P10, rx200_fail
-    rx200_cur."!mark_push"(0, -1, 0, $P10)
+    rx208_cur."!cursor_pos"(rx208_pos)
+    $P10 = rx208_cur."nibbler"()
+    unless $P10, rx208_fail
+    rx208_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx200_pos = $P10."pos"()
+    rx208_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx200_pos, 1
-    gt $I11, rx200_eos, rx200_fail
-    sub $I11, rx200_pos, rx200_off
-    substr $S10, rx200_tgt, $I11, 1
-    ne $S10, ")", rx200_fail
-    add rx200_pos, 1
+    add $I11, rx208_pos, 1
+    gt $I11, rx208_eos, rx208_fail
+    sub $I11, rx208_pos, rx208_off
+    substr $S10, rx208_tgt, $I11, 1
+    ne $S10, ")", rx208_fail
+    add rx208_pos, 1
   # rx pass
-    rx200_cur."!cursor_pass"(rx200_pos, "metachar:sym<( )>")
-    rx200_cur."!cursor_debug"("PASS  ", "metachar:sym<( )>", " at pos=", rx200_pos)
-    .return (rx200_cur)
-  rx200_fail:
+    rx208_cur."!cursor_pass"(rx208_pos, "metachar:sym<( )>")
+    rx208_cur."!cursor_debug"("PASS  ", "metachar:sym<( )>", " at pos=", rx208_pos)
+    .return (rx208_cur)
+  rx208_fail:
 .annotate 'line', 3
-    (rx200_rep, rx200_pos, $I10, $P10) = rx200_cur."!mark_fail"(0)
-    lt rx200_pos, -1, rx200_done
-    eq rx200_pos, -1, rx200_fail
+    (rx208_rep, rx208_pos, $I10, $P10) = rx208_cur."!mark_fail"(0)
+    lt rx208_pos, -1, rx208_done
+    eq rx208_pos, -1, rx208_fail
     jump $I10
-  rx200_done:
-    rx200_cur."!cursor_fail"()
-    rx200_cur."!cursor_debug"("FAIL  ", "metachar:sym<( )>")
-    .return (rx200_cur)
+  rx208_done:
+    rx208_cur."!cursor_fail"()
+    rx208_cur."!cursor_debug"("FAIL  ", "metachar:sym<( )>")
+    .return (rx208_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>"  :subid("54_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<( )>"  :subid("56_1277356887.58177") :method
 .annotate 'line', 3
-    $P202 = self."!PREFIX__!subrule"("nibbler", "(")
-    new $P203, "ResizablePMCArray"
-    push $P203, $P202
-    .return ($P203)
+    $P210 = self."!PREFIX__!subrule"("nibbler", "(")
+    new $P211, "ResizablePMCArray"
+    push $P211, $P210
+    .return ($P211)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>"  :subid("55_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<'>"  :subid("57_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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) = self."!cursor_start"()
-    rx206_cur."!cursor_debug"("START ", "metachar:sym<'>")
-    .lex unicode:"$\x{a2}", rx206_cur
+    .local string rx214_tgt
+    .local int rx214_pos
+    .local int rx214_off
+    .local int rx214_eos
+    .local int rx214_rep
+    .local pmc rx214_cur
+    (rx214_cur, rx214_pos, rx214_tgt) = self."!cursor_start"()
+    rx214_cur."!cursor_debug"("START ", "metachar:sym<'>")
+    .lex unicode:"$\x{a2}", rx214_cur
     .local pmc match
     .lex "$/", match
-    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:
+    length rx214_eos, rx214_tgt
+    gt rx214_pos, rx214_eos, rx214_done
+    set rx214_off, 0
+    lt rx214_pos, 2, rx214_start
+    sub rx214_off, rx214_pos, 1
+    substr rx214_tgt, rx214_tgt, rx214_off
+  rx214_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan209_done
-    goto rxscan209_scan
-  rxscan209_loop:
-    ($P10) = rx206_cur."from"()
+    ne $I10, -1, rxscan217_done
+    goto rxscan217_scan
+  rxscan217_loop:
+    ($P10) = rx214_cur."from"()
     inc $P10
-    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', 77
+    set rx214_pos, $P10
+    ge rx214_pos, rx214_eos, rxscan217_done
+  rxscan217_scan:
+    set_addr $I10, rxscan217_loop
+    rx214_cur."!mark_push"(0, rx214_pos, $I10)
+  rxscan217_done:
+.annotate 'line', 79
   # rx enumcharlist negate=0 zerowidth
-    ge rx206_pos, rx206_eos, rx206_fail
-    sub $I10, rx206_pos, rx206_off
-    substr $S10, rx206_tgt, $I10, 1
+    ge rx214_pos, rx214_eos, rx214_fail
+    sub $I10, rx214_pos, rx214_off
+    substr $S10, rx214_tgt, $I10, 1
     index $I11, "'", $S10
-    lt $I11, 0, rx206_fail
+    lt $I11, 0, rx214_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx206_cur."!cursor_pos"(rx206_pos)
-    $P10 = rx206_cur."quote_EXPR"(":q")
-    unless $P10, rx206_fail
-    rx206_cur."!mark_push"(0, -1, 0, $P10)
+    rx214_cur."!cursor_pos"(rx214_pos)
+    $P10 = rx214_cur."quote_EXPR"(":q")
+    unless $P10, rx214_fail
+    rx214_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx206_pos = $P10."pos"()
+    rx214_pos = $P10."pos"()
   # rx pass
-    rx206_cur."!cursor_pass"(rx206_pos, "metachar:sym<'>")
-    rx206_cur."!cursor_debug"("PASS  ", "metachar:sym<'>", " at pos=", rx206_pos)
-    .return (rx206_cur)
-  rx206_fail:
+    rx214_cur."!cursor_pass"(rx214_pos, "metachar:sym<'>")
+    rx214_cur."!cursor_debug"("PASS  ", "metachar:sym<'>", " at pos=", rx214_pos)
+    .return (rx214_cur)
+  rx214_fail:
 .annotate 'line', 3
-    (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0)
-    lt rx206_pos, -1, rx206_done
-    eq rx206_pos, -1, rx206_fail
+    (rx214_rep, rx214_pos, $I10, $P10) = rx214_cur."!mark_fail"(0)
+    lt rx214_pos, -1, rx214_done
+    eq rx214_pos, -1, rx214_fail
     jump $I10
-  rx206_done:
-    rx206_cur."!cursor_fail"()
-    rx206_cur."!cursor_debug"("FAIL  ", "metachar:sym<'>")
-    .return (rx206_cur)
+  rx214_done:
+    rx214_cur."!cursor_fail"()
+    rx214_cur."!cursor_debug"("FAIL  ", "metachar:sym<'>")
+    .return (rx214_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>"  :subid("56_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<'>"  :subid("58_1277356887.58177") :method
 .annotate 'line', 3
-    new $P208, "ResizablePMCArray"
-    push $P208, "'"
-    .return ($P208)
+    new $P216, "ResizablePMCArray"
+    push $P216, "'"
+    .return ($P216)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">"  :subid("57_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<\">"  :subid("59_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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) = self."!cursor_start"()
-    rx211_cur."!cursor_debug"("START ", "metachar:sym<\">")
-    .lex unicode:"$\x{a2}", rx211_cur
+    .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 ", "metachar:sym<\">")
+    .lex unicode:"$\x{a2}", rx219_cur
     .local pmc match
     .lex "$/", match
-    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:
+    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, rxscan214_done
-    goto rxscan214_scan
-  rxscan214_loop:
-    ($P10) = rx211_cur."from"()
+    ne $I10, -1, rxscan222_done
+    goto rxscan222_scan
+  rxscan222_loop:
+    ($P10) = rx219_cur."from"()
     inc $P10
-    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', 78
+    set rx219_pos, $P10
+    ge rx219_pos, rx219_eos, rxscan222_done
+  rxscan222_scan:
+    set_addr $I10, rxscan222_loop
+    rx219_cur."!mark_push"(0, rx219_pos, $I10)
+  rxscan222_done:
+.annotate 'line', 80
   # rx enumcharlist negate=0 zerowidth
-    ge rx211_pos, rx211_eos, rx211_fail
-    sub $I10, rx211_pos, rx211_off
-    substr $S10, rx211_tgt, $I10, 1
+    ge rx219_pos, rx219_eos, rx219_fail
+    sub $I10, rx219_pos, rx219_off
+    substr $S10, rx219_tgt, $I10, 1
     index $I11, "\"", $S10
-    lt $I11, 0, rx211_fail
+    lt $I11, 0, rx219_fail
   # rx subrule "quote_EXPR" subtype=capture negate=
-    rx211_cur."!cursor_pos"(rx211_pos)
-    $P10 = rx211_cur."quote_EXPR"(":qq")
-    unless $P10, rx211_fail
-    rx211_cur."!mark_push"(0, -1, 0, $P10)
+    rx219_cur."!cursor_pos"(rx219_pos)
+    $P10 = rx219_cur."quote_EXPR"(":qq")
+    unless $P10, rx219_fail
+    rx219_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quote_EXPR")
-    rx211_pos = $P10."pos"()
+    rx219_pos = $P10."pos"()
   # rx pass
-    rx211_cur."!cursor_pass"(rx211_pos, "metachar:sym<\">")
-    rx211_cur."!cursor_debug"("PASS  ", "metachar:sym<\">", " at pos=", rx211_pos)
-    .return (rx211_cur)
-  rx211_fail:
+    rx219_cur."!cursor_pass"(rx219_pos, "metachar:sym<\">")
+    rx219_cur."!cursor_debug"("PASS  ", "metachar:sym<\">", " at pos=", rx219_pos)
+    .return (rx219_cur)
+  rx219_fail:
 .annotate 'line', 3
-    (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
-    lt rx211_pos, -1, rx211_done
-    eq rx211_pos, -1, rx211_fail
+    (rx219_rep, rx219_pos, $I10, $P10) = rx219_cur."!mark_fail"(0)
+    lt rx219_pos, -1, rx219_done
+    eq rx219_pos, -1, rx219_fail
     jump $I10
-  rx211_done:
-    rx211_cur."!cursor_fail"()
-    rx211_cur."!cursor_debug"("FAIL  ", "metachar:sym<\">")
-    .return (rx211_cur)
+  rx219_done:
+    rx219_cur."!cursor_fail"()
+    rx219_cur."!cursor_debug"("FAIL  ", "metachar:sym<\">")
+    .return (rx219_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">"  :subid("58_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<\">"  :subid("60_1277356887.58177") :method
 .annotate 'line', 3
-    new $P213, "ResizablePMCArray"
-    push $P213, "\""
-    .return ($P213)
+    new $P221, "ResizablePMCArray"
+    push $P221, "\""
+    .return ($P221)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>"  :subid("59_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<.>"  :subid("61_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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) = self."!cursor_start"()
-    rx216_cur."!cursor_debug"("START ", "metachar:sym<.>")
-    .lex unicode:"$\x{a2}", rx216_cur
+    .local string rx224_tgt
+    .local int rx224_pos
+    .local int rx224_off
+    .local int rx224_eos
+    .local int rx224_rep
+    .local pmc rx224_cur
+    (rx224_cur, rx224_pos, rx224_tgt) = self."!cursor_start"()
+    rx224_cur."!cursor_debug"("START ", "metachar:sym<.>")
+    .lex unicode:"$\x{a2}", rx224_cur
     .local pmc match
     .lex "$/", match
-    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:
+    length rx224_eos, rx224_tgt
+    gt rx224_pos, rx224_eos, rx224_done
+    set rx224_off, 0
+    lt rx224_pos, 2, rx224_start
+    sub rx224_off, rx224_pos, 1
+    substr rx224_tgt, rx224_tgt, rx224_off
+  rx224_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan219_done
-    goto rxscan219_scan
-  rxscan219_loop:
-    ($P10) = rx216_cur."from"()
+    ne $I10, -1, rxscan227_done
+    goto rxscan227_scan
+  rxscan227_loop:
+    ($P10) = rx224_cur."from"()
     inc $P10
-    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', 79
+    set rx224_pos, $P10
+    ge rx224_pos, rx224_eos, rxscan227_done
+  rxscan227_scan:
+    set_addr $I10, rxscan227_loop
+    rx224_cur."!mark_push"(0, rx224_pos, $I10)
+  rxscan227_done:
+.annotate 'line', 81
   # rx subcapture "sym"
-    set_addr $I10, rxcap_220_fail
-    rx216_cur."!mark_push"(0, rx216_pos, $I10)
+    set_addr $I10, rxcap_228_fail
+    rx224_cur."!mark_push"(0, rx224_pos, $I10)
   # rx literal  "."
-    add $I11, rx216_pos, 1
-    gt $I11, rx216_eos, rx216_fail
-    sub $I11, rx216_pos, rx216_off
-    substr $S10, rx216_tgt, $I11, 1
-    ne $S10, ".", rx216_fail
-    add rx216_pos, 1
-    set_addr $I10, rxcap_220_fail
-    ($I12, $I11) = rx216_cur."!mark_peek"($I10)
-    rx216_cur."!cursor_pos"($I11)
-    ($P10) = rx216_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx216_pos, "")
-    rx216_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx224_pos, 1
+    gt $I11, rx224_eos, rx224_fail
+    sub $I11, rx224_pos, rx224_off
+    substr $S10, rx224_tgt, $I11, 1
+    ne $S10, ".", rx224_fail
+    add rx224_pos, 1
+    set_addr $I10, rxcap_228_fail
+    ($I12, $I11) = rx224_cur."!mark_peek"($I10)
+    rx224_cur."!cursor_pos"($I11)
+    ($P10) = rx224_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx224_pos, "")
+    rx224_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_220_done
-  rxcap_220_fail:
-    goto rx216_fail
-  rxcap_220_done:
+    goto rxcap_228_done
+  rxcap_228_fail:
+    goto rx224_fail
+  rxcap_228_done:
   # rx pass
-    rx216_cur."!cursor_pass"(rx216_pos, "metachar:sym<.>")
-    rx216_cur."!cursor_debug"("PASS  ", "metachar:sym<.>", " at pos=", rx216_pos)
-    .return (rx216_cur)
-  rx216_fail:
+    rx224_cur."!cursor_pass"(rx224_pos, "metachar:sym<.>")
+    rx224_cur."!cursor_debug"("PASS  ", "metachar:sym<.>", " at pos=", rx224_pos)
+    .return (rx224_cur)
+  rx224_fail:
 .annotate 'line', 3
-    (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
-    lt rx216_pos, -1, rx216_done
-    eq rx216_pos, -1, rx216_fail
+    (rx224_rep, rx224_pos, $I10, $P10) = rx224_cur."!mark_fail"(0)
+    lt rx224_pos, -1, rx224_done
+    eq rx224_pos, -1, rx224_fail
     jump $I10
-  rx216_done:
-    rx216_cur."!cursor_fail"()
-    rx216_cur."!cursor_debug"("FAIL  ", "metachar:sym<.>")
-    .return (rx216_cur)
+  rx224_done:
+    rx224_cur."!cursor_fail"()
+    rx224_cur."!cursor_debug"("FAIL  ", "metachar:sym<.>")
+    .return (rx224_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>"  :subid("60_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<.>"  :subid("62_1277356887.58177") :method
 .annotate 'line', 3
-    new $P218, "ResizablePMCArray"
-    push $P218, "."
-    .return ($P218)
+    new $P226, "ResizablePMCArray"
+    push $P226, "."
+    .return ($P226)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>"  :subid("61_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<^>"  :subid("63_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx222_tgt
-    .local int rx222_pos
-    .local int rx222_off
-    .local int rx222_eos
-    .local int rx222_rep
-    .local pmc rx222_cur
-    (rx222_cur, rx222_pos, rx222_tgt) = self."!cursor_start"()
-    rx222_cur."!cursor_debug"("START ", "metachar:sym<^>")
-    .lex unicode:"$\x{a2}", rx222_cur
+    .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 ", "metachar:sym<^>")
+    .lex unicode:"$\x{a2}", rx230_cur
     .local pmc match
     .lex "$/", match
-    length rx222_eos, rx222_tgt
-    gt rx222_pos, rx222_eos, rx222_done
-    set rx222_off, 0
-    lt rx222_pos, 2, rx222_start
-    sub rx222_off, rx222_pos, 1
-    substr rx222_tgt, rx222_tgt, rx222_off
-  rx222_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan225_done
-    goto rxscan225_scan
-  rxscan225_loop:
-    ($P10) = rx222_cur."from"()
+    ne $I10, -1, rxscan233_done
+    goto rxscan233_scan
+  rxscan233_loop:
+    ($P10) = rx230_cur."from"()
     inc $P10
-    set rx222_pos, $P10
-    ge rx222_pos, rx222_eos, rxscan225_done
-  rxscan225_scan:
-    set_addr $I10, rxscan225_loop
-    rx222_cur."!mark_push"(0, rx222_pos, $I10)
-  rxscan225_done:
-.annotate 'line', 80
+    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:
+.annotate 'line', 82
   # rx subcapture "sym"
-    set_addr $I10, rxcap_226_fail
-    rx222_cur."!mark_push"(0, rx222_pos, $I10)
+    set_addr $I10, rxcap_234_fail
+    rx230_cur."!mark_push"(0, rx230_pos, $I10)
   # rx literal  "^"
-    add $I11, rx222_pos, 1
-    gt $I11, rx222_eos, rx222_fail
-    sub $I11, rx222_pos, rx222_off
-    substr $S10, rx222_tgt, $I11, 1
-    ne $S10, "^", rx222_fail
-    add rx222_pos, 1
-    set_addr $I10, rxcap_226_fail
-    ($I12, $I11) = rx222_cur."!mark_peek"($I10)
-    rx222_cur."!cursor_pos"($I11)
-    ($P10) = rx222_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx222_pos, "")
-    rx222_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx230_pos, 1
+    gt $I11, rx230_eos, rx230_fail
+    sub $I11, rx230_pos, rx230_off
+    substr $S10, rx230_tgt, $I11, 1
+    ne $S10, "^", rx230_fail
+    add rx230_pos, 1
+    set_addr $I10, rxcap_234_fail
+    ($I12, $I11) = rx230_cur."!mark_peek"($I10)
+    rx230_cur."!cursor_pos"($I11)
+    ($P10) = rx230_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx230_pos, "")
+    rx230_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_226_done
-  rxcap_226_fail:
-    goto rx222_fail
-  rxcap_226_done:
+    goto rxcap_234_done
+  rxcap_234_fail:
+    goto rx230_fail
+  rxcap_234_done:
   # rx pass
-    rx222_cur."!cursor_pass"(rx222_pos, "metachar:sym<^>")
-    rx222_cur."!cursor_debug"("PASS  ", "metachar:sym<^>", " at pos=", rx222_pos)
-    .return (rx222_cur)
-  rx222_fail:
+    rx230_cur."!cursor_pass"(rx230_pos, "metachar:sym<^>")
+    rx230_cur."!cursor_debug"("PASS  ", "metachar:sym<^>", " at pos=", rx230_pos)
+    .return (rx230_cur)
+  rx230_fail:
 .annotate 'line', 3
-    (rx222_rep, rx222_pos, $I10, $P10) = rx222_cur."!mark_fail"(0)
-    lt rx222_pos, -1, rx222_done
-    eq rx222_pos, -1, rx222_fail
+    (rx230_rep, rx230_pos, $I10, $P10) = rx230_cur."!mark_fail"(0)
+    lt rx230_pos, -1, rx230_done
+    eq rx230_pos, -1, rx230_fail
     jump $I10
-  rx222_done:
-    rx222_cur."!cursor_fail"()
-    rx222_cur."!cursor_debug"("FAIL  ", "metachar:sym<^>")
-    .return (rx222_cur)
+  rx230_done:
+    rx230_cur."!cursor_fail"()
+    rx230_cur."!cursor_debug"("FAIL  ", "metachar:sym<^>")
+    .return (rx230_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>"  :subid("62_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<^>"  :subid("64_1277356887.58177") :method
 .annotate 'line', 3
-    new $P224, "ResizablePMCArray"
-    push $P224, "^"
-    .return ($P224)
+    new $P232, "ResizablePMCArray"
+    push $P232, "^"
+    .return ($P232)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>"  :subid("63_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<^^>"  :subid("65_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx228_tgt
-    .local int rx228_pos
-    .local int rx228_off
-    .local int rx228_eos
-    .local int rx228_rep
-    .local pmc rx228_cur
-    (rx228_cur, rx228_pos, rx228_tgt) = self."!cursor_start"()
-    rx228_cur."!cursor_debug"("START ", "metachar:sym<^^>")
-    .lex unicode:"$\x{a2}", rx228_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) = self."!cursor_start"()
+    rx236_cur."!cursor_debug"("START ", "metachar:sym<^^>")
+    .lex unicode:"$\x{a2}", rx236_cur
     .local pmc match
     .lex "$/", match
-    length rx228_eos, rx228_tgt
-    gt rx228_pos, rx228_eos, rx228_done
-    set rx228_off, 0
-    lt rx228_pos, 2, rx228_start
-    sub rx228_off, rx228_pos, 1
-    substr rx228_tgt, rx228_tgt, rx228_off
-  rx228_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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan231_done
-    goto rxscan231_scan
-  rxscan231_loop:
-    ($P10) = rx228_cur."from"()
+    ne $I10, -1, rxscan239_done
+    goto rxscan239_scan
+  rxscan239_loop:
+    ($P10) = rx236_cur."from"()
     inc $P10
-    set rx228_pos, $P10
-    ge rx228_pos, rx228_eos, rxscan231_done
-  rxscan231_scan:
-    set_addr $I10, rxscan231_loop
-    rx228_cur."!mark_push"(0, rx228_pos, $I10)
-  rxscan231_done:
-.annotate 'line', 81
+    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', 83
   # rx subcapture "sym"
-    set_addr $I10, rxcap_232_fail
-    rx228_cur."!mark_push"(0, rx228_pos, $I10)
+    set_addr $I10, rxcap_240_fail
+    rx236_cur."!mark_push"(0, rx236_pos, $I10)
   # rx literal  "^^"
-    add $I11, rx228_pos, 2
-    gt $I11, rx228_eos, rx228_fail
-    sub $I11, rx228_pos, rx228_off
-    substr $S10, rx228_tgt, $I11, 2
-    ne $S10, "^^", rx228_fail
-    add rx228_pos, 2
-    set_addr $I10, rxcap_232_fail
-    ($I12, $I11) = rx228_cur."!mark_peek"($I10)
-    rx228_cur."!cursor_pos"($I11)
-    ($P10) = rx228_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx228_pos, "")
-    rx228_cur."!mark_push"(0, -1, 0, $P10)
+    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, "^^", rx236_fail
+    add rx236_pos, 2
+    set_addr $I10, rxcap_240_fail
+    ($I12, $I11) = rx236_cur."!mark_peek"($I10)
+    rx236_cur."!cursor_pos"($I11)
+    ($P10) = rx236_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx236_pos, "")
+    rx236_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_232_done
-  rxcap_232_fail:
-    goto rx228_fail
-  rxcap_232_done:
+    goto rxcap_240_done
+  rxcap_240_fail:
+    goto rx236_fail
+  rxcap_240_done:
   # rx pass
-    rx228_cur."!cursor_pass"(rx228_pos, "metachar:sym<^^>")
-    rx228_cur."!cursor_debug"("PASS  ", "metachar:sym<^^>", " at pos=", rx228_pos)
-    .return (rx228_cur)
-  rx228_fail:
+    rx236_cur."!cursor_pass"(rx236_pos, "metachar:sym<^^>")
+    rx236_cur."!cursor_debug"("PASS  ", "metachar:sym<^^>", " at pos=", rx236_pos)
+    .return (rx236_cur)
+  rx236_fail:
 .annotate 'line', 3
-    (rx228_rep, rx228_pos, $I10, $P10) = rx228_cur."!mark_fail"(0)
-    lt rx228_pos, -1, rx228_done
-    eq rx228_pos, -1, rx228_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
-  rx228_done:
-    rx228_cur."!cursor_fail"()
-    rx228_cur."!cursor_debug"("FAIL  ", "metachar:sym<^^>")
-    .return (rx228_cur)
+  rx236_done:
+    rx236_cur."!cursor_fail"()
+    rx236_cur."!cursor_debug"("FAIL  ", "metachar:sym<^^>")
+    .return (rx236_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>"  :subid("64_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<^^>"  :subid("66_1277356887.58177") :method
 .annotate 'line', 3
-    new $P230, "ResizablePMCArray"
-    push $P230, "^^"
-    .return ($P230)
+    new $P238, "ResizablePMCArray"
+    push $P238, "^^"
+    .return ($P238)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>"  :subid("65_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<$>"  :subid("67_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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 ", "metachar:sym<$>")
-    .lex unicode:"$\x{a2}", rx234_cur
+    .local string rx242_tgt
+    .local int rx242_pos
+    .local int rx242_off
+    .local int rx242_eos
+    .local int rx242_rep
+    .local pmc rx242_cur
+    (rx242_cur, rx242_pos, rx242_tgt) = self."!cursor_start"()
+    rx242_cur."!cursor_debug"("START ", "metachar:sym<$>")
+    .lex unicode:"$\x{a2}", rx242_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 rx242_eos, rx242_tgt
+    gt rx242_pos, rx242_eos, rx242_done
+    set rx242_off, 0
+    lt rx242_pos, 2, rx242_start
+    sub rx242_off, rx242_pos, 1
+    substr rx242_tgt, rx242_tgt, rx242_off
+  rx242_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan237_done
-    goto rxscan237_scan
-  rxscan237_loop:
-    ($P10) = rx234_cur."from"()
+    ne $I10, -1, rxscan245_done
+    goto rxscan245_scan
+  rxscan245_loop:
+    ($P10) = rx242_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:
-.annotate 'line', 82
+    set rx242_pos, $P10
+    ge rx242_pos, rx242_eos, rxscan245_done
+  rxscan245_scan:
+    set_addr $I10, rxscan245_loop
+    rx242_cur."!mark_push"(0, rx242_pos, $I10)
+  rxscan245_done:
+.annotate 'line', 84
   # rx subcapture "sym"
-    set_addr $I10, rxcap_238_fail
-    rx234_cur."!mark_push"(0, rx234_pos, $I10)
+    set_addr $I10, rxcap_246_fail
+    rx242_cur."!mark_push"(0, rx242_pos, $I10)
   # rx literal  "$"
-    add $I11, rx234_pos, 1
-    gt $I11, rx234_eos, rx234_fail
-    sub $I11, rx234_pos, rx234_off
-    substr $S10, rx234_tgt, $I11, 1
-    ne $S10, "$", rx234_fail
-    add rx234_pos, 1
-    set_addr $I10, rxcap_238_fail
-    ($I12, $I11) = rx234_cur."!mark_peek"($I10)
-    rx234_cur."!cursor_pos"($I11)
-    ($P10) = rx234_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx234_pos, "")
-    rx234_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx242_pos, 1
+    gt $I11, rx242_eos, rx242_fail
+    sub $I11, rx242_pos, rx242_off
+    substr $S10, rx242_tgt, $I11, 1
+    ne $S10, "$", rx242_fail
+    add rx242_pos, 1
+    set_addr $I10, rxcap_246_fail
+    ($I12, $I11) = rx242_cur."!mark_peek"($I10)
+    rx242_cur."!cursor_pos"($I11)
+    ($P10) = rx242_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx242_pos, "")
+    rx242_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_238_done
-  rxcap_238_fail:
-    goto rx234_fail
-  rxcap_238_done:
+    goto rxcap_246_done
+  rxcap_246_fail:
+    goto rx242_fail
+  rxcap_246_done:
   # rx pass
-    rx234_cur."!cursor_pass"(rx234_pos, "metachar:sym<$>")
-    rx234_cur."!cursor_debug"("PASS  ", "metachar:sym<$>", " at pos=", rx234_pos)
-    .return (rx234_cur)
-  rx234_fail:
+    rx242_cur."!cursor_pass"(rx242_pos, "metachar:sym<$>")
+    rx242_cur."!cursor_debug"("PASS  ", "metachar:sym<$>", " at pos=", rx242_pos)
+    .return (rx242_cur)
+  rx242_fail:
 .annotate 'line', 3
-    (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0)
-    lt rx234_pos, -1, rx234_done
-    eq rx234_pos, -1, rx234_fail
+    (rx242_rep, rx242_pos, $I10, $P10) = rx242_cur."!mark_fail"(0)
+    lt rx242_pos, -1, rx242_done
+    eq rx242_pos, -1, rx242_fail
     jump $I10
-  rx234_done:
-    rx234_cur."!cursor_fail"()
-    rx234_cur."!cursor_debug"("FAIL  ", "metachar:sym<$>")
-    .return (rx234_cur)
+  rx242_done:
+    rx242_cur."!cursor_fail"()
+    rx242_cur."!cursor_debug"("FAIL  ", "metachar:sym<$>")
+    .return (rx242_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>"  :subid("66_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<$>"  :subid("68_1277356887.58177") :method
 .annotate 'line', 3
-    new $P236, "ResizablePMCArray"
-    push $P236, "$"
-    .return ($P236)
+    new $P244, "ResizablePMCArray"
+    push $P244, "$"
+    .return ($P244)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>"  :subid("67_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<$$>"  :subid("69_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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 ", "metachar:sym<$$>")
-    .lex unicode:"$\x{a2}", rx240_cur
+    .local string rx248_tgt
+    .local int rx248_pos
+    .local int rx248_off
+    .local int rx248_eos
+    .local int rx248_rep
+    .local pmc rx248_cur
+    (rx248_cur, rx248_pos, rx248_tgt) = self."!cursor_start"()
+    rx248_cur."!cursor_debug"("START ", "metachar:sym<$$>")
+    .lex unicode:"$\x{a2}", rx248_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 rx248_eos, rx248_tgt
+    gt rx248_pos, rx248_eos, rx248_done
+    set rx248_off, 0
+    lt rx248_pos, 2, rx248_start
+    sub rx248_off, rx248_pos, 1
+    substr rx248_tgt, rx248_tgt, rx248_off
+  rx248_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan243_done
-    goto rxscan243_scan
-  rxscan243_loop:
-    ($P10) = rx240_cur."from"()
+    ne $I10, -1, rxscan251_done
+    goto rxscan251_scan
+  rxscan251_loop:
+    ($P10) = rx248_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:
-.annotate 'line', 83
+    set rx248_pos, $P10
+    ge rx248_pos, rx248_eos, rxscan251_done
+  rxscan251_scan:
+    set_addr $I10, rxscan251_loop
+    rx248_cur."!mark_push"(0, rx248_pos, $I10)
+  rxscan251_done:
+.annotate 'line', 85
   # rx subcapture "sym"
-    set_addr $I10, rxcap_244_fail
-    rx240_cur."!mark_push"(0, rx240_pos, $I10)
+    set_addr $I10, rxcap_252_fail
+    rx248_cur."!mark_push"(0, rx248_pos, $I10)
   # rx literal  "$$"
-    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, "$$", rx240_fail
-    add rx240_pos, 2
-    set_addr $I10, rxcap_244_fail
-    ($I12, $I11) = rx240_cur."!mark_peek"($I10)
-    rx240_cur."!cursor_pos"($I11)
-    ($P10) = rx240_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx240_pos, "")
-    rx240_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx248_pos, 2
+    gt $I11, rx248_eos, rx248_fail
+    sub $I11, rx248_pos, rx248_off
+    substr $S10, rx248_tgt, $I11, 2
+    ne $S10, "$$", rx248_fail
+    add rx248_pos, 2
+    set_addr $I10, rxcap_252_fail
+    ($I12, $I11) = rx248_cur."!mark_peek"($I10)
+    rx248_cur."!cursor_pos"($I11)
+    ($P10) = rx248_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx248_pos, "")
+    rx248_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_244_done
-  rxcap_244_fail:
-    goto rx240_fail
-  rxcap_244_done:
+    goto rxcap_252_done
+  rxcap_252_fail:
+    goto rx248_fail
+  rxcap_252_done:
   # rx pass
-    rx240_cur."!cursor_pass"(rx240_pos, "metachar:sym<$$>")
-    rx240_cur."!cursor_debug"("PASS  ", "metachar:sym<$$>", " at pos=", rx240_pos)
-    .return (rx240_cur)
-  rx240_fail:
+    rx248_cur."!cursor_pass"(rx248_pos, "metachar:sym<$$>")
+    rx248_cur."!cursor_debug"("PASS  ", "metachar:sym<$$>", " at pos=", rx248_pos)
+    .return (rx248_cur)
+  rx248_fail:
 .annotate 'line', 3
-    (rx240_rep, rx240_pos, $I10, $P10) = rx240_cur."!mark_fail"(0)
-    lt rx240_pos, -1, rx240_done
-    eq rx240_pos, -1, rx240_fail
+    (rx248_rep, rx248_pos, $I10, $P10) = rx248_cur."!mark_fail"(0)
+    lt rx248_pos, -1, rx248_done
+    eq rx248_pos, -1, rx248_fail
     jump $I10
-  rx240_done:
-    rx240_cur."!cursor_fail"()
-    rx240_cur."!cursor_debug"("FAIL  ", "metachar:sym<$$>")
-    .return (rx240_cur)
+  rx248_done:
+    rx248_cur."!cursor_fail"()
+    rx248_cur."!cursor_debug"("FAIL  ", "metachar:sym<$$>")
+    .return (rx248_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>"  :subid("68_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<$$>"  :subid("70_1277356887.58177") :method
 .annotate 'line', 3
-    new $P242, "ResizablePMCArray"
-    push $P242, "$$"
-    .return ($P242)
+    new $P250, "ResizablePMCArray"
+    push $P250, "$$"
+    .return ($P250)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>"  :subid("69_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<:::>"  :subid("71_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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) = self."!cursor_start"()
-    rx246_cur."!cursor_debug"("START ", "metachar:sym<:::>")
-    .lex unicode:"$\x{a2}", rx246_cur
+    .local string rx254_tgt
+    .local int rx254_pos
+    .local int rx254_off
+    .local int rx254_eos
+    .local int rx254_rep
+    .local pmc rx254_cur
+    (rx254_cur, rx254_pos, rx254_tgt) = self."!cursor_start"()
+    rx254_cur."!cursor_debug"("START ", "metachar:sym<:::>")
+    .lex unicode:"$\x{a2}", rx254_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:
+    length rx254_eos, rx254_tgt
+    gt rx254_pos, rx254_eos, rx254_done
+    set rx254_off, 0
+    lt rx254_pos, 2, rx254_start
+    sub rx254_off, rx254_pos, 1
+    substr rx254_tgt, rx254_tgt, rx254_off
+  rx254_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan250_done
-    goto rxscan250_scan
-  rxscan250_loop:
-    ($P10) = rx246_cur."from"()
+    ne $I10, -1, rxscan258_done
+    goto rxscan258_scan
+  rxscan258_loop:
+    ($P10) = rx254_cur."from"()
     inc $P10
-    set rx246_pos, $P10
-    ge rx246_pos, rx246_eos, rxscan250_done
-  rxscan250_scan:
-    set_addr $I10, rxscan250_loop
-    rx246_cur."!mark_push"(0, rx246_pos, $I10)
-  rxscan250_done:
-.annotate 'line', 84
+    set rx254_pos, $P10
+    ge rx254_pos, rx254_eos, rxscan258_done
+  rxscan258_scan:
+    set_addr $I10, rxscan258_loop
+    rx254_cur."!mark_push"(0, rx254_pos, $I10)
+  rxscan258_done:
+.annotate 'line', 86
   # rx subcapture "sym"
-    set_addr $I10, rxcap_251_fail
-    rx246_cur."!mark_push"(0, rx246_pos, $I10)
+    set_addr $I10, rxcap_259_fail
+    rx254_cur."!mark_push"(0, rx254_pos, $I10)
   # rx literal  ":::"
-    add $I11, rx246_pos, 3
-    gt $I11, rx246_eos, rx246_fail
-    sub $I11, rx246_pos, rx246_off
-    substr $S10, rx246_tgt, $I11, 3
-    ne $S10, ":::", rx246_fail
-    add rx246_pos, 3
-    set_addr $I10, rxcap_251_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)
+    add $I11, rx254_pos, 3
+    gt $I11, rx254_eos, rx254_fail
+    sub $I11, rx254_pos, rx254_off
+    substr $S10, rx254_tgt, $I11, 3
+    ne $S10, ":::", rx254_fail
+    add rx254_pos, 3
+    set_addr $I10, rxcap_259_fail
+    ($I12, $I11) = rx254_cur."!mark_peek"($I10)
+    rx254_cur."!cursor_pos"($I11)
+    ($P10) = rx254_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx254_pos, "")
+    rx254_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_251_done
-  rxcap_251_fail:
-    goto rx246_fail
-  rxcap_251_done:
+    goto rxcap_259_done
+  rxcap_259_fail:
+    goto rx254_fail
+  rxcap_259_done:
   # rx subrule "panic" subtype=method negate=
-    rx246_cur."!cursor_pos"(rx246_pos)
-    $P10 = rx246_cur."panic"("::: not yet implemented")
-    unless $P10, rx246_fail
-    rx246_pos = $P10."pos"()
+    rx254_cur."!cursor_pos"(rx254_pos)
+    $P10 = rx254_cur."panic"("::: not yet implemented")
+    unless $P10, rx254_fail
+    rx254_pos = $P10."pos"()
   # rx pass
-    rx246_cur."!cursor_pass"(rx246_pos, "metachar:sym<:::>")
-    rx246_cur."!cursor_debug"("PASS  ", "metachar:sym<:::>", " at pos=", rx246_pos)
-    .return (rx246_cur)
-  rx246_fail:
+    rx254_cur."!cursor_pass"(rx254_pos, "metachar:sym<:::>")
+    rx254_cur."!cursor_debug"("PASS  ", "metachar:sym<:::>", " at pos=", rx254_pos)
+    .return (rx254_cur)
+  rx254_fail:
 .annotate 'line', 3
-    (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
-    lt rx246_pos, -1, rx246_done
-    eq rx246_pos, -1, rx246_fail
+    (rx254_rep, rx254_pos, $I10, $P10) = rx254_cur."!mark_fail"(0)
+    lt rx254_pos, -1, rx254_done
+    eq rx254_pos, -1, rx254_fail
     jump $I10
-  rx246_done:
-    rx246_cur."!cursor_fail"()
-    rx246_cur."!cursor_debug"("FAIL  ", "metachar:sym<:::>")
-    .return (rx246_cur)
+  rx254_done:
+    rx254_cur."!cursor_fail"()
+    rx254_cur."!cursor_debug"("FAIL  ", "metachar:sym<:::>")
+    .return (rx254_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>"  :subid("70_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<:::>"  :subid("72_1277356887.58177") :method
 .annotate 'line', 3
-    $P248 = self."!PREFIX__!subrule"("panic", ":::")
-    new $P249, "ResizablePMCArray"
-    push $P249, $P248
-    .return ($P249)
+    $P256 = self."!PREFIX__!subrule"("panic", ":::")
+    new $P257, "ResizablePMCArray"
+    push $P257, $P256
+    .return ($P257)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>"  :subid("71_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<::>"  :subid("73_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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 ", "metachar:sym<::>")
-    .lex unicode:"$\x{a2}", rx253_cur
+    .local string rx261_tgt
+    .local int rx261_pos
+    .local int rx261_off
+    .local int rx261_eos
+    .local int rx261_rep
+    .local pmc rx261_cur
+    (rx261_cur, rx261_pos, rx261_tgt) = self."!cursor_start"()
+    rx261_cur."!cursor_debug"("START ", "metachar:sym<::>")
+    .lex unicode:"$\x{a2}", rx261_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:
+    length rx261_eos, rx261_tgt
+    gt rx261_pos, rx261_eos, rx261_done
+    set rx261_off, 0
+    lt rx261_pos, 2, rx261_start
+    sub rx261_off, rx261_pos, 1
+    substr rx261_tgt, rx261_tgt, rx261_off
+  rx261_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan257_done
-    goto rxscan257_scan
-  rxscan257_loop:
-    ($P10) = rx253_cur."from"()
+    ne $I10, -1, rxscan265_done
+    goto rxscan265_scan
+  rxscan265_loop:
+    ($P10) = rx261_cur."from"()
     inc $P10
-    set rx253_pos, $P10
-    ge rx253_pos, rx253_eos, rxscan257_done
-  rxscan257_scan:
-    set_addr $I10, rxscan257_loop
-    rx253_cur."!mark_push"(0, rx253_pos, $I10)
-  rxscan257_done:
-.annotate 'line', 85
+    set rx261_pos, $P10
+    ge rx261_pos, rx261_eos, rxscan265_done
+  rxscan265_scan:
+    set_addr $I10, rxscan265_loop
+    rx261_cur."!mark_push"(0, rx261_pos, $I10)
+  rxscan265_done:
+.annotate 'line', 87
   # rx subcapture "sym"
-    set_addr $I10, rxcap_258_fail
-    rx253_cur."!mark_push"(0, rx253_pos, $I10)
+    set_addr $I10, rxcap_266_fail
+    rx261_cur."!mark_push"(0, rx261_pos, $I10)
   # rx literal  "::"
-    add $I11, rx253_pos, 2
-    gt $I11, rx253_eos, rx253_fail
-    sub $I11, rx253_pos, rx253_off
-    substr $S10, rx253_tgt, $I11, 2
-    ne $S10, "::", rx253_fail
-    add rx253_pos, 2
-    set_addr $I10, rxcap_258_fail
-    ($I12, $I11) = rx253_cur."!mark_peek"($I10)
-    rx253_cur."!cursor_pos"($I11)
-    ($P10) = rx253_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx253_pos, "")
-    rx253_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx261_pos, 2
+    gt $I11, rx261_eos, rx261_fail
+    sub $I11, rx261_pos, rx261_off
+    substr $S10, rx261_tgt, $I11, 2
+    ne $S10, "::", rx261_fail
+    add rx261_pos, 2
+    set_addr $I10, rxcap_266_fail
+    ($I12, $I11) = rx261_cur."!mark_peek"($I10)
+    rx261_cur."!cursor_pos"($I11)
+    ($P10) = rx261_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx261_pos, "")
+    rx261_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_258_done
-  rxcap_258_fail:
-    goto rx253_fail
-  rxcap_258_done:
+    goto rxcap_266_done
+  rxcap_266_fail:
+    goto rx261_fail
+  rxcap_266_done:
   # rx subrule "panic" subtype=method negate=
-    rx253_cur."!cursor_pos"(rx253_pos)
-    $P10 = rx253_cur."panic"(":: not yet implemented")
-    unless $P10, rx253_fail
-    rx253_pos = $P10."pos"()
+    rx261_cur."!cursor_pos"(rx261_pos)
+    $P10 = rx261_cur."panic"(":: not yet implemented")
+    unless $P10, rx261_fail
+    rx261_pos = $P10."pos"()
   # rx pass
-    rx253_cur."!cursor_pass"(rx253_pos, "metachar:sym<::>")
-    rx253_cur."!cursor_debug"("PASS  ", "metachar:sym<::>", " at pos=", rx253_pos)
-    .return (rx253_cur)
-  rx253_fail:
+    rx261_cur."!cursor_pass"(rx261_pos, "metachar:sym<::>")
+    rx261_cur."!cursor_debug"("PASS  ", "metachar:sym<::>", " at pos=", rx261_pos)
+    .return (rx261_cur)
+  rx261_fail:
 .annotate 'line', 3
-    (rx253_rep, rx253_pos, $I10, $P10) = rx253_cur."!mark_fail"(0)
-    lt rx253_pos, -1, rx253_done
-    eq rx253_pos, -1, rx253_fail
+    (rx261_rep, rx261_pos, $I10, $P10) = rx261_cur."!mark_fail"(0)
+    lt rx261_pos, -1, rx261_done
+    eq rx261_pos, -1, rx261_fail
     jump $I10
-  rx253_done:
-    rx253_cur."!cursor_fail"()
-    rx253_cur."!cursor_debug"("FAIL  ", "metachar:sym<::>")
-    .return (rx253_cur)
+  rx261_done:
+    rx261_cur."!cursor_fail"()
+    rx261_cur."!cursor_debug"("FAIL  ", "metachar:sym<::>")
+    .return (rx261_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>"  :subid("72_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<::>"  :subid("74_1277356887.58177") :method
 .annotate 'line', 3
-    $P255 = self."!PREFIX__!subrule"("panic", "::")
-    new $P256, "ResizablePMCArray"
-    push $P256, $P255
-    .return ($P256)
+    $P263 = self."!PREFIX__!subrule"("panic", "::")
+    new $P264, "ResizablePMCArray"
+    push $P264, $P263
+    .return ($P264)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>"  :subid("73_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<lwb>"  :subid("75_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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 ", "metachar:sym<lwb>")
-    .lex unicode:"$\x{a2}", rx260_cur
+    .local string rx268_tgt
+    .local int rx268_pos
+    .local int rx268_off
+    .local int rx268_eos
+    .local int rx268_rep
+    .local pmc rx268_cur
+    (rx268_cur, rx268_pos, rx268_tgt) = self."!cursor_start"()
+    rx268_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
+    .lex unicode:"$\x{a2}", rx268_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 rx268_eos, rx268_tgt
+    gt rx268_pos, rx268_eos, rx268_done
+    set rx268_off, 0
+    lt rx268_pos, 2, rx268_start
+    sub rx268_off, rx268_pos, 1
+    substr rx268_tgt, rx268_tgt, rx268_off
+  rx268_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan263_done
-    goto rxscan263_scan
-  rxscan263_loop:
-    ($P10) = rx260_cur."from"()
+    ne $I10, -1, rxscan271_done
+    goto rxscan271_scan
+  rxscan271_loop:
+    ($P10) = rx268_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:
-.annotate 'line', 86
+    set rx268_pos, $P10
+    ge rx268_pos, rx268_eos, rxscan271_done
+  rxscan271_scan:
+    set_addr $I10, rxscan271_loop
+    rx268_cur."!mark_push"(0, rx268_pos, $I10)
+  rxscan271_done:
+.annotate 'line', 88
   # rx subcapture "sym"
-    set_addr $I10, rxcap_265_fail
-    rx260_cur."!mark_push"(0, rx260_pos, $I10)
-  alt264_0:
-    set_addr $I10, alt264_1
-    rx260_cur."!mark_push"(0, rx260_pos, $I10)
+    set_addr $I10, rxcap_273_fail
+    rx268_cur."!mark_push"(0, rx268_pos, $I10)
+  alt272_0:
+    set_addr $I10, alt272_1
+    rx268_cur."!mark_push"(0, rx268_pos, $I10)
   # rx literal  "<<"
-    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, "<<", rx260_fail
-    add rx260_pos, 2
-    goto alt264_end
-  alt264_1:
+    add $I11, rx268_pos, 2
+    gt $I11, rx268_eos, rx268_fail
+    sub $I11, rx268_pos, rx268_off
+    substr $S10, rx268_tgt, $I11, 2
+    ne $S10, "<<", rx268_fail
+    add rx268_pos, 2
+    goto alt272_end
+  alt272_1:
   # rx literal  unicode:"\x{ab}"
-    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, unicode:"\x{ab}", rx260_fail
-    add rx260_pos, 1
-  alt264_end:
-    set_addr $I10, rxcap_265_fail
-    ($I12, $I11) = rx260_cur."!mark_peek"($I10)
-    rx260_cur."!cursor_pos"($I11)
-    ($P10) = rx260_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx260_pos, "")
-    rx260_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx268_pos, 1
+    gt $I11, rx268_eos, rx268_fail
+    sub $I11, rx268_pos, rx268_off
+    substr $S10, rx268_tgt, $I11, 1
+    ne $S10, unicode:"\x{ab}", rx268_fail
+    add rx268_pos, 1
+  alt272_end:
+    set_addr $I10, rxcap_273_fail
+    ($I12, $I11) = rx268_cur."!mark_peek"($I10)
+    rx268_cur."!cursor_pos"($I11)
+    ($P10) = rx268_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx268_pos, "")
+    rx268_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_265_done
-  rxcap_265_fail:
-    goto rx260_fail
-  rxcap_265_done:
+    goto rxcap_273_done
+  rxcap_273_fail:
+    goto rx268_fail
+  rxcap_273_done:
   # rx pass
-    rx260_cur."!cursor_pass"(rx260_pos, "metachar:sym<lwb>")
-    rx260_cur."!cursor_debug"("PASS  ", "metachar:sym<lwb>", " at pos=", rx260_pos)
-    .return (rx260_cur)
-  rx260_fail:
+    rx268_cur."!cursor_pass"(rx268_pos, "metachar:sym<lwb>")
+    rx268_cur."!cursor_debug"("PASS  ", "metachar:sym<lwb>", " at pos=", rx268_pos)
+    .return (rx268_cur)
+  rx268_fail:
 .annotate 'line', 3
-    (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
-    lt rx260_pos, -1, rx260_done
-    eq rx260_pos, -1, rx260_fail
+    (rx268_rep, rx268_pos, $I10, $P10) = rx268_cur."!mark_fail"(0)
+    lt rx268_pos, -1, rx268_done
+    eq rx268_pos, -1, rx268_fail
     jump $I10
-  rx260_done:
-    rx260_cur."!cursor_fail"()
-    rx260_cur."!cursor_debug"("FAIL  ", "metachar:sym<lwb>")
-    .return (rx260_cur)
+  rx268_done:
+    rx268_cur."!cursor_fail"()
+    rx268_cur."!cursor_debug"("FAIL  ", "metachar:sym<lwb>")
+    .return (rx268_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>"  :subid("74_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<lwb>"  :subid("76_1277356887.58177") :method
 .annotate 'line', 3
-    new $P262, "ResizablePMCArray"
-    push $P262, unicode:"\x{ab}"
-    push $P262, "<<"
-    .return ($P262)
+    new $P270, "ResizablePMCArray"
+    push $P270, unicode:"\x{ab}"
+    push $P270, "<<"
+    .return ($P270)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>"  :subid("75_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<rwb>"  :subid("77_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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 ", "metachar:sym<rwb>")
-    .lex unicode:"$\x{a2}", rx267_cur
+    .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) = self."!cursor_start"()
+    rx275_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
+    .lex unicode:"$\x{a2}", rx275_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:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan270_done
-    goto rxscan270_scan
-  rxscan270_loop:
-    ($P10) = rx267_cur."from"()
+    ne $I10, -1, rxscan278_done
+    goto rxscan278_scan
+  rxscan278_loop:
+    ($P10) = rx275_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:
-.annotate 'line', 87
+    set rx275_pos, $P10
+    ge rx275_pos, rx275_eos, rxscan278_done
+  rxscan278_scan:
+    set_addr $I10, rxscan278_loop
+    rx275_cur."!mark_push"(0, rx275_pos, $I10)
+  rxscan278_done:
+.annotate 'line', 89
   # rx subcapture "sym"
-    set_addr $I10, rxcap_272_fail
-    rx267_cur."!mark_push"(0, rx267_pos, $I10)
-  alt271_0:
-    set_addr $I10, alt271_1
-    rx267_cur."!mark_push"(0, rx267_pos, $I10)
+    set_addr $I10, rxcap_280_fail
+    rx275_cur."!mark_push"(0, rx275_pos, $I10)
+  alt279_0:
+    set_addr $I10, alt279_1
+    rx275_cur."!mark_push"(0, rx275_pos, $I10)
   # rx literal  ">>"
-    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, ">>", rx267_fail
-    add rx267_pos, 2
-    goto alt271_end
-  alt271_1:
+    add $I11, rx275_pos, 2
+    gt $I11, rx275_eos, rx275_fail
+    sub $I11, rx275_pos, rx275_off
+    substr $S10, rx275_tgt, $I11, 2
+    ne $S10, ">>", rx275_fail
+    add rx275_pos, 2
+    goto alt279_end
+  alt279_1:
   # rx literal  unicode:"\x{bb}"
-    add $I11, rx267_pos, 1
-    gt $I11, rx267_eos, rx267_fail
-    sub $I11, rx267_pos, rx267_off
-    substr $S10, rx267_tgt, $I11, 1
-    ne $S10, unicode:"\x{bb}", rx267_fail
-    add rx267_pos, 1
-  alt271_end:
-    set_addr $I10, rxcap_272_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, rx275_pos, 1
+    gt $I11, rx275_eos, rx275_fail
+    sub $I11, rx275_pos, rx275_off
+    substr $S10, rx275_tgt, $I11, 1
+    ne $S10, unicode:"\x{bb}", rx275_fail
+    add rx275_pos, 1
+  alt279_end:
+    set_addr $I10, rxcap_280_fail
+    ($I12, $I11) = rx275_cur."!mark_peek"($I10)
+    rx275_cur."!cursor_pos"($I11)
+    ($P10) = rx275_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx275_pos, "")
+    rx275_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_272_done
-  rxcap_272_fail:
-    goto rx267_fail
-  rxcap_272_done:
+    goto rxcap_280_done
+  rxcap_280_fail:
+    goto rx275_fail
+  rxcap_280_done:
   # rx pass
-    rx267_cur."!cursor_pass"(rx267_pos, "metachar:sym<rwb>")
-    rx267_cur."!cursor_debug"("PASS  ", "metachar:sym<rwb>", " at pos=", rx267_pos)
-    .return (rx267_cur)
-  rx267_fail:
+    rx275_cur."!cursor_pass"(rx275_pos, "metachar:sym<rwb>")
+    rx275_cur."!cursor_debug"("PASS  ", "metachar:sym<rwb>", " at pos=", rx275_pos)
+    .return (rx275_cur)
+  rx275_fail:
 .annotate 'line', 3
-    (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
-    lt rx267_pos, -1, rx267_done
-    eq rx267_pos, -1, rx267_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
-  rx267_done:
-    rx267_cur."!cursor_fail"()
-    rx267_cur."!cursor_debug"("FAIL  ", "metachar:sym<rwb>")
-    .return (rx267_cur)
+  rx275_done:
+    rx275_cur."!cursor_fail"()
+    rx275_cur."!cursor_debug"("FAIL  ", "metachar:sym<rwb>")
+    .return (rx275_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>"  :subid("76_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<rwb>"  :subid("78_1277356887.58177") :method
 .annotate 'line', 3
-    new $P269, "ResizablePMCArray"
-    push $P269, unicode:"\x{bb}"
-    push $P269, ">>"
-    .return ($P269)
+    new $P277, "ResizablePMCArray"
+    push $P277, unicode:"\x{bb}"
+    push $P277, ">>"
+    .return ($P277)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>"  :subid("77_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<bs>"  :subid("79_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx274_tgt
-    .local int rx274_pos
-    .local int rx274_off
-    .local int rx274_eos
-    .local int rx274_rep
-    .local pmc rx274_cur
-    (rx274_cur, rx274_pos, rx274_tgt) = self."!cursor_start"()
-    rx274_cur."!cursor_debug"("START ", "metachar:sym<bs>")
-    .lex unicode:"$\x{a2}", rx274_cur
-    .local pmc match
-    .lex "$/", match
-    length rx274_eos, rx274_tgt
-    gt rx274_pos, rx274_eos, rx274_done
-    set rx274_off, 0
-    lt rx274_pos, 2, rx274_start
-    sub rx274_off, rx274_pos, 1
-    substr rx274_tgt, rx274_tgt, rx274_off
-  rx274_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan278_done
-    goto rxscan278_scan
-  rxscan278_loop:
-    ($P10) = rx274_cur."from"()
-    inc $P10
-    set rx274_pos, $P10
-    ge rx274_pos, rx274_eos, rxscan278_done
-  rxscan278_scan:
-    set_addr $I10, rxscan278_loop
-    rx274_cur."!mark_push"(0, rx274_pos, $I10)
-  rxscan278_done:
-.annotate 'line', 88
+    .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) = self."!cursor_start"()
+    rx282_cur."!cursor_debug"("START ", "metachar:sym<bs>")
+    .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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan286_done
+    goto rxscan286_scan
+  rxscan286_loop:
+    ($P10) = rx282_cur."from"()
+    inc $P10
+    set rx282_pos, $P10
+    ge rx282_pos, rx282_eos, rxscan286_done
+  rxscan286_scan:
+    set_addr $I10, rxscan286_loop
+    rx282_cur."!mark_push"(0, rx282_pos, $I10)
+  rxscan286_done:
+.annotate 'line', 90
   # rx literal  "\\"
-    add $I11, rx274_pos, 1
-    gt $I11, rx274_eos, rx274_fail
-    sub $I11, rx274_pos, rx274_off
-    substr $S10, rx274_tgt, $I11, 1
-    ne $S10, "\\", rx274_fail
-    add rx274_pos, 1
+    add $I11, rx282_pos, 1
+    gt $I11, rx282_eos, rx282_fail
+    sub $I11, rx282_pos, rx282_off
+    substr $S10, rx282_tgt, $I11, 1
+    ne $S10, "\\", rx282_fail
+    add rx282_pos, 1
   # rx subrule "backslash" subtype=capture negate=
-    rx274_cur."!cursor_pos"(rx274_pos)
-    $P10 = rx274_cur."backslash"()
-    unless $P10, rx274_fail
-    rx274_cur."!mark_push"(0, -1, 0, $P10)
+    rx282_cur."!cursor_pos"(rx282_pos)
+    $P10 = rx282_cur."backslash"()
+    unless $P10, rx282_fail
+    rx282_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("backslash")
-    rx274_pos = $P10."pos"()
+    rx282_pos = $P10."pos"()
   # rx pass
-    rx274_cur."!cursor_pass"(rx274_pos, "metachar:sym<bs>")
-    rx274_cur."!cursor_debug"("PASS  ", "metachar:sym<bs>", " at pos=", rx274_pos)
-    .return (rx274_cur)
-  rx274_fail:
+    rx282_cur."!cursor_pass"(rx282_pos, "metachar:sym<bs>")
+    rx282_cur."!cursor_debug"("PASS  ", "metachar:sym<bs>", " at pos=", rx282_pos)
+    .return (rx282_cur)
+  rx282_fail:
 .annotate 'line', 3
-    (rx274_rep, rx274_pos, $I10, $P10) = rx274_cur."!mark_fail"(0)
-    lt rx274_pos, -1, rx274_done
-    eq rx274_pos, -1, rx274_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
-  rx274_done:
-    rx274_cur."!cursor_fail"()
-    rx274_cur."!cursor_debug"("FAIL  ", "metachar:sym<bs>")
-    .return (rx274_cur)
+  rx282_done:
+    rx282_cur."!cursor_fail"()
+    rx282_cur."!cursor_debug"("FAIL  ", "metachar:sym<bs>")
+    .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>"  :subid("78_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<bs>"  :subid("80_1277356887.58177") :method
 .annotate 'line', 3
-    $P276 = self."!PREFIX__!subrule"("backslash", "\\")
-    new $P277, "ResizablePMCArray"
-    push $P277, $P276
-    .return ($P277)
+    $P284 = self."!PREFIX__!subrule"("backslash", "\\")
+    new $P285, "ResizablePMCArray"
+    push $P285, $P284
+    .return ($P285)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>"  :subid("79_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<mod>"  :subid("81_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx280_tgt
-    .local int rx280_pos
-    .local int rx280_off
-    .local int rx280_eos
-    .local int rx280_rep
-    .local pmc rx280_cur
-    (rx280_cur, rx280_pos, rx280_tgt) = self."!cursor_start"()
-    rx280_cur."!cursor_debug"("START ", "metachar:sym<mod>")
-    .lex unicode:"$\x{a2}", rx280_cur
-    .local pmc match
-    .lex "$/", match
-    length rx280_eos, rx280_tgt
-    gt rx280_pos, rx280_eos, rx280_done
-    set rx280_off, 0
-    lt rx280_pos, 2, rx280_start
-    sub rx280_off, rx280_pos, 1
-    substr rx280_tgt, rx280_tgt, rx280_off
-  rx280_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan284_done
-    goto rxscan284_scan
-  rxscan284_loop:
-    ($P10) = rx280_cur."from"()
-    inc $P10
-    set rx280_pos, $P10
-    ge rx280_pos, rx280_eos, rxscan284_done
-  rxscan284_scan:
-    set_addr $I10, rxscan284_loop
-    rx280_cur."!mark_push"(0, rx280_pos, $I10)
-  rxscan284_done:
-.annotate 'line', 89
+    .local string rx288_tgt
+    .local int rx288_pos
+    .local int rx288_off
+    .local int rx288_eos
+    .local int rx288_rep
+    .local pmc rx288_cur
+    (rx288_cur, rx288_pos, rx288_tgt) = self."!cursor_start"()
+    rx288_cur."!cursor_debug"("START ", "metachar:sym<mod>")
+    .lex unicode:"$\x{a2}", rx288_cur
+    .local pmc match
+    .lex "$/", match
+    length rx288_eos, rx288_tgt
+    gt rx288_pos, rx288_eos, rx288_done
+    set rx288_off, 0
+    lt rx288_pos, 2, rx288_start
+    sub rx288_off, rx288_pos, 1
+    substr rx288_tgt, rx288_tgt, rx288_off
+  rx288_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan292_done
+    goto rxscan292_scan
+  rxscan292_loop:
+    ($P10) = rx288_cur."from"()
+    inc $P10
+    set rx288_pos, $P10
+    ge rx288_pos, rx288_eos, rxscan292_done
+  rxscan292_scan:
+    set_addr $I10, rxscan292_loop
+    rx288_cur."!mark_push"(0, rx288_pos, $I10)
+  rxscan292_done:
+.annotate 'line', 91
   # rx subrule "mod_internal" subtype=capture negate=
-    rx280_cur."!cursor_pos"(rx280_pos)
-    $P10 = rx280_cur."mod_internal"()
-    unless $P10, rx280_fail
-    rx280_cur."!mark_push"(0, -1, 0, $P10)
+    rx288_cur."!cursor_pos"(rx288_pos)
+    $P10 = rx288_cur."mod_internal"()
+    unless $P10, rx288_fail
+    rx288_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_internal")
-    rx280_pos = $P10."pos"()
+    rx288_pos = $P10."pos"()
   # rx pass
-    rx280_cur."!cursor_pass"(rx280_pos, "metachar:sym<mod>")
-    rx280_cur."!cursor_debug"("PASS  ", "metachar:sym<mod>", " at pos=", rx280_pos)
-    .return (rx280_cur)
-  rx280_fail:
+    rx288_cur."!cursor_pass"(rx288_pos, "metachar:sym<mod>")
+    rx288_cur."!cursor_debug"("PASS  ", "metachar:sym<mod>", " at pos=", rx288_pos)
+    .return (rx288_cur)
+  rx288_fail:
 .annotate 'line', 3
-    (rx280_rep, rx280_pos, $I10, $P10) = rx280_cur."!mark_fail"(0)
-    lt rx280_pos, -1, rx280_done
-    eq rx280_pos, -1, rx280_fail
+    (rx288_rep, rx288_pos, $I10, $P10) = rx288_cur."!mark_fail"(0)
+    lt rx288_pos, -1, rx288_done
+    eq rx288_pos, -1, rx288_fail
     jump $I10
-  rx280_done:
-    rx280_cur."!cursor_fail"()
-    rx280_cur."!cursor_debug"("FAIL  ", "metachar:sym<mod>")
-    .return (rx280_cur)
+  rx288_done:
+    rx288_cur."!cursor_fail"()
+    rx288_cur."!cursor_debug"("FAIL  ", "metachar:sym<mod>")
+    .return (rx288_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>"  :subid("80_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<mod>"  :subid("82_1277356887.58177") :method
 .annotate 'line', 3
-    $P282 = self."!PREFIX__!subrule"("mod_internal", "")
-    new $P283, "ResizablePMCArray"
-    push $P283, $P282
-    .return ($P283)
+    $P290 = self."!PREFIX__!subrule"("mod_internal", "")
+    new $P291, "ResizablePMCArray"
+    push $P291, $P290
+    .return ($P291)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>"  :subid("81_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<~>"  :subid("83_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx286_tgt
-    .local int rx286_pos
-    .local int rx286_off
-    .local int rx286_eos
-    .local int rx286_rep
-    .local pmc rx286_cur
-    (rx286_cur, rx286_pos, rx286_tgt) = self."!cursor_start"()
-    rx286_cur."!cursor_debug"("START ", "metachar:sym<~>")
-    .lex unicode:"$\x{a2}", rx286_cur
+    .local string rx294_tgt
+    .local int rx294_pos
+    .local int rx294_off
+    .local int rx294_eos
+    .local int rx294_rep
+    .local pmc rx294_cur
+    (rx294_cur, rx294_pos, rx294_tgt) = self."!cursor_start"()
+    rx294_cur."!cursor_debug"("START ", "metachar:sym<~>")
+    .lex unicode:"$\x{a2}", rx294_cur
     .local pmc match
     .lex "$/", match
-    length rx286_eos, rx286_tgt
-    gt rx286_pos, rx286_eos, rx286_done
-    set rx286_off, 0
-    lt rx286_pos, 2, rx286_start
-    sub rx286_off, rx286_pos, 1
-    substr rx286_tgt, rx286_tgt, rx286_off
-  rx286_start:
+    length rx294_eos, rx294_tgt
+    gt rx294_pos, rx294_eos, rx294_done
+    set rx294_off, 0
+    lt rx294_pos, 2, rx294_start
+    sub rx294_off, rx294_pos, 1
+    substr rx294_tgt, rx294_tgt, rx294_off
+  rx294_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan290_done
-    goto rxscan290_scan
-  rxscan290_loop:
-    ($P10) = rx286_cur."from"()
+    ne $I10, -1, rxscan298_done
+    goto rxscan298_scan
+  rxscan298_loop:
+    ($P10) = rx294_cur."from"()
     inc $P10
-    set rx286_pos, $P10
-    ge rx286_pos, rx286_eos, rxscan290_done
-  rxscan290_scan:
-    set_addr $I10, rxscan290_loop
-    rx286_cur."!mark_push"(0, rx286_pos, $I10)
-  rxscan290_done:
-.annotate 'line', 93
+    set rx294_pos, $P10
+    ge rx294_pos, rx294_eos, rxscan298_done
+  rxscan298_scan:
+    set_addr $I10, rxscan298_loop
+    rx294_cur."!mark_push"(0, rx294_pos, $I10)
+  rxscan298_done:
+.annotate 'line', 95
   # rx subcapture "sym"
-    set_addr $I10, rxcap_291_fail
-    rx286_cur."!mark_push"(0, rx286_pos, $I10)
+    set_addr $I10, rxcap_299_fail
+    rx294_cur."!mark_push"(0, rx294_pos, $I10)
   # rx literal  "~"
-    add $I11, rx286_pos, 1
-    gt $I11, rx286_eos, rx286_fail
-    sub $I11, rx286_pos, rx286_off
-    substr $S10, rx286_tgt, $I11, 1
-    ne $S10, "~", rx286_fail
-    add rx286_pos, 1
-    set_addr $I10, rxcap_291_fail
-    ($I12, $I11) = rx286_cur."!mark_peek"($I10)
-    rx286_cur."!cursor_pos"($I11)
-    ($P10) = rx286_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx286_pos, "")
-    rx286_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx294_pos, 1
+    gt $I11, rx294_eos, rx294_fail
+    sub $I11, rx294_pos, rx294_off
+    substr $S10, rx294_tgt, $I11, 1
+    ne $S10, "~", rx294_fail
+    add rx294_pos, 1
+    set_addr $I10, rxcap_299_fail
+    ($I12, $I11) = rx294_cur."!mark_peek"($I10)
+    rx294_cur."!cursor_pos"($I11)
+    ($P10) = rx294_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx294_pos, "")
+    rx294_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_291_done
-  rxcap_291_fail:
-    goto rx286_fail
-  rxcap_291_done:
-.annotate 'line', 94
+    goto rxcap_299_done
+  rxcap_299_fail:
+    goto rx294_fail
+  rxcap_299_done:
+.annotate 'line', 96
   # rx subrule "ws" subtype=method negate=
-    rx286_cur."!cursor_pos"(rx286_pos)
-    $P10 = rx286_cur."ws"()
-    unless $P10, rx286_fail
-    rx286_pos = $P10."pos"()
+    rx294_cur."!cursor_pos"(rx294_pos)
+    $P10 = rx294_cur."ws"()
+    unless $P10, rx294_fail
+    rx294_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx286_cur."!cursor_pos"(rx286_pos)
-    $P10 = rx286_cur."quantified_atom"()
-    unless $P10, rx286_fail
-    rx286_cur."!mark_push"(0, -1, 0, $P10)
+    rx294_cur."!cursor_pos"(rx294_pos)
+    $P10 = rx294_cur."quantified_atom"()
+    unless $P10, rx294_fail
+    rx294_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("GOAL")
-    rx286_pos = $P10."pos"()
-.annotate 'line', 95
+    rx294_pos = $P10."pos"()
+.annotate 'line', 97
   # rx subrule "ws" subtype=method negate=
-    rx286_cur."!cursor_pos"(rx286_pos)
-    $P10 = rx286_cur."ws"()
-    unless $P10, rx286_fail
-    rx286_pos = $P10."pos"()
+    rx294_cur."!cursor_pos"(rx294_pos)
+    $P10 = rx294_cur."ws"()
+    unless $P10, rx294_fail
+    rx294_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx286_cur."!cursor_pos"(rx286_pos)
-    $P10 = rx286_cur."quantified_atom"()
-    unless $P10, rx286_fail
-    rx286_cur."!mark_push"(0, -1, 0, $P10)
+    rx294_cur."!cursor_pos"(rx294_pos)
+    $P10 = rx294_cur."quantified_atom"()
+    unless $P10, rx294_fail
+    rx294_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("EXPR")
-    rx286_pos = $P10."pos"()
-.annotate 'line', 92
+    rx294_pos = $P10."pos"()
+.annotate 'line', 94
   # rx pass
-    rx286_cur."!cursor_pass"(rx286_pos, "metachar:sym<~>")
-    rx286_cur."!cursor_debug"("PASS  ", "metachar:sym<~>", " at pos=", rx286_pos)
-    .return (rx286_cur)
-  rx286_fail:
+    rx294_cur."!cursor_pass"(rx294_pos, "metachar:sym<~>")
+    rx294_cur."!cursor_debug"("PASS  ", "metachar:sym<~>", " at pos=", rx294_pos)
+    .return (rx294_cur)
+  rx294_fail:
 .annotate 'line', 3
-    (rx286_rep, rx286_pos, $I10, $P10) = rx286_cur."!mark_fail"(0)
-    lt rx286_pos, -1, rx286_done
-    eq rx286_pos, -1, rx286_fail
+    (rx294_rep, rx294_pos, $I10, $P10) = rx294_cur."!mark_fail"(0)
+    lt rx294_pos, -1, rx294_done
+    eq rx294_pos, -1, rx294_fail
     jump $I10
-  rx286_done:
-    rx286_cur."!cursor_fail"()
-    rx286_cur."!cursor_debug"("FAIL  ", "metachar:sym<~>")
-    .return (rx286_cur)
+  rx294_done:
+    rx294_cur."!cursor_fail"()
+    rx294_cur."!cursor_debug"("FAIL  ", "metachar:sym<~>")
+    .return (rx294_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>"  :subid("82_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<~>"  :subid("84_1277356887.58177") :method
 .annotate 'line', 3
-    $P288 = self."!PREFIX__!subrule"("ws", "~")
-    new $P289, "ResizablePMCArray"
-    push $P289, $P288
-    .return ($P289)
+    $P296 = self."!PREFIX__!subrule"("ws", "~")
+    new $P297, "ResizablePMCArray"
+    push $P297, $P296
+    .return ($P297)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>"  :subid("83_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<{*}>"  :subid("85_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx293_tgt
-    .local int rx293_pos
-    .local int rx293_off
-    .local int rx293_eos
-    .local int rx293_rep
-    .local pmc rx293_cur
-    (rx293_cur, rx293_pos, rx293_tgt) = self."!cursor_start"()
-    rx293_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
-    rx293_cur."!cursor_caparray"("key")
-    .lex unicode:"$\x{a2}", rx293_cur
+    .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) = self."!cursor_start"()
+    rx301_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
+    rx301_cur."!cursor_caparray"("key")
+    .lex unicode:"$\x{a2}", rx301_cur
     .local pmc match
     .lex "$/", match
-    length rx293_eos, rx293_tgt
-    gt rx293_pos, rx293_eos, rx293_done
-    set rx293_off, 0
-    lt rx293_pos, 2, rx293_start
-    sub rx293_off, rx293_pos, 1
-    substr rx293_tgt, rx293_tgt, rx293_off
-  rx293_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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan296_done
-    goto rxscan296_scan
-  rxscan296_loop:
-    ($P10) = rx293_cur."from"()
+    ne $I10, -1, rxscan304_done
+    goto rxscan304_scan
+  rxscan304_loop:
+    ($P10) = rx301_cur."from"()
     inc $P10
-    set rx293_pos, $P10
-    ge rx293_pos, rx293_eos, rxscan296_done
-  rxscan296_scan:
-    set_addr $I10, rxscan296_loop
-    rx293_cur."!mark_push"(0, rx293_pos, $I10)
-  rxscan296_done:
-.annotate 'line', 99
+    set rx301_pos, $P10
+    ge rx301_pos, rx301_eos, rxscan304_done
+  rxscan304_scan:
+    set_addr $I10, rxscan304_loop
+    rx301_cur."!mark_push"(0, rx301_pos, $I10)
+  rxscan304_done:
+.annotate 'line', 101
   # rx subcapture "sym"
-    set_addr $I10, rxcap_297_fail
-    rx293_cur."!mark_push"(0, rx293_pos, $I10)
+    set_addr $I10, rxcap_305_fail
+    rx301_cur."!mark_push"(0, rx301_pos, $I10)
   # rx literal  "{*}"
-    add $I11, rx293_pos, 3
-    gt $I11, rx293_eos, rx293_fail
-    sub $I11, rx293_pos, rx293_off
-    substr $S10, rx293_tgt, $I11, 3
-    ne $S10, "{*}", rx293_fail
-    add rx293_pos, 3
-    set_addr $I10, rxcap_297_fail
-    ($I12, $I11) = rx293_cur."!mark_peek"($I10)
-    rx293_cur."!cursor_pos"($I11)
-    ($P10) = rx293_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx293_pos, "")
-    rx293_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx301_pos, 3
+    gt $I11, rx301_eos, rx301_fail
+    sub $I11, rx301_pos, rx301_off
+    substr $S10, rx301_tgt, $I11, 3
+    ne $S10, "{*}", rx301_fail
+    add rx301_pos, 3
+    set_addr $I10, rxcap_305_fail
+    ($I12, $I11) = rx301_cur."!mark_peek"($I10)
+    rx301_cur."!cursor_pos"($I11)
+    ($P10) = rx301_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx301_pos, "")
+    rx301_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_297_done
-  rxcap_297_fail:
-    goto rx293_fail
-  rxcap_297_done:
-.annotate 'line', 100
-  # rx rxquantr298 ** 0..1
-    set_addr $I308, rxquantr298_done
-    rx293_cur."!mark_push"(0, rx293_pos, $I308)
-  rxquantr298_loop:
-  # rx rxquantr299 ** 0..*
-    set_addr $I300, rxquantr299_done
-    rx293_cur."!mark_push"(0, rx293_pos, $I300)
-  rxquantr299_loop:
+    goto rxcap_305_done
+  rxcap_305_fail:
+    goto rx301_fail
+  rxcap_305_done:
+.annotate 'line', 102
+  # rx rxquantr306 ** 0..1
+    set_addr $I316, rxquantr306_done
+    rx301_cur."!mark_push"(0, rx301_pos, $I316)
+  rxquantr306_loop:
+  # rx rxquantr307 ** 0..*
+    set_addr $I308, rxquantr307_done
+    rx301_cur."!mark_push"(0, rx301_pos, $I308)
+  rxquantr307_loop:
   # rx enumcharlist negate=0 
-    ge rx293_pos, rx293_eos, rx293_fail
-    sub $I10, rx293_pos, rx293_off
-    substr $S10, rx293_tgt, $I10, 1
+    ge rx301_pos, rx301_eos, rx301_fail
+    sub $I10, rx301_pos, rx301_off
+    substr $S10, rx301_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, rx293_fail
-    inc rx293_pos
-    (rx293_rep) = rx293_cur."!mark_commit"($I300)
-    rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I300)
-    goto rxquantr299_loop
-  rxquantr299_done:
+    lt $I11, 0, rx301_fail
+    inc rx301_pos
+    (rx301_rep) = rx301_cur."!mark_commit"($I308)
+    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I308)
+    goto rxquantr307_loop
+  rxquantr307_done:
   # rx literal  "#= "
-    add $I11, rx293_pos, 3
-    gt $I11, rx293_eos, rx293_fail
-    sub $I11, rx293_pos, rx293_off
-    substr $S10, rx293_tgt, $I11, 3
-    ne $S10, "#= ", rx293_fail
-    add rx293_pos, 3
-  # rx rxquantr301 ** 0..*
-    set_addr $I302, rxquantr301_done
-    rx293_cur."!mark_push"(0, rx293_pos, $I302)
-  rxquantr301_loop:
+    add $I11, rx301_pos, 3
+    gt $I11, rx301_eos, rx301_fail
+    sub $I11, rx301_pos, rx301_off
+    substr $S10, rx301_tgt, $I11, 3
+    ne $S10, "#= ", rx301_fail
+    add rx301_pos, 3
+  # rx rxquantr309 ** 0..*
+    set_addr $I310, rxquantr309_done
+    rx301_cur."!mark_push"(0, rx301_pos, $I310)
+  rxquantr309_loop:
   # rx enumcharlist negate=0 
-    ge rx293_pos, rx293_eos, rx293_fail
-    sub $I10, rx293_pos, rx293_off
-    substr $S10, rx293_tgt, $I10, 1
+    ge rx301_pos, rx301_eos, rx301_fail
+    sub $I10, rx301_pos, rx301_off
+    substr $S10, rx301_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, rx293_fail
-    inc rx293_pos
-    (rx293_rep) = rx293_cur."!mark_commit"($I302)
-    rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I302)
-    goto rxquantr301_loop
-  rxquantr301_done:
+    lt $I11, 0, rx301_fail
+    inc rx301_pos
+    (rx301_rep) = rx301_cur."!mark_commit"($I310)
+    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I310)
+    goto rxquantr309_loop
+  rxquantr309_done:
   # rx subcapture "key"
-    set_addr $I10, rxcap_307_fail
-    rx293_cur."!mark_push"(0, rx293_pos, $I10)
+    set_addr $I10, rxcap_315_fail
+    rx301_cur."!mark_push"(0, rx301_pos, $I10)
   # rx charclass_q S r 1..-1
-    sub $I10, rx293_pos, rx293_off
-    find_cclass $I11, 32, rx293_tgt, $I10, rx293_eos
+    sub $I10, rx301_pos, rx301_off
+    find_cclass $I11, 32, rx301_tgt, $I10, rx301_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx293_fail
-    add rx293_pos, rx293_off, $I11
-  # rx rxquantr303 ** 0..*
-    set_addr $I306, rxquantr303_done
-    rx293_cur."!mark_push"(0, rx293_pos, $I306)
-  rxquantr303_loop:
-  # rx rxquantr304 ** 1..*
-    set_addr $I305, rxquantr304_done
-    rx293_cur."!mark_push"(0, -1, $I305)
-  rxquantr304_loop:
+    lt $I11, $I12, rx301_fail
+    add rx301_pos, rx301_off, $I11
+  # rx rxquantr311 ** 0..*
+    set_addr $I314, rxquantr311_done
+    rx301_cur."!mark_push"(0, rx301_pos, $I314)
+  rxquantr311_loop:
+  # rx rxquantr312 ** 1..*
+    set_addr $I313, rxquantr312_done
+    rx301_cur."!mark_push"(0, -1, $I313)
+  rxquantr312_loop:
   # rx enumcharlist negate=0 
-    ge rx293_pos, rx293_eos, rx293_fail
-    sub $I10, rx293_pos, rx293_off
-    substr $S10, rx293_tgt, $I10, 1
+    ge rx301_pos, rx301_eos, rx301_fail
+    sub $I10, rx301_pos, rx301_off
+    substr $S10, rx301_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, rx293_fail
-    inc rx293_pos
-    (rx293_rep) = rx293_cur."!mark_commit"($I305)
-    rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I305)
-    goto rxquantr304_loop
-  rxquantr304_done:
+    lt $I11, 0, rx301_fail
+    inc rx301_pos
+    (rx301_rep) = rx301_cur."!mark_commit"($I313)
+    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I313)
+    goto rxquantr312_loop
+  rxquantr312_done:
   # rx charclass_q S r 1..-1
-    sub $I10, rx293_pos, rx293_off
-    find_cclass $I11, 32, rx293_tgt, $I10, rx293_eos
+    sub $I10, rx301_pos, rx301_off
+    find_cclass $I11, 32, rx301_tgt, $I10, rx301_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx293_fail
-    add rx293_pos, rx293_off, $I11
-    (rx293_rep) = rx293_cur."!mark_commit"($I306)
-    rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I306)
-    goto rxquantr303_loop
-  rxquantr303_done:
-    set_addr $I10, rxcap_307_fail
-    ($I12, $I11) = rx293_cur."!mark_peek"($I10)
-    rx293_cur."!cursor_pos"($I11)
-    ($P10) = rx293_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx293_pos, "")
-    rx293_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx301_fail
+    add rx301_pos, rx301_off, $I11
+    (rx301_rep) = rx301_cur."!mark_commit"($I314)
+    rx301_cur."!mark_push"(rx301_rep, rx301_pos, $I314)
+    goto rxquantr311_loop
+  rxquantr311_done:
+    set_addr $I10, rxcap_315_fail
+    ($I12, $I11) = rx301_cur."!mark_peek"($I10)
+    rx301_cur."!cursor_pos"($I11)
+    ($P10) = rx301_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx301_pos, "")
+    rx301_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("key")
-    goto rxcap_307_done
-  rxcap_307_fail:
-    goto rx293_fail
-  rxcap_307_done:
-    (rx293_rep) = rx293_cur."!mark_commit"($I308)
-  rxquantr298_done:
-.annotate 'line', 98
+    goto rxcap_315_done
+  rxcap_315_fail:
+    goto rx301_fail
+  rxcap_315_done:
+    (rx301_rep) = rx301_cur."!mark_commit"($I316)
+  rxquantr306_done:
+.annotate 'line', 100
   # rx pass
-    rx293_cur."!cursor_pass"(rx293_pos, "metachar:sym<{*}>")
-    rx293_cur."!cursor_debug"("PASS  ", "metachar:sym<{*}>", " at pos=", rx293_pos)
-    .return (rx293_cur)
-  rx293_fail:
+    rx301_cur."!cursor_pass"(rx301_pos, "metachar:sym<{*}>")
+    rx301_cur."!cursor_debug"("PASS  ", "metachar:sym<{*}>", " at pos=", rx301_pos)
+    .return (rx301_cur)
+  rx301_fail:
 .annotate 'line', 3
-    (rx293_rep, rx293_pos, $I10, $P10) = rx293_cur."!mark_fail"(0)
-    lt rx293_pos, -1, rx293_done
-    eq rx293_pos, -1, rx293_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
-  rx293_done:
-    rx293_cur."!cursor_fail"()
-    rx293_cur."!cursor_debug"("FAIL  ", "metachar:sym<{*}>")
-    .return (rx293_cur)
+  rx301_done:
+    rx301_cur."!cursor_fail"()
+    rx301_cur."!cursor_debug"("FAIL  ", "metachar:sym<{*}>")
+    .return (rx301_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>"  :subid("84_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<{*}>"  :subid("86_1277356887.58177") :method
 .annotate 'line', 3
-    new $P295, "ResizablePMCArray"
-    push $P295, "{*}"
-    .return ($P295)
+    new $P303, "ResizablePMCArray"
+    push $P303, "{*}"
+    .return ($P303)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>"  :subid("85_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<assert>"  :subid("87_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx310_tgt
-    .local int rx310_pos
-    .local int rx310_off
-    .local int rx310_eos
-    .local int rx310_rep
-    .local pmc rx310_cur
-    (rx310_cur, rx310_pos, rx310_tgt) = self."!cursor_start"()
-    rx310_cur."!cursor_debug"("START ", "metachar:sym<assert>")
-    .lex unicode:"$\x{a2}", rx310_cur
-    .local pmc match
-    .lex "$/", match
-    length rx310_eos, rx310_tgt
-    gt rx310_pos, rx310_eos, rx310_done
-    set rx310_off, 0
-    lt rx310_pos, 2, rx310_start
-    sub rx310_off, rx310_pos, 1
-    substr rx310_tgt, rx310_tgt, rx310_off
-  rx310_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan314_done
-    goto rxscan314_scan
-  rxscan314_loop:
-    ($P10) = rx310_cur."from"()
-    inc $P10
-    set rx310_pos, $P10
-    ge rx310_pos, rx310_eos, rxscan314_done
-  rxscan314_scan:
-    set_addr $I10, rxscan314_loop
-    rx310_cur."!mark_push"(0, rx310_pos, $I10)
-  rxscan314_done:
-.annotate 'line', 103
+    .local string rx318_tgt
+    .local int rx318_pos
+    .local int rx318_off
+    .local int rx318_eos
+    .local int rx318_rep
+    .local pmc rx318_cur
+    (rx318_cur, rx318_pos, rx318_tgt) = self."!cursor_start"()
+    rx318_cur."!cursor_debug"("START ", "metachar:sym<assert>")
+    .lex unicode:"$\x{a2}", rx318_cur
+    .local pmc match
+    .lex "$/", match
+    length rx318_eos, rx318_tgt
+    gt rx318_pos, rx318_eos, rx318_done
+    set rx318_off, 0
+    lt rx318_pos, 2, rx318_start
+    sub rx318_off, rx318_pos, 1
+    substr rx318_tgt, rx318_tgt, rx318_off
+  rx318_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan322_done
+    goto rxscan322_scan
+  rxscan322_loop:
+    ($P10) = rx318_cur."from"()
+    inc $P10
+    set rx318_pos, $P10
+    ge rx318_pos, rx318_eos, rxscan322_done
+  rxscan322_scan:
+    set_addr $I10, rxscan322_loop
+    rx318_cur."!mark_push"(0, rx318_pos, $I10)
+  rxscan322_done:
+.annotate 'line', 105
   # rx literal  "<"
-    add $I11, rx310_pos, 1
-    gt $I11, rx310_eos, rx310_fail
-    sub $I11, rx310_pos, rx310_off
-    substr $S10, rx310_tgt, $I11, 1
-    ne $S10, "<", rx310_fail
-    add rx310_pos, 1
+    add $I11, rx318_pos, 1
+    gt $I11, rx318_eos, rx318_fail
+    sub $I11, rx318_pos, rx318_off
+    substr $S10, rx318_tgt, $I11, 1
+    ne $S10, "<", rx318_fail
+    add rx318_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx310_cur."!cursor_pos"(rx310_pos)
-    $P10 = rx310_cur."assertion"()
-    unless $P10, rx310_fail
-    rx310_cur."!mark_push"(0, -1, 0, $P10)
+    rx318_cur."!cursor_pos"(rx318_pos)
+    $P10 = rx318_cur."assertion"()
+    unless $P10, rx318_fail
+    rx318_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx310_pos = $P10."pos"()
-  alt315_0:
-.annotate 'line', 104
-    set_addr $I10, alt315_1
-    rx310_cur."!mark_push"(0, rx310_pos, $I10)
+    rx318_pos = $P10."pos"()
+  alt323_0:
+.annotate 'line', 106
+    set_addr $I10, alt323_1
+    rx318_cur."!mark_push"(0, rx318_pos, $I10)
   # rx literal  ">"
-    add $I11, rx310_pos, 1
-    gt $I11, rx310_eos, rx310_fail
-    sub $I11, rx310_pos, rx310_off
-    substr $S10, rx310_tgt, $I11, 1
-    ne $S10, ">", rx310_fail
-    add rx310_pos, 1
-    goto alt315_end
-  alt315_1:
+    add $I11, rx318_pos, 1
+    gt $I11, rx318_eos, rx318_fail
+    sub $I11, rx318_pos, rx318_off
+    substr $S10, rx318_tgt, $I11, 1
+    ne $S10, ">", rx318_fail
+    add rx318_pos, 1
+    goto alt323_end
+  alt323_1:
   # rx subrule "panic" subtype=method negate=
-    rx310_cur."!cursor_pos"(rx310_pos)
-    $P10 = rx310_cur."panic"("regex assertion not terminated by angle bracket")
-    unless $P10, rx310_fail
-    rx310_pos = $P10."pos"()
-  alt315_end:
-.annotate 'line', 102
+    rx318_cur."!cursor_pos"(rx318_pos)
+    $P10 = rx318_cur."panic"("regex assertion not terminated by angle bracket")
+    unless $P10, rx318_fail
+    rx318_pos = $P10."pos"()
+  alt323_end:
+.annotate 'line', 104
   # rx pass
-    rx310_cur."!cursor_pass"(rx310_pos, "metachar:sym<assert>")
-    rx310_cur."!cursor_debug"("PASS  ", "metachar:sym<assert>", " at pos=", rx310_pos)
-    .return (rx310_cur)
-  rx310_fail:
+    rx318_cur."!cursor_pass"(rx318_pos, "metachar:sym<assert>")
+    rx318_cur."!cursor_debug"("PASS  ", "metachar:sym<assert>", " at pos=", rx318_pos)
+    .return (rx318_cur)
+  rx318_fail:
 .annotate 'line', 3
-    (rx310_rep, rx310_pos, $I10, $P10) = rx310_cur."!mark_fail"(0)
-    lt rx310_pos, -1, rx310_done
-    eq rx310_pos, -1, rx310_fail
+    (rx318_rep, rx318_pos, $I10, $P10) = rx318_cur."!mark_fail"(0)
+    lt rx318_pos, -1, rx318_done
+    eq rx318_pos, -1, rx318_fail
     jump $I10
-  rx310_done:
-    rx310_cur."!cursor_fail"()
-    rx310_cur."!cursor_debug"("FAIL  ", "metachar:sym<assert>")
-    .return (rx310_cur)
+  rx318_done:
+    rx318_cur."!cursor_fail"()
+    rx318_cur."!cursor_debug"("FAIL  ", "metachar:sym<assert>")
+    .return (rx318_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>"  :subid("86_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<assert>"  :subid("88_1277356887.58177") :method
 .annotate 'line', 3
-    $P312 = self."!PREFIX__!subrule"("assertion", "<")
-    new $P313, "ResizablePMCArray"
-    push $P313, $P312
-    .return ($P313)
+    $P320 = self."!PREFIX__!subrule"("assertion", "<")
+    new $P321, "ResizablePMCArray"
+    push $P321, $P320
+    .return ($P321)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>"  :subid("87_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<var>"  :subid("89_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx317_tgt
-    .local int rx317_pos
-    .local int rx317_off
-    .local int rx317_eos
-    .local int rx317_rep
-    .local pmc rx317_cur
-    (rx317_cur, rx317_pos, rx317_tgt) = self."!cursor_start"()
-    rx317_cur."!cursor_debug"("START ", "metachar:sym<var>")
-    rx317_cur."!cursor_caparray"("quantified_atom")
-    .lex unicode:"$\x{a2}", rx317_cur
+    .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 ", "metachar:sym<var>")
+    rx325_cur."!cursor_caparray"("quantified_atom")
+    .lex unicode:"$\x{a2}", rx325_cur
     .local pmc match
     .lex "$/", match
-    length rx317_eos, rx317_tgt
-    gt rx317_pos, rx317_eos, rx317_done
-    set rx317_off, 0
-    lt rx317_pos, 2, rx317_start
-    sub rx317_off, rx317_pos, 1
-    substr rx317_tgt, rx317_tgt, rx317_off
-  rx317_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan320_done
-    goto rxscan320_scan
-  rxscan320_loop:
-    ($P10) = rx317_cur."from"()
+    ne $I10, -1, rxscan328_done
+    goto rxscan328_scan
+  rxscan328_loop:
+    ($P10) = rx325_cur."from"()
     inc $P10
-    set rx317_pos, $P10
-    ge rx317_pos, rx317_eos, rxscan320_done
-  rxscan320_scan:
-    set_addr $I10, rxscan320_loop
-    rx317_cur."!mark_push"(0, rx317_pos, $I10)
-  rxscan320_done:
-  alt321_0:
-.annotate 'line', 108
-    set_addr $I10, alt321_1
-    rx317_cur."!mark_push"(0, rx317_pos, $I10)
-.annotate 'line', 109
+    set rx325_pos, $P10
+    ge rx325_pos, rx325_eos, rxscan328_done
+  rxscan328_scan:
+    set_addr $I10, rxscan328_loop
+    rx325_cur."!mark_push"(0, rx325_pos, $I10)
+  rxscan328_done:
+  alt329_0:
+.annotate 'line', 110
+    set_addr $I10, alt329_1
+    rx325_cur."!mark_push"(0, rx325_pos, $I10)
+.annotate 'line', 111
   # rx literal  "$<"
-    add $I11, rx317_pos, 2
-    gt $I11, rx317_eos, rx317_fail
-    sub $I11, rx317_pos, rx317_off
-    substr $S10, rx317_tgt, $I11, 2
-    ne $S10, "$<", rx317_fail
-    add rx317_pos, 2
+    add $I11, rx325_pos, 2
+    gt $I11, rx325_eos, rx325_fail
+    sub $I11, rx325_pos, rx325_off
+    substr $S10, rx325_tgt, $I11, 2
+    ne $S10, "$<", rx325_fail
+    add rx325_pos, 2
   # rx subcapture "name"
-    set_addr $I10, rxcap_324_fail
-    rx317_cur."!mark_push"(0, rx317_pos, $I10)
-  # rx rxquantr322 ** 1..*
-    set_addr $I323, rxquantr322_done
-    rx317_cur."!mark_push"(0, -1, $I323)
-  rxquantr322_loop:
+    set_addr $I10, rxcap_332_fail
+    rx325_cur."!mark_push"(0, rx325_pos, $I10)
+  # rx rxquantr330 ** 1..*
+    set_addr $I331, rxquantr330_done
+    rx325_cur."!mark_push"(0, -1, $I331)
+  rxquantr330_loop:
   # rx enumcharlist negate=1 
-    ge rx317_pos, rx317_eos, rx317_fail
-    sub $I10, rx317_pos, rx317_off
-    substr $S10, rx317_tgt, $I10, 1
+    ge rx325_pos, rx325_eos, rx325_fail
+    sub $I10, rx325_pos, rx325_off
+    substr $S10, rx325_tgt, $I10, 1
     index $I11, ">", $S10
-    ge $I11, 0, rx317_fail
-    inc rx317_pos
-    (rx317_rep) = rx317_cur."!mark_commit"($I323)
-    rx317_cur."!mark_push"(rx317_rep, rx317_pos, $I323)
-    goto rxquantr322_loop
-  rxquantr322_done:
-    set_addr $I10, rxcap_324_fail
-    ($I12, $I11) = rx317_cur."!mark_peek"($I10)
-    rx317_cur."!cursor_pos"($I11)
-    ($P10) = rx317_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx317_pos, "")
-    rx317_cur."!mark_push"(0, -1, 0, $P10)
+    ge $I11, 0, rx325_fail
+    inc rx325_pos
+    (rx325_rep) = rx325_cur."!mark_commit"($I331)
+    rx325_cur."!mark_push"(rx325_rep, rx325_pos, $I331)
+    goto rxquantr330_loop
+  rxquantr330_done:
+    set_addr $I10, rxcap_332_fail
+    ($I12, $I11) = rx325_cur."!mark_peek"($I10)
+    rx325_cur."!cursor_pos"($I11)
+    ($P10) = rx325_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx325_pos, "")
+    rx325_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_324_done
-  rxcap_324_fail:
-    goto rx317_fail
-  rxcap_324_done:
+    goto rxcap_332_done
+  rxcap_332_fail:
+    goto rx325_fail
+  rxcap_332_done:
   # rx literal  ">"
-    add $I11, rx317_pos, 1
-    gt $I11, rx317_eos, rx317_fail
-    sub $I11, rx317_pos, rx317_off
-    substr $S10, rx317_tgt, $I11, 1
-    ne $S10, ">", rx317_fail
-    add rx317_pos, 1
-    goto alt321_end
-  alt321_1:
-.annotate 'line', 110
+    add $I11, rx325_pos, 1
+    gt $I11, rx325_eos, rx325_fail
+    sub $I11, rx325_pos, rx325_off
+    substr $S10, rx325_tgt, $I11, 1
+    ne $S10, ">", rx325_fail
+    add rx325_pos, 1
+    goto alt329_end
+  alt329_1:
+.annotate 'line', 112
   # rx literal  "$"
-    add $I11, rx317_pos, 1
-    gt $I11, rx317_eos, rx317_fail
-    sub $I11, rx317_pos, rx317_off
-    substr $S10, rx317_tgt, $I11, 1
-    ne $S10, "$", rx317_fail
-    add rx317_pos, 1
+    add $I11, rx325_pos, 1
+    gt $I11, rx325_eos, rx325_fail
+    sub $I11, rx325_pos, rx325_off
+    substr $S10, rx325_tgt, $I11, 1
+    ne $S10, "$", rx325_fail
+    add rx325_pos, 1
   # rx subcapture "pos"
-    set_addr $I10, rxcap_325_fail
-    rx317_cur."!mark_push"(0, rx317_pos, $I10)
+    set_addr $I10, rxcap_333_fail
+    rx325_cur."!mark_push"(0, rx325_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx317_pos, rx317_off
-    find_not_cclass $I11, 8, rx317_tgt, $I10, rx317_eos
+    sub $I10, rx325_pos, rx325_off
+    find_not_cclass $I11, 8, rx325_tgt, $I10, rx325_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx317_fail
-    add rx317_pos, rx317_off, $I11
-    set_addr $I10, rxcap_325_fail
-    ($I12, $I11) = rx317_cur."!mark_peek"($I10)
-    rx317_cur."!cursor_pos"($I11)
-    ($P10) = rx317_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx317_pos, "")
-    rx317_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx325_fail
+    add rx325_pos, rx325_off, $I11
+    set_addr $I10, rxcap_333_fail
+    ($I12, $I11) = rx325_cur."!mark_peek"($I10)
+    rx325_cur."!cursor_pos"($I11)
+    ($P10) = rx325_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx325_pos, "")
+    rx325_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pos")
-    goto rxcap_325_done
-  rxcap_325_fail:
-    goto rx317_fail
-  rxcap_325_done:
-  alt321_end:
-.annotate 'line', 113
-  # rx rxquantr326 ** 0..1
-    set_addr $I327, rxquantr326_done
-    rx317_cur."!mark_push"(0, rx317_pos, $I327)
-  rxquantr326_loop:
+    goto rxcap_333_done
+  rxcap_333_fail:
+    goto rx325_fail
+  rxcap_333_done:
+  alt329_end:
+.annotate 'line', 115
+  # rx rxquantr334 ** 0..1
+    set_addr $I335, rxquantr334_done
+    rx325_cur."!mark_push"(0, rx325_pos, $I335)
+  rxquantr334_loop:
   # rx subrule "ws" subtype=method negate=
-    rx317_cur."!cursor_pos"(rx317_pos)
-    $P10 = rx317_cur."ws"()
-    unless $P10, rx317_fail
-    rx317_pos = $P10."pos"()
+    rx325_cur."!cursor_pos"(rx325_pos)
+    $P10 = rx325_cur."ws"()
+    unless $P10, rx325_fail
+    rx325_pos = $P10."pos"()
   # rx literal  "="
-    add $I11, rx317_pos, 1
-    gt $I11, rx317_eos, rx317_fail
-    sub $I11, rx317_pos, rx317_off
-    substr $S10, rx317_tgt, $I11, 1
-    ne $S10, "=", rx317_fail
-    add rx317_pos, 1
+    add $I11, rx325_pos, 1
+    gt $I11, rx325_eos, rx325_fail
+    sub $I11, rx325_pos, rx325_off
+    substr $S10, rx325_tgt, $I11, 1
+    ne $S10, "=", rx325_fail
+    add rx325_pos, 1
   # rx subrule "ws" subtype=method negate=
-    rx317_cur."!cursor_pos"(rx317_pos)
-    $P10 = rx317_cur."ws"()
-    unless $P10, rx317_fail
-    rx317_pos = $P10."pos"()
+    rx325_cur."!cursor_pos"(rx325_pos)
+    $P10 = rx325_cur."ws"()
+    unless $P10, rx325_fail
+    rx325_pos = $P10."pos"()
   # rx subrule "quantified_atom" subtype=capture negate=
-    rx317_cur."!cursor_pos"(rx317_pos)
-    $P10 = rx317_cur."quantified_atom"()
-    unless $P10, rx317_fail
-    rx317_cur."!mark_push"(0, -1, 0, $P10)
+    rx325_cur."!cursor_pos"(rx325_pos)
+    $P10 = rx325_cur."quantified_atom"()
+    unless $P10, rx325_fail
+    rx325_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("quantified_atom")
-    rx317_pos = $P10."pos"()
-    (rx317_rep) = rx317_cur."!mark_commit"($I327)
-  rxquantr326_done:
-.annotate 'line', 107
+    rx325_pos = $P10."pos"()
+    (rx325_rep) = rx325_cur."!mark_commit"($I335)
+  rxquantr334_done:
+.annotate 'line', 109
   # rx pass
-    rx317_cur."!cursor_pass"(rx317_pos, "metachar:sym<var>")
-    rx317_cur."!cursor_debug"("PASS  ", "metachar:sym<var>", " at pos=", rx317_pos)
-    .return (rx317_cur)
-  rx317_fail:
+    rx325_cur."!cursor_pass"(rx325_pos, "metachar:sym<var>")
+    rx325_cur."!cursor_debug"("PASS  ", "metachar:sym<var>", " at pos=", rx325_pos)
+    .return (rx325_cur)
+  rx325_fail:
 .annotate 'line', 3
-    (rx317_rep, rx317_pos, $I10, $P10) = rx317_cur."!mark_fail"(0)
-    lt rx317_pos, -1, rx317_done
-    eq rx317_pos, -1, rx317_fail
+    (rx325_rep, rx325_pos, $I10, $P10) = rx325_cur."!mark_fail"(0)
+    lt rx325_pos, -1, rx325_done
+    eq rx325_pos, -1, rx325_fail
     jump $I10
-  rx317_done:
-    rx317_cur."!cursor_fail"()
-    rx317_cur."!cursor_debug"("FAIL  ", "metachar:sym<var>")
-    .return (rx317_cur)
+  rx325_done:
+    rx325_cur."!cursor_fail"()
+    rx325_cur."!cursor_debug"("FAIL  ", "metachar:sym<var>")
+    .return (rx325_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>"  :subid("88_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<var>"  :subid("90_1277356887.58177") :method
 .annotate 'line', 3
-    new $P319, "ResizablePMCArray"
-    push $P319, "$"
-    push $P319, "$<"
-    .return ($P319)
+    new $P327, "ResizablePMCArray"
+    push $P327, "$"
+    push $P327, "$<"
+    .return ($P327)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>"  :subid("89_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "metachar:sym<PIR>"  :subid("91_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx329_tgt
-    .local int rx329_pos
-    .local int rx329_off
-    .local int rx329_eos
-    .local int rx329_rep
-    .local pmc rx329_cur
-    (rx329_cur, rx329_pos, rx329_tgt) = self."!cursor_start"()
-    rx329_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
-    .lex unicode:"$\x{a2}", rx329_cur
+    .local string rx337_tgt
+    .local int rx337_pos
+    .local int rx337_off
+    .local int rx337_eos
+    .local int rx337_rep
+    .local pmc rx337_cur
+    (rx337_cur, rx337_pos, rx337_tgt) = self."!cursor_start"()
+    rx337_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
+    .lex unicode:"$\x{a2}", rx337_cur
     .local pmc match
     .lex "$/", match
-    length rx329_eos, rx329_tgt
-    gt rx329_pos, rx329_eos, rx329_done
-    set rx329_off, 0
-    lt rx329_pos, 2, rx329_start
-    sub rx329_off, rx329_pos, 1
-    substr rx329_tgt, rx329_tgt, rx329_off
-  rx329_start:
+    length rx337_eos, rx337_tgt
+    gt rx337_pos, rx337_eos, rx337_done
+    set rx337_off, 0
+    lt rx337_pos, 2, rx337_start
+    sub rx337_off, rx337_pos, 1
+    substr rx337_tgt, rx337_tgt, rx337_off
+  rx337_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan332_done
-    goto rxscan332_scan
-  rxscan332_loop:
-    ($P10) = rx329_cur."from"()
+    ne $I10, -1, rxscan340_done
+    goto rxscan340_scan
+  rxscan340_loop:
+    ($P10) = rx337_cur."from"()
     inc $P10
-    set rx329_pos, $P10
-    ge rx329_pos, rx329_eos, rxscan332_done
-  rxscan332_scan:
-    set_addr $I10, rxscan332_loop
-    rx329_cur."!mark_push"(0, rx329_pos, $I10)
-  rxscan332_done:
-.annotate 'line', 117
+    set rx337_pos, $P10
+    ge rx337_pos, rx337_eos, rxscan340_done
+  rxscan340_scan:
+    set_addr $I10, rxscan340_loop
+    rx337_cur."!mark_push"(0, rx337_pos, $I10)
+  rxscan340_done:
+.annotate 'line', 119
   # rx literal  ":PIR{{"
-    add $I11, rx329_pos, 6
-    gt $I11, rx329_eos, rx329_fail
-    sub $I11, rx329_pos, rx329_off
-    substr $S10, rx329_tgt, $I11, 6
-    ne $S10, ":PIR{{", rx329_fail
-    add rx329_pos, 6
+    add $I11, rx337_pos, 6
+    gt $I11, rx337_eos, rx337_fail
+    sub $I11, rx337_pos, rx337_off
+    substr $S10, rx337_tgt, $I11, 6
+    ne $S10, ":PIR{{", rx337_fail
+    add rx337_pos, 6
   # rx subcapture "pir"
-    set_addr $I10, rxcap_335_fail
-    rx329_cur."!mark_push"(0, rx329_pos, $I10)
-  # rx rxquantf333 ** 0..*
-    set_addr $I10, rxquantf333_loop
-    rx329_cur."!mark_push"(0, rx329_pos, $I10)
-    goto rxquantf333_done
-  rxquantf333_loop:
+    set_addr $I10, rxcap_343_fail
+    rx337_cur."!mark_push"(0, rx337_pos, $I10)
+  # rx rxquantf341 ** 0..*
+    set_addr $I10, rxquantf341_loop
+    rx337_cur."!mark_push"(0, rx337_pos, $I10)
+    goto rxquantf341_done
+  rxquantf341_loop:
   # rx charclass .
-    ge rx329_pos, rx329_eos, rx329_fail
-    inc rx329_pos
-    set_addr $I10, rxquantf333_loop
-    rx329_cur."!mark_push"($I334, rx329_pos, $I10)
-  rxquantf333_done:
-    set_addr $I10, rxcap_335_fail
-    ($I12, $I11) = rx329_cur."!mark_peek"($I10)
-    rx329_cur."!cursor_pos"($I11)
-    ($P10) = rx329_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx329_pos, "")
-    rx329_cur."!mark_push"(0, -1, 0, $P10)
+    ge rx337_pos, rx337_eos, rx337_fail
+    inc rx337_pos
+    set_addr $I10, rxquantf341_loop
+    rx337_cur."!mark_push"($I342, rx337_pos, $I10)
+  rxquantf341_done:
+    set_addr $I10, rxcap_343_fail
+    ($I12, $I11) = rx337_cur."!mark_peek"($I10)
+    rx337_cur."!cursor_pos"($I11)
+    ($P10) = rx337_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx337_pos, "")
+    rx337_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("pir")
-    goto rxcap_335_done
-  rxcap_335_fail:
-    goto rx329_fail
-  rxcap_335_done:
+    goto rxcap_343_done
+  rxcap_343_fail:
+    goto rx337_fail
+  rxcap_343_done:
   # rx literal  "}}"
-    add $I11, rx329_pos, 2
-    gt $I11, rx329_eos, rx329_fail
-    sub $I11, rx329_pos, rx329_off
-    substr $S10, rx329_tgt, $I11, 2
-    ne $S10, "}}", rx329_fail
-    add rx329_pos, 2
-.annotate 'line', 116
+    add $I11, rx337_pos, 2
+    gt $I11, rx337_eos, rx337_fail
+    sub $I11, rx337_pos, rx337_off
+    substr $S10, rx337_tgt, $I11, 2
+    ne $S10, "}}", rx337_fail
+    add rx337_pos, 2
+.annotate 'line', 118
   # rx pass
-    rx329_cur."!cursor_pass"(rx329_pos, "metachar:sym<PIR>")
-    rx329_cur."!cursor_debug"("PASS  ", "metachar:sym<PIR>", " at pos=", rx329_pos)
-    .return (rx329_cur)
-  rx329_fail:
+    rx337_cur."!cursor_pass"(rx337_pos, "metachar:sym<PIR>")
+    rx337_cur."!cursor_debug"("PASS  ", "metachar:sym<PIR>", " at pos=", rx337_pos)
+    .return (rx337_cur)
+  rx337_fail:
 .annotate 'line', 3
-    (rx329_rep, rx329_pos, $I10, $P10) = rx329_cur."!mark_fail"(0)
-    lt rx329_pos, -1, rx329_done
-    eq rx329_pos, -1, rx329_fail
+    (rx337_rep, rx337_pos, $I10, $P10) = rx337_cur."!mark_fail"(0)
+    lt rx337_pos, -1, rx337_done
+    eq rx337_pos, -1, rx337_fail
     jump $I10
-  rx329_done:
-    rx329_cur."!cursor_fail"()
-    rx329_cur."!cursor_debug"("FAIL  ", "metachar:sym<PIR>")
-    .return (rx329_cur)
+  rx337_done:
+    rx337_cur."!cursor_fail"()
+    rx337_cur."!cursor_debug"("FAIL  ", "metachar:sym<PIR>")
+    .return (rx337_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>"  :subid("90_1275811476.7961") :method
+.sub "!PREFIX__metachar:sym<PIR>"  :subid("92_1277356887.58177") :method
 .annotate 'line', 3
-    new $P331, "ResizablePMCArray"
-    push $P331, ":PIR{{"
-    .return ($P331)
+    new $P339, "ResizablePMCArray"
+    push $P339, ":PIR{{"
+    .return ($P339)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash"  :subid("91_1275811476.7961") :method
-.annotate 'line', 120
-    $P337 = self."!protoregex"("backslash")
-    .return ($P337)
+.sub "backslash"  :subid("93_1277356887.58177") :method
+.annotate 'line', 122
+    $P345 = self."!protoregex"("backslash")
+    .return ($P345)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash"  :subid("92_1275811476.7961") :method
-.annotate 'line', 120
-    $P339 = self."!PREFIX__!protoregex"("backslash")
-    .return ($P339)
+.sub "!PREFIX__backslash"  :subid("94_1277356887.58177") :method
+.annotate 'line', 122
+    $P347 = self."!PREFIX__!protoregex"("backslash")
+    .return ($P347)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>"  :subid("93_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<w>"  :subid("95_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx341_tgt
-    .local int rx341_pos
-    .local int rx341_off
-    .local int rx341_eos
-    .local int rx341_rep
-    .local pmc rx341_cur
-    (rx341_cur, rx341_pos, rx341_tgt) = self."!cursor_start"()
-    rx341_cur."!cursor_debug"("START ", "backslash:sym<w>")
-    .lex unicode:"$\x{a2}", rx341_cur
-    .local pmc match
-    .lex "$/", match
-    length rx341_eos, rx341_tgt
-    gt rx341_pos, rx341_eos, rx341_done
-    set rx341_off, 0
-    lt rx341_pos, 2, rx341_start
-    sub rx341_off, rx341_pos, 1
-    substr rx341_tgt, rx341_tgt, rx341_off
-  rx341_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan344_done
-    goto rxscan344_scan
-  rxscan344_loop:
-    ($P10) = rx341_cur."from"()
-    inc $P10
-    set rx341_pos, $P10
-    ge rx341_pos, rx341_eos, rxscan344_done
-  rxscan344_scan:
-    set_addr $I10, rxscan344_loop
-    rx341_cur."!mark_push"(0, rx341_pos, $I10)
-  rxscan344_done:
-.annotate 'line', 121
+    .local string rx349_tgt
+    .local int rx349_pos
+    .local int rx349_off
+    .local int rx349_eos
+    .local int rx349_rep
+    .local pmc rx349_cur
+    (rx349_cur, rx349_pos, rx349_tgt) = self."!cursor_start"()
+    rx349_cur."!cursor_debug"("START ", "backslash:sym<w>")
+    .lex unicode:"$\x{a2}", rx349_cur
+    .local pmc match
+    .lex "$/", match
+    length rx349_eos, rx349_tgt
+    gt rx349_pos, rx349_eos, rx349_done
+    set rx349_off, 0
+    lt rx349_pos, 2, rx349_start
+    sub rx349_off, rx349_pos, 1
+    substr rx349_tgt, rx349_tgt, rx349_off
+  rx349_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan352_done
+    goto rxscan352_scan
+  rxscan352_loop:
+    ($P10) = rx349_cur."from"()
+    inc $P10
+    set rx349_pos, $P10
+    ge rx349_pos, rx349_eos, rxscan352_done
+  rxscan352_scan:
+    set_addr $I10, rxscan352_loop
+    rx349_cur."!mark_push"(0, rx349_pos, $I10)
+  rxscan352_done:
+.annotate 'line', 123
   # rx subcapture "sym"
-    set_addr $I10, rxcap_345_fail
-    rx341_cur."!mark_push"(0, rx341_pos, $I10)
+    set_addr $I10, rxcap_353_fail
+    rx349_cur."!mark_push"(0, rx349_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx341_pos, rx341_eos, rx341_fail
-    sub $I10, rx341_pos, rx341_off
-    substr $S10, rx341_tgt, $I10, 1
+    ge rx349_pos, rx349_eos, rx349_fail
+    sub $I10, rx349_pos, rx349_off
+    substr $S10, rx349_tgt, $I10, 1
     index $I11, "dswnDSWN", $S10
-    lt $I11, 0, rx341_fail
-    inc rx341_pos
-    set_addr $I10, rxcap_345_fail
-    ($I12, $I11) = rx341_cur."!mark_peek"($I10)
-    rx341_cur."!cursor_pos"($I11)
-    ($P10) = rx341_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx341_pos, "")
-    rx341_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx349_fail
+    inc rx349_pos
+    set_addr $I10, rxcap_353_fail
+    ($I12, $I11) = rx349_cur."!mark_peek"($I10)
+    rx349_cur."!cursor_pos"($I11)
+    ($P10) = rx349_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx349_pos, "")
+    rx349_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_345_done
-  rxcap_345_fail:
-    goto rx341_fail
-  rxcap_345_done:
+    goto rxcap_353_done
+  rxcap_353_fail:
+    goto rx349_fail
+  rxcap_353_done:
   # rx pass
-    rx341_cur."!cursor_pass"(rx341_pos, "backslash:sym<w>")
-    rx341_cur."!cursor_debug"("PASS  ", "backslash:sym<w>", " at pos=", rx341_pos)
-    .return (rx341_cur)
-  rx341_fail:
+    rx349_cur."!cursor_pass"(rx349_pos, "backslash:sym<w>")
+    rx349_cur."!cursor_debug"("PASS  ", "backslash:sym<w>", " at pos=", rx349_pos)
+    .return (rx349_cur)
+  rx349_fail:
 .annotate 'line', 3
-    (rx341_rep, rx341_pos, $I10, $P10) = rx341_cur."!mark_fail"(0)
-    lt rx341_pos, -1, rx341_done
-    eq rx341_pos, -1, rx341_fail
+    (rx349_rep, rx349_pos, $I10, $P10) = rx349_cur."!mark_fail"(0)
+    lt rx349_pos, -1, rx349_done
+    eq rx349_pos, -1, rx349_fail
     jump $I10
-  rx341_done:
-    rx341_cur."!cursor_fail"()
-    rx341_cur."!cursor_debug"("FAIL  ", "backslash:sym<w>")
-    .return (rx341_cur)
+  rx349_done:
+    rx349_cur."!cursor_fail"()
+    rx349_cur."!cursor_debug"("FAIL  ", "backslash:sym<w>")
+    .return (rx349_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>"  :subid("94_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<w>"  :subid("96_1277356887.58177") :method
 .annotate 'line', 3
-    new $P343, "ResizablePMCArray"
-    push $P343, "N"
-    push $P343, "W"
-    push $P343, "S"
-    push $P343, "D"
-    push $P343, "n"
-    push $P343, "w"
-    push $P343, "s"
-    push $P343, "d"
-    .return ($P343)
+    new $P351, "ResizablePMCArray"
+    push $P351, "N"
+    push $P351, "W"
+    push $P351, "S"
+    push $P351, "D"
+    push $P351, "n"
+    push $P351, "w"
+    push $P351, "s"
+    push $P351, "d"
+    .return ($P351)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>"  :subid("95_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<b>"  :subid("97_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx347_tgt
-    .local int rx347_pos
-    .local int rx347_off
-    .local int rx347_eos
-    .local int rx347_rep
-    .local pmc rx347_cur
-    (rx347_cur, rx347_pos, rx347_tgt) = self."!cursor_start"()
-    rx347_cur."!cursor_debug"("START ", "backslash:sym<b>")
-    .lex unicode:"$\x{a2}", rx347_cur
+    .local string rx355_tgt
+    .local int rx355_pos
+    .local int rx355_off
+    .local int rx355_eos
+    .local int rx355_rep
+    .local pmc rx355_cur
+    (rx355_cur, rx355_pos, rx355_tgt) = self."!cursor_start"()
+    rx355_cur."!cursor_debug"("START ", "backslash:sym<b>")
+    .lex unicode:"$\x{a2}", rx355_cur
     .local pmc match
     .lex "$/", match
-    length rx347_eos, rx347_tgt
-    gt rx347_pos, rx347_eos, rx347_done
-    set rx347_off, 0
-    lt rx347_pos, 2, rx347_start
-    sub rx347_off, rx347_pos, 1
-    substr rx347_tgt, rx347_tgt, rx347_off
-  rx347_start:
+    length rx355_eos, rx355_tgt
+    gt rx355_pos, rx355_eos, rx355_done
+    set rx355_off, 0
+    lt rx355_pos, 2, rx355_start
+    sub rx355_off, rx355_pos, 1
+    substr rx355_tgt, rx355_tgt, rx355_off
+  rx355_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan350_done
-    goto rxscan350_scan
-  rxscan350_loop:
-    ($P10) = rx347_cur."from"()
+    ne $I10, -1, rxscan358_done
+    goto rxscan358_scan
+  rxscan358_loop:
+    ($P10) = rx355_cur."from"()
     inc $P10
-    set rx347_pos, $P10
-    ge rx347_pos, rx347_eos, rxscan350_done
-  rxscan350_scan:
-    set_addr $I10, rxscan350_loop
-    rx347_cur."!mark_push"(0, rx347_pos, $I10)
-  rxscan350_done:
-.annotate 'line', 122
+    set rx355_pos, $P10
+    ge rx355_pos, rx355_eos, rxscan358_done
+  rxscan358_scan:
+    set_addr $I10, rxscan358_loop
+    rx355_cur."!mark_push"(0, rx355_pos, $I10)
+  rxscan358_done:
+.annotate 'line', 124
   # rx subcapture "sym"
-    set_addr $I10, rxcap_351_fail
-    rx347_cur."!mark_push"(0, rx347_pos, $I10)
+    set_addr $I10, rxcap_359_fail
+    rx355_cur."!mark_push"(0, rx355_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx347_pos, rx347_eos, rx347_fail
-    sub $I10, rx347_pos, rx347_off
-    substr $S10, rx347_tgt, $I10, 1
+    ge rx355_pos, rx355_eos, rx355_fail
+    sub $I10, rx355_pos, rx355_off
+    substr $S10, rx355_tgt, $I10, 1
     index $I11, "bB", $S10
-    lt $I11, 0, rx347_fail
-    inc rx347_pos
-    set_addr $I10, rxcap_351_fail
-    ($I12, $I11) = rx347_cur."!mark_peek"($I10)
-    rx347_cur."!cursor_pos"($I11)
-    ($P10) = rx347_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx347_pos, "")
-    rx347_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx355_fail
+    inc rx355_pos
+    set_addr $I10, rxcap_359_fail
+    ($I12, $I11) = rx355_cur."!mark_peek"($I10)
+    rx355_cur."!cursor_pos"($I11)
+    ($P10) = rx355_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx355_pos, "")
+    rx355_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_351_done
-  rxcap_351_fail:
-    goto rx347_fail
-  rxcap_351_done:
+    goto rxcap_359_done
+  rxcap_359_fail:
+    goto rx355_fail
+  rxcap_359_done:
   # rx pass
-    rx347_cur."!cursor_pass"(rx347_pos, "backslash:sym<b>")
-    rx347_cur."!cursor_debug"("PASS  ", "backslash:sym<b>", " at pos=", rx347_pos)
-    .return (rx347_cur)
-  rx347_fail:
+    rx355_cur."!cursor_pass"(rx355_pos, "backslash:sym<b>")
+    rx355_cur."!cursor_debug"("PASS  ", "backslash:sym<b>", " at pos=", rx355_pos)
+    .return (rx355_cur)
+  rx355_fail:
 .annotate 'line', 3
-    (rx347_rep, rx347_pos, $I10, $P10) = rx347_cur."!mark_fail"(0)
-    lt rx347_pos, -1, rx347_done
-    eq rx347_pos, -1, rx347_fail
+    (rx355_rep, rx355_pos, $I10, $P10) = rx355_cur."!mark_fail"(0)
+    lt rx355_pos, -1, rx355_done
+    eq rx355_pos, -1, rx355_fail
     jump $I10
-  rx347_done:
-    rx347_cur."!cursor_fail"()
-    rx347_cur."!cursor_debug"("FAIL  ", "backslash:sym<b>")
-    .return (rx347_cur)
+  rx355_done:
+    rx355_cur."!cursor_fail"()
+    rx355_cur."!cursor_debug"("FAIL  ", "backslash:sym<b>")
+    .return (rx355_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>"  :subid("96_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<b>"  :subid("98_1277356887.58177") :method
 .annotate 'line', 3
-    new $P349, "ResizablePMCArray"
-    push $P349, "B"
-    push $P349, "b"
-    .return ($P349)
+    new $P357, "ResizablePMCArray"
+    push $P357, "B"
+    push $P357, "b"
+    .return ($P357)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>"  :subid("97_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<e>"  :subid("99_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .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) = self."!cursor_start"()
-    rx353_cur."!cursor_debug"("START ", "backslash:sym<e>")
-    .lex unicode:"$\x{a2}", rx353_cur
-    .local pmc match
-    .lex "$/", match
-    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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan356_done
-    goto rxscan356_scan
-  rxscan356_loop:
-    ($P10) = rx353_cur."from"()
-    inc $P10
-    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', 123
+    .local string rx361_tgt
+    .local int rx361_pos
+    .local int rx361_off
+    .local int rx361_eos
+    .local int rx361_rep
+    .local pmc rx361_cur
+    (rx361_cur, rx361_pos, rx361_tgt) = self."!cursor_start"()
+    rx361_cur."!cursor_debug"("START ", "backslash:sym<e>")
+    .lex unicode:"$\x{a2}", rx361_cur
+    .local pmc match
+    .lex "$/", match
+    length rx361_eos, rx361_tgt
+    gt rx361_pos, rx361_eos, rx361_done
+    set rx361_off, 0
+    lt rx361_pos, 2, rx361_start
+    sub rx361_off, rx361_pos, 1
+    substr rx361_tgt, rx361_tgt, rx361_off
+  rx361_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan364_done
+    goto rxscan364_scan
+  rxscan364_loop:
+    ($P10) = rx361_cur."from"()
+    inc $P10
+    set rx361_pos, $P10
+    ge rx361_pos, rx361_eos, rxscan364_done
+  rxscan364_scan:
+    set_addr $I10, rxscan364_loop
+    rx361_cur."!mark_push"(0, rx361_pos, $I10)
+  rxscan364_done:
+.annotate 'line', 125
   # rx subcapture "sym"
-    set_addr $I10, rxcap_357_fail
-    rx353_cur."!mark_push"(0, rx353_pos, $I10)
+    set_addr $I10, rxcap_365_fail
+    rx361_cur."!mark_push"(0, rx361_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx353_pos, rx353_eos, rx353_fail
-    sub $I10, rx353_pos, rx353_off
-    substr $S10, rx353_tgt, $I10, 1
+    ge rx361_pos, rx361_eos, rx361_fail
+    sub $I10, rx361_pos, rx361_off
+    substr $S10, rx361_tgt, $I10, 1
     index $I11, "eE", $S10
-    lt $I11, 0, rx353_fail
-    inc rx353_pos
-    set_addr $I10, rxcap_357_fail
-    ($I12, $I11) = rx353_cur."!mark_peek"($I10)
-    rx353_cur."!cursor_pos"($I11)
-    ($P10) = rx353_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx353_pos, "")
-    rx353_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx361_fail
+    inc rx361_pos
+    set_addr $I10, rxcap_365_fail
+    ($I12, $I11) = rx361_cur."!mark_peek"($I10)
+    rx361_cur."!cursor_pos"($I11)
+    ($P10) = rx361_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx361_pos, "")
+    rx361_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_357_done
-  rxcap_357_fail:
-    goto rx353_fail
-  rxcap_357_done:
+    goto rxcap_365_done
+  rxcap_365_fail:
+    goto rx361_fail
+  rxcap_365_done:
   # rx pass
-    rx353_cur."!cursor_pass"(rx353_pos, "backslash:sym<e>")
-    rx353_cur."!cursor_debug"("PASS  ", "backslash:sym<e>", " at pos=", rx353_pos)
-    .return (rx353_cur)
-  rx353_fail:
+    rx361_cur."!cursor_pass"(rx361_pos, "backslash:sym<e>")
+    rx361_cur."!cursor_debug"("PASS  ", "backslash:sym<e>", " at pos=", rx361_pos)
+    .return (rx361_cur)
+  rx361_fail:
 .annotate 'line', 3
-    (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
-    lt rx353_pos, -1, rx353_done
-    eq rx353_pos, -1, rx353_fail
+    (rx361_rep, rx361_pos, $I10, $P10) = rx361_cur."!mark_fail"(0)
+    lt rx361_pos, -1, rx361_done
+    eq rx361_pos, -1, rx361_fail
     jump $I10
-  rx353_done:
-    rx353_cur."!cursor_fail"()
-    rx353_cur."!cursor_debug"("FAIL  ", "backslash:sym<e>")
-    .return (rx353_cur)
+  rx361_done:
+    rx361_cur."!cursor_fail"()
+    rx361_cur."!cursor_debug"("FAIL  ", "backslash:sym<e>")
+    .return (rx361_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>"  :subid("98_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<e>"  :subid("100_1277356887.58177") :method
 .annotate 'line', 3
-    new $P355, "ResizablePMCArray"
-    push $P355, "E"
-    push $P355, "e"
-    .return ($P355)
+    new $P363, "ResizablePMCArray"
+    push $P363, "E"
+    push $P363, "e"
+    .return ($P363)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>"  :subid("99_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<f>"  :subid("101_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx359_tgt
-    .local int rx359_pos
-    .local int rx359_off
-    .local int rx359_eos
-    .local int rx359_rep
-    .local pmc rx359_cur
-    (rx359_cur, rx359_pos, rx359_tgt) = self."!cursor_start"()
-    rx359_cur."!cursor_debug"("START ", "backslash:sym<f>")
-    .lex unicode:"$\x{a2}", rx359_cur
+    .local string rx367_tgt
+    .local int rx367_pos
+    .local int rx367_off
+    .local int rx367_eos
+    .local int rx367_rep
+    .local pmc rx367_cur
+    (rx367_cur, rx367_pos, rx367_tgt) = self."!cursor_start"()
+    rx367_cur."!cursor_debug"("START ", "backslash:sym<f>")
+    .lex unicode:"$\x{a2}", rx367_cur
     .local pmc match
     .lex "$/", match
-    length rx359_eos, rx359_tgt
-    gt rx359_pos, rx359_eos, rx359_done
-    set rx359_off, 0
-    lt rx359_pos, 2, rx359_start
-    sub rx359_off, rx359_pos, 1
-    substr rx359_tgt, rx359_tgt, rx359_off
-  rx359_start:
+    length rx367_eos, rx367_tgt
+    gt rx367_pos, rx367_eos, rx367_done
+    set rx367_off, 0
+    lt rx367_pos, 2, rx367_start
+    sub rx367_off, rx367_pos, 1
+    substr rx367_tgt, rx367_tgt, rx367_off
+  rx367_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan362_done
-    goto rxscan362_scan
-  rxscan362_loop:
-    ($P10) = rx359_cur."from"()
+    ne $I10, -1, rxscan370_done
+    goto rxscan370_scan
+  rxscan370_loop:
+    ($P10) = rx367_cur."from"()
     inc $P10
-    set rx359_pos, $P10
-    ge rx359_pos, rx359_eos, rxscan362_done
-  rxscan362_scan:
-    set_addr $I10, rxscan362_loop
-    rx359_cur."!mark_push"(0, rx359_pos, $I10)
-  rxscan362_done:
-.annotate 'line', 124
+    set rx367_pos, $P10
+    ge rx367_pos, rx367_eos, rxscan370_done
+  rxscan370_scan:
+    set_addr $I10, rxscan370_loop
+    rx367_cur."!mark_push"(0, rx367_pos, $I10)
+  rxscan370_done:
+.annotate 'line', 126
   # rx subcapture "sym"
-    set_addr $I10, rxcap_363_fail
-    rx359_cur."!mark_push"(0, rx359_pos, $I10)
+    set_addr $I10, rxcap_371_fail
+    rx367_cur."!mark_push"(0, rx367_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx359_pos, rx359_eos, rx359_fail
-    sub $I10, rx359_pos, rx359_off
-    substr $S10, rx359_tgt, $I10, 1
+    ge rx367_pos, rx367_eos, rx367_fail
+    sub $I10, rx367_pos, rx367_off
+    substr $S10, rx367_tgt, $I10, 1
     index $I11, "fF", $S10
-    lt $I11, 0, rx359_fail
-    inc rx359_pos
-    set_addr $I10, rxcap_363_fail
-    ($I12, $I11) = rx359_cur."!mark_peek"($I10)
-    rx359_cur."!cursor_pos"($I11)
-    ($P10) = rx359_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx359_pos, "")
-    rx359_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx367_fail
+    inc rx367_pos
+    set_addr $I10, rxcap_371_fail
+    ($I12, $I11) = rx367_cur."!mark_peek"($I10)
+    rx367_cur."!cursor_pos"($I11)
+    ($P10) = rx367_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx367_pos, "")
+    rx367_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_363_done
-  rxcap_363_fail:
-    goto rx359_fail
-  rxcap_363_done:
+    goto rxcap_371_done
+  rxcap_371_fail:
+    goto rx367_fail
+  rxcap_371_done:
   # rx pass
-    rx359_cur."!cursor_pass"(rx359_pos, "backslash:sym<f>")
-    rx359_cur."!cursor_debug"("PASS  ", "backslash:sym<f>", " at pos=", rx359_pos)
-    .return (rx359_cur)
-  rx359_fail:
+    rx367_cur."!cursor_pass"(rx367_pos, "backslash:sym<f>")
+    rx367_cur."!cursor_debug"("PASS  ", "backslash:sym<f>", " at pos=", rx367_pos)
+    .return (rx367_cur)
+  rx367_fail:
 .annotate 'line', 3
-    (rx359_rep, rx359_pos, $I10, $P10) = rx359_cur."!mark_fail"(0)
-    lt rx359_pos, -1, rx359_done
-    eq rx359_pos, -1, rx359_fail
+    (rx367_rep, rx367_pos, $I10, $P10) = rx367_cur."!mark_fail"(0)
+    lt rx367_pos, -1, rx367_done
+    eq rx367_pos, -1, rx367_fail
     jump $I10
-  rx359_done:
-    rx359_cur."!cursor_fail"()
-    rx359_cur."!cursor_debug"("FAIL  ", "backslash:sym<f>")
-    .return (rx359_cur)
+  rx367_done:
+    rx367_cur."!cursor_fail"()
+    rx367_cur."!cursor_debug"("FAIL  ", "backslash:sym<f>")
+    .return (rx367_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>"  :subid("100_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<f>"  :subid("102_1277356887.58177") :method
 .annotate 'line', 3
-    new $P361, "ResizablePMCArray"
-    push $P361, "F"
-    push $P361, "f"
-    .return ($P361)
+    new $P369, "ResizablePMCArray"
+    push $P369, "F"
+    push $P369, "f"
+    .return ($P369)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>"  :subid("101_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<h>"  :subid("103_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx365_tgt
-    .local int rx365_pos
-    .local int rx365_off
-    .local int rx365_eos
-    .local int rx365_rep
-    .local pmc rx365_cur
-    (rx365_cur, rx365_pos, rx365_tgt) = self."!cursor_start"()
-    rx365_cur."!cursor_debug"("START ", "backslash:sym<h>")
-    .lex unicode:"$\x{a2}", rx365_cur
+    .local string rx373_tgt
+    .local int rx373_pos
+    .local int rx373_off
+    .local int rx373_eos
+    .local int rx373_rep
+    .local pmc rx373_cur
+    (rx373_cur, rx373_pos, rx373_tgt) = self."!cursor_start"()
+    rx373_cur."!cursor_debug"("START ", "backslash:sym<h>")
+    .lex unicode:"$\x{a2}", rx373_cur
     .local pmc match
     .lex "$/", match
-    length rx365_eos, rx365_tgt
-    gt rx365_pos, rx365_eos, rx365_done
-    set rx365_off, 0
-    lt rx365_pos, 2, rx365_start
-    sub rx365_off, rx365_pos, 1
-    substr rx365_tgt, rx365_tgt, rx365_off
-  rx365_start:
+    length rx373_eos, rx373_tgt
+    gt rx373_pos, rx373_eos, rx373_done
+    set rx373_off, 0
+    lt rx373_pos, 2, rx373_start
+    sub rx373_off, rx373_pos, 1
+    substr rx373_tgt, rx373_tgt, rx373_off
+  rx373_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan368_done
-    goto rxscan368_scan
-  rxscan368_loop:
-    ($P10) = rx365_cur."from"()
+    ne $I10, -1, rxscan376_done
+    goto rxscan376_scan
+  rxscan376_loop:
+    ($P10) = rx373_cur."from"()
     inc $P10
-    set rx365_pos, $P10
-    ge rx365_pos, rx365_eos, rxscan368_done
-  rxscan368_scan:
-    set_addr $I10, rxscan368_loop
-    rx365_cur."!mark_push"(0, rx365_pos, $I10)
-  rxscan368_done:
-.annotate 'line', 125
+    set rx373_pos, $P10
+    ge rx373_pos, rx373_eos, rxscan376_done
+  rxscan376_scan:
+    set_addr $I10, rxscan376_loop
+    rx373_cur."!mark_push"(0, rx373_pos, $I10)
+  rxscan376_done:
+.annotate 'line', 127
   # rx subcapture "sym"
-    set_addr $I10, rxcap_369_fail
-    rx365_cur."!mark_push"(0, rx365_pos, $I10)
+    set_addr $I10, rxcap_377_fail
+    rx373_cur."!mark_push"(0, rx373_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx365_pos, rx365_eos, rx365_fail
-    sub $I10, rx365_pos, rx365_off
-    substr $S10, rx365_tgt, $I10, 1
+    ge rx373_pos, rx373_eos, rx373_fail
+    sub $I10, rx373_pos, rx373_off
+    substr $S10, rx373_tgt, $I10, 1
     index $I11, "hH", $S10
-    lt $I11, 0, rx365_fail
-    inc rx365_pos
-    set_addr $I10, rxcap_369_fail
-    ($I12, $I11) = rx365_cur."!mark_peek"($I10)
-    rx365_cur."!cursor_pos"($I11)
-    ($P10) = rx365_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx365_pos, "")
-    rx365_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx373_fail
+    inc rx373_pos
+    set_addr $I10, rxcap_377_fail
+    ($I12, $I11) = rx373_cur."!mark_peek"($I10)
+    rx373_cur."!cursor_pos"($I11)
+    ($P10) = rx373_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx373_pos, "")
+    rx373_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_369_done
-  rxcap_369_fail:
-    goto rx365_fail
-  rxcap_369_done:
+    goto rxcap_377_done
+  rxcap_377_fail:
+    goto rx373_fail
+  rxcap_377_done:
   # rx pass
-    rx365_cur."!cursor_pass"(rx365_pos, "backslash:sym<h>")
-    rx365_cur."!cursor_debug"("PASS  ", "backslash:sym<h>", " at pos=", rx365_pos)
-    .return (rx365_cur)
-  rx365_fail:
+    rx373_cur."!cursor_pass"(rx373_pos, "backslash:sym<h>")
+    rx373_cur."!cursor_debug"("PASS  ", "backslash:sym<h>", " at pos=", rx373_pos)
+    .return (rx373_cur)
+  rx373_fail:
 .annotate 'line', 3
-    (rx365_rep, rx365_pos, $I10, $P10) = rx365_cur."!mark_fail"(0)
-    lt rx365_pos, -1, rx365_done
-    eq rx365_pos, -1, rx365_fail
+    (rx373_rep, rx373_pos, $I10, $P10) = rx373_cur."!mark_fail"(0)
+    lt rx373_pos, -1, rx373_done
+    eq rx373_pos, -1, rx373_fail
     jump $I10
-  rx365_done:
-    rx365_cur."!cursor_fail"()
-    rx365_cur."!cursor_debug"("FAIL  ", "backslash:sym<h>")
-    .return (rx365_cur)
+  rx373_done:
+    rx373_cur."!cursor_fail"()
+    rx373_cur."!cursor_debug"("FAIL  ", "backslash:sym<h>")
+    .return (rx373_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>"  :subid("102_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<h>"  :subid("104_1277356887.58177") :method
 .annotate 'line', 3
-    new $P367, "ResizablePMCArray"
-    push $P367, "H"
-    push $P367, "h"
-    .return ($P367)
+    new $P375, "ResizablePMCArray"
+    push $P375, "H"
+    push $P375, "h"
+    .return ($P375)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>"  :subid("103_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<r>"  :subid("105_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx371_tgt
-    .local int rx371_pos
-    .local int rx371_off
-    .local int rx371_eos
-    .local int rx371_rep
-    .local pmc rx371_cur
-    (rx371_cur, rx371_pos, rx371_tgt) = self."!cursor_start"()
-    rx371_cur."!cursor_debug"("START ", "backslash:sym<r>")
-    .lex unicode:"$\x{a2}", rx371_cur
-    .local pmc match
-    .lex "$/", match
-    length rx371_eos, rx371_tgt
-    gt rx371_pos, rx371_eos, rx371_done
-    set rx371_off, 0
-    lt rx371_pos, 2, rx371_start
-    sub rx371_off, rx371_pos, 1
-    substr rx371_tgt, rx371_tgt, rx371_off
-  rx371_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan374_done
-    goto rxscan374_scan
-  rxscan374_loop:
-    ($P10) = rx371_cur."from"()
-    inc $P10
-    set rx371_pos, $P10
-    ge rx371_pos, rx371_eos, rxscan374_done
-  rxscan374_scan:
-    set_addr $I10, rxscan374_loop
-    rx371_cur."!mark_push"(0, rx371_pos, $I10)
-  rxscan374_done:
-.annotate 'line', 126
+    .local string rx379_tgt
+    .local int rx379_pos
+    .local int rx379_off
+    .local int rx379_eos
+    .local int rx379_rep
+    .local pmc rx379_cur
+    (rx379_cur, rx379_pos, rx379_tgt) = self."!cursor_start"()
+    rx379_cur."!cursor_debug"("START ", "backslash:sym<r>")
+    .lex unicode:"$\x{a2}", rx379_cur
+    .local pmc match
+    .lex "$/", match
+    length rx379_eos, rx379_tgt
+    gt rx379_pos, rx379_eos, rx379_done
+    set rx379_off, 0
+    lt rx379_pos, 2, rx379_start
+    sub rx379_off, rx379_pos, 1
+    substr rx379_tgt, rx379_tgt, rx379_off
+  rx379_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan382_done
+    goto rxscan382_scan
+  rxscan382_loop:
+    ($P10) = rx379_cur."from"()
+    inc $P10
+    set rx379_pos, $P10
+    ge rx379_pos, rx379_eos, rxscan382_done
+  rxscan382_scan:
+    set_addr $I10, rxscan382_loop
+    rx379_cur."!mark_push"(0, rx379_pos, $I10)
+  rxscan382_done:
+.annotate 'line', 128
   # rx subcapture "sym"
-    set_addr $I10, rxcap_375_fail
-    rx371_cur."!mark_push"(0, rx371_pos, $I10)
+    set_addr $I10, rxcap_383_fail
+    rx379_cur."!mark_push"(0, rx379_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx371_pos, rx371_eos, rx371_fail
-    sub $I10, rx371_pos, rx371_off
-    substr $S10, rx371_tgt, $I10, 1
+    ge rx379_pos, rx379_eos, rx379_fail
+    sub $I10, rx379_pos, rx379_off
+    substr $S10, rx379_tgt, $I10, 1
     index $I11, "rR", $S10
-    lt $I11, 0, rx371_fail
-    inc rx371_pos
-    set_addr $I10, rxcap_375_fail
-    ($I12, $I11) = rx371_cur."!mark_peek"($I10)
-    rx371_cur."!cursor_pos"($I11)
-    ($P10) = rx371_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx371_pos, "")
-    rx371_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx379_fail
+    inc rx379_pos
+    set_addr $I10, rxcap_383_fail
+    ($I12, $I11) = rx379_cur."!mark_peek"($I10)
+    rx379_cur."!cursor_pos"($I11)
+    ($P10) = rx379_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx379_pos, "")
+    rx379_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_375_done
-  rxcap_375_fail:
-    goto rx371_fail
-  rxcap_375_done:
+    goto rxcap_383_done
+  rxcap_383_fail:
+    goto rx379_fail
+  rxcap_383_done:
   # rx pass
-    rx371_cur."!cursor_pass"(rx371_pos, "backslash:sym<r>")
-    rx371_cur."!cursor_debug"("PASS  ", "backslash:sym<r>", " at pos=", rx371_pos)
-    .return (rx371_cur)
-  rx371_fail:
+    rx379_cur."!cursor_pass"(rx379_pos, "backslash:sym<r>")
+    rx379_cur."!cursor_debug"("PASS  ", "backslash:sym<r>", " at pos=", rx379_pos)
+    .return (rx379_cur)
+  rx379_fail:
 .annotate 'line', 3
-    (rx371_rep, rx371_pos, $I10, $P10) = rx371_cur."!mark_fail"(0)
-    lt rx371_pos, -1, rx371_done
-    eq rx371_pos, -1, rx371_fail
+    (rx379_rep, rx379_pos, $I10, $P10) = rx379_cur."!mark_fail"(0)
+    lt rx379_pos, -1, rx379_done
+    eq rx379_pos, -1, rx379_fail
     jump $I10
-  rx371_done:
-    rx371_cur."!cursor_fail"()
-    rx371_cur."!cursor_debug"("FAIL  ", "backslash:sym<r>")
-    .return (rx371_cur)
+  rx379_done:
+    rx379_cur."!cursor_fail"()
+    rx379_cur."!cursor_debug"("FAIL  ", "backslash:sym<r>")
+    .return (rx379_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>"  :subid("104_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<r>"  :subid("106_1277356887.58177") :method
 .annotate 'line', 3
-    new $P373, "ResizablePMCArray"
-    push $P373, "R"
-    push $P373, "r"
-    .return ($P373)
+    new $P381, "ResizablePMCArray"
+    push $P381, "R"
+    push $P381, "r"
+    .return ($P381)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>"  :subid("105_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<t>"  :subid("107_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx377_tgt
-    .local int rx377_pos
-    .local int rx377_off
-    .local int rx377_eos
-    .local int rx377_rep
-    .local pmc rx377_cur
-    (rx377_cur, rx377_pos, rx377_tgt) = self."!cursor_start"()
-    rx377_cur."!cursor_debug"("START ", "backslash:sym<t>")
-    .lex unicode:"$\x{a2}", rx377_cur
+    .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) = self."!cursor_start"()
+    rx385_cur."!cursor_debug"("START ", "backslash:sym<t>")
+    .lex unicode:"$\x{a2}", rx385_cur
     .local pmc match
     .lex "$/", match
-    length rx377_eos, rx377_tgt
-    gt rx377_pos, rx377_eos, rx377_done
-    set rx377_off, 0
-    lt rx377_pos, 2, rx377_start
-    sub rx377_off, rx377_pos, 1
-    substr rx377_tgt, rx377_tgt, rx377_off
-  rx377_start:
+    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:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan380_done
-    goto rxscan380_scan
-  rxscan380_loop:
-    ($P10) = rx377_cur."from"()
+    ne $I10, -1, rxscan388_done
+    goto rxscan388_scan
+  rxscan388_loop:
+    ($P10) = rx385_cur."from"()
     inc $P10
-    set rx377_pos, $P10
-    ge rx377_pos, rx377_eos, rxscan380_done
-  rxscan380_scan:
-    set_addr $I10, rxscan380_loop
-    rx377_cur."!mark_push"(0, rx377_pos, $I10)
-  rxscan380_done:
-.annotate 'line', 127
+    set rx385_pos, $P10
+    ge rx385_pos, rx385_eos, rxscan388_done
+  rxscan388_scan:
+    set_addr $I10, rxscan388_loop
+    rx385_cur."!mark_push"(0, rx385_pos, $I10)
+  rxscan388_done:
+.annotate 'line', 129
   # rx subcapture "sym"
-    set_addr $I10, rxcap_381_fail
-    rx377_cur."!mark_push"(0, rx377_pos, $I10)
+    set_addr $I10, rxcap_389_fail
+    rx385_cur."!mark_push"(0, rx385_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx377_pos, rx377_eos, rx377_fail
-    sub $I10, rx377_pos, rx377_off
-    substr $S10, rx377_tgt, $I10, 1
+    ge rx385_pos, rx385_eos, rx385_fail
+    sub $I10, rx385_pos, rx385_off
+    substr $S10, rx385_tgt, $I10, 1
     index $I11, "tT", $S10
-    lt $I11, 0, rx377_fail
-    inc rx377_pos
-    set_addr $I10, rxcap_381_fail
-    ($I12, $I11) = rx377_cur."!mark_peek"($I10)
-    rx377_cur."!cursor_pos"($I11)
-    ($P10) = rx377_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx377_pos, "")
-    rx377_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx385_fail
+    inc rx385_pos
+    set_addr $I10, rxcap_389_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_381_done
-  rxcap_381_fail:
-    goto rx377_fail
-  rxcap_381_done:
+    goto rxcap_389_done
+  rxcap_389_fail:
+    goto rx385_fail
+  rxcap_389_done:
   # rx pass
-    rx377_cur."!cursor_pass"(rx377_pos, "backslash:sym<t>")
-    rx377_cur."!cursor_debug"("PASS  ", "backslash:sym<t>", " at pos=", rx377_pos)
-    .return (rx377_cur)
-  rx377_fail:
+    rx385_cur."!cursor_pass"(rx385_pos, "backslash:sym<t>")
+    rx385_cur."!cursor_debug"("PASS  ", "backslash:sym<t>", " at pos=", rx385_pos)
+    .return (rx385_cur)
+  rx385_fail:
 .annotate 'line', 3
-    (rx377_rep, rx377_pos, $I10, $P10) = rx377_cur."!mark_fail"(0)
-    lt rx377_pos, -1, rx377_done
-    eq rx377_pos, -1, rx377_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
-  rx377_done:
-    rx377_cur."!cursor_fail"()
-    rx377_cur."!cursor_debug"("FAIL  ", "backslash:sym<t>")
-    .return (rx377_cur)
+  rx385_done:
+    rx385_cur."!cursor_fail"()
+    rx385_cur."!cursor_debug"("FAIL  ", "backslash:sym<t>")
+    .return (rx385_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>"  :subid("106_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<t>"  :subid("108_1277356887.58177") :method
 .annotate 'line', 3
-    new $P379, "ResizablePMCArray"
-    push $P379, "T"
-    push $P379, "t"
-    .return ($P379)
+    new $P387, "ResizablePMCArray"
+    push $P387, "T"
+    push $P387, "t"
+    .return ($P387)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>"  :subid("107_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<v>"  :subid("109_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx383_tgt
-    .local int rx383_pos
-    .local int rx383_off
-    .local int rx383_eos
-    .local int rx383_rep
-    .local pmc rx383_cur
-    (rx383_cur, rx383_pos, rx383_tgt) = self."!cursor_start"()
-    rx383_cur."!cursor_debug"("START ", "backslash:sym<v>")
-    .lex unicode:"$\x{a2}", rx383_cur
+    .local string rx391_tgt
+    .local int rx391_pos
+    .local int rx391_off
+    .local int rx391_eos
+    .local int rx391_rep
+    .local pmc rx391_cur
+    (rx391_cur, rx391_pos, rx391_tgt) = self."!cursor_start"()
+    rx391_cur."!cursor_debug"("START ", "backslash:sym<v>")
+    .lex unicode:"$\x{a2}", rx391_cur
     .local pmc match
     .lex "$/", match
-    length rx383_eos, rx383_tgt
-    gt rx383_pos, rx383_eos, rx383_done
-    set rx383_off, 0
-    lt rx383_pos, 2, rx383_start
-    sub rx383_off, rx383_pos, 1
-    substr rx383_tgt, rx383_tgt, rx383_off
-  rx383_start:
+    length rx391_eos, rx391_tgt
+    gt rx391_pos, rx391_eos, rx391_done
+    set rx391_off, 0
+    lt rx391_pos, 2, rx391_start
+    sub rx391_off, rx391_pos, 1
+    substr rx391_tgt, rx391_tgt, rx391_off
+  rx391_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan386_done
-    goto rxscan386_scan
-  rxscan386_loop:
-    ($P10) = rx383_cur."from"()
+    ne $I10, -1, rxscan394_done
+    goto rxscan394_scan
+  rxscan394_loop:
+    ($P10) = rx391_cur."from"()
     inc $P10
-    set rx383_pos, $P10
-    ge rx383_pos, rx383_eos, rxscan386_done
-  rxscan386_scan:
-    set_addr $I10, rxscan386_loop
-    rx383_cur."!mark_push"(0, rx383_pos, $I10)
-  rxscan386_done:
-.annotate 'line', 128
+    set rx391_pos, $P10
+    ge rx391_pos, rx391_eos, rxscan394_done
+  rxscan394_scan:
+    set_addr $I10, rxscan394_loop
+    rx391_cur."!mark_push"(0, rx391_pos, $I10)
+  rxscan394_done:
+.annotate 'line', 130
   # rx subcapture "sym"
-    set_addr $I10, rxcap_387_fail
-    rx383_cur."!mark_push"(0, rx383_pos, $I10)
+    set_addr $I10, rxcap_395_fail
+    rx391_cur."!mark_push"(0, rx391_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx383_pos, rx383_eos, rx383_fail
-    sub $I10, rx383_pos, rx383_off
-    substr $S10, rx383_tgt, $I10, 1
+    ge rx391_pos, rx391_eos, rx391_fail
+    sub $I10, rx391_pos, rx391_off
+    substr $S10, rx391_tgt, $I10, 1
     index $I11, "vV", $S10
-    lt $I11, 0, rx383_fail
-    inc rx383_pos
-    set_addr $I10, rxcap_387_fail
-    ($I12, $I11) = rx383_cur."!mark_peek"($I10)
-    rx383_cur."!cursor_pos"($I11)
-    ($P10) = rx383_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx383_pos, "")
-    rx383_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx391_fail
+    inc rx391_pos
+    set_addr $I10, rxcap_395_fail
+    ($I12, $I11) = rx391_cur."!mark_peek"($I10)
+    rx391_cur."!cursor_pos"($I11)
+    ($P10) = rx391_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx391_pos, "")
+    rx391_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_387_done
-  rxcap_387_fail:
-    goto rx383_fail
-  rxcap_387_done:
+    goto rxcap_395_done
+  rxcap_395_fail:
+    goto rx391_fail
+  rxcap_395_done:
   # rx pass
-    rx383_cur."!cursor_pass"(rx383_pos, "backslash:sym<v>")
-    rx383_cur."!cursor_debug"("PASS  ", "backslash:sym<v>", " at pos=", rx383_pos)
-    .return (rx383_cur)
-  rx383_fail:
+    rx391_cur."!cursor_pass"(rx391_pos, "backslash:sym<v>")
+    rx391_cur."!cursor_debug"("PASS  ", "backslash:sym<v>", " at pos=", rx391_pos)
+    .return (rx391_cur)
+  rx391_fail:
 .annotate 'line', 3
-    (rx383_rep, rx383_pos, $I10, $P10) = rx383_cur."!mark_fail"(0)
-    lt rx383_pos, -1, rx383_done
-    eq rx383_pos, -1, rx383_fail
+    (rx391_rep, rx391_pos, $I10, $P10) = rx391_cur."!mark_fail"(0)
+    lt rx391_pos, -1, rx391_done
+    eq rx391_pos, -1, rx391_fail
     jump $I10
-  rx383_done:
-    rx383_cur."!cursor_fail"()
-    rx383_cur."!cursor_debug"("FAIL  ", "backslash:sym<v>")
-    .return (rx383_cur)
+  rx391_done:
+    rx391_cur."!cursor_fail"()
+    rx391_cur."!cursor_debug"("FAIL  ", "backslash:sym<v>")
+    .return (rx391_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>"  :subid("108_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<v>"  :subid("110_1277356887.58177") :method
 .annotate 'line', 3
-    new $P385, "ResizablePMCArray"
-    push $P385, "V"
-    push $P385, "v"
-    .return ($P385)
+    new $P393, "ResizablePMCArray"
+    push $P393, "V"
+    push $P393, "v"
+    .return ($P393)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>"  :subid("109_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<o>"  :subid("111_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx389_tgt
-    .local int rx389_pos
-    .local int rx389_off
-    .local int rx389_eos
-    .local int rx389_rep
-    .local pmc rx389_cur
-    (rx389_cur, rx389_pos, rx389_tgt) = self."!cursor_start"()
-    rx389_cur."!cursor_debug"("START ", "backslash:sym<o>")
-    .lex unicode:"$\x{a2}", rx389_cur
+    .local string rx397_tgt
+    .local int rx397_pos
+    .local int rx397_off
+    .local int rx397_eos
+    .local int rx397_rep
+    .local pmc rx397_cur
+    (rx397_cur, rx397_pos, rx397_tgt) = self."!cursor_start"()
+    rx397_cur."!cursor_debug"("START ", "backslash:sym<o>")
+    .lex unicode:"$\x{a2}", rx397_cur
     .local pmc match
     .lex "$/", match
-    length rx389_eos, rx389_tgt
-    gt rx389_pos, rx389_eos, rx389_done
-    set rx389_off, 0
-    lt rx389_pos, 2, rx389_start
-    sub rx389_off, rx389_pos, 1
-    substr rx389_tgt, rx389_tgt, rx389_off
-  rx389_start:
+    length rx397_eos, rx397_tgt
+    gt rx397_pos, rx397_eos, rx397_done
+    set rx397_off, 0
+    lt rx397_pos, 2, rx397_start
+    sub rx397_off, rx397_pos, 1
+    substr rx397_tgt, rx397_tgt, rx397_off
+  rx397_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan396_done
-    goto rxscan396_scan
-  rxscan396_loop:
-    ($P10) = rx389_cur."from"()
+    ne $I10, -1, rxscan404_done
+    goto rxscan404_scan
+  rxscan404_loop:
+    ($P10) = rx397_cur."from"()
     inc $P10
-    set rx389_pos, $P10
-    ge rx389_pos, rx389_eos, rxscan396_done
-  rxscan396_scan:
-    set_addr $I10, rxscan396_loop
-    rx389_cur."!mark_push"(0, rx389_pos, $I10)
-  rxscan396_done:
-.annotate 'line', 129
+    set rx397_pos, $P10
+    ge rx397_pos, rx397_eos, rxscan404_done
+  rxscan404_scan:
+    set_addr $I10, rxscan404_loop
+    rx397_cur."!mark_push"(0, rx397_pos, $I10)
+  rxscan404_done:
+.annotate 'line', 131
   # rx subcapture "sym"
-    set_addr $I10, rxcap_397_fail
-    rx389_cur."!mark_push"(0, rx389_pos, $I10)
+    set_addr $I10, rxcap_405_fail
+    rx397_cur."!mark_push"(0, rx397_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx389_pos, rx389_eos, rx389_fail
-    sub $I10, rx389_pos, rx389_off
-    substr $S10, rx389_tgt, $I10, 1
+    ge rx397_pos, rx397_eos, rx397_fail
+    sub $I10, rx397_pos, rx397_off
+    substr $S10, rx397_tgt, $I10, 1
     index $I11, "oO", $S10
-    lt $I11, 0, rx389_fail
-    inc rx389_pos
-    set_addr $I10, rxcap_397_fail
-    ($I12, $I11) = rx389_cur."!mark_peek"($I10)
-    rx389_cur."!cursor_pos"($I11)
-    ($P10) = rx389_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx389_pos, "")
-    rx389_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx397_fail
+    inc rx397_pos
+    set_addr $I10, rxcap_405_fail
+    ($I12, $I11) = rx397_cur."!mark_peek"($I10)
+    rx397_cur."!cursor_pos"($I11)
+    ($P10) = rx397_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx397_pos, "")
+    rx397_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("sym")
-    goto rxcap_397_done
-  rxcap_397_fail:
-    goto rx389_fail
-  rxcap_397_done:
-  alt398_0:
-    set_addr $I10, alt398_1
-    rx389_cur."!mark_push"(0, rx389_pos, $I10)
+    goto rxcap_405_done
+  rxcap_405_fail:
+    goto rx397_fail
+  rxcap_405_done:
+  alt406_0:
+    set_addr $I10, alt406_1
+    rx397_cur."!mark_push"(0, rx397_pos, $I10)
   # rx subrule "octint" subtype=capture negate=
-    rx389_cur."!cursor_pos"(rx389_pos)
-    $P10 = rx389_cur."octint"()
-    unless $P10, rx389_fail
-    rx389_cur."!mark_push"(0, -1, 0, $P10)
+    rx397_cur."!cursor_pos"(rx397_pos)
+    $P10 = rx397_cur."octint"()
+    unless $P10, rx397_fail
+    rx397_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octint")
-    rx389_pos = $P10."pos"()
-    goto alt398_end
-  alt398_1:
+    rx397_pos = $P10."pos"()
+    goto alt406_end
+  alt406_1:
   # rx literal  "["
-    add $I11, rx389_pos, 1
-    gt $I11, rx389_eos, rx389_fail
-    sub $I11, rx389_pos, rx389_off
-    substr $S10, rx389_tgt, $I11, 1
-    ne $S10, "[", rx389_fail
-    add rx389_pos, 1
+    add $I11, rx397_pos, 1
+    gt $I11, rx397_eos, rx397_fail
+    sub $I11, rx397_pos, rx397_off
+    substr $S10, rx397_tgt, $I11, 1
+    ne $S10, "[", rx397_fail
+    add rx397_pos, 1
   # rx subrule "octints" subtype=capture negate=
-    rx389_cur."!cursor_pos"(rx389_pos)
-    $P10 = rx389_cur."octints"()
-    unless $P10, rx389_fail
-    rx389_cur."!mark_push"(0, -1, 0, $P10)
+    rx397_cur."!cursor_pos"(rx397_pos)
+    $P10 = rx397_cur."octints"()
+    unless $P10, rx397_fail
+    rx397_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("octints")
-    rx389_pos = $P10."pos"()
+    rx397_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx389_pos, 1
-    gt $I11, rx389_eos, rx389_fail
-    sub $I11, rx389_pos, rx389_off
-    substr $S10, rx389_tgt, $I11, 1
-    ne $S10, "]", rx389_fail
-    add rx389_pos, 1
-  alt398_end:
-  # rx pass
-    rx389_cur."!cursor_pass"(rx389_pos, "backslash:sym<o>")
-    rx389_cur."!cursor_debug"("PASS  ", "backslash:sym<o>", " at pos=", rx389_pos)
-    .return (rx389_cur)
-  rx389_fail:
-.annotate 'line', 3
-    (rx389_rep, rx389_pos, $I10, $P10) = rx389_cur."!mark_fail"(0)
-    lt rx389_pos, -1, rx389_done
-    eq rx389_pos, -1, rx389_fail
-    jump $I10
-  rx389_done:
-    rx389_cur."!cursor_fail"()
-    rx389_cur."!cursor_debug"("FAIL  ", "backslash:sym<o>")
-    .return (rx389_cur)
+    add $I11, rx397_pos, 1
+    gt $I11, rx397_eos, rx397_fail
+    sub $I11, rx397_pos, rx397_off
+    substr $S10, rx397_tgt, $I11, 1
+    ne $S10, "]", rx397_fail
+    add rx397_pos, 1
+  alt406_end:
+  # rx pass
+    rx397_cur."!cursor_pass"(rx397_pos, "backslash:sym<o>")
+    rx397_cur."!cursor_debug"("PASS  ", "backslash:sym<o>", " at pos=", rx397_pos)
+    .return (rx397_cur)
+  rx397_fail:
+.annotate 'line', 3
+    (rx397_rep, rx397_pos, $I10, $P10) = rx397_cur."!mark_fail"(0)
+    lt rx397_pos, -1, rx397_done
+    eq rx397_pos, -1, rx397_fail
+    jump $I10
+  rx397_done:
+    rx397_cur."!cursor_fail"()
+    rx397_cur."!cursor_debug"("FAIL  ", "backslash:sym<o>")
+    .return (rx397_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>"  :subid("110_1275811476.7961") :method
-.annotate 'line', 3
-    $P391 = self."!PREFIX__!subrule"("octints", "O[")
-    $P392 = self."!PREFIX__!subrule"("octint", "O")
-    $P393 = self."!PREFIX__!subrule"("octints", "o[")
-    $P394 = self."!PREFIX__!subrule"("octint", "o")
-    new $P395, "ResizablePMCArray"
-    push $P395, $P391
-    push $P395, $P392
-    push $P395, $P393
-    push $P395, $P394
-    .return ($P395)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>"  :subid("111_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .local string rx400_tgt
-    .local int rx400_pos
-    .local int rx400_off
-    .local int rx400_eos
-    .local int rx400_rep
-    .local pmc rx400_cur
-    (rx400_cur, rx400_pos, rx400_tgt) = self."!cursor_start"()
-    rx400_cur."!cursor_debug"("START ", "backslash:sym<x>")
-    .lex unicode:"$\x{a2}", rx400_cur
-    .local pmc match
-    .lex "$/", match
-    length rx400_eos, rx400_tgt
-    gt rx400_pos, rx400_eos, rx400_done
-    set rx400_off, 0
-    lt rx400_pos, 2, rx400_start
-    sub rx400_off, rx400_pos, 1
-    substr rx400_tgt, rx400_tgt, rx400_off
-  rx400_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan407_done
-    goto rxscan407_scan
-  rxscan407_loop:
-    ($P10) = rx400_cur."from"()
-    inc $P10
-    set rx400_pos, $P10
-    ge rx400_pos, rx400_eos, rxscan407_done
-  rxscan407_scan:
-    set_addr $I10, rxscan407_loop
-    rx400_cur."!mark_push"(0, rx400_pos, $I10)
-  rxscan407_done:
-.annotate 'line', 130
+.sub "!PREFIX__backslash:sym<o>"  :subid("112_1277356887.58177") :method
+.annotate 'line', 3
+    $P399 = self."!PREFIX__!subrule"("octints", "O[")
+    $P400 = self."!PREFIX__!subrule"("octint", "O")
+    $P401 = self."!PREFIX__!subrule"("octints", "o[")
+    $P402 = self."!PREFIX__!subrule"("octint", "o")
+    new $P403, "ResizablePMCArray"
+    push $P403, $P399
+    push $P403, $P400
+    push $P403, $P401
+    push $P403, $P402
+    .return ($P403)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<x>"  :subid("113_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .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 ", "backslash:sym<x>")
+    .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, rxscan415_done
+    goto rxscan415_scan
+  rxscan415_loop:
+    ($P10) = rx408_cur."from"()
+    inc $P10
+    set rx408_pos, $P10
+    ge rx408_pos, rx408_eos, rxscan415_done
+  rxscan415_scan:
+    set_addr $I10, rxscan415_loop
+    rx408_cur."!mark_push"(0, rx408_pos, $I10)
+  rxscan415_done:
+.annotate 'line', 132
   # rx subcapture "sym"
-    set_addr $I10, rxcap_408_fail
-    rx400_cur."!mark_push"(0, rx400_pos, $I10)
+    set_addr $I10, rxcap_416_fail
+    rx408_cur."!mark_push"(0, rx408_pos, $I10)
   # rx enumcharlist negate=0 
-    ge rx400_pos, rx400_eos, rx400_fail
-    sub $I10, rx400_pos, rx400_off
-    substr $S10, rx400_tgt, $I10, 1
+    ge rx408_pos, rx408_eos, rx408_fail
+    sub $I10, rx408_pos, rx408_off
+    substr $S10, rx408_tgt, $I10, 1
     index $I11, "xX", $S10
-    lt $I11, 0, rx400_fail
-    inc rx400_pos
-    set_addr $I10, rxcap_408_fail
-    ($I12, $I11) = rx400_cur."!mark_peek"($I10)
-    rx400_cur."!cursor_pos"($I11)
-    ($P10) = rx400_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx400_pos, "")
-    rx400_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, 0, rx408_fail
+    inc rx408_pos
+    set_addr $I10, rxcap_416_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)
     $P10."!cursor_names"("sym")
-    goto rxcap_408_done
-  rxcap_408_fail:
-    goto rx400_fail
-  rxcap_408_done:
-  alt409_0:
-    set_addr $I10, alt409_1
-    rx400_cur."!mark_push"(0, rx400_pos, $I10)
+    goto rxcap_416_done
+  rxcap_416_fail:
+    goto rx408_fail
+  rxcap_416_done:
+  alt417_0:
+    set_addr $I10, alt417_1
+    rx408_cur."!mark_push"(0, rx408_pos, $I10)
   # rx subrule "hexint" subtype=capture negate=
-    rx400_cur."!cursor_pos"(rx400_pos)
-    $P10 = rx400_cur."hexint"()
-    unless $P10, rx400_fail
-    rx400_cur."!mark_push"(0, -1, 0, $P10)
+    rx408_cur."!cursor_pos"(rx408_pos)
+    $P10 = rx408_cur."hexint"()
+    unless $P10, rx408_fail
+    rx408_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexint")
-    rx400_pos = $P10."pos"()
-    goto alt409_end
-  alt409_1:
+    rx408_pos = $P10."pos"()
+    goto alt417_end
+  alt417_1:
   # rx literal  "["
-    add $I11, rx400_pos, 1
-    gt $I11, rx400_eos, rx400_fail
-    sub $I11, rx400_pos, rx400_off
-    substr $S10, rx400_tgt, $I11, 1
-    ne $S10, "[", rx400_fail
-    add rx400_pos, 1
+    add $I11, rx408_pos, 1
+    gt $I11, rx408_eos, rx408_fail
+    sub $I11, rx408_pos, rx408_off
+    substr $S10, rx408_tgt, $I11, 1
+    ne $S10, "[", rx408_fail
+    add rx408_pos, 1
   # rx subrule "hexints" subtype=capture negate=
-    rx400_cur."!cursor_pos"(rx400_pos)
-    $P10 = rx400_cur."hexints"()
-    unless $P10, rx400_fail
-    rx400_cur."!mark_push"(0, -1, 0, $P10)
+    rx408_cur."!cursor_pos"(rx408_pos)
+    $P10 = rx408_cur."hexints"()
+    unless $P10, rx408_fail
+    rx408_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("hexints")
-    rx400_pos = $P10."pos"()
+    rx408_pos = $P10."pos"()
   # rx literal  "]"
-    add $I11, rx400_pos, 1
-    gt $I11, rx400_eos, rx400_fail
-    sub $I11, rx400_pos, rx400_off
-    substr $S10, rx400_tgt, $I11, 1
-    ne $S10, "]", rx400_fail
-    add rx400_pos, 1
-  alt409_end:
-  # rx pass
-    rx400_cur."!cursor_pass"(rx400_pos, "backslash:sym<x>")
-    rx400_cur."!cursor_debug"("PASS  ", "backslash:sym<x>", " at pos=", rx400_pos)
-    .return (rx400_cur)
-  rx400_fail:
-.annotate 'line', 3
-    (rx400_rep, rx400_pos, $I10, $P10) = rx400_cur."!mark_fail"(0)
-    lt rx400_pos, -1, rx400_done
-    eq rx400_pos, -1, rx400_fail
-    jump $I10
-  rx400_done:
-    rx400_cur."!cursor_fail"()
-    rx400_cur."!cursor_debug"("FAIL  ", "backslash:sym<x>")
-    .return (rx400_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>"  :subid("112_1275811476.7961") :method
-.annotate 'line', 3
-    $P402 = self."!PREFIX__!subrule"("hexints", "X[")
-    $P403 = self."!PREFIX__!subrule"("hexint", "X")
-    $P404 = self."!PREFIX__!subrule"("hexints", "x[")
-    $P405 = self."!PREFIX__!subrule"("hexint", "x")
-    new $P406, "ResizablePMCArray"
-    push $P406, $P402
-    push $P406, $P403
-    push $P406, $P404
-    push $P406, $P405
-    .return ($P406)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>"  :subid("113_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .local string rx411_tgt
-    .local int rx411_pos
-    .local int rx411_off
-    .local int rx411_eos
-    .local int rx411_rep
-    .local pmc rx411_cur
-    (rx411_cur, rx411_pos, rx411_tgt) = self."!cursor_start"()
-    rx411_cur."!cursor_debug"("START ", "backslash:sym<c>")
-    .lex unicode:"$\x{a2}", rx411_cur
-    .local pmc match
-    .lex "$/", match
-    length rx411_eos, rx411_tgt
-    gt rx411_pos, rx411_eos, rx411_done
-    set rx411_off, 0
-    lt rx411_pos, 2, rx411_start
-    sub rx411_off, rx411_pos, 1
-    substr rx411_tgt, rx411_tgt, rx411_off
-  rx411_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan416_done
-    goto rxscan416_scan
-  rxscan416_loop:
-    ($P10) = rx411_cur."from"()
-    inc $P10
-    set rx411_pos, $P10
-    ge rx411_pos, rx411_eos, rxscan416_done
-  rxscan416_scan:
-    set_addr $I10, rxscan416_loop
-    rx411_cur."!mark_push"(0, rx411_pos, $I10)
-  rxscan416_done:
-.annotate 'line', 131
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_417_fail
-    rx411_cur."!mark_push"(0, rx411_pos, $I10)
-  # rx enumcharlist negate=0 
-    ge rx411_pos, rx411_eos, rx411_fail
-    sub $I10, rx411_pos, rx411_off
-    substr $S10, rx411_tgt, $I10, 1
-    index $I11, "cC", $S10
-    lt $I11, 0, rx411_fail
-    inc rx411_pos
-    set_addr $I10, rxcap_417_fail
-    ($I12, $I11) = rx411_cur."!mark_peek"($I10)
-    rx411_cur."!cursor_pos"($I11)
-    ($P10) = rx411_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx411_pos, "")
-    rx411_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_417_done
-  rxcap_417_fail:
-    goto rx411_fail
-  rxcap_417_done:
-  # rx subrule "charspec" subtype=capture negate=
-    rx411_cur."!cursor_pos"(rx411_pos)
-    $P10 = rx411_cur."charspec"()
-    unless $P10, rx411_fail
-    rx411_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("charspec")
-    rx411_pos = $P10."pos"()
+    add $I11, rx408_pos, 1
+    gt $I11, rx408_eos, rx408_fail
+    sub $I11, rx408_pos, rx408_off
+    substr $S10, rx408_tgt, $I11, 1
+    ne $S10, "]", rx408_fail
+    add rx408_pos, 1
+  alt417_end:
   # rx pass
-    rx411_cur."!cursor_pass"(rx411_pos, "backslash:sym<c>")
-    rx411_cur."!cursor_debug"("PASS  ", "backslash:sym<c>", " at pos=", rx411_pos)
-    .return (rx411_cur)
-  rx411_fail:
+    rx408_cur."!cursor_pass"(rx408_pos, "backslash:sym<x>")
+    rx408_cur."!cursor_debug"("PASS  ", "backslash:sym<x>", " at pos=", rx408_pos)
+    .return (rx408_cur)
+  rx408_fail:
 .annotate 'line', 3
-    (rx411_rep, rx411_pos, $I10, $P10) = rx411_cur."!mark_fail"(0)
-    lt rx411_pos, -1, rx411_done
-    eq rx411_pos, -1, rx411_fail
+    (rx408_rep, rx408_pos, $I10, $P10) = rx408_cur."!mark_fail"(0)
+    lt rx408_pos, -1, rx408_done
+    eq rx408_pos, -1, rx408_fail
     jump $I10
-  rx411_done:
-    rx411_cur."!cursor_fail"()
-    rx411_cur."!cursor_debug"("FAIL  ", "backslash:sym<c>")
-    .return (rx411_cur)
+  rx408_done:
+    rx408_cur."!cursor_fail"()
+    rx408_cur."!cursor_debug"("FAIL  ", "backslash:sym<x>")
+    .return (rx408_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>"  :subid("114_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<x>"  :subid("114_1277356887.58177") :method
 .annotate 'line', 3
-    $P413 = self."!PREFIX__!subrule"("charspec", "C")
-    $P414 = self."!PREFIX__!subrule"("charspec", "c")
-    new $P415, "ResizablePMCArray"
-    push $P415, $P413
-    push $P415, $P414
-    .return ($P415)
+    $P410 = self."!PREFIX__!subrule"("hexints", "X[")
+    $P411 = self."!PREFIX__!subrule"("hexint", "X")
+    $P412 = self."!PREFIX__!subrule"("hexints", "x[")
+    $P413 = self."!PREFIX__!subrule"("hexint", "x")
+    new $P414, "ResizablePMCArray"
+    push $P414, $P410
+    push $P414, $P411
+    push $P414, $P412
+    push $P414, $P413
+    .return ($P414)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>"  :subid("115_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<c>"  :subid("115_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
     .local string rx419_tgt
     .local int rx419_pos
@@ -5069,7 +5066,7 @@
     .local int rx419_rep
     .local pmc rx419_cur
     (rx419_cur, rx419_pos, rx419_tgt) = self."!cursor_start"()
-    rx419_cur."!cursor_debug"("START ", "backslash:sym<A>")
+    rx419_cur."!cursor_debug"("START ", "backslash:sym<c>")
     .lex unicode:"$\x{a2}", rx419_cur
     .local pmc match
     .lex "$/", match
@@ -5081,33 +5078,49 @@
     substr rx419_tgt, rx419_tgt, rx419_off
   rx419_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan423_done
-    goto rxscan423_scan
-  rxscan423_loop:
+    ne $I10, -1, rxscan424_done
+    goto rxscan424_scan
+  rxscan424_loop:
     ($P10) = rx419_cur."from"()
     inc $P10
     set rx419_pos, $P10
-    ge rx419_pos, rx419_eos, rxscan423_done
-  rxscan423_scan:
-    set_addr $I10, rxscan423_loop
+    ge rx419_pos, rx419_eos, rxscan424_done
+  rxscan424_scan:
+    set_addr $I10, rxscan424_loop
     rx419_cur."!mark_push"(0, rx419_pos, $I10)
-  rxscan423_done:
-.annotate 'line', 132
-  # rx literal  "A"
-    add $I11, rx419_pos, 1
-    gt $I11, rx419_eos, rx419_fail
-    sub $I11, rx419_pos, rx419_off
-    substr $S10, rx419_tgt, $I11, 1
-    ne $S10, "A", rx419_fail
-    add rx419_pos, 1
-  # rx subrule "obs" subtype=method negate=
+  rxscan424_done:
+.annotate 'line', 133
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_425_fail
+    rx419_cur."!mark_push"(0, rx419_pos, $I10)
+  # rx enumcharlist negate=0 
+    ge rx419_pos, rx419_eos, rx419_fail
+    sub $I10, rx419_pos, rx419_off
+    substr $S10, rx419_tgt, $I10, 1
+    index $I11, "cC", $S10
+    lt $I11, 0, rx419_fail
+    inc rx419_pos
+    set_addr $I10, rxcap_425_fail
+    ($I12, $I11) = rx419_cur."!mark_peek"($I10)
+    rx419_cur."!cursor_pos"($I11)
+    ($P10) = rx419_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx419_pos, "")
+    rx419_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_425_done
+  rxcap_425_fail:
+    goto rx419_fail
+  rxcap_425_done:
+  # rx subrule "charspec" subtype=capture negate=
     rx419_cur."!cursor_pos"(rx419_pos)
-    $P10 = rx419_cur."obs"("\\A as beginning-of-string matcher", "^")
+    $P10 = rx419_cur."charspec"()
     unless $P10, rx419_fail
+    rx419_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("charspec")
     rx419_pos = $P10."pos"()
   # rx pass
-    rx419_cur."!cursor_pass"(rx419_pos, "backslash:sym<A>")
-    rx419_cur."!cursor_debug"("PASS  ", "backslash:sym<A>", " at pos=", rx419_pos)
+    rx419_cur."!cursor_pass"(rx419_pos, "backslash:sym<c>")
+    rx419_cur."!cursor_debug"("PASS  ", "backslash:sym<c>", " at pos=", rx419_pos)
     .return (rx419_cur)
   rx419_fail:
 .annotate 'line', 3
@@ -5117,421 +5130,408 @@
     jump $I10
   rx419_done:
     rx419_cur."!cursor_fail"()
-    rx419_cur."!cursor_debug"("FAIL  ", "backslash:sym<A>")
+    rx419_cur."!cursor_debug"("FAIL  ", "backslash:sym<c>")
     .return (rx419_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>"  :subid("116_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<c>"  :subid("116_1277356887.58177") :method
 .annotate 'line', 3
-    $P421 = self."!PREFIX__!subrule"("obs", "A")
-    new $P422, "ResizablePMCArray"
-    push $P422, $P421
-    .return ($P422)
+    $P421 = self."!PREFIX__!subrule"("charspec", "C")
+    $P422 = self."!PREFIX__!subrule"("charspec", "c")
+    new $P423, "ResizablePMCArray"
+    push $P423, $P421
+    push $P423, $P422
+    .return ($P423)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>"  :subid("117_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .local string rx425_tgt
-    .local int rx425_pos
-    .local int rx425_off
-    .local int rx425_eos
-    .local int rx425_rep
-    .local pmc rx425_cur
-    (rx425_cur, rx425_pos, rx425_tgt) = self."!cursor_start"()
-    rx425_cur."!cursor_debug"("START ", "backslash:sym<z>")
-    .lex unicode:"$\x{a2}", rx425_cur
-    .local pmc match
-    .lex "$/", match
-    length rx425_eos, rx425_tgt
-    gt rx425_pos, rx425_eos, rx425_done
-    set rx425_off, 0
-    lt rx425_pos, 2, rx425_start
-    sub rx425_off, rx425_pos, 1
-    substr rx425_tgt, rx425_tgt, rx425_off
-  rx425_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan429_done
-    goto rxscan429_scan
-  rxscan429_loop:
-    ($P10) = rx425_cur."from"()
-    inc $P10
-    set rx425_pos, $P10
-    ge rx425_pos, rx425_eos, rxscan429_done
-  rxscan429_scan:
-    set_addr $I10, rxscan429_loop
-    rx425_cur."!mark_push"(0, rx425_pos, $I10)
-  rxscan429_done:
-.annotate 'line', 133
-  # rx literal  "z"
-    add $I11, rx425_pos, 1
-    gt $I11, rx425_eos, rx425_fail
-    sub $I11, rx425_pos, rx425_off
-    substr $S10, rx425_tgt, $I11, 1
-    ne $S10, "z", rx425_fail
-    add rx425_pos, 1
+.sub "backslash:sym<A>"  :subid("117_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .local string rx427_tgt
+    .local int rx427_pos
+    .local int rx427_off
+    .local int rx427_eos
+    .local int rx427_rep
+    .local pmc rx427_cur
+    (rx427_cur, rx427_pos, rx427_tgt) = self."!cursor_start"()
+    rx427_cur."!cursor_debug"("START ", "backslash:sym<A>")
+    .lex unicode:"$\x{a2}", rx427_cur
+    .local pmc match
+    .lex "$/", match
+    length rx427_eos, rx427_tgt
+    gt rx427_pos, rx427_eos, rx427_done
+    set rx427_off, 0
+    lt rx427_pos, 2, rx427_start
+    sub rx427_off, rx427_pos, 1
+    substr rx427_tgt, rx427_tgt, rx427_off
+  rx427_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan431_done
+    goto rxscan431_scan
+  rxscan431_loop:
+    ($P10) = rx427_cur."from"()
+    inc $P10
+    set rx427_pos, $P10
+    ge rx427_pos, rx427_eos, rxscan431_done
+  rxscan431_scan:
+    set_addr $I10, rxscan431_loop
+    rx427_cur."!mark_push"(0, rx427_pos, $I10)
+  rxscan431_done:
+.annotate 'line', 134
+  # rx literal  "A"
+    add $I11, rx427_pos, 1
+    gt $I11, rx427_eos, rx427_fail
+    sub $I11, rx427_pos, rx427_off
+    substr $S10, rx427_tgt, $I11, 1
+    ne $S10, "A", rx427_fail
+    add rx427_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx425_cur."!cursor_pos"(rx425_pos)
-    $P10 = rx425_cur."obs"("\\z as end-of-string matcher", "$")
-    unless $P10, rx425_fail
-    rx425_pos = $P10."pos"()
+    rx427_cur."!cursor_pos"(rx427_pos)
+    $P10 = rx427_cur."obs"("\\A as beginning-of-string matcher", "^")
+    unless $P10, rx427_fail
+    rx427_pos = $P10."pos"()
   # rx pass
-    rx425_cur."!cursor_pass"(rx425_pos, "backslash:sym<z>")
-    rx425_cur."!cursor_debug"("PASS  ", "backslash:sym<z>", " at pos=", rx425_pos)
-    .return (rx425_cur)
-  rx425_fail:
+    rx427_cur."!cursor_pass"(rx427_pos, "backslash:sym<A>")
+    rx427_cur."!cursor_debug"("PASS  ", "backslash:sym<A>", " at pos=", rx427_pos)
+    .return (rx427_cur)
+  rx427_fail:
 .annotate 'line', 3
-    (rx425_rep, rx425_pos, $I10, $P10) = rx425_cur."!mark_fail"(0)
-    lt rx425_pos, -1, rx425_done
-    eq rx425_pos, -1, rx425_fail
+    (rx427_rep, rx427_pos, $I10, $P10) = rx427_cur."!mark_fail"(0)
+    lt rx427_pos, -1, rx427_done
+    eq rx427_pos, -1, rx427_fail
     jump $I10
-  rx425_done:
-    rx425_cur."!cursor_fail"()
-    rx425_cur."!cursor_debug"("FAIL  ", "backslash:sym<z>")
-    .return (rx425_cur)
+  rx427_done:
+    rx427_cur."!cursor_fail"()
+    rx427_cur."!cursor_debug"("FAIL  ", "backslash:sym<A>")
+    .return (rx427_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>"  :subid("118_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<A>"  :subid("118_1277356887.58177") :method
 .annotate 'line', 3
-    $P427 = self."!PREFIX__!subrule"("obs", "z")
-    new $P428, "ResizablePMCArray"
-    push $P428, $P427
-    .return ($P428)
+    $P429 = self."!PREFIX__!subrule"("obs", "A")
+    new $P430, "ResizablePMCArray"
+    push $P430, $P429
+    .return ($P430)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>"  :subid("119_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<z>"  :subid("119_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx431_tgt
-    .local int rx431_pos
-    .local int rx431_off
-    .local int rx431_eos
-    .local int rx431_rep
-    .local pmc rx431_cur
-    (rx431_cur, rx431_pos, rx431_tgt) = self."!cursor_start"()
-    rx431_cur."!cursor_debug"("START ", "backslash:sym<Z>")
-    .lex unicode:"$\x{a2}", rx431_cur
+    .local string rx433_tgt
+    .local int rx433_pos
+    .local int rx433_off
+    .local int rx433_eos
+    .local int rx433_rep
+    .local pmc rx433_cur
+    (rx433_cur, rx433_pos, rx433_tgt) = self."!cursor_start"()
+    rx433_cur."!cursor_debug"("START ", "backslash:sym<z>")
+    .lex unicode:"$\x{a2}", rx433_cur
     .local pmc match
     .lex "$/", match
-    length rx431_eos, rx431_tgt
-    gt rx431_pos, rx431_eos, rx431_done
-    set rx431_off, 0
-    lt rx431_pos, 2, rx431_start
-    sub rx431_off, rx431_pos, 1
-    substr rx431_tgt, rx431_tgt, rx431_off
-  rx431_start:
+    length rx433_eos, rx433_tgt
+    gt rx433_pos, rx433_eos, rx433_done
+    set rx433_off, 0
+    lt rx433_pos, 2, rx433_start
+    sub rx433_off, rx433_pos, 1
+    substr rx433_tgt, rx433_tgt, rx433_off
+  rx433_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan435_done
-    goto rxscan435_scan
-  rxscan435_loop:
-    ($P10) = rx431_cur."from"()
+    ne $I10, -1, rxscan437_done
+    goto rxscan437_scan
+  rxscan437_loop:
+    ($P10) = rx433_cur."from"()
     inc $P10
-    set rx431_pos, $P10
-    ge rx431_pos, rx431_eos, rxscan435_done
-  rxscan435_scan:
-    set_addr $I10, rxscan435_loop
-    rx431_cur."!mark_push"(0, rx431_pos, $I10)
-  rxscan435_done:
-.annotate 'line', 134
-  # rx literal  "Z"
-    add $I11, rx431_pos, 1
-    gt $I11, rx431_eos, rx431_fail
-    sub $I11, rx431_pos, rx431_off
-    substr $S10, rx431_tgt, $I11, 1
-    ne $S10, "Z", rx431_fail
-    add rx431_pos, 1
+    set rx433_pos, $P10
+    ge rx433_pos, rx433_eos, rxscan437_done
+  rxscan437_scan:
+    set_addr $I10, rxscan437_loop
+    rx433_cur."!mark_push"(0, rx433_pos, $I10)
+  rxscan437_done:
+.annotate 'line', 135
+  # rx literal  "z"
+    add $I11, rx433_pos, 1
+    gt $I11, rx433_eos, rx433_fail
+    sub $I11, rx433_pos, rx433_off
+    substr $S10, rx433_tgt, $I11, 1
+    ne $S10, "z", rx433_fail
+    add rx433_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx431_cur."!cursor_pos"(rx431_pos)
-    $P10 = rx431_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
-    unless $P10, rx431_fail
-    rx431_pos = $P10."pos"()
+    rx433_cur."!cursor_pos"(rx433_pos)
+    $P10 = rx433_cur."obs"("\\z as end-of-string matcher", "$")
+    unless $P10, rx433_fail
+    rx433_pos = $P10."pos"()
   # rx pass
-    rx431_cur."!cursor_pass"(rx431_pos, "backslash:sym<Z>")
-    rx431_cur."!cursor_debug"("PASS  ", "backslash:sym<Z>", " at pos=", rx431_pos)
-    .return (rx431_cur)
-  rx431_fail:
+    rx433_cur."!cursor_pass"(rx433_pos, "backslash:sym<z>")
+    rx433_cur."!cursor_debug"("PASS  ", "backslash:sym<z>", " at pos=", rx433_pos)
+    .return (rx433_cur)
+  rx433_fail:
 .annotate 'line', 3
-    (rx431_rep, rx431_pos, $I10, $P10) = rx431_cur."!mark_fail"(0)
-    lt rx431_pos, -1, rx431_done
-    eq rx431_pos, -1, rx431_fail
+    (rx433_rep, rx433_pos, $I10, $P10) = rx433_cur."!mark_fail"(0)
+    lt rx433_pos, -1, rx433_done
+    eq rx433_pos, -1, rx433_fail
     jump $I10
-  rx431_done:
-    rx431_cur."!cursor_fail"()
-    rx431_cur."!cursor_debug"("FAIL  ", "backslash:sym<Z>")
-    .return (rx431_cur)
+  rx433_done:
+    rx433_cur."!cursor_fail"()
+    rx433_cur."!cursor_debug"("FAIL  ", "backslash:sym<z>")
+    .return (rx433_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>"  :subid("120_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<z>"  :subid("120_1277356887.58177") :method
 .annotate 'line', 3
-    $P433 = self."!PREFIX__!subrule"("obs", "Z")
-    new $P434, "ResizablePMCArray"
-    push $P434, $P433
-    .return ($P434)
+    $P435 = self."!PREFIX__!subrule"("obs", "z")
+    new $P436, "ResizablePMCArray"
+    push $P436, $P435
+    .return ($P436)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>"  :subid("121_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<Z>"  :subid("121_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx437_tgt
-    .local int rx437_pos
-    .local int rx437_off
-    .local int rx437_eos
-    .local int rx437_rep
-    .local pmc rx437_cur
-    (rx437_cur, rx437_pos, rx437_tgt) = self."!cursor_start"()
-    rx437_cur."!cursor_debug"("START ", "backslash:sym<Q>")
-    .lex unicode:"$\x{a2}", rx437_cur
+    .local string rx439_tgt
+    .local int rx439_pos
+    .local int rx439_off
+    .local int rx439_eos
+    .local int rx439_rep
+    .local pmc rx439_cur
+    (rx439_cur, rx439_pos, rx439_tgt) = self."!cursor_start"()
+    rx439_cur."!cursor_debug"("START ", "backslash:sym<Z>")
+    .lex unicode:"$\x{a2}", rx439_cur
     .local pmc match
     .lex "$/", match
-    length rx437_eos, rx437_tgt
-    gt rx437_pos, rx437_eos, rx437_done
-    set rx437_off, 0
-    lt rx437_pos, 2, rx437_start
-    sub rx437_off, rx437_pos, 1
-    substr rx437_tgt, rx437_tgt, rx437_off
-  rx437_start:
+    length rx439_eos, rx439_tgt
+    gt rx439_pos, rx439_eos, rx439_done
+    set rx439_off, 0
+    lt rx439_pos, 2, rx439_start
+    sub rx439_off, rx439_pos, 1
+    substr rx439_tgt, rx439_tgt, rx439_off
+  rx439_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan441_done
-    goto rxscan441_scan
-  rxscan441_loop:
-    ($P10) = rx437_cur."from"()
+    ne $I10, -1, rxscan443_done
+    goto rxscan443_scan
+  rxscan443_loop:
+    ($P10) = rx439_cur."from"()
     inc $P10
-    set rx437_pos, $P10
-    ge rx437_pos, rx437_eos, rxscan441_done
-  rxscan441_scan:
-    set_addr $I10, rxscan441_loop
-    rx437_cur."!mark_push"(0, rx437_pos, $I10)
-  rxscan441_done:
-.annotate 'line', 135
-  # rx literal  "Q"
-    add $I11, rx437_pos, 1
-    gt $I11, rx437_eos, rx437_fail
-    sub $I11, rx437_pos, rx437_off
-    substr $S10, rx437_tgt, $I11, 1
-    ne $S10, "Q", rx437_fail
-    add rx437_pos, 1
+    set rx439_pos, $P10
+    ge rx439_pos, rx439_eos, rxscan443_done
+  rxscan443_scan:
+    set_addr $I10, rxscan443_loop
+    rx439_cur."!mark_push"(0, rx439_pos, $I10)
+  rxscan443_done:
+.annotate 'line', 136
+  # rx literal  "Z"
+    add $I11, rx439_pos, 1
+    gt $I11, rx439_eos, rx439_fail
+    sub $I11, rx439_pos, rx439_off
+    substr $S10, rx439_tgt, $I11, 1
+    ne $S10, "Z", rx439_fail
+    add rx439_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx437_cur."!cursor_pos"(rx437_pos)
-    $P10 = rx437_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
-    unless $P10, rx437_fail
-    rx437_pos = $P10."pos"()
+    rx439_cur."!cursor_pos"(rx439_pos)
+    $P10 = rx439_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
+    unless $P10, rx439_fail
+    rx439_pos = $P10."pos"()
   # rx pass
-    rx437_cur."!cursor_pass"(rx437_pos, "backslash:sym<Q>")
-    rx437_cur."!cursor_debug"("PASS  ", "backslash:sym<Q>", " at pos=", rx437_pos)
-    .return (rx437_cur)
-  rx437_fail:
+    rx439_cur."!cursor_pass"(rx439_pos, "backslash:sym<Z>")
+    rx439_cur."!cursor_debug"("PASS  ", "backslash:sym<Z>", " at pos=", rx439_pos)
+    .return (rx439_cur)
+  rx439_fail:
 .annotate 'line', 3
-    (rx437_rep, rx437_pos, $I10, $P10) = rx437_cur."!mark_fail"(0)
-    lt rx437_pos, -1, rx437_done
-    eq rx437_pos, -1, rx437_fail
+    (rx439_rep, rx439_pos, $I10, $P10) = rx439_cur."!mark_fail"(0)
+    lt rx439_pos, -1, rx439_done
+    eq rx439_pos, -1, rx439_fail
     jump $I10
-  rx437_done:
-    rx437_cur."!cursor_fail"()
-    rx437_cur."!cursor_debug"("FAIL  ", "backslash:sym<Q>")
-    .return (rx437_cur)
+  rx439_done:
+    rx439_cur."!cursor_fail"()
+    rx439_cur."!cursor_debug"("FAIL  ", "backslash:sym<Z>")
+    .return (rx439_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>"  :subid("122_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<Z>"  :subid("122_1277356887.58177") :method
 .annotate 'line', 3
-    $P439 = self."!PREFIX__!subrule"("obs", "Q")
-    new $P440, "ResizablePMCArray"
-    push $P440, $P439
-    .return ($P440)
+    $P441 = self."!PREFIX__!subrule"("obs", "Z")
+    new $P442, "ResizablePMCArray"
+    push $P442, $P441
+    .return ($P442)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>"  :subid("123_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "backslash:sym<Q>"  :subid("123_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .local string rx443_tgt
-    .local int rx443_pos
-    .local int rx443_off
-    .local int rx443_eos
-    .local int rx443_rep
-    .local pmc rx443_cur
-    (rx443_cur, rx443_pos, rx443_tgt) = self."!cursor_start"()
-    rx443_cur."!cursor_debug"("START ", "backslash:sym<misc>")
-    .lex unicode:"$\x{a2}", rx443_cur
+    .local string rx445_tgt
+    .local int rx445_pos
+    .local int rx445_off
+    .local int rx445_eos
+    .local int rx445_rep
+    .local pmc rx445_cur
+    (rx445_cur, rx445_pos, rx445_tgt) = self."!cursor_start"()
+    rx445_cur."!cursor_debug"("START ", "backslash:sym<Q>")
+    .lex unicode:"$\x{a2}", rx445_cur
     .local pmc match
     .lex "$/", match
-    length rx443_eos, rx443_tgt
-    gt rx443_pos, rx443_eos, rx443_done
-    set rx443_off, 0
-    lt rx443_pos, 2, rx443_start
-    sub rx443_off, rx443_pos, 1
-    substr rx443_tgt, rx443_tgt, rx443_off
-  rx443_start:
+    length rx445_eos, rx445_tgt
+    gt rx445_pos, rx445_eos, rx445_done
+    set rx445_off, 0
+    lt rx445_pos, 2, rx445_start
+    sub rx445_off, rx445_pos, 1
+    substr rx445_tgt, rx445_tgt, rx445_off
+  rx445_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan446_done
-    goto rxscan446_scan
-  rxscan446_loop:
-    ($P10) = rx443_cur."from"()
+    ne $I10, -1, rxscan449_done
+    goto rxscan449_scan
+  rxscan449_loop:
+    ($P10) = rx445_cur."from"()
     inc $P10
-    set rx443_pos, $P10
-    ge rx443_pos, rx443_eos, rxscan446_done
-  rxscan446_scan:
-    set_addr $I10, rxscan446_loop
-    rx443_cur."!mark_push"(0, rx443_pos, $I10)
-  rxscan446_done:
-.annotate 'line', 136
-  # rx charclass W
-    ge rx443_pos, rx443_eos, rx443_fail
-    sub $I10, rx443_pos, rx443_off
-    is_cclass $I11, 8192, rx443_tgt, $I10
-    if $I11, rx443_fail
-    inc rx443_pos
+    set rx445_pos, $P10
+    ge rx445_pos, rx445_eos, rxscan449_done
+  rxscan449_scan:
+    set_addr $I10, rxscan449_loop
+    rx445_cur."!mark_push"(0, rx445_pos, $I10)
+  rxscan449_done:
+.annotate 'line', 137
+  # rx literal  "Q"
+    add $I11, rx445_pos, 1
+    gt $I11, rx445_eos, rx445_fail
+    sub $I11, rx445_pos, rx445_off
+    substr $S10, rx445_tgt, $I11, 1
+    ne $S10, "Q", rx445_fail
+    add rx445_pos, 1
+  # rx subrule "obs" subtype=method negate=
+    rx445_cur."!cursor_pos"(rx445_pos)
+    $P10 = rx445_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
+    unless $P10, rx445_fail
+    rx445_pos = $P10."pos"()
   # rx pass
-    rx443_cur."!cursor_pass"(rx443_pos, "backslash:sym<misc>")
-    rx443_cur."!cursor_debug"("PASS  ", "backslash:sym<misc>", " at pos=", rx443_pos)
-    .return (rx443_cur)
-  rx443_fail:
+    rx445_cur."!cursor_pass"(rx445_pos, "backslash:sym<Q>")
+    rx445_cur."!cursor_debug"("PASS  ", "backslash:sym<Q>", " at pos=", rx445_pos)
+    .return (rx445_cur)
+  rx445_fail:
 .annotate 'line', 3
-    (rx443_rep, rx443_pos, $I10, $P10) = rx443_cur."!mark_fail"(0)
-    lt rx443_pos, -1, rx443_done
-    eq rx443_pos, -1, rx443_fail
+    (rx445_rep, rx445_pos, $I10, $P10) = rx445_cur."!mark_fail"(0)
+    lt rx445_pos, -1, rx445_done
+    eq rx445_pos, -1, rx445_fail
     jump $I10
-  rx443_done:
-    rx443_cur."!cursor_fail"()
-    rx443_cur."!cursor_debug"("FAIL  ", "backslash:sym<misc>")
-    .return (rx443_cur)
+  rx445_done:
+    rx445_cur."!cursor_fail"()
+    rx445_cur."!cursor_debug"("FAIL  ", "backslash:sym<Q>")
+    .return (rx445_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>"  :subid("124_1275811476.7961") :method
+.sub "!PREFIX__backslash:sym<Q>"  :subid("124_1277356887.58177") :method
 .annotate 'line', 3
-    new $P445, "ResizablePMCArray"
-    push $P445, ""
-    .return ($P445)
+    $P447 = self."!PREFIX__!subrule"("obs", "Q")
+    new $P448, "ResizablePMCArray"
+    push $P448, $P447
+    .return ($P448)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion"  :subid("125_1275811476.7961") :method
+.sub "backslash:sym<misc>"  :subid("125_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .local string rx451_tgt
+    .local int rx451_pos
+    .local int rx451_off
+    .local int rx451_eos
+    .local int rx451_rep
+    .local pmc rx451_cur
+    (rx451_cur, rx451_pos, rx451_tgt) = self."!cursor_start"()
+    rx451_cur."!cursor_debug"("START ", "backslash:sym<misc>")
+    .lex unicode:"$\x{a2}", rx451_cur
+    .local pmc match
+    .lex "$/", match
+    length rx451_eos, rx451_tgt
+    gt rx451_pos, rx451_eos, rx451_done
+    set rx451_off, 0
+    lt rx451_pos, 2, rx451_start
+    sub rx451_off, rx451_pos, 1
+    substr rx451_tgt, rx451_tgt, rx451_off
+  rx451_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan454_done
+    goto rxscan454_scan
+  rxscan454_loop:
+    ($P10) = rx451_cur."from"()
+    inc $P10
+    set rx451_pos, $P10
+    ge rx451_pos, rx451_eos, rxscan454_done
+  rxscan454_scan:
+    set_addr $I10, rxscan454_loop
+    rx451_cur."!mark_push"(0, rx451_pos, $I10)
+  rxscan454_done:
 .annotate 'line', 138
-    $P448 = self."!protoregex"("assertion")
-    .return ($P448)
+  # rx charclass W
+    ge rx451_pos, rx451_eos, rx451_fail
+    sub $I10, rx451_pos, rx451_off
+    is_cclass $I11, 8192, rx451_tgt, $I10
+    if $I11, rx451_fail
+    inc rx451_pos
+  # rx pass
+    rx451_cur."!cursor_pass"(rx451_pos, "backslash:sym<misc>")
+    rx451_cur."!cursor_debug"("PASS  ", "backslash:sym<misc>", " at pos=", rx451_pos)
+    .return (rx451_cur)
+  rx451_fail:
+.annotate 'line', 3
+    (rx451_rep, rx451_pos, $I10, $P10) = rx451_cur."!mark_fail"(0)
+    lt rx451_pos, -1, rx451_done
+    eq rx451_pos, -1, rx451_fail
+    jump $I10
+  rx451_done:
+    rx451_cur."!cursor_fail"()
+    rx451_cur."!cursor_debug"("FAIL  ", "backslash:sym<misc>")
+    .return (rx451_cur)
+    .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion"  :subid("126_1275811476.7961") :method
-.annotate 'line', 138
-    $P450 = self."!PREFIX__!protoregex"("assertion")
-    .return ($P450)
+.sub "!PREFIX__backslash:sym<misc>"  :subid("126_1277356887.58177") :method
+.annotate 'line', 3
+    new $P453, "ResizablePMCArray"
+    push $P453, ""
+    .return ($P453)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>"  :subid("127_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .const 'Sub' $P459 = "129_1275811476.7961" 
-    capture_lex $P459
-    .local string rx452_tgt
-    .local int rx452_pos
-    .local int rx452_off
-    .local int rx452_eos
-    .local int rx452_rep
-    .local pmc rx452_cur
-    (rx452_cur, rx452_pos, rx452_tgt) = self."!cursor_start"()
-    rx452_cur."!cursor_debug"("START ", "assertion:sym<?>")
-    .lex unicode:"$\x{a2}", rx452_cur
-    .local pmc match
-    .lex "$/", match
-    length rx452_eos, rx452_tgt
-    gt rx452_pos, rx452_eos, rx452_done
-    set rx452_off, 0
-    lt rx452_pos, 2, rx452_start
-    sub rx452_off, rx452_pos, 1
-    substr rx452_tgt, rx452_tgt, rx452_off
-  rx452_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan456_done
-    goto rxscan456_scan
-  rxscan456_loop:
-    ($P10) = rx452_cur."from"()
-    inc $P10
-    set rx452_pos, $P10
-    ge rx452_pos, rx452_eos, rxscan456_done
-  rxscan456_scan:
-    set_addr $I10, rxscan456_loop
-    rx452_cur."!mark_push"(0, rx452_pos, $I10)
-  rxscan456_done:
+.sub "assertion"  :subid("127_1277356887.58177") :method
 .annotate 'line', 140
-  # rx literal  "?"
-    add $I11, rx452_pos, 1
-    gt $I11, rx452_eos, rx452_fail
-    sub $I11, rx452_pos, rx452_off
-    substr $S10, rx452_tgt, $I11, 1
-    ne $S10, "?", rx452_fail
-    add rx452_pos, 1
-  alt457_0:
-    set_addr $I10, alt457_1
-    rx452_cur."!mark_push"(0, rx452_pos, $I10)
-  # rx subrule "before" subtype=zerowidth negate=
-    rx452_cur."!cursor_pos"(rx452_pos)
-    .const 'Sub' $P459 = "129_1275811476.7961" 
-    capture_lex $P459
-    $P10 = rx452_cur."before"($P459)
-    unless $P10, rx452_fail
-    goto alt457_end
-  alt457_1:
-  # rx subrule "assertion" subtype=capture negate=
-    rx452_cur."!cursor_pos"(rx452_pos)
-    $P10 = rx452_cur."assertion"()
-    unless $P10, rx452_fail
-    rx452_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("assertion")
-    rx452_pos = $P10."pos"()
-  alt457_end:
-  # rx pass
-    rx452_cur."!cursor_pass"(rx452_pos, "assertion:sym<?>")
-    rx452_cur."!cursor_debug"("PASS  ", "assertion:sym<?>", " at pos=", rx452_pos)
-    .return (rx452_cur)
-  rx452_fail:
-.annotate 'line', 3
-    (rx452_rep, rx452_pos, $I10, $P10) = rx452_cur."!mark_fail"(0)
-    lt rx452_pos, -1, rx452_done
-    eq rx452_pos, -1, rx452_fail
-    jump $I10
-  rx452_done:
-    rx452_cur."!cursor_fail"()
-    rx452_cur."!cursor_debug"("FAIL  ", "assertion:sym<?>")
-    .return (rx452_cur)
-    .return ()
+    $P456 = self."!protoregex"("assertion")
+    .return ($P456)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>"  :subid("128_1275811476.7961") :method
-.annotate 'line', 3
-    $P454 = self."!PREFIX__!subrule"("assertion", "?")
-    new $P455, "ResizablePMCArray"
-    push $P455, $P454
-    push $P455, "?"
-    .return ($P455)
+.sub "!PREFIX__assertion"  :subid("128_1277356887.58177") :method
+.annotate 'line', 140
+    $P458 = self."!PREFIX__!protoregex"("assertion")
+    .return ($P458)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block458"  :anon :subid("129_1275811476.7961") :method :outer("127_1275811476.7961")
-.annotate 'line', 140
+.sub "assertion:sym<?>"  :subid("129_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .const 'Sub' $P467 = "131_1277356887.58177" 
+    capture_lex $P467
     .local string rx460_tgt
     .local int rx460_pos
     .local int rx460_off
@@ -5539,7 +5539,7 @@
     .local int rx460_rep
     .local pmc rx460_cur
     (rx460_cur, rx460_pos, rx460_tgt) = self."!cursor_start"()
-    rx460_cur."!cursor_debug"("START ", "")
+    rx460_cur."!cursor_debug"("START ", "assertion:sym<?>")
     .lex unicode:"$\x{a2}", rx460_cur
     .local pmc match
     .lex "$/", match
@@ -5551,135 +5551,135 @@
     substr rx460_tgt, rx460_tgt, rx460_off
   rx460_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan461_done
-    goto rxscan461_scan
-  rxscan461_loop:
+    ne $I10, -1, rxscan464_done
+    goto rxscan464_scan
+  rxscan464_loop:
     ($P10) = rx460_cur."from"()
     inc $P10
     set rx460_pos, $P10
-    ge rx460_pos, rx460_eos, rxscan461_done
-  rxscan461_scan:
-    set_addr $I10, rxscan461_loop
+    ge rx460_pos, rx460_eos, rxscan464_done
+  rxscan464_scan:
+    set_addr $I10, rxscan464_loop
     rx460_cur."!mark_push"(0, rx460_pos, $I10)
-  rxscan461_done:
-  # rx literal  ">"
+  rxscan464_done:
+.annotate 'line', 142
+  # rx literal  "?"
     add $I11, rx460_pos, 1
     gt $I11, rx460_eos, rx460_fail
     sub $I11, rx460_pos, rx460_off
     substr $S10, rx460_tgt, $I11, 1
-    ne $S10, ">", rx460_fail
+    ne $S10, "?", rx460_fail
     add rx460_pos, 1
+  alt465_0:
+    set_addr $I10, alt465_1
+    rx460_cur."!mark_push"(0, rx460_pos, $I10)
+  # rx subrule "before" subtype=zerowidth negate=
+    rx460_cur."!cursor_pos"(rx460_pos)
+    .const 'Sub' $P467 = "131_1277356887.58177" 
+    capture_lex $P467
+    $P10 = rx460_cur."before"($P467)
+    unless $P10, rx460_fail
+    goto alt465_end
+  alt465_1:
+  # rx subrule "assertion" subtype=capture negate=
+    rx460_cur."!cursor_pos"(rx460_pos)
+    $P10 = rx460_cur."assertion"()
+    unless $P10, rx460_fail
+    rx460_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("assertion")
+    rx460_pos = $P10."pos"()
+  alt465_end:
   # rx pass
-    rx460_cur."!cursor_pass"(rx460_pos, "")
-    rx460_cur."!cursor_debug"("PASS  ", "", " at pos=", rx460_pos)
+    rx460_cur."!cursor_pass"(rx460_pos, "assertion:sym<?>")
+    rx460_cur."!cursor_debug"("PASS  ", "assertion:sym<?>", " at pos=", rx460_pos)
     .return (rx460_cur)
   rx460_fail:
+.annotate 'line', 3
     (rx460_rep, rx460_pos, $I10, $P10) = rx460_cur."!mark_fail"(0)
     lt rx460_pos, -1, rx460_done
     eq rx460_pos, -1, rx460_fail
     jump $I10
   rx460_done:
     rx460_cur."!cursor_fail"()
-    rx460_cur."!cursor_debug"("FAIL  ", "")
+    rx460_cur."!cursor_debug"("FAIL  ", "assertion:sym<?>")
     .return (rx460_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>"  :subid("130_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "!PREFIX__assertion:sym<?>"  :subid("130_1277356887.58177") :method
 .annotate 'line', 3
-    .const 'Sub' $P470 = "132_1275811476.7961" 
-    capture_lex $P470
-    .local string rx463_tgt
-    .local int rx463_pos
-    .local int rx463_off
-    .local int rx463_eos
-    .local int rx463_rep
-    .local pmc rx463_cur
-    (rx463_cur, rx463_pos, rx463_tgt) = self."!cursor_start"()
-    rx463_cur."!cursor_debug"("START ", "assertion:sym<!>")
-    .lex unicode:"$\x{a2}", rx463_cur
-    .local pmc match
-    .lex "$/", match
-    length rx463_eos, rx463_tgt
-    gt rx463_pos, rx463_eos, rx463_done
-    set rx463_off, 0
-    lt rx463_pos, 2, rx463_start
-    sub rx463_off, rx463_pos, 1
-    substr rx463_tgt, rx463_tgt, rx463_off
-  rx463_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan467_done
-    goto rxscan467_scan
-  rxscan467_loop:
-    ($P10) = rx463_cur."from"()
-    inc $P10
-    set rx463_pos, $P10
-    ge rx463_pos, rx463_eos, rxscan467_done
-  rxscan467_scan:
-    set_addr $I10, rxscan467_loop
-    rx463_cur."!mark_push"(0, rx463_pos, $I10)
-  rxscan467_done:
-.annotate 'line', 141
-  # rx literal  "!"
-    add $I11, rx463_pos, 1
-    gt $I11, rx463_eos, rx463_fail
-    sub $I11, rx463_pos, rx463_off
-    substr $S10, rx463_tgt, $I11, 1
-    ne $S10, "!", rx463_fail
-    add rx463_pos, 1
-  alt468_0:
-    set_addr $I10, alt468_1
-    rx463_cur."!mark_push"(0, rx463_pos, $I10)
-  # rx subrule "before" subtype=zerowidth negate=
-    rx463_cur."!cursor_pos"(rx463_pos)
-    .const 'Sub' $P470 = "132_1275811476.7961" 
-    capture_lex $P470
-    $P10 = rx463_cur."before"($P470)
-    unless $P10, rx463_fail
-    goto alt468_end
-  alt468_1:
-  # rx subrule "assertion" subtype=capture negate=
-    rx463_cur."!cursor_pos"(rx463_pos)
-    $P10 = rx463_cur."assertion"()
-    unless $P10, rx463_fail
-    rx463_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("assertion")
-    rx463_pos = $P10."pos"()
-  alt468_end:
-  # rx pass
-    rx463_cur."!cursor_pass"(rx463_pos, "assertion:sym<!>")
-    rx463_cur."!cursor_debug"("PASS  ", "assertion:sym<!>", " at pos=", rx463_pos)
-    .return (rx463_cur)
-  rx463_fail:
-.annotate 'line', 3
-    (rx463_rep, rx463_pos, $I10, $P10) = rx463_cur."!mark_fail"(0)
-    lt rx463_pos, -1, rx463_done
-    eq rx463_pos, -1, rx463_fail
-    jump $I10
-  rx463_done:
-    rx463_cur."!cursor_fail"()
-    rx463_cur."!cursor_debug"("FAIL  ", "assertion:sym<!>")
-    .return (rx463_cur)
-    .return ()
+    $P462 = self."!PREFIX__!subrule"("assertion", "?")
+    new $P463, "ResizablePMCArray"
+    push $P463, $P462
+    push $P463, "?"
+    .return ($P463)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>"  :subid("131_1275811476.7961") :method
-.annotate 'line', 3
-    $P465 = self."!PREFIX__!subrule"("assertion", "!")
-    new $P466, "ResizablePMCArray"
-    push $P466, $P465
-    push $P466, "!"
-    .return ($P466)
+.sub "_block466"  :anon :subid("131_1277356887.58177") :method :outer("129_1277356887.58177")
+.annotate 'line', 142
+    .local string rx468_tgt
+    .local int rx468_pos
+    .local int rx468_off
+    .local int rx468_eos
+    .local int rx468_rep
+    .local pmc rx468_cur
+    (rx468_cur, rx468_pos, rx468_tgt) = self."!cursor_start"()
+    rx468_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx468_cur
+    .local pmc match
+    .lex "$/", match
+    length rx468_eos, rx468_tgt
+    gt rx468_pos, rx468_eos, rx468_done
+    set rx468_off, 0
+    lt rx468_pos, 2, rx468_start
+    sub rx468_off, rx468_pos, 1
+    substr rx468_tgt, rx468_tgt, rx468_off
+  rx468_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan469_done
+    goto rxscan469_scan
+  rxscan469_loop:
+    ($P10) = rx468_cur."from"()
+    inc $P10
+    set rx468_pos, $P10
+    ge rx468_pos, rx468_eos, rxscan469_done
+  rxscan469_scan:
+    set_addr $I10, rxscan469_loop
+    rx468_cur."!mark_push"(0, rx468_pos, $I10)
+  rxscan469_done:
+  # rx literal  ">"
+    add $I11, rx468_pos, 1
+    gt $I11, rx468_eos, rx468_fail
+    sub $I11, rx468_pos, rx468_off
+    substr $S10, rx468_tgt, $I11, 1
+    ne $S10, ">", rx468_fail
+    add rx468_pos, 1
+  # rx pass
+    rx468_cur."!cursor_pass"(rx468_pos, "")
+    rx468_cur."!cursor_debug"("PASS  ", "", " at pos=", rx468_pos)
+    .return (rx468_cur)
+  rx468_fail:
+    (rx468_rep, rx468_pos, $I10, $P10) = rx468_cur."!mark_fail"(0)
+    lt rx468_pos, -1, rx468_done
+    eq rx468_pos, -1, rx468_fail
+    jump $I10
+  rx468_done:
+    rx468_cur."!cursor_fail"()
+    rx468_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx468_cur)
+    .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block469"  :anon :subid("132_1275811476.7961") :method :outer("130_1275811476.7961")
-.annotate 'line', 141
+.sub "assertion:sym<!>"  :subid("132_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .const 'Sub' $P478 = "134_1277356887.58177" 
+    capture_lex $P478
     .local string rx471_tgt
     .local int rx471_pos
     .local int rx471_off
@@ -5687,7 +5687,7 @@
     .local int rx471_rep
     .local pmc rx471_cur
     (rx471_cur, rx471_pos, rx471_tgt) = self."!cursor_start"()
-    rx471_cur."!cursor_debug"("START ", "")
+    rx471_cur."!cursor_debug"("START ", "assertion:sym<!>")
     .lex unicode:"$\x{a2}", rx471_cur
     .local pmc match
     .lex "$/", match
@@ -5699,1038 +5699,1060 @@
     substr rx471_tgt, rx471_tgt, rx471_off
   rx471_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan472_done
-    goto rxscan472_scan
-  rxscan472_loop:
+    ne $I10, -1, rxscan475_done
+    goto rxscan475_scan
+  rxscan475_loop:
     ($P10) = rx471_cur."from"()
     inc $P10
     set rx471_pos, $P10
-    ge rx471_pos, rx471_eos, rxscan472_done
-  rxscan472_scan:
-    set_addr $I10, rxscan472_loop
+    ge rx471_pos, rx471_eos, rxscan475_done
+  rxscan475_scan:
+    set_addr $I10, rxscan475_loop
     rx471_cur."!mark_push"(0, rx471_pos, $I10)
-  rxscan472_done:
-  # rx literal  ">"
+  rxscan475_done:
+.annotate 'line', 143
+  # rx literal  "!"
     add $I11, rx471_pos, 1
     gt $I11, rx471_eos, rx471_fail
     sub $I11, rx471_pos, rx471_off
     substr $S10, rx471_tgt, $I11, 1
-    ne $S10, ">", rx471_fail
+    ne $S10, "!", rx471_fail
     add rx471_pos, 1
+  alt476_0:
+    set_addr $I10, alt476_1
+    rx471_cur."!mark_push"(0, rx471_pos, $I10)
+  # rx subrule "before" subtype=zerowidth negate=
+    rx471_cur."!cursor_pos"(rx471_pos)
+    .const 'Sub' $P478 = "134_1277356887.58177" 
+    capture_lex $P478
+    $P10 = rx471_cur."before"($P478)
+    unless $P10, rx471_fail
+    goto alt476_end
+  alt476_1:
+  # rx subrule "assertion" subtype=capture negate=
+    rx471_cur."!cursor_pos"(rx471_pos)
+    $P10 = rx471_cur."assertion"()
+    unless $P10, rx471_fail
+    rx471_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("assertion")
+    rx471_pos = $P10."pos"()
+  alt476_end:
   # rx pass
-    rx471_cur."!cursor_pass"(rx471_pos, "")
-    rx471_cur."!cursor_debug"("PASS  ", "", " at pos=", rx471_pos)
+    rx471_cur."!cursor_pass"(rx471_pos, "assertion:sym<!>")
+    rx471_cur."!cursor_debug"("PASS  ", "assertion:sym<!>", " at pos=", rx471_pos)
     .return (rx471_cur)
   rx471_fail:
+.annotate 'line', 3
     (rx471_rep, rx471_pos, $I10, $P10) = rx471_cur."!mark_fail"(0)
     lt rx471_pos, -1, rx471_done
     eq rx471_pos, -1, rx471_fail
     jump $I10
   rx471_done:
     rx471_cur."!cursor_fail"()
-    rx471_cur."!cursor_debug"("FAIL  ", "")
+    rx471_cur."!cursor_debug"("FAIL  ", "assertion:sym<!>")
     .return (rx471_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>"  :subid("133_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "!PREFIX__assertion:sym<!>"  :subid("133_1277356887.58177") :method
 .annotate 'line', 3
-    .local string rx474_tgt
-    .local int rx474_pos
-    .local int rx474_off
-    .local int rx474_eos
-    .local int rx474_rep
-    .local pmc rx474_cur
-    (rx474_cur, rx474_pos, rx474_tgt) = self."!cursor_start"()
-    rx474_cur."!cursor_debug"("START ", "assertion:sym<method>")
-    .lex unicode:"$\x{a2}", rx474_cur
-    .local pmc match
-    .lex "$/", match
-    length rx474_eos, rx474_tgt
-    gt rx474_pos, rx474_eos, rx474_done
-    set rx474_off, 0
-    lt rx474_pos, 2, rx474_start
-    sub rx474_off, rx474_pos, 1
-    substr rx474_tgt, rx474_tgt, rx474_off
-  rx474_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan478_done
-    goto rxscan478_scan
-  rxscan478_loop:
-    ($P10) = rx474_cur."from"()
-    inc $P10
-    set rx474_pos, $P10
-    ge rx474_pos, rx474_eos, rxscan478_done
-  rxscan478_scan:
-    set_addr $I10, rxscan478_loop
-    rx474_cur."!mark_push"(0, rx474_pos, $I10)
-  rxscan478_done:
-.annotate 'line', 144
+    $P473 = self."!PREFIX__!subrule"("assertion", "!")
+    new $P474, "ResizablePMCArray"
+    push $P474, $P473
+    push $P474, "!"
+    .return ($P474)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block477"  :anon :subid("134_1277356887.58177") :method :outer("132_1277356887.58177")
+.annotate 'line', 143
+    .local string rx479_tgt
+    .local int rx479_pos
+    .local int rx479_off
+    .local int rx479_eos
+    .local int rx479_rep
+    .local pmc rx479_cur
+    (rx479_cur, rx479_pos, rx479_tgt) = self."!cursor_start"()
+    rx479_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx479_cur
+    .local pmc match
+    .lex "$/", match
+    length rx479_eos, rx479_tgt
+    gt rx479_pos, rx479_eos, rx479_done
+    set rx479_off, 0
+    lt rx479_pos, 2, rx479_start
+    sub rx479_off, rx479_pos, 1
+    substr rx479_tgt, rx479_tgt, rx479_off
+  rx479_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan480_done
+    goto rxscan480_scan
+  rxscan480_loop:
+    ($P10) = rx479_cur."from"()
+    inc $P10
+    set rx479_pos, $P10
+    ge rx479_pos, rx479_eos, rxscan480_done
+  rxscan480_scan:
+    set_addr $I10, rxscan480_loop
+    rx479_cur."!mark_push"(0, rx479_pos, $I10)
+  rxscan480_done:
+  # rx literal  ">"
+    add $I11, rx479_pos, 1
+    gt $I11, rx479_eos, rx479_fail
+    sub $I11, rx479_pos, rx479_off
+    substr $S10, rx479_tgt, $I11, 1
+    ne $S10, ">", rx479_fail
+    add rx479_pos, 1
+  # rx pass
+    rx479_cur."!cursor_pass"(rx479_pos, "")
+    rx479_cur."!cursor_debug"("PASS  ", "", " at pos=", rx479_pos)
+    .return (rx479_cur)
+  rx479_fail:
+    (rx479_rep, rx479_pos, $I10, $P10) = rx479_cur."!mark_fail"(0)
+    lt rx479_pos, -1, rx479_done
+    eq rx479_pos, -1, rx479_fail
+    jump $I10
+  rx479_done:
+    rx479_cur."!cursor_fail"()
+    rx479_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx479_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "assertion:sym<method>"  :subid("135_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .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) = self."!cursor_start"()
+    rx482_cur."!cursor_debug"("START ", "assertion:sym<method>")
+    .lex unicode:"$\x{a2}", rx482_cur
+    .local pmc match
+    .lex "$/", match
+    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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan486_done
+    goto rxscan486_scan
+  rxscan486_loop:
+    ($P10) = rx482_cur."from"()
+    inc $P10
+    set rx482_pos, $P10
+    ge rx482_pos, rx482_eos, rxscan486_done
+  rxscan486_scan:
+    set_addr $I10, rxscan486_loop
+    rx482_cur."!mark_push"(0, rx482_pos, $I10)
+  rxscan486_done:
+.annotate 'line', 146
   # rx literal  "."
-    add $I11, rx474_pos, 1
-    gt $I11, rx474_eos, rx474_fail
-    sub $I11, rx474_pos, rx474_off
-    substr $S10, rx474_tgt, $I11, 1
-    ne $S10, ".", rx474_fail
-    add rx474_pos, 1
+    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
   # rx subrule "assertion" subtype=capture negate=
-    rx474_cur."!cursor_pos"(rx474_pos)
-    $P10 = rx474_cur."assertion"()
-    unless $P10, rx474_fail
-    rx474_cur."!mark_push"(0, -1, 0, $P10)
+    rx482_cur."!cursor_pos"(rx482_pos)
+    $P10 = rx482_cur."assertion"()
+    unless $P10, rx482_fail
+    rx482_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx474_pos = $P10."pos"()
-.annotate 'line', 143
+    rx482_pos = $P10."pos"()
+.annotate 'line', 145
   # rx pass
-    rx474_cur."!cursor_pass"(rx474_pos, "assertion:sym<method>")
-    rx474_cur."!cursor_debug"("PASS  ", "assertion:sym<method>", " at pos=", rx474_pos)
-    .return (rx474_cur)
-  rx474_fail:
+    rx482_cur."!cursor_pass"(rx482_pos, "assertion:sym<method>")
+    rx482_cur."!cursor_debug"("PASS  ", "assertion:sym<method>", " at pos=", rx482_pos)
+    .return (rx482_cur)
+  rx482_fail:
 .annotate 'line', 3
-    (rx474_rep, rx474_pos, $I10, $P10) = rx474_cur."!mark_fail"(0)
-    lt rx474_pos, -1, rx474_done
-    eq rx474_pos, -1, rx474_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
-  rx474_done:
-    rx474_cur."!cursor_fail"()
-    rx474_cur."!cursor_debug"("FAIL  ", "assertion:sym<method>")
-    .return (rx474_cur)
+  rx482_done:
+    rx482_cur."!cursor_fail"()
+    rx482_cur."!cursor_debug"("FAIL  ", "assertion:sym<method>")
+    .return (rx482_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>"  :subid("134_1275811476.7961") :method
+.sub "!PREFIX__assertion:sym<method>"  :subid("136_1277356887.58177") :method
 .annotate 'line', 3
-    $P476 = self."!PREFIX__!subrule"("assertion", ".")
-    new $P477, "ResizablePMCArray"
-    push $P477, $P476
-    .return ($P477)
+    $P484 = self."!PREFIX__!subrule"("assertion", ".")
+    new $P485, "ResizablePMCArray"
+    push $P485, $P484
+    .return ($P485)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>"  :subid("135_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "assertion:sym<name>"  :subid("137_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .const 'Sub' $P488 = "137_1275811476.7961" 
-    capture_lex $P488
-    .local string rx480_tgt
-    .local int rx480_pos
-    .local int rx480_off
-    .local int rx480_eos
-    .local int rx480_rep
-    .local pmc rx480_cur
-    (rx480_cur, rx480_pos, rx480_tgt) = self."!cursor_start"()
-    rx480_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx480_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
-    .lex unicode:"$\x{a2}", rx480_cur
+    .const 'Sub' $P496 = "139_1277356887.58177" 
+    capture_lex $P496
+    .local string rx488_tgt
+    .local int rx488_pos
+    .local int rx488_off
+    .local int rx488_eos
+    .local int rx488_rep
+    .local pmc rx488_cur
+    (rx488_cur, rx488_pos, rx488_tgt) = self."!cursor_start"()
+    rx488_cur."!cursor_debug"("START ", "assertion:sym<name>")
+    rx488_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    .lex unicode:"$\x{a2}", rx488_cur
     .local pmc match
     .lex "$/", match
-    length rx480_eos, rx480_tgt
-    gt rx480_pos, rx480_eos, rx480_done
-    set rx480_off, 0
-    lt rx480_pos, 2, rx480_start
-    sub rx480_off, rx480_pos, 1
-    substr rx480_tgt, rx480_tgt, rx480_off
-  rx480_start:
+    length rx488_eos, rx488_tgt
+    gt rx488_pos, rx488_eos, rx488_done
+    set rx488_off, 0
+    lt rx488_pos, 2, rx488_start
+    sub rx488_off, rx488_pos, 1
+    substr rx488_tgt, rx488_tgt, rx488_off
+  rx488_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan483_done
-    goto rxscan483_scan
-  rxscan483_loop:
-    ($P10) = rx480_cur."from"()
+    ne $I10, -1, rxscan492_done
+    goto rxscan492_scan
+  rxscan492_loop:
+    ($P10) = rx488_cur."from"()
     inc $P10
-    set rx480_pos, $P10
-    ge rx480_pos, rx480_eos, rxscan483_done
-  rxscan483_scan:
-    set_addr $I10, rxscan483_loop
-    rx480_cur."!mark_push"(0, rx480_pos, $I10)
-  rxscan483_done:
-.annotate 'line', 148
-  # rx subcapture "longname"
-    set_addr $I10, rxcap_484_fail
-    rx480_cur."!mark_push"(0, rx480_pos, $I10)
-  # rx charclass_q w r 1..-1
-    sub $I10, rx480_pos, rx480_off
-    find_not_cclass $I11, 8192, rx480_tgt, $I10, rx480_eos
-    add $I12, $I10, 1
-    lt $I11, $I12, rx480_fail
-    add rx480_pos, rx480_off, $I11
-    set_addr $I10, rxcap_484_fail
-    ($I12, $I11) = rx480_cur."!mark_peek"($I10)
-    rx480_cur."!cursor_pos"($I11)
-    ($P10) = rx480_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx480_pos, "")
-    rx480_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("longname")
-    goto rxcap_484_done
-  rxcap_484_fail:
-    goto rx480_fail
-  rxcap_484_done:
-.annotate 'line', 155
-  # rx rxquantr485 ** 0..1
-    set_addr $I491, rxquantr485_done
-    rx480_cur."!mark_push"(0, rx480_pos, $I491)
-  rxquantr485_loop:
-  alt486_0:
-.annotate 'line', 149
-    set_addr $I10, alt486_1
-    rx480_cur."!mark_push"(0, rx480_pos, $I10)
+    set rx488_pos, $P10
+    ge rx488_pos, rx488_eos, rxscan492_done
+  rxscan492_scan:
+    set_addr $I10, rxscan492_loop
+    rx488_cur."!mark_push"(0, rx488_pos, $I10)
+  rxscan492_done:
 .annotate 'line', 150
-  # rx subrule "before" subtype=zerowidth negate=
-    rx480_cur."!cursor_pos"(rx480_pos)
-    .const 'Sub' $P488 = "137_1275811476.7961" 
-    capture_lex $P488
-    $P10 = rx480_cur."before"($P488)
-    unless $P10, rx480_fail
-    goto alt486_end
-  alt486_1:
-    set_addr $I10, alt486_2
-    rx480_cur."!mark_push"(0, rx480_pos, $I10)
+  # rx subrule "identifier" subtype=capture negate=
+    rx488_cur."!cursor_pos"(rx488_pos)
+    $P10 = rx488_cur."identifier"()
+    unless $P10, rx488_fail
+    rx488_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("longname")
+    rx488_pos = $P10."pos"()
+.annotate 'line', 157
+  # rx rxquantr493 ** 0..1
+    set_addr $I499, rxquantr493_done
+    rx488_cur."!mark_push"(0, rx488_pos, $I499)
+  rxquantr493_loop:
+  alt494_0:
 .annotate 'line', 151
+    set_addr $I10, alt494_1
+    rx488_cur."!mark_push"(0, rx488_pos, $I10)
+.annotate 'line', 152
+  # rx subrule "before" subtype=zerowidth negate=
+    rx488_cur."!cursor_pos"(rx488_pos)
+    .const 'Sub' $P496 = "139_1277356887.58177" 
+    capture_lex $P496
+    $P10 = rx488_cur."before"($P496)
+    unless $P10, rx488_fail
+    goto alt494_end
+  alt494_1:
+    set_addr $I10, alt494_2
+    rx488_cur."!mark_push"(0, rx488_pos, $I10)
+.annotate 'line', 153
   # rx literal  "="
-    add $I11, rx480_pos, 1
-    gt $I11, rx480_eos, rx480_fail
-    sub $I11, rx480_pos, rx480_off
-    substr $S10, rx480_tgt, $I11, 1
-    ne $S10, "=", rx480_fail
-    add rx480_pos, 1
+    add $I11, rx488_pos, 1
+    gt $I11, rx488_eos, rx488_fail
+    sub $I11, rx488_pos, rx488_off
+    substr $S10, rx488_tgt, $I11, 1
+    ne $S10, "=", rx488_fail
+    add rx488_pos, 1
   # rx subrule "assertion" subtype=capture negate=
-    rx480_cur."!cursor_pos"(rx480_pos)
-    $P10 = rx480_cur."assertion"()
-    unless $P10, rx480_fail
-    rx480_cur."!mark_push"(0, -1, 0, $P10)
+    rx488_cur."!cursor_pos"(rx488_pos)
+    $P10 = rx488_cur."assertion"()
+    unless $P10, rx488_fail
+    rx488_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("assertion")
-    rx480_pos = $P10."pos"()
-    goto alt486_end
-  alt486_2:
-    set_addr $I10, alt486_3
-    rx480_cur."!mark_push"(0, rx480_pos, $I10)
-.annotate 'line', 152
+    rx488_pos = $P10."pos"()
+    goto alt494_end
+  alt494_2:
+    set_addr $I10, alt494_3
+    rx488_cur."!mark_push"(0, rx488_pos, $I10)
+.annotate 'line', 154
   # rx literal  ":"
-    add $I11, rx480_pos, 1
-    gt $I11, rx480_eos, rx480_fail
-    sub $I11, rx480_pos, rx480_off
-    substr $S10, rx480_tgt, $I11, 1
-    ne $S10, ":", rx480_fail
-    add rx480_pos, 1
+    add $I11, rx488_pos, 1
+    gt $I11, rx488_eos, rx488_fail
+    sub $I11, rx488_pos, rx488_off
+    substr $S10, rx488_tgt, $I11, 1
+    ne $S10, ":", rx488_fail
+    add rx488_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx480_cur."!cursor_pos"(rx480_pos)
-    $P10 = rx480_cur."arglist"()
-    unless $P10, rx480_fail
-    rx480_cur."!mark_push"(0, -1, 0, $P10)
+    rx488_cur."!cursor_pos"(rx488_pos)
+    $P10 = rx488_cur."arglist"()
+    unless $P10, rx488_fail
+    rx488_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx480_pos = $P10."pos"()
-    goto alt486_end
-  alt486_3:
-    set_addr $I10, alt486_4
-    rx480_cur."!mark_push"(0, rx480_pos, $I10)
-.annotate 'line', 153
+    rx488_pos = $P10."pos"()
+    goto alt494_end
+  alt494_3:
+    set_addr $I10, alt494_4
+    rx488_cur."!mark_push"(0, rx488_pos, $I10)
+.annotate 'line', 155
   # rx literal  "("
-    add $I11, rx480_pos, 1
-    gt $I11, rx480_eos, rx480_fail
-    sub $I11, rx480_pos, rx480_off
-    substr $S10, rx480_tgt, $I11, 1
-    ne $S10, "(", rx480_fail
-    add rx480_pos, 1
+    add $I11, rx488_pos, 1
+    gt $I11, rx488_eos, rx488_fail
+    sub $I11, rx488_pos, rx488_off
+    substr $S10, rx488_tgt, $I11, 1
+    ne $S10, "(", rx488_fail
+    add rx488_pos, 1
   # rx subrule "arglist" subtype=capture negate=
-    rx480_cur."!cursor_pos"(rx480_pos)
-    $P10 = rx480_cur."arglist"()
-    unless $P10, rx480_fail
-    rx480_cur."!mark_push"(0, -1, 0, $P10)
+    rx488_cur."!cursor_pos"(rx488_pos)
+    $P10 = rx488_cur."arglist"()
+    unless $P10, rx488_fail
+    rx488_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("arglist")
-    rx480_pos = $P10."pos"()
+    rx488_pos = $P10."pos"()
   # rx literal  ")"
-    add $I11, rx480_pos, 1
-    gt $I11, rx480_eos, rx480_fail
-    sub $I11, rx480_pos, rx480_off
-    substr $S10, rx480_tgt, $I11, 1
-    ne $S10, ")", rx480_fail
-    add rx480_pos, 1
-    goto alt486_end
-  alt486_4:
-.annotate 'line', 154
+    add $I11, rx488_pos, 1
+    gt $I11, rx488_eos, rx488_fail
+    sub $I11, rx488_pos, rx488_off
+    substr $S10, rx488_tgt, $I11, 1
+    ne $S10, ")", rx488_fail
+    add rx488_pos, 1
+    goto alt494_end
+  alt494_4:
+.annotate 'line', 156
   # rx subrule "normspace" subtype=method negate=
-    rx480_cur."!cursor_pos"(rx480_pos)
-    $P10 = rx480_cur."normspace"()
-    unless $P10, rx480_fail
-    rx480_pos = $P10."pos"()
+    rx488_cur."!cursor_pos"(rx488_pos)
+    $P10 = rx488_cur."normspace"()
+    unless $P10, rx488_fail
+    rx488_pos = $P10."pos"()
   # rx subrule "nibbler" subtype=capture negate=
-    rx480_cur."!cursor_pos"(rx480_pos)
-    $P10 = rx480_cur."nibbler"()
-    unless $P10, rx480_fail
-    rx480_cur."!mark_push"(0, -1, 0, $P10)
+    rx488_cur."!cursor_pos"(rx488_pos)
+    $P10 = rx488_cur."nibbler"()
+    unless $P10, rx488_fail
+    rx488_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("nibbler")
-    rx480_pos = $P10."pos"()
-  alt486_end:
-.annotate 'line', 155
-    (rx480_rep) = rx480_cur."!mark_commit"($I491)
-  rxquantr485_done:
-.annotate 'line', 147
+    rx488_pos = $P10."pos"()
+  alt494_end:
+.annotate 'line', 157
+    (rx488_rep) = rx488_cur."!mark_commit"($I499)
+  rxquantr493_done:
+.annotate 'line', 149
   # rx pass
-    rx480_cur."!cursor_pass"(rx480_pos, "assertion:sym<name>")
-    rx480_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx480_pos)
-    .return (rx480_cur)
-  rx480_fail:
+    rx488_cur."!cursor_pass"(rx488_pos, "assertion:sym<name>")
+    rx488_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx488_pos)
+    .return (rx488_cur)
+  rx488_fail:
 .annotate 'line', 3
-    (rx480_rep, rx480_pos, $I10, $P10) = rx480_cur."!mark_fail"(0)
-    lt rx480_pos, -1, rx480_done
-    eq rx480_pos, -1, rx480_fail
+    (rx488_rep, rx488_pos, $I10, $P10) = rx488_cur."!mark_fail"(0)
+    lt rx488_pos, -1, rx488_done
+    eq rx488_pos, -1, rx488_fail
     jump $I10
-  rx480_done:
-    rx480_cur."!cursor_fail"()
-    rx480_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
-    .return (rx480_cur)
+  rx488_done:
+    rx488_cur."!cursor_fail"()
+    rx488_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    .return (rx488_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("136_1275811476.7961") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("138_1277356887.58177") :method
 .annotate 'line', 3
-    new $P482, "ResizablePMCArray"
-    push $P482, ""
-    .return ($P482)
+    $P490 = self."!PREFIX__!subrule"("identifier", "")
+    new $P491, "ResizablePMCArray"
+    push $P491, $P490
+    .return ($P491)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block487"  :anon :subid("137_1275811476.7961") :method :outer("135_1275811476.7961")
-.annotate 'line', 150
-    .local string rx489_tgt
-    .local int rx489_pos
-    .local int rx489_off
-    .local int rx489_eos
-    .local int rx489_rep
-    .local pmc rx489_cur
-    (rx489_cur, rx489_pos, rx489_tgt) = self."!cursor_start"()
-    rx489_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx489_cur
-    .local pmc match
-    .lex "$/", match
-    length rx489_eos, rx489_tgt
-    gt rx489_pos, rx489_eos, rx489_done
-    set rx489_off, 0
-    lt rx489_pos, 2, rx489_start
-    sub rx489_off, rx489_pos, 1
-    substr rx489_tgt, rx489_tgt, rx489_off
-  rx489_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan490_done
-    goto rxscan490_scan
-  rxscan490_loop:
-    ($P10) = rx489_cur."from"()
-    inc $P10
-    set rx489_pos, $P10
-    ge rx489_pos, rx489_eos, rxscan490_done
-  rxscan490_scan:
-    set_addr $I10, rxscan490_loop
-    rx489_cur."!mark_push"(0, rx489_pos, $I10)
-  rxscan490_done:
+.sub "_block495"  :anon :subid("139_1277356887.58177") :method :outer("137_1277356887.58177")
+.annotate 'line', 152
+    .local string rx497_tgt
+    .local int rx497_pos
+    .local int rx497_off
+    .local int rx497_eos
+    .local int rx497_rep
+    .local pmc rx497_cur
+    (rx497_cur, rx497_pos, rx497_tgt) = self."!cursor_start"()
+    rx497_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx497_cur
+    .local pmc match
+    .lex "$/", match
+    length rx497_eos, rx497_tgt
+    gt rx497_pos, rx497_eos, rx497_done
+    set rx497_off, 0
+    lt rx497_pos, 2, rx497_start
+    sub rx497_off, rx497_pos, 1
+    substr rx497_tgt, rx497_tgt, rx497_off
+  rx497_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan498_done
+    goto rxscan498_scan
+  rxscan498_loop:
+    ($P10) = rx497_cur."from"()
+    inc $P10
+    set rx497_pos, $P10
+    ge rx497_pos, rx497_eos, rxscan498_done
+  rxscan498_scan:
+    set_addr $I10, rxscan498_loop
+    rx497_cur."!mark_push"(0, rx497_pos, $I10)
+  rxscan498_done:
   # rx literal  ">"
-    add $I11, rx489_pos, 1
-    gt $I11, rx489_eos, rx489_fail
-    sub $I11, rx489_pos, rx489_off
-    substr $S10, rx489_tgt, $I11, 1
-    ne $S10, ">", rx489_fail
-    add rx489_pos, 1
-  # rx pass
-    rx489_cur."!cursor_pass"(rx489_pos, "")
-    rx489_cur."!cursor_debug"("PASS  ", "", " at pos=", rx489_pos)
-    .return (rx489_cur)
-  rx489_fail:
-    (rx489_rep, rx489_pos, $I10, $P10) = rx489_cur."!mark_fail"(0)
-    lt rx489_pos, -1, rx489_done
-    eq rx489_pos, -1, rx489_fail
-    jump $I10
-  rx489_done:
-    rx489_cur."!cursor_fail"()
-    rx489_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx489_cur)
+    add $I11, rx497_pos, 1
+    gt $I11, rx497_eos, rx497_fail
+    sub $I11, rx497_pos, rx497_off
+    substr $S10, rx497_tgt, $I11, 1
+    ne $S10, ">", rx497_fail
+    add rx497_pos, 1
+  # rx pass
+    rx497_cur."!cursor_pass"(rx497_pos, "")
+    rx497_cur."!cursor_debug"("PASS  ", "", " at pos=", rx497_pos)
+    .return (rx497_cur)
+  rx497_fail:
+    (rx497_rep, rx497_pos, $I10, $P10) = rx497_cur."!mark_fail"(0)
+    lt rx497_pos, -1, rx497_done
+    eq rx497_pos, -1, rx497_fail
+    jump $I10
+  rx497_done:
+    rx497_cur."!cursor_fail"()
+    rx497_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx497_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>"  :subid("138_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .const 'Sub' $P498 = "140_1275811476.7961" 
-    capture_lex $P498
-    .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 ", "assertion:sym<[>")
-    rx493_cur."!cursor_caparray"("cclass_elem")
-    .lex unicode:"$\x{a2}", rx493_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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan496_done
-    goto rxscan496_scan
-  rxscan496_loop:
-    ($P10) = rx493_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:
-.annotate 'line', 158
+.sub "assertion:sym<[>"  :subid("140_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .const 'Sub' $P506 = "142_1277356887.58177" 
+    capture_lex $P506
+    .local string rx501_tgt
+    .local int rx501_pos
+    .local int rx501_off
+    .local int rx501_eos
+    .local int rx501_rep
+    .local pmc rx501_cur
+    (rx501_cur, rx501_pos, rx501_tgt) = self."!cursor_start"()
+    rx501_cur."!cursor_debug"("START ", "assertion:sym<[>")
+    rx501_cur."!cursor_caparray"("cclass_elem")
+    .lex unicode:"$\x{a2}", rx501_cur
+    .local pmc match
+    .lex "$/", match
+    length rx501_eos, rx501_tgt
+    gt rx501_pos, rx501_eos, rx501_done
+    set rx501_off, 0
+    lt rx501_pos, 2, rx501_start
+    sub rx501_off, rx501_pos, 1
+    substr rx501_tgt, rx501_tgt, rx501_off
+  rx501_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan504_done
+    goto rxscan504_scan
+  rxscan504_loop:
+    ($P10) = rx501_cur."from"()
+    inc $P10
+    set rx501_pos, $P10
+    ge rx501_pos, rx501_eos, rxscan504_done
+  rxscan504_scan:
+    set_addr $I10, rxscan504_loop
+    rx501_cur."!mark_push"(0, rx501_pos, $I10)
+  rxscan504_done:
+.annotate 'line', 160
   # rx subrule "before" subtype=zerowidth negate=
-    rx493_cur."!cursor_pos"(rx493_pos)
-    .const 'Sub' $P498 = "140_1275811476.7961" 
-    capture_lex $P498
-    $P10 = rx493_cur."before"($P498)
-    unless $P10, rx493_fail
-  # rx rxquantr502 ** 1..*
-    set_addr $I503, rxquantr502_done
-    rx493_cur."!mark_push"(0, -1, $I503)
-  rxquantr502_loop:
+    rx501_cur."!cursor_pos"(rx501_pos)
+    .const 'Sub' $P506 = "142_1277356887.58177" 
+    capture_lex $P506
+    $P10 = rx501_cur."before"($P506)
+    unless $P10, rx501_fail
+  # rx rxquantr510 ** 1..*
+    set_addr $I511, rxquantr510_done
+    rx501_cur."!mark_push"(0, -1, $I511)
+  rxquantr510_loop:
   # rx subrule "cclass_elem" subtype=capture negate=
-    rx493_cur."!cursor_pos"(rx493_pos)
-    $P10 = rx493_cur."cclass_elem"()
-    unless $P10, rx493_fail
-    rx493_cur."!mark_push"(0, -1, 0, $P10)
+    rx501_cur."!cursor_pos"(rx501_pos)
+    $P10 = rx501_cur."cclass_elem"()
+    unless $P10, rx501_fail
+    rx501_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("cclass_elem")
-    rx493_pos = $P10."pos"()
-    (rx493_rep) = rx493_cur."!mark_commit"($I503)
-    rx493_cur."!mark_push"(rx493_rep, rx493_pos, $I503)
-    goto rxquantr502_loop
-  rxquantr502_done:
-  # rx pass
-    rx493_cur."!cursor_pass"(rx493_pos, "assertion:sym<[>")
-    rx493_cur."!cursor_debug"("PASS  ", "assertion:sym<[>", " at pos=", rx493_pos)
-    .return (rx493_cur)
-  rx493_fail:
-.annotate 'line', 3
-    (rx493_rep, rx493_pos, $I10, $P10) = rx493_cur."!mark_fail"(0)
-    lt rx493_pos, -1, rx493_done
-    eq rx493_pos, -1, rx493_fail
-    jump $I10
-  rx493_done:
-    rx493_cur."!cursor_fail"()
-    rx493_cur."!cursor_debug"("FAIL  ", "assertion:sym<[>")
-    .return (rx493_cur)
+    rx501_pos = $P10."pos"()
+    (rx501_rep) = rx501_cur."!mark_commit"($I511)
+    rx501_cur."!mark_push"(rx501_rep, rx501_pos, $I511)
+    goto rxquantr510_loop
+  rxquantr510_done:
+  # rx pass
+    rx501_cur."!cursor_pass"(rx501_pos, "assertion:sym<[>")
+    rx501_cur."!cursor_debug"("PASS  ", "assertion:sym<[>", " at pos=", rx501_pos)
+    .return (rx501_cur)
+  rx501_fail:
+.annotate 'line', 3
+    (rx501_rep, rx501_pos, $I10, $P10) = rx501_cur."!mark_fail"(0)
+    lt rx501_pos, -1, rx501_done
+    eq rx501_pos, -1, rx501_fail
+    jump $I10
+  rx501_done:
+    rx501_cur."!cursor_fail"()
+    rx501_cur."!cursor_debug"("FAIL  ", "assertion:sym<[>")
+    .return (rx501_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>"  :subid("139_1275811476.7961") :method
-.annotate 'line', 3
-    new $P495, "ResizablePMCArray"
-    push $P495, ""
-    .return ($P495)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block497"  :anon :subid("140_1275811476.7961") :method :outer("138_1275811476.7961")
-.annotate 'line', 158
-    .local string rx499_tgt
-    .local int rx499_pos
-    .local int rx499_off
-    .local int rx499_eos
-    .local int rx499_rep
-    .local pmc rx499_cur
-    (rx499_cur, rx499_pos, rx499_tgt) = self."!cursor_start"()
-    rx499_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx499_cur
-    .local pmc match
-    .lex "$/", match
-    length rx499_eos, rx499_tgt
-    gt rx499_pos, rx499_eos, rx499_done
-    set rx499_off, 0
-    lt rx499_pos, 2, rx499_start
-    sub rx499_off, rx499_pos, 1
-    substr rx499_tgt, rx499_tgt, rx499_off
-  rx499_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan500_done
-    goto rxscan500_scan
-  rxscan500_loop:
-    ($P10) = rx499_cur."from"()
-    inc $P10
-    set rx499_pos, $P10
-    ge rx499_pos, rx499_eos, rxscan500_done
-  rxscan500_scan:
-    set_addr $I10, rxscan500_loop
-    rx499_cur."!mark_push"(0, rx499_pos, $I10)
-  rxscan500_done:
-  alt501_0:
-    set_addr $I10, alt501_1
-    rx499_cur."!mark_push"(0, rx499_pos, $I10)
-  # rx literal  "["
-    add $I11, rx499_pos, 1
-    gt $I11, rx499_eos, rx499_fail
-    sub $I11, rx499_pos, rx499_off
-    substr $S10, rx499_tgt, $I11, 1
-    ne $S10, "[", rx499_fail
-    add rx499_pos, 1
-    goto alt501_end
-  alt501_1:
-    set_addr $I10, alt501_2
-    rx499_cur."!mark_push"(0, rx499_pos, $I10)
-  # rx literal  "+"
-    add $I11, rx499_pos, 1
-    gt $I11, rx499_eos, rx499_fail
-    sub $I11, rx499_pos, rx499_off
-    substr $S10, rx499_tgt, $I11, 1
-    ne $S10, "+", rx499_fail
-    add rx499_pos, 1
-    goto alt501_end
-  alt501_2:
-  # rx literal  "-"
-    add $I11, rx499_pos, 1
-    gt $I11, rx499_eos, rx499_fail
-    sub $I11, rx499_pos, rx499_off
-    substr $S10, rx499_tgt, $I11, 1
-    ne $S10, "-", rx499_fail
-    add rx499_pos, 1
-  alt501_end:
-  # rx pass
-    rx499_cur."!cursor_pass"(rx499_pos, "")
-    rx499_cur."!cursor_debug"("PASS  ", "", " at pos=", rx499_pos)
-    .return (rx499_cur)
-  rx499_fail:
-    (rx499_rep, rx499_pos, $I10, $P10) = rx499_cur."!mark_fail"(0)
-    lt rx499_pos, -1, rx499_done
-    eq rx499_pos, -1, rx499_fail
-    jump $I10
-  rx499_done:
-    rx499_cur."!cursor_fail"()
-    rx499_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx499_cur)
-    .return ()
+.sub "!PREFIX__assertion:sym<[>"  :subid("141_1277356887.58177") :method
+.annotate 'line', 3
+    new $P503, "ResizablePMCArray"
+    push $P503, ""
+    .return ($P503)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem"  :subid("141_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .const 'Sub' $P516 = "143_1275811476.7961" 
-    capture_lex $P516
-    .local string rx505_tgt
-    .local int rx505_pos
-    .local int rx505_off
-    .local int rx505_eos
-    .local int rx505_rep
-    .local pmc rx505_cur
-    (rx505_cur, rx505_pos, rx505_tgt) = self."!cursor_start"()
-    rx505_cur."!cursor_debug"("START ", "cclass_elem")
-    rx505_cur."!cursor_caparray"("charspec")
-    .lex unicode:"$\x{a2}", rx505_cur
-    .local pmc match
-    .lex "$/", match
-    length rx505_eos, rx505_tgt
-    gt rx505_pos, rx505_eos, rx505_done
-    set rx505_off, 0
-    lt rx505_pos, 2, rx505_start
-    sub rx505_off, rx505_pos, 1
-    substr rx505_tgt, rx505_tgt, rx505_off
-  rx505_start:
+.sub "_block505"  :anon :subid("142_1277356887.58177") :method :outer("140_1277356887.58177")
+.annotate 'line', 160
+    .local string rx507_tgt
+    .local int rx507_pos
+    .local int rx507_off
+    .local int rx507_eos
+    .local int rx507_rep
+    .local pmc rx507_cur
+    (rx507_cur, rx507_pos, rx507_tgt) = self."!cursor_start"()
+    rx507_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx507_cur
+    .local pmc match
+    .lex "$/", match
+    length rx507_eos, rx507_tgt
+    gt rx507_pos, rx507_eos, rx507_done
+    set rx507_off, 0
+    lt rx507_pos, 2, rx507_start
+    sub rx507_off, rx507_pos, 1
+    substr rx507_tgt, rx507_tgt, rx507_off
+  rx507_start:
     $I10 = self.'from'()
     ne $I10, -1, rxscan508_done
     goto rxscan508_scan
   rxscan508_loop:
-    ($P10) = rx505_cur."from"()
+    ($P10) = rx507_cur."from"()
     inc $P10
-    set rx505_pos, $P10
-    ge rx505_pos, rx505_eos, rxscan508_done
+    set rx507_pos, $P10
+    ge rx507_pos, rx507_eos, rxscan508_done
   rxscan508_scan:
     set_addr $I10, rxscan508_loop
-    rx505_cur."!mark_push"(0, rx505_pos, $I10)
+    rx507_cur."!mark_push"(0, rx507_pos, $I10)
   rxscan508_done:
-.annotate 'line', 161
-  # rx subcapture "sign"
-    set_addr $I10, rxcap_510_fail
-    rx505_cur."!mark_push"(0, rx505_pos, $I10)
   alt509_0:
     set_addr $I10, alt509_1
-    rx505_cur."!mark_push"(0, rx505_pos, $I10)
-  # rx literal  "+"
-    add $I11, rx505_pos, 1
-    gt $I11, rx505_eos, rx505_fail
-    sub $I11, rx505_pos, rx505_off
-    substr $S10, rx505_tgt, $I11, 1
-    ne $S10, "+", rx505_fail
-    add rx505_pos, 1
+    rx507_cur."!mark_push"(0, rx507_pos, $I10)
+  # rx literal  "["
+    add $I11, rx507_pos, 1
+    gt $I11, rx507_eos, rx507_fail
+    sub $I11, rx507_pos, rx507_off
+    substr $S10, rx507_tgt, $I11, 1
+    ne $S10, "[", rx507_fail
+    add rx507_pos, 1
     goto alt509_end
   alt509_1:
     set_addr $I10, alt509_2
-    rx505_cur."!mark_push"(0, rx505_pos, $I10)
-  # rx literal  "-"
-    add $I11, rx505_pos, 1
-    gt $I11, rx505_eos, rx505_fail
-    sub $I11, rx505_pos, rx505_off
-    substr $S10, rx505_tgt, $I11, 1
-    ne $S10, "-", rx505_fail
-    add rx505_pos, 1
+    rx507_cur."!mark_push"(0, rx507_pos, $I10)
+  # rx literal  "+"
+    add $I11, rx507_pos, 1
+    gt $I11, rx507_eos, rx507_fail
+    sub $I11, rx507_pos, rx507_off
+    substr $S10, rx507_tgt, $I11, 1
+    ne $S10, "+", rx507_fail
+    add rx507_pos, 1
     goto alt509_end
   alt509_2:
+  # rx literal  "-"
+    add $I11, rx507_pos, 1
+    gt $I11, rx507_eos, rx507_fail
+    sub $I11, rx507_pos, rx507_off
+    substr $S10, rx507_tgt, $I11, 1
+    ne $S10, "-", rx507_fail
+    add rx507_pos, 1
   alt509_end:
-    set_addr $I10, rxcap_510_fail
-    ($I12, $I11) = rx505_cur."!mark_peek"($I10)
-    rx505_cur."!cursor_pos"($I11)
-    ($P10) = rx505_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx505_pos, "")
-    rx505_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sign")
-    goto rxcap_510_done
-  rxcap_510_fail:
-    goto rx505_fail
-  rxcap_510_done:
-.annotate 'line', 162
-  # rx rxquantr511 ** 0..1
-    set_addr $I512, rxquantr511_done
-    rx505_cur."!mark_push"(0, rx505_pos, $I512)
-  rxquantr511_loop:
-  # rx subrule "normspace" subtype=method negate=
-    rx505_cur."!cursor_pos"(rx505_pos)
-    $P10 = rx505_cur."normspace"()
-    unless $P10, rx505_fail
-    rx505_pos = $P10."pos"()
-    (rx505_rep) = rx505_cur."!mark_commit"($I512)
-  rxquantr511_done:
-  alt513_0:
+  # rx pass
+    rx507_cur."!cursor_pass"(rx507_pos, "")
+    rx507_cur."!cursor_debug"("PASS  ", "", " at pos=", rx507_pos)
+    .return (rx507_cur)
+  rx507_fail:
+    (rx507_rep, rx507_pos, $I10, $P10) = rx507_cur."!mark_fail"(0)
+    lt rx507_pos, -1, rx507_done
+    eq rx507_pos, -1, rx507_fail
+    jump $I10
+  rx507_done:
+    rx507_cur."!cursor_fail"()
+    rx507_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx507_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "cclass_elem"  :subid("143_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .const 'Sub' $P524 = "145_1277356887.58177" 
+    capture_lex $P524
+    .local string rx513_tgt
+    .local int rx513_pos
+    .local int rx513_off
+    .local int rx513_eos
+    .local int rx513_rep
+    .local pmc rx513_cur
+    (rx513_cur, rx513_pos, rx513_tgt) = self."!cursor_start"()
+    rx513_cur."!cursor_debug"("START ", "cclass_elem")
+    rx513_cur."!cursor_caparray"("charspec")
+    .lex unicode:"$\x{a2}", rx513_cur
+    .local pmc match
+    .lex "$/", match
+    length rx513_eos, rx513_tgt
+    gt rx513_pos, rx513_eos, rx513_done
+    set rx513_off, 0
+    lt rx513_pos, 2, rx513_start
+    sub rx513_off, rx513_pos, 1
+    substr rx513_tgt, rx513_tgt, rx513_off
+  rx513_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan516_done
+    goto rxscan516_scan
+  rxscan516_loop:
+    ($P10) = rx513_cur."from"()
+    inc $P10
+    set rx513_pos, $P10
+    ge rx513_pos, rx513_eos, rxscan516_done
+  rxscan516_scan:
+    set_addr $I10, rxscan516_loop
+    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+  rxscan516_done:
 .annotate 'line', 163
-    set_addr $I10, alt513_1
-    rx505_cur."!mark_push"(0, rx505_pos, $I10)
+  # rx subcapture "sign"
+    set_addr $I10, rxcap_518_fail
+    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+  alt517_0:
+    set_addr $I10, alt517_1
+    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+  # rx literal  "+"
+    add $I11, rx513_pos, 1
+    gt $I11, rx513_eos, rx513_fail
+    sub $I11, rx513_pos, rx513_off
+    substr $S10, rx513_tgt, $I11, 1
+    ne $S10, "+", rx513_fail
+    add rx513_pos, 1
+    goto alt517_end
+  alt517_1:
+    set_addr $I10, alt517_2
+    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+  # rx literal  "-"
+    add $I11, rx513_pos, 1
+    gt $I11, rx513_eos, rx513_fail
+    sub $I11, rx513_pos, rx513_off
+    substr $S10, rx513_tgt, $I11, 1
+    ne $S10, "-", rx513_fail
+    add rx513_pos, 1
+    goto alt517_end
+  alt517_2:
+  alt517_end:
+    set_addr $I10, rxcap_518_fail
+    ($I12, $I11) = rx513_cur."!mark_peek"($I10)
+    rx513_cur."!cursor_pos"($I11)
+    ($P10) = rx513_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx513_pos, "")
+    rx513_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sign")
+    goto rxcap_518_done
+  rxcap_518_fail:
+    goto rx513_fail
+  rxcap_518_done:
 .annotate 'line', 164
+  # rx rxquantr519 ** 0..1
+    set_addr $I520, rxquantr519_done
+    rx513_cur."!mark_push"(0, rx513_pos, $I520)
+  rxquantr519_loop:
+  # rx subrule "normspace" subtype=method negate=
+    rx513_cur."!cursor_pos"(rx513_pos)
+    $P10 = rx513_cur."normspace"()
+    unless $P10, rx513_fail
+    rx513_pos = $P10."pos"()
+    (rx513_rep) = rx513_cur."!mark_commit"($I520)
+  rxquantr519_done:
+  alt521_0:
+.annotate 'line', 165
+    set_addr $I10, alt521_1
+    rx513_cur."!mark_push"(0, rx513_pos, $I10)
+.annotate 'line', 166
   # rx literal  "["
-    add $I11, rx505_pos, 1
-    gt $I11, rx505_eos, rx505_fail
-    sub $I11, rx505_pos, rx505_off
-    substr $S10, rx505_tgt, $I11, 1
-    ne $S10, "[", rx505_fail
-    add rx505_pos, 1
-.annotate 'line', 167
-  # rx rxquantr514 ** 0..*
-    set_addr $I535, rxquantr514_done
-    rx505_cur."!mark_push"(0, rx505_pos, $I535)
-  rxquantr514_loop:
-.annotate 'line', 164
-  # rx subrule $P516 subtype=capture negate=
-    rx505_cur."!cursor_pos"(rx505_pos)
-    .const 'Sub' $P516 = "143_1275811476.7961" 
-    capture_lex $P516
-    $P10 = rx505_cur.$P516()
-    unless $P10, rx505_fail
-    rx505_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx513_pos, 1
+    gt $I11, rx513_eos, rx513_fail
+    sub $I11, rx513_pos, rx513_off
+    substr $S10, rx513_tgt, $I11, 1
+    ne $S10, "[", rx513_fail
+    add rx513_pos, 1
+.annotate 'line', 169
+  # rx rxquantr522 ** 0..*
+    set_addr $I543, rxquantr522_done
+    rx513_cur."!mark_push"(0, rx513_pos, $I543)
+  rxquantr522_loop:
+.annotate 'line', 166
+  # rx subrule $P524 subtype=capture negate=
+    rx513_cur."!cursor_pos"(rx513_pos)
+    .const 'Sub' $P524 = "145_1277356887.58177" 
+    capture_lex $P524
+    $P10 = rx513_cur.$P524()
+    unless $P10, rx513_fail
+    rx513_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("charspec")
-    rx505_pos = $P10."pos"()
-.annotate 'line', 167
-    (rx505_rep) = rx505_cur."!mark_commit"($I535)
-    rx505_cur."!mark_push"(rx505_rep, rx505_pos, $I535)
-    goto rxquantr514_loop
-  rxquantr514_done:
-.annotate 'line', 168
+    rx513_pos = $P10."pos"()
+.annotate 'line', 169
+    (rx513_rep) = rx513_cur."!mark_commit"($I543)
+    rx513_cur."!mark_push"(rx513_rep, rx513_pos, $I543)
+    goto rxquantr522_loop
+  rxquantr522_done:
+.annotate 'line', 170
   # rx charclass_q s r 0..-1
-    sub $I10, rx505_pos, rx505_off
-    find_not_cclass $I11, 32, rx505_tgt, $I10, rx505_eos
-    add rx505_pos, rx505_off, $I11
+    sub $I10, rx513_pos, rx513_off
+    find_not_cclass $I11, 32, rx513_tgt, $I10, rx513_eos
+    add rx513_pos, rx513_off, $I11
   # rx literal  "]"
-    add $I11, rx505_pos, 1
-    gt $I11, rx505_eos, rx505_fail
-    sub $I11, rx505_pos, rx505_off
-    substr $S10, rx505_tgt, $I11, 1
-    ne $S10, "]", rx505_fail
-    add rx505_pos, 1
-.annotate 'line', 164
-    goto alt513_end
-  alt513_1:
-.annotate 'line', 169
+    add $I11, rx513_pos, 1
+    gt $I11, rx513_eos, rx513_fail
+    sub $I11, rx513_pos, rx513_off
+    substr $S10, rx513_tgt, $I11, 1
+    ne $S10, "]", rx513_fail
+    add rx513_pos, 1
+.annotate 'line', 166
+    goto alt521_end
+  alt521_1:
+.annotate 'line', 171
   # rx subcapture "name"
-    set_addr $I10, rxcap_536_fail
-    rx505_cur."!mark_push"(0, rx505_pos, $I10)
+    set_addr $I10, rxcap_544_fail
+    rx513_cur."!mark_push"(0, rx513_pos, $I10)
   # rx charclass_q w r 1..-1
-    sub $I10, rx505_pos, rx505_off
-    find_not_cclass $I11, 8192, rx505_tgt, $I10, rx505_eos
+    sub $I10, rx513_pos, rx513_off
+    find_not_cclass $I11, 8192, rx513_tgt, $I10, rx513_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx505_fail
-    add rx505_pos, rx505_off, $I11
-    set_addr $I10, rxcap_536_fail
-    ($I12, $I11) = rx505_cur."!mark_peek"($I10)
-    rx505_cur."!cursor_pos"($I11)
-    ($P10) = rx505_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx505_pos, "")
-    rx505_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx513_fail
+    add rx513_pos, rx513_off, $I11
+    set_addr $I10, rxcap_544_fail
+    ($I12, $I11) = rx513_cur."!mark_peek"($I10)
+    rx513_cur."!cursor_pos"($I11)
+    ($P10) = rx513_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx513_pos, "")
+    rx513_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("name")
-    goto rxcap_536_done
-  rxcap_536_fail:
-    goto rx505_fail
-  rxcap_536_done:
-  alt513_end:
-.annotate 'line', 171
-  # rx rxquantr537 ** 0..1
-    set_addr $I538, rxquantr537_done
-    rx505_cur."!mark_push"(0, rx505_pos, $I538)
-  rxquantr537_loop:
+    goto rxcap_544_done
+  rxcap_544_fail:
+    goto rx513_fail
+  rxcap_544_done:
+  alt521_end:
+.annotate 'line', 173
+  # rx rxquantr545 ** 0..1
+    set_addr $I546, rxquantr545_done
+    rx513_cur."!mark_push"(0, rx513_pos, $I546)
+  rxquantr545_loop:
   # rx subrule "normspace" subtype=method negate=
-    rx505_cur."!cursor_pos"(rx505_pos)
-    $P10 = rx505_cur."normspace"()
-    unless $P10, rx505_fail
-    rx505_pos = $P10."pos"()
-    (rx505_rep) = rx505_cur."!mark_commit"($I538)
-  rxquantr537_done:
-.annotate 'line', 160
+    rx513_cur."!cursor_pos"(rx513_pos)
+    $P10 = rx513_cur."normspace"()
+    unless $P10, rx513_fail
+    rx513_pos = $P10."pos"()
+    (rx513_rep) = rx513_cur."!mark_commit"($I546)
+  rxquantr545_done:
+.annotate 'line', 162
   # rx pass
-    rx505_cur."!cursor_pass"(rx505_pos, "cclass_elem")
-    rx505_cur."!cursor_debug"("PASS  ", "cclass_elem", " at pos=", rx505_pos)
-    .return (rx505_cur)
-  rx505_fail:
+    rx513_cur."!cursor_pass"(rx513_pos, "cclass_elem")
+    rx513_cur."!cursor_debug"("PASS  ", "cclass_elem", " at pos=", rx513_pos)
+    .return (rx513_cur)
+  rx513_fail:
 .annotate 'line', 3
-    (rx505_rep, rx505_pos, $I10, $P10) = rx505_cur."!mark_fail"(0)
-    lt rx505_pos, -1, rx505_done
-    eq rx505_pos, -1, rx505_fail
+    (rx513_rep, rx513_pos, $I10, $P10) = rx513_cur."!mark_fail"(0)
+    lt rx513_pos, -1, rx513_done
+    eq rx513_pos, -1, rx513_fail
     jump $I10
-  rx505_done:
-    rx505_cur."!cursor_fail"()
-    rx505_cur."!cursor_debug"("FAIL  ", "cclass_elem")
-    .return (rx505_cur)
+  rx513_done:
+    rx513_cur."!cursor_fail"()
+    rx513_cur."!cursor_debug"("FAIL  ", "cclass_elem")
+    .return (rx513_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem"  :subid("142_1275811476.7961") :method
+.sub "!PREFIX__cclass_elem"  :subid("144_1277356887.58177") :method
 .annotate 'line', 3
-    new $P507, "ResizablePMCArray"
-    push $P507, ""
-    push $P507, "-"
-    push $P507, "+"
-    .return ($P507)
+    new $P515, "ResizablePMCArray"
+    push $P515, ""
+    push $P515, "-"
+    push $P515, "+"
+    .return ($P515)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block515"  :anon :subid("143_1275811476.7961") :method :outer("141_1275811476.7961")
-.annotate 'line', 164
-    .const 'Sub' $P531 = "146_1275811476.7961" 
-    capture_lex $P531
-    .const 'Sub' $P526 = "145_1275811476.7961" 
-    capture_lex $P526
-    .const 'Sub' $P522 = "144_1275811476.7961" 
-    capture_lex $P522
-    .local string rx517_tgt
-    .local int rx517_pos
-    .local int rx517_off
-    .local int rx517_eos
-    .local int rx517_rep
-    .local pmc rx517_cur
-    (rx517_cur, rx517_pos, rx517_tgt) = self."!cursor_start"()
-    rx517_cur."!cursor_debug"("START ", "")
-    rx517_cur."!cursor_caparray"("1")
-    .lex unicode:"$\x{a2}", rx517_cur
-    .local pmc match
-    .lex "$/", match
-    length rx517_eos, rx517_tgt
-    gt rx517_pos, rx517_eos, rx517_done
-    set rx517_off, 0
-    lt rx517_pos, 2, rx517_start
-    sub rx517_off, rx517_pos, 1
-    substr rx517_tgt, rx517_tgt, rx517_off
-  rx517_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan518_done
-    goto rxscan518_scan
-  rxscan518_loop:
-    ($P10) = rx517_cur."from"()
-    inc $P10
-    set rx517_pos, $P10
-    ge rx517_pos, rx517_eos, rxscan518_done
-  rxscan518_scan:
-    set_addr $I10, rxscan518_loop
-    rx517_cur."!mark_push"(0, rx517_pos, $I10)
-  rxscan518_done:
-  alt519_0:
-    set_addr $I10, alt519_1
-    rx517_cur."!mark_push"(0, rx517_pos, $I10)
-.annotate 'line', 165
+.sub "_block523"  :anon :subid("145_1277356887.58177") :method :outer("143_1277356887.58177")
+.annotate 'line', 166
+    .const 'Sub' $P539 = "148_1277356887.58177" 
+    capture_lex $P539
+    .const 'Sub' $P534 = "147_1277356887.58177" 
+    capture_lex $P534
+    .const 'Sub' $P530 = "146_1277356887.58177" 
+    capture_lex $P530
+    .local string rx525_tgt
+    .local int rx525_pos
+    .local int rx525_off
+    .local int rx525_eos
+    .local int rx525_rep
+    .local pmc rx525_cur
+    (rx525_cur, rx525_pos, rx525_tgt) = self."!cursor_start"()
+    rx525_cur."!cursor_debug"("START ", "")
+    rx525_cur."!cursor_caparray"("1")
+    .lex unicode:"$\x{a2}", rx525_cur
+    .local pmc match
+    .lex "$/", match
+    length rx525_eos, rx525_tgt
+    gt rx525_pos, rx525_eos, rx525_done
+    set rx525_off, 0
+    lt rx525_pos, 2, rx525_start
+    sub rx525_off, rx525_pos, 1
+    substr rx525_tgt, rx525_tgt, rx525_off
+  rx525_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan526_done
+    goto rxscan526_scan
+  rxscan526_loop:
+    ($P10) = rx525_cur."from"()
+    inc $P10
+    set rx525_pos, $P10
+    ge rx525_pos, rx525_eos, rxscan526_done
+  rxscan526_scan:
+    set_addr $I10, rxscan526_loop
+    rx525_cur."!mark_push"(0, rx525_pos, $I10)
+  rxscan526_done:
+  alt527_0:
+    set_addr $I10, alt527_1
+    rx525_cur."!mark_push"(0, rx525_pos, $I10)
+.annotate 'line', 167
   # rx charclass_q s r 0..-1
-    sub $I10, rx517_pos, rx517_off
-    find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
-    add rx517_pos, rx517_off, $I11
+    sub $I10, rx525_pos, rx525_off
+    find_not_cclass $I11, 32, rx525_tgt, $I10, rx525_eos
+    add rx525_pos, rx525_off, $I11
   # rx literal  "-"
-    add $I11, rx517_pos, 1
-    gt $I11, rx517_eos, rx517_fail
-    sub $I11, rx517_pos, rx517_off
-    substr $S10, rx517_tgt, $I11, 1
-    ne $S10, "-", rx517_fail
-    add rx517_pos, 1
+    add $I11, rx525_pos, 1
+    gt $I11, rx525_eos, rx525_fail
+    sub $I11, rx525_pos, rx525_off
+    substr $S10, rx525_tgt, $I11, 1
+    ne $S10, "-", rx525_fail
+    add rx525_pos, 1
   # rx subrule "obs" subtype=method negate=
-    rx517_cur."!cursor_pos"(rx517_pos)
-    $P10 = rx517_cur."obs"("hyphen in enumerated character class", "..")
-    unless $P10, rx517_fail
-    rx517_pos = $P10."pos"()
-    goto alt519_end
-  alt519_1:
-.annotate 'line', 166
+    rx525_cur."!cursor_pos"(rx525_pos)
+    $P10 = rx525_cur."obs"("hyphen in enumerated character class", "..")
+    unless $P10, rx525_fail
+    rx525_pos = $P10."pos"()
+    goto alt527_end
+  alt527_1:
+.annotate 'line', 168
   # rx charclass_q s r 0..-1
-    sub $I10, rx517_pos, rx517_off
-    find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
-    add rx517_pos, rx517_off, $I11
-  alt520_0:
-    set_addr $I10, alt520_1
-    rx517_cur."!mark_push"(0, rx517_pos, $I10)
+    sub $I10, rx525_pos, rx525_off
+    find_not_cclass $I11, 32, rx525_tgt, $I10, rx525_eos
+    add rx525_pos, rx525_off, $I11
+  alt528_0:
+    set_addr $I10, alt528_1
+    rx525_cur."!mark_push"(0, rx525_pos, $I10)
   # rx literal  "\\"
-    add $I11, rx517_pos, 1
-    gt $I11, rx517_eos, rx517_fail
-    sub $I11, rx517_pos, rx517_off
-    substr $S10, rx517_tgt, $I11, 1
-    ne $S10, "\\", rx517_fail
-    add rx517_pos, 1
-  # rx subrule $P522 subtype=capture negate=
-    rx517_cur."!cursor_pos"(rx517_pos)
-    .const 'Sub' $P522 = "144_1275811476.7961" 
-    capture_lex $P522
-    $P10 = rx517_cur.$P522()
-    unless $P10, rx517_fail
-    rx517_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx525_pos, 1
+    gt $I11, rx525_eos, rx525_fail
+    sub $I11, rx525_pos, rx525_off
+    substr $S10, rx525_tgt, $I11, 1
+    ne $S10, "\\", rx525_fail
+    add rx525_pos, 1
+  # rx subrule $P530 subtype=capture negate=
+    rx525_cur."!cursor_pos"(rx525_pos)
+    .const 'Sub' $P530 = "146_1277356887.58177" 
+    capture_lex $P530
+    $P10 = rx525_cur.$P530()
+    unless $P10, rx525_fail
+    rx525_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"(0)
-    rx517_pos = $P10."pos"()
-    goto alt520_end
-  alt520_1:
-  # rx subrule $P526 subtype=capture negate=
-    rx517_cur."!cursor_pos"(rx517_pos)
-    .const 'Sub' $P526 = "145_1275811476.7961" 
-    capture_lex $P526
-    $P10 = rx517_cur.$P526()
-    unless $P10, rx517_fail
-    rx517_cur."!mark_push"(0, -1, 0, $P10)
+    rx525_pos = $P10."pos"()
+    goto alt528_end
+  alt528_1:
+  # rx subrule $P534 subtype=capture negate=
+    rx525_cur."!cursor_pos"(rx525_pos)
+    .const 'Sub' $P534 = "147_1277356887.58177" 
+    capture_lex $P534
+    $P10 = rx525_cur.$P534()
+    unless $P10, rx525_fail
+    rx525_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"(0)
-    rx517_pos = $P10."pos"()
-  alt520_end:
-  # rx rxquantr529 ** 0..1
-    set_addr $I534, rxquantr529_done
-    rx517_cur."!mark_push"(0, rx517_pos, $I534)
-  rxquantr529_loop:
+    rx525_pos = $P10."pos"()
+  alt528_end:
+  # rx rxquantr537 ** 0..1
+    set_addr $I542, rxquantr537_done
+    rx525_cur."!mark_push"(0, rx525_pos, $I542)
+  rxquantr537_loop:
   # rx charclass_q s r 0..-1
-    sub $I10, rx517_pos, rx517_off
-    find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
-    add rx517_pos, rx517_off, $I11
+    sub $I10, rx525_pos, rx525_off
+    find_not_cclass $I11, 32, rx525_tgt, $I10, rx525_eos
+    add rx525_pos, rx525_off, $I11
   # rx literal  ".."
-    add $I11, rx517_pos, 2
-    gt $I11, rx517_eos, rx517_fail
-    sub $I11, rx517_pos, rx517_off
-    substr $S10, rx517_tgt, $I11, 2
-    ne $S10, "..", rx517_fail
-    add rx517_pos, 2
+    add $I11, rx525_pos, 2
+    gt $I11, rx525_eos, rx525_fail
+    sub $I11, rx525_pos, rx525_off
+    substr $S10, rx525_tgt, $I11, 2
+    ne $S10, "..", rx525_fail
+    add rx525_pos, 2
   # rx charclass_q s r 0..-1
-    sub $I10, rx517_pos, rx517_off
-    find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
-    add rx517_pos, rx517_off, $I11
-  # rx subrule $P531 subtype=capture negate=
-    rx517_cur."!cursor_pos"(rx517_pos)
-    .const 'Sub' $P531 = "146_1275811476.7961" 
-    capture_lex $P531
-    $P10 = rx517_cur.$P531()
-    unless $P10, rx517_fail
-    rx517_cur."!mark_push"(0, -1, 0, $P10)
+    sub $I10, rx525_pos, rx525_off
+    find_not_cclass $I11, 32, rx525_tgt, $I10, rx525_eos
+    add rx525_pos, rx525_off, $I11
+  # rx subrule $P539 subtype=capture negate=
+    rx525_cur."!cursor_pos"(rx525_pos)
+    .const 'Sub' $P539 = "148_1277356887.58177" 
+    capture_lex $P539
+    $P10 = rx525_cur.$P539()
+    unless $P10, rx525_fail
+    rx525_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("1")
-    rx517_pos = $P10."pos"()
-    (rx517_rep) = rx517_cur."!mark_commit"($I534)
-  rxquantr529_done:
-  alt519_end:
-.annotate 'line', 164
+    rx525_pos = $P10."pos"()
+    (rx525_rep) = rx525_cur."!mark_commit"($I542)
+  rxquantr537_done:
+  alt527_end:
+.annotate 'line', 166
   # rx pass
-    rx517_cur."!cursor_pass"(rx517_pos, "")
-    rx517_cur."!cursor_debug"("PASS  ", "", " at pos=", rx517_pos)
-    .return (rx517_cur)
-  rx517_fail:
-    (rx517_rep, rx517_pos, $I10, $P10) = rx517_cur."!mark_fail"(0)
-    lt rx517_pos, -1, rx517_done
-    eq rx517_pos, -1, rx517_fail
+    rx525_cur."!cursor_pass"(rx525_pos, "")
+    rx525_cur."!cursor_debug"("PASS  ", "", " at pos=", rx525_pos)
+    .return (rx525_cur)
+  rx525_fail:
+    (rx525_rep, rx525_pos, $I10, $P10) = rx525_cur."!mark_fail"(0)
+    lt rx525_pos, -1, rx525_done
+    eq rx525_pos, -1, rx525_fail
     jump $I10
-  rx517_done:
-    rx517_cur."!cursor_fail"()
-    rx517_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx517_cur)
+  rx525_done:
+    rx525_cur."!cursor_fail"()
+    rx525_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx525_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block521"  :anon :subid("144_1275811476.7961") :method :outer("143_1275811476.7961")
-.annotate 'line', 166
-    .local string rx523_tgt
-    .local int rx523_pos
-    .local int rx523_off
-    .local int rx523_eos
-    .local int rx523_rep
-    .local pmc rx523_cur
-    (rx523_cur, rx523_pos, rx523_tgt) = self."!cursor_start"()
-    rx523_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx523_cur
-    .local pmc match
-    .lex "$/", match
-    length rx523_eos, rx523_tgt
-    gt rx523_pos, rx523_eos, rx523_done
-    set rx523_off, 0
-    lt rx523_pos, 2, rx523_start
-    sub rx523_off, rx523_pos, 1
-    substr rx523_tgt, rx523_tgt, rx523_off
-  rx523_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan524_done
-    goto rxscan524_scan
-  rxscan524_loop:
-    ($P10) = rx523_cur."from"()
-    inc $P10
-    set rx523_pos, $P10
-    ge rx523_pos, rx523_eos, rxscan524_done
-  rxscan524_scan:
-    set_addr $I10, rxscan524_loop
-    rx523_cur."!mark_push"(0, rx523_pos, $I10)
-  rxscan524_done:
+.sub "_block529"  :anon :subid("146_1277356887.58177") :method :outer("145_1277356887.58177")
+.annotate 'line', 168
+    .local string rx531_tgt
+    .local int rx531_pos
+    .local int rx531_off
+    .local int rx531_eos
+    .local int rx531_rep
+    .local pmc rx531_cur
+    (rx531_cur, rx531_pos, rx531_tgt) = self."!cursor_start"()
+    rx531_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx531_cur
+    .local pmc match
+    .lex "$/", match
+    length rx531_eos, rx531_tgt
+    gt rx531_pos, rx531_eos, rx531_done
+    set rx531_off, 0
+    lt rx531_pos, 2, rx531_start
+    sub rx531_off, rx531_pos, 1
+    substr rx531_tgt, rx531_tgt, rx531_off
+  rx531_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan532_done
+    goto rxscan532_scan
+  rxscan532_loop:
+    ($P10) = rx531_cur."from"()
+    inc $P10
+    set rx531_pos, $P10
+    ge rx531_pos, rx531_eos, rxscan532_done
+  rxscan532_scan:
+    set_addr $I10, rxscan532_loop
+    rx531_cur."!mark_push"(0, rx531_pos, $I10)
+  rxscan532_done:
   # rx charclass .
-    ge rx523_pos, rx523_eos, rx523_fail
-    inc rx523_pos
+    ge rx531_pos, rx531_eos, rx531_fail
+    inc rx531_pos
   # rx pass
-    rx523_cur."!cursor_pass"(rx523_pos, "")
-    rx523_cur."!cursor_debug"("PASS  ", "", " at pos=", rx523_pos)
-    .return (rx523_cur)
-  rx523_fail:
-    (rx523_rep, rx523_pos, $I10, $P10) = rx523_cur."!mark_fail"(0)
-    lt rx523_pos, -1, rx523_done
-    eq rx523_pos, -1, rx523_fail
+    rx531_cur."!cursor_pass"(rx531_pos, "")
+    rx531_cur."!cursor_debug"("PASS  ", "", " at pos=", rx531_pos)
+    .return (rx531_cur)
+  rx531_fail:
+    (rx531_rep, rx531_pos, $I10, $P10) = rx531_cur."!mark_fail"(0)
+    lt rx531_pos, -1, rx531_done
+    eq rx531_pos, -1, rx531_fail
     jump $I10
-  rx523_done:
-    rx523_cur."!cursor_fail"()
-    rx523_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx523_cur)
+  rx531_done:
+    rx531_cur."!cursor_fail"()
+    rx531_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx531_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525"  :anon :subid("145_1275811476.7961") :method :outer("143_1275811476.7961")
-.annotate 'line', 166
-    .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) = self."!cursor_start"()
-    rx527_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx527_cur
-    .local pmc match
-    .lex "$/", match
-    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:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan528_done
-    goto rxscan528_scan
-  rxscan528_loop:
-    ($P10) = rx527_cur."from"()
-    inc $P10
-    set rx527_pos, $P10
-    ge rx527_pos, rx527_eos, rxscan528_done
-  rxscan528_scan:
-    set_addr $I10, rxscan528_loop
-    rx527_cur."!mark_push"(0, rx527_pos, $I10)
-  rxscan528_done:
+.sub "_block533"  :anon :subid("147_1277356887.58177") :method :outer("145_1277356887.58177")
+.annotate 'line', 168
+    .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 ", "")
+    .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, rxscan536_done
+    goto rxscan536_scan
+  rxscan536_loop:
+    ($P10) = rx535_cur."from"()
+    inc $P10
+    set rx535_pos, $P10
+    ge rx535_pos, rx535_eos, rxscan536_done
+  rxscan536_scan:
+    set_addr $I10, rxscan536_loop
+    rx535_cur."!mark_push"(0, rx535_pos, $I10)
+  rxscan536_done:
   # rx enumcharlist negate=1 
-    ge rx527_pos, rx527_eos, rx527_fail
-    sub $I10, rx527_pos, rx527_off
-    substr $S10, rx527_tgt, $I10, 1
+    ge rx535_pos, rx535_eos, rx535_fail
+    sub $I10, rx535_pos, rx535_off
+    substr $S10, rx535_tgt, $I10, 1
     index $I11, "]\\", $S10
-    ge $I11, 0, rx527_fail
-    inc rx527_pos
-  # rx pass
-    rx527_cur."!cursor_pass"(rx527_pos, "")
-    rx527_cur."!cursor_debug"("PASS  ", "", " at pos=", rx527_pos)
-    .return (rx527_cur)
-  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
-  rx527_done:
-    rx527_cur."!cursor_fail"()
-    rx527_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx527_cur)
-    .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block530"  :anon :subid("146_1275811476.7961") :method :outer("143_1275811476.7961")
-.annotate 'line', 166
-    .local string rx532_tgt
-    .local int rx532_pos
-    .local int rx532_off
-    .local int rx532_eos
-    .local int rx532_rep
-    .local pmc rx532_cur
-    (rx532_cur, rx532_pos, rx532_tgt) = self."!cursor_start"()
-    rx532_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx532_cur
-    .local pmc match
-    .lex "$/", match
-    length rx532_eos, rx532_tgt
-    gt rx532_pos, rx532_eos, rx532_done
-    set rx532_off, 0
-    lt rx532_pos, 2, rx532_start
-    sub rx532_off, rx532_pos, 1
-    substr rx532_tgt, rx532_tgt, rx532_off
-  rx532_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan533_done
-    goto rxscan533_scan
-  rxscan533_loop:
-    ($P10) = rx532_cur."from"()
-    inc $P10
-    set rx532_pos, $P10
-    ge rx532_pos, rx532_eos, rxscan533_done
-  rxscan533_scan:
-    set_addr $I10, rxscan533_loop
-    rx532_cur."!mark_push"(0, rx532_pos, $I10)
-  rxscan533_done:
-  # rx charclass .
-    ge rx532_pos, rx532_eos, rx532_fail
-    inc rx532_pos
+    ge $I11, 0, rx535_fail
+    inc rx535_pos
   # rx pass
-    rx532_cur."!cursor_pass"(rx532_pos, "")
-    rx532_cur."!cursor_debug"("PASS  ", "", " at pos=", rx532_pos)
-    .return (rx532_cur)
-  rx532_fail:
-    (rx532_rep, rx532_pos, $I10, $P10) = rx532_cur."!mark_fail"(0)
-    lt rx532_pos, -1, rx532_done
-    eq rx532_pos, -1, rx532_fail
+    rx535_cur."!cursor_pass"(rx535_pos, "")
+    rx535_cur."!cursor_debug"("PASS  ", "", " at pos=", rx535_pos)
+    .return (rx535_cur)
+  rx535_fail:
+    (rx535_rep, rx535_pos, $I10, $P10) = rx535_cur."!mark_fail"(0)
+    lt rx535_pos, -1, rx535_done
+    eq rx535_pos, -1, rx535_fail
     jump $I10
-  rx532_done:
-    rx532_cur."!cursor_fail"()
-    rx532_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx532_cur)
+  rx535_done:
+    rx535_cur."!cursor_fail"()
+    rx535_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx535_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal"  :subid("147_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .const 'Sub' $P548 = "149_1275811476.7961" 
-    capture_lex $P548
+.sub "_block538"  :anon :subid("148_1277356887.58177") :method :outer("145_1277356887.58177")
+.annotate 'line', 168
     .local string rx540_tgt
     .local int rx540_pos
     .local int rx540_off
@@ -6738,8 +6760,7 @@
     .local int rx540_rep
     .local pmc rx540_cur
     (rx540_cur, rx540_pos, rx540_tgt) = self."!cursor_start"()
-    rx540_cur."!cursor_debug"("START ", "mod_internal")
-    rx540_cur."!cursor_caparray"("n")
+    rx540_cur."!cursor_debug"("START ", "")
     .lex unicode:"$\x{a2}", rx540_cur
     .local pmc match
     .lex "$/", match
@@ -6751,329 +6772,290 @@
     substr rx540_tgt, rx540_tgt, rx540_off
   rx540_start:
     $I10 = self.'from'()
-    ne $I10, -1, rxscan544_done
-    goto rxscan544_scan
-  rxscan544_loop:
+    ne $I10, -1, rxscan541_done
+    goto rxscan541_scan
+  rxscan541_loop:
     ($P10) = rx540_cur."from"()
     inc $P10
     set rx540_pos, $P10
-    ge rx540_pos, rx540_eos, rxscan544_done
-  rxscan544_scan:
-    set_addr $I10, rxscan544_loop
+    ge rx540_pos, rx540_eos, rxscan541_done
+  rxscan541_scan:
+    set_addr $I10, rxscan541_loop
     rx540_cur."!mark_push"(0, rx540_pos, $I10)
-  rxscan544_done:
-  alt545_0:
-.annotate 'line', 175
-    set_addr $I10, alt545_1
-    rx540_cur."!mark_push"(0, rx540_pos, $I10)
-.annotate 'line', 176
+  rxscan541_done:
+  # rx charclass .
+    ge rx540_pos, rx540_eos, rx540_fail
+    inc rx540_pos
+  # rx pass
+    rx540_cur."!cursor_pass"(rx540_pos, "")
+    rx540_cur."!cursor_debug"("PASS  ", "", " at pos=", rx540_pos)
+    .return (rx540_cur)
+  rx540_fail:
+    (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
+    lt rx540_pos, -1, rx540_done
+    eq rx540_pos, -1, rx540_fail
+    jump $I10
+  rx540_done:
+    rx540_cur."!cursor_fail"()
+    rx540_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx540_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_internal"  :subid("149_1277356887.58177") :method :outer("11_1277356887.58177")
+.annotate 'line', 3
+    .const 'Sub' $P556 = "151_1277356887.58177" 
+    capture_lex $P556
+    .local string rx548_tgt
+    .local int rx548_pos
+    .local int rx548_off
+    .local int rx548_eos
+    .local int rx548_rep
+    .local pmc rx548_cur
+    (rx548_cur, rx548_pos, rx548_tgt) = self."!cursor_start"()
+    rx548_cur."!cursor_debug"("START ", "mod_internal")
+    rx548_cur."!cursor_caparray"("n")
+    .lex unicode:"$\x{a2}", rx548_cur
+    .local pmc match
+    .lex "$/", match
+    length rx548_eos, rx548_tgt
+    gt rx548_pos, rx548_eos, rx548_done
+    set rx548_off, 0
+    lt rx548_pos, 2, rx548_start
+    sub rx548_off, rx548_pos, 1
+    substr rx548_tgt, rx548_tgt, rx548_off
+  rx548_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan552_done
+    goto rxscan552_scan
+  rxscan552_loop:
+    ($P10) = rx548_cur."from"()
+    inc $P10
+    set rx548_pos, $P10
+    ge rx548_pos, rx548_eos, rxscan552_done
+  rxscan552_scan:
+    set_addr $I10, rxscan552_loop
+    rx548_cur."!mark_push"(0, rx548_pos, $I10)
+  rxscan552_done:
+  alt553_0:
+.annotate 'line', 177
+    set_addr $I10, alt553_1
+    rx548_cur."!mark_push"(0, rx548_pos, $I10)
+.annotate 'line', 178
   # rx literal  ":"
-    add $I11, rx540_pos, 1
-    gt $I11, rx540_eos, rx540_fail
-    sub $I11, rx540_pos, rx540_off
-    substr $S10, rx540_tgt, $I11, 1
-    ne $S10, ":", rx540_fail
-    add rx540_pos, 1
-  # rx rxquantr546 ** 1..1
-    set_addr $I552, rxquantr546_done
-    rx540_cur."!mark_push"(0, -1, $I552)
-  rxquantr546_loop:
-  # rx subrule $P548 subtype=capture negate=
-    rx540_cur."!cursor_pos"(rx540_pos)
-    .const 'Sub' $P548 = "149_1275811476.7961" 
-    capture_lex $P548
-    $P10 = rx540_cur.$P548()
-    unless $P10, rx540_fail
-    rx540_cur."!mark_push"(0, -1, 0, $P10)
+    add $I11, rx548_pos, 1
+    gt $I11, rx548_eos, rx548_fail
+    sub $I11, rx548_pos, rx548_off
+    substr $S10, rx548_tgt, $I11, 1
+    ne $S10, ":", rx548_fail
+    add rx548_pos, 1
+  # rx rxquantr554 ** 1..1
+    set_addr $I560, rxquantr554_done
+    rx548_cur."!mark_push"(0, -1, $I560)
+  rxquantr554_loop:
+  # rx subrule $P556 subtype=capture negate=
+    rx548_cur."!cursor_pos"(rx548_pos)
+    .const 'Sub' $P556 = "151_1277356887.58177" 
+    capture_lex $P556
+    $P10 = rx548_cur.$P556()
+    unless $P10, rx548_fail
+    rx548_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("n")
-    rx540_pos = $P10."pos"()
-    (rx540_rep) = rx540_cur."!mark_commit"($I552)
-  rxquantr546_done:
+    rx548_pos = $P10."pos"()
+    (rx548_rep) = rx548_cur."!mark_commit"($I560)
+  rxquantr554_done:
   # rx subrule "mod_ident" subtype=capture negate=
-    rx540_cur."!cursor_pos"(rx540_pos)
-    $P10 = rx540_cur."mod_ident"()
-    unless $P10, rx540_fail
-    rx540_cur."!mark_push"(0, -1, 0, $P10)
+    rx548_cur."!cursor_pos"(rx548_pos)
+    $P10 = rx548_cur."mod_ident"()
+    unless $P10, rx548_fail
+    rx548_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_ident")
-    rx540_pos = $P10."pos"()
+    rx548_pos = $P10."pos"()
   # rxanchor rwb
-    le rx540_pos, 0, rx540_fail
-    sub $I10, rx540_pos, rx540_off
-    is_cclass $I11, 8192, rx540_tgt, $I10
-    if $I11, rx540_fail
+    le rx548_pos, 0, rx548_fail
+    sub $I10, rx548_pos, rx548_off
+    is_cclass $I11, 8192, rx548_tgt, $I10
+    if $I11, rx548_fail
     dec $I10
-    is_cclass $I11, 8192, rx540_tgt, $I10
-    unless $I11, rx540_fail
-    goto alt545_end
-  alt545_1:
-.annotate 'line', 177
+    is_cclass $I11, 8192, rx548_tgt, $I10
+    unless $I11, rx548_fail
+    goto alt553_end
+  alt553_1:
+.annotate 'line', 179
   # rx literal  ":"
-    add $I11, rx540_pos, 1
-    gt $I11, rx540_eos, rx540_fail
-    sub $I11, rx540_pos, rx540_off
-    substr $S10, rx540_tgt, $I11, 1
-    ne $S10, ":", rx540_fail
-    add rx540_pos, 1
+    add $I11, rx548_pos, 1
+    gt $I11, rx548_eos, rx548_fail
+    sub $I11, rx548_pos, rx548_off
+    substr $S10, rx548_tgt, $I11, 1
+    ne $S10, ":", rx548_fail
+    add rx548_pos, 1
   # rx subrule "mod_ident" subtype=capture negate=
-    rx540_cur."!cursor_pos"(rx540_pos)
-    $P10 = rx540_cur."mod_ident"()
-    unless $P10, rx540_fail
-    rx540_cur."!mark_push"(0, -1, 0, $P10)
+    rx548_cur."!cursor_pos"(rx548_pos)
+    $P10 = rx548_cur."mod_ident"()
+    unless $P10, rx548_fail
+    rx548_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("mod_ident")
-    rx540_pos = $P10."pos"()
-  # rx rxquantr553 ** 0..1
-    set_addr $I555, rxquantr553_done
-    rx540_cur."!mark_push"(0, rx540_pos, $I555)
-  rxquantr553_loop:
+    rx548_pos = $P10."pos"()
+  # rx rxquantr561 ** 0..1
+    set_addr $I563, rxquantr561_done
+    rx548_cur."!mark_push"(0, rx548_pos, $I563)
+  rxquantr561_loop:
   # rx literal  "("
-    add $I11, rx540_pos, 1
-    gt $I11, rx540_eos, rx540_fail
-    sub $I11, rx540_pos, rx540_off
-    substr $S10, rx540_tgt, $I11, 1
-    ne $S10, "(", rx540_fail
-    add rx540_pos, 1
+    add $I11, rx548_pos, 1
+    gt $I11, rx548_eos, rx548_fail
+    sub $I11, rx548_pos, rx548_off
+    substr $S10, rx548_tgt, $I11, 1
+    ne $S10, "(", rx548_fail
+    add rx548_pos, 1
   # rx subcapture "n"
-    set_addr $I10, rxcap_554_fail
-    rx540_cur."!mark_push"(0, rx540_pos, $I10)
+    set_addr $I10, rxcap_562_fail
+    rx548_cur."!mark_push"(0, rx548_pos, $I10)
   # rx charclass_q d r 1..-1
-    sub $I10, rx540_pos, rx540_off
-    find_not_cclass $I11, 8, rx540_tgt, $I10, rx540_eos
+    sub $I10, rx548_pos, rx548_off
+    find_not_cclass $I11, 8, rx548_tgt, $I10, rx548_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx540_fail
-    add rx540_pos, rx540_off, $I11
-    set_addr $I10, rxcap_554_fail
-    ($I12, $I11) = rx540_cur."!mark_peek"($I10)
-    rx540_cur."!cursor_pos"($I11)
-    ($P10) = rx540_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx540_pos, "")
-    rx540_cur."!mark_push"(0, -1, 0, $P10)
+    lt $I11, $I12, rx548_fail
+    add rx548_pos, rx548_off, $I11
+    set_addr $I10, rxcap_562_fail
+    ($I12, $I11) = rx548_cur."!mark_peek"($I10)
+    rx548_cur."!cursor_pos"($I11)
+    ($P10) = rx548_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx548_pos, "")
+    rx548_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("n")
-    goto rxcap_554_done
-  rxcap_554_fail:
-    goto rx540_fail
-  rxcap_554_done:
+    goto rxcap_562_done
+  rxcap_562_fail:
+    goto rx548_fail
+  rxcap_562_done:
   # rx literal  ")"
-    add $I11, rx540_pos, 1
-    gt $I11, rx540_eos, rx540_fail
-    sub $I11, rx540_pos, rx540_off
-    substr $S10, rx540_tgt, $I11, 1
-    ne $S10, ")", rx540_fail
-    add rx540_pos, 1
-    (rx540_rep) = rx540_cur."!mark_commit"($I555)
-  rxquantr553_done:
-  alt545_end:
-.annotate 'line', 174
+    add $I11, rx548_pos, 1
+    gt $I11, rx548_eos, rx548_fail
+    sub $I11, rx548_pos, rx548_off
+    substr $S10, rx548_tgt, $I11, 1
+    ne $S10, ")", rx548_fail
+    add rx548_pos, 1
+    (rx548_rep) = rx548_cur."!mark_commit"($I563)
+  rxquantr561_done:
+  alt553_end:
+.annotate 'line', 176
   # rx pass
-    rx540_cur."!cursor_pass"(rx540_pos, "mod_internal")
-    rx540_cur."!cursor_debug"("PASS  ", "mod_internal", " at pos=", rx540_pos)
-    .return (rx540_cur)
-  rx540_fail:
-.annotate 'line', 3
-    (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
-    lt rx540_pos, -1, rx540_done
-    eq rx540_pos, -1, rx540_fail
-    jump $I10
-  rx540_done:
-    rx540_cur."!cursor_fail"()
-    rx540_cur."!cursor_debug"("FAIL  ", "mod_internal")
-    .return (rx540_cur)
+    rx548_cur."!cursor_pass"(rx548_pos, "mod_internal")
+    rx548_cur."!cursor_debug"("PASS  ", "mod_internal", " at pos=", rx548_pos)
+    .return (rx548_cur)
+  rx548_fail:
+.annotate 'line', 3
+    (rx548_rep, rx548_pos, $I10, $P10) = rx548_cur."!mark_fail"(0)
+    lt rx548_pos, -1, rx548_done
+    eq rx548_pos, -1, rx548_fail
+    jump $I10
+  rx548_done:
+    rx548_cur."!cursor_fail"()
+    rx548_cur."!cursor_debug"("FAIL  ", "mod_internal")
+    .return (rx548_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal"  :subid("148_1275811476.7961") :method
-.annotate 'line', 3
-    $P542 = self."!PREFIX__!subrule"("mod_ident", ":")
-    new $P543, "ResizablePMCArray"
-    push $P543, $P542
-    push $P543, ":"
-    .return ($P543)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block547"  :anon :subid("149_1275811476.7961") :method :outer("147_1275811476.7961")
-.annotate 'line', 176
-    .local string rx549_tgt
-    .local int rx549_pos
-    .local int rx549_off
-    .local int rx549_eos
-    .local int rx549_rep
-    .local pmc rx549_cur
-    (rx549_cur, rx549_pos, rx549_tgt) = self."!cursor_start"()
-    rx549_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx549_cur
-    .local pmc match
-    .lex "$/", match
-    length rx549_eos, rx549_tgt
-    gt rx549_pos, rx549_eos, rx549_done
-    set rx549_off, 0
-    lt rx549_pos, 2, rx549_start
-    sub rx549_off, rx549_pos, 1
-    substr rx549_tgt, rx549_tgt, rx549_off
-  rx549_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan550_done
-    goto rxscan550_scan
-  rxscan550_loop:
-    ($P10) = rx549_cur."from"()
-    inc $P10
-    set rx549_pos, $P10
-    ge rx549_pos, rx549_eos, rxscan550_done
-  rxscan550_scan:
-    set_addr $I10, rxscan550_loop
-    rx549_cur."!mark_push"(0, rx549_pos, $I10)
-  rxscan550_done:
-  alt551_0:
-    set_addr $I10, alt551_1
-    rx549_cur."!mark_push"(0, rx549_pos, $I10)
+.sub "!PREFIX__mod_internal"  :subid("150_1277356887.58177") :method
+.annotate 'line', 3
+    $P550 = self."!PREFIX__!subrule"("mod_ident", ":")
+    new $P551, "ResizablePMCArray"
+    push $P551, $P550
+    push $P551, ":"
+    .return ($P551)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block555"  :anon :subid("151_1277356887.58177") :method :outer("149_1277356887.58177")
+.annotate 'line', 178
+    .local string rx557_tgt
+    .local int rx557_pos
+    .local int rx557_off
+    .local int rx557_eos
+    .local int rx557_rep
+    .local pmc rx557_cur
+    (rx557_cur, rx557_pos, rx557_tgt) = self."!cursor_start"()
+    rx557_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx557_cur
+    .local pmc match
+    .lex "$/", match
+    length rx557_eos, rx557_tgt
+    gt rx557_pos, rx557_eos, rx557_done
+    set rx557_off, 0
+    lt rx557_pos, 2, rx557_start
+    sub rx557_off, rx557_pos, 1
+    substr rx557_tgt, rx557_tgt, rx557_off
+  rx557_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan558_done
+    goto rxscan558_scan
+  rxscan558_loop:
+    ($P10) = rx557_cur."from"()
+    inc $P10
+    set rx557_pos, $P10
+    ge rx557_pos, rx557_eos, rxscan558_done
+  rxscan558_scan:
+    set_addr $I10, rxscan558_loop
+    rx557_cur."!mark_push"(0, rx557_pos, $I10)
+  rxscan558_done:
+  alt559_0:
+    set_addr $I10, alt559_1
+    rx557_cur."!mark_push"(0, rx557_pos, $I10)
   # rx literal  "!"
-    add $I11, rx549_pos, 1
-    gt $I11, rx549_eos, rx549_fail
-    sub $I11, rx549_pos, rx549_off
-    substr $S10, rx549_tgt, $I11, 1
-    ne $S10, "!", rx549_fail
-    add rx549_pos, 1
-    goto alt551_end
-  alt551_1:
+    add $I11, rx557_pos, 1
+    gt $I11, rx557_eos, rx557_fail
+    sub $I11, rx557_pos, rx557_off
+    substr $S10, rx557_tgt, $I11, 1
+    ne $S10, "!", rx557_fail
+    add rx557_pos, 1
+    goto alt559_end
+  alt559_1:
   # rx charclass_q d r 1..-1
-    sub $I10, rx549_pos, rx549_off
-    find_not_cclass $I11, 8, rx549_tgt, $I10, rx549_eos
+    sub $I10, rx557_pos, rx557_off
+    find_not_cclass $I11, 8, rx557_tgt, $I10, rx557_eos
     add $I12, $I10, 1
-    lt $I11, $I12, rx549_fail
-    add rx549_pos, rx549_off, $I11
-  alt551_end:
+    lt $I11, $I12, rx557_fail
+    add rx557_pos, rx557_off, $I11
+  alt559_end:
   # rx pass
-    rx549_cur."!cursor_pass"(rx549_pos, "")
-    rx549_cur."!cursor_debug"("PASS  ", "", " at pos=", rx549_pos)
-    .return (rx549_cur)
-  rx549_fail:
-    (rx549_rep, rx549_pos, $I10, $P10) = rx549_cur."!mark_fail"(0)
-    lt rx549_pos, -1, rx549_done
-    eq rx549_pos, -1, rx549_fail
+    rx557_cur."!cursor_pass"(rx557_pos, "")
+    rx557_cur."!cursor_debug"("PASS  ", "", " at pos=", rx557_pos)
+    .return (rx557_cur)
+  rx557_fail:
+    (rx557_rep, rx557_pos, $I10, $P10) = rx557_cur."!mark_fail"(0)
+    lt rx557_pos, -1, rx557_done
+    eq rx557_pos, -1, rx557_fail
     jump $I10
-  rx549_done:
-    rx549_cur."!cursor_fail"()
-    rx549_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx549_cur)
+  rx557_done:
+    rx557_cur."!cursor_fail"()
+    rx557_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx557_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident"  :subid("150_1275811476.7961") :method
-.annotate 'line', 181
-    $P557 = self."!protoregex"("mod_ident")
-    .return ($P557)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident"  :subid("151_1275811476.7961") :method
-.annotate 'line', 181
-    $P559 = self."!PREFIX__!protoregex"("mod_ident")
-    .return ($P559)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>"  :subid("152_1275811476.7961") :method :outer("11_1275811476.7961")
-.annotate 'line', 3
-    .local string rx561_tgt
-    .local int rx561_pos
-    .local int rx561_off
-    .local int rx561_eos
-    .local int rx561_rep
-    .local pmc rx561_cur
-    (rx561_cur, rx561_pos, rx561_tgt) = self."!cursor_start"()
-    rx561_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
-    .lex unicode:"$\x{a2}", rx561_cur
-    .local pmc match
-    .lex "$/", match
-    length rx561_eos, rx561_tgt
-    gt rx561_pos, rx561_eos, rx561_done
-    set rx561_off, 0
-    lt rx561_pos, 2, rx561_start
-    sub rx561_off, rx561_pos, 1
-    substr rx561_tgt, rx561_tgt, rx561_off
-  rx561_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan564_done
-    goto rxscan564_scan
-  rxscan564_loop:
-    ($P10) = rx561_cur."from"()
-    inc $P10
-    set rx561_pos, $P10
-    ge rx561_pos, rx561_eos, rxscan564_done
-  rxscan564_scan:
-    set_addr $I10, rxscan564_loop
-    rx561_cur."!mark_push"(0, rx561_pos, $I10)
-  rxscan564_done:
-.annotate 'line', 182
-  # rx subcapture "sym"
-    set_addr $I10, rxcap_565_fail
-    rx561_cur."!mark_push"(0, rx561_pos, $I10)
-  # rx literal  "i"
-    add $I11, rx561_pos, 1
-    gt $I11, rx561_eos, rx561_fail
-    sub $I11, rx561_pos, rx561_off
-    substr $S10, rx561_tgt, $I11, 1
-    ne $S10, "i", rx561_fail
-    add rx561_pos, 1
-    set_addr $I10, rxcap_565_fail
-    ($I12, $I11) = rx561_cur."!mark_peek"($I10)
-    rx561_cur."!cursor_pos"($I11)
-    ($P10) = rx561_cur."!cursor_start"()
-    $P10."!cursor_pass"(rx561_pos, "")
-    rx561_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("sym")
-    goto rxcap_565_done
-  rxcap_565_fail:
-    goto rx561_fail
-  rxcap_565_done:
-  # rx rxquantr566 ** 0..1
-    set_addr $I567, rxquantr566_done
-    rx561_cur."!mark_push"(0, rx561_pos, $I567)
-  rxquantr566_loop:
-  # rx literal  "gnorecase"
-    add $I11, rx561_pos, 9
-    gt $I11, rx561_eos, rx561_fail
-    sub $I11, rx561_pos, rx561_off
-    substr $S10, rx561_tgt, $I11, 9
-    ne $S10, "gnorecase", rx561_fail
-    add rx561_pos, 9
-    (rx561_rep) = rx561_cur."!mark_commit"($I567)
-  rxquantr566_done:
-  # rx pass
-    rx561_cur."!cursor_pass"(rx561_pos, "mod_ident:sym<ignorecase>")
-    rx561_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ignorecase>", " at pos=", rx561_pos)
-    .return (rx561_cur)
-  rx561_fail:
-.annotate 'line', 3
-    (rx561_rep, rx561_pos, $I10, $P10) = rx561_cur."!mark_fail"(0)
-    lt rx561_pos, -1, rx561_done
-    eq rx561_pos, -1, rx561_fail
-    jump $I10
-  rx561_done:
-    rx561_cur."!cursor_fail"()
-    rx561_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ignorecase>")
-    .return (rx561_cur)
-    .return ()
+.sub "mod_ident"  :subid("152_1277356887.58177") :method
+.annotate 'line', 183
+    $P565 = self."!protoregex"("mod_ident")
+    .return ($P565)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("153_1275811476.7961") :method
-.annotate 'line', 3
-    new $P563, "ResizablePMCArray"
-    push $P563, "i"
-    .return ($P563)
+.sub "!PREFIX__mod_ident"  :subid("153_1277356887.58177") :method
+.annotate 'line', 183
+    $P567 = self."!PREFIX__!protoregex"("mod_ident")
+    .return ($P567)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>"  :subid("154_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "mod_ident:sym<ignorecase>"  :subid("154_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
     .local string rx569_tgt
     .local int rx569_pos
@@ -7082,7 +7064,7 @@
     .local int rx569_rep
     .local pmc rx569_cur
     (rx569_cur, rx569_pos, rx569_tgt) = self."!cursor_start"()
-    rx569_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
+    rx569_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
     .lex unicode:"$\x{a2}", rx569_cur
     .local pmc match
     .lex "$/", match
@@ -7105,16 +7087,16 @@
     set_addr $I10, rxscan572_loop
     rx569_cur."!mark_push"(0, rx569_pos, $I10)
   rxscan572_done:
-.annotate 'line', 183
+.annotate 'line', 184
   # rx subcapture "sym"
     set_addr $I10, rxcap_573_fail
     rx569_cur."!mark_push"(0, rx569_pos, $I10)
-  # rx literal  "r"
+  # rx literal  "i"
     add $I11, rx569_pos, 1
     gt $I11, rx569_eos, rx569_fail
     sub $I11, rx569_pos, rx569_off
     substr $S10, rx569_tgt, $I11, 1
-    ne $S10, "r", rx569_fail
+    ne $S10, "i", rx569_fail
     add rx569_pos, 1
     set_addr $I10, rxcap_573_fail
     ($I12, $I11) = rx569_cur."!mark_peek"($I10)
@@ -7131,18 +7113,18 @@
     set_addr $I575, rxquantr574_done
     rx569_cur."!mark_push"(0, rx569_pos, $I575)
   rxquantr574_loop:
-  # rx literal  "atchet"
-    add $I11, rx569_pos, 6
+  # rx literal  "gnorecase"
+    add $I11, rx569_pos, 9
     gt $I11, rx569_eos, rx569_fail
     sub $I11, rx569_pos, rx569_off
-    substr $S10, rx569_tgt, $I11, 6
-    ne $S10, "atchet", rx569_fail
-    add rx569_pos, 6
+    substr $S10, rx569_tgt, $I11, 9
+    ne $S10, "gnorecase", rx569_fail
+    add rx569_pos, 9
     (rx569_rep) = rx569_cur."!mark_commit"($I575)
   rxquantr574_done:
   # rx pass
-    rx569_cur."!cursor_pass"(rx569_pos, "mod_ident:sym<ratchet>")
-    rx569_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ratchet>", " at pos=", rx569_pos)
+    rx569_cur."!cursor_pass"(rx569_pos, "mod_ident:sym<ignorecase>")
+    rx569_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ignorecase>", " at pos=", rx569_pos)
     .return (rx569_cur)
   rx569_fail:
 .annotate 'line', 3
@@ -7152,23 +7134,23 @@
     jump $I10
   rx569_done:
     rx569_cur."!cursor_fail"()
-    rx569_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ratchet>")
+    rx569_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ignorecase>")
     .return (rx569_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("155_1275811476.7961") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("155_1277356887.58177") :method
 .annotate 'line', 3
     new $P571, "ResizablePMCArray"
-    push $P571, "r"
+    push $P571, "i"
     .return ($P571)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>"  :subid("156_1275811476.7961") :method :outer("11_1275811476.7961")
+.sub "mod_ident:sym<ratchet>"  :subid("156_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
     .local string rx577_tgt
     .local int rx577_pos
@@ -7177,7 +7159,7 @@
     .local int rx577_rep
     .local pmc rx577_cur
     (rx577_cur, rx577_pos, rx577_tgt) = self."!cursor_start"()
-    rx577_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
+    rx577_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
     .lex unicode:"$\x{a2}", rx577_cur
     .local pmc match
     .lex "$/", match
@@ -7200,16 +7182,16 @@
     set_addr $I10, rxscan580_loop
     rx577_cur."!mark_push"(0, rx577_pos, $I10)
   rxscan580_done:
-.annotate 'line', 184
+.annotate 'line', 185
   # rx subcapture "sym"
     set_addr $I10, rxcap_581_fail
     rx577_cur."!mark_push"(0, rx577_pos, $I10)
-  # rx literal  "s"
+  # rx literal  "r"
     add $I11, rx577_pos, 1
     gt $I11, rx577_eos, rx577_fail
     sub $I11, rx577_pos, rx577_off
     substr $S10, rx577_tgt, $I11, 1
-    ne $S10, "s", rx577_fail
+    ne $S10, "r", rx577_fail
     add rx577_pos, 1
     set_addr $I10, rxcap_581_fail
     ($I12, $I11) = rx577_cur."!mark_peek"($I10)
@@ -7226,18 +7208,18 @@
     set_addr $I583, rxquantr582_done
     rx577_cur."!mark_push"(0, rx577_pos, $I583)
   rxquantr582_loop:
-  # rx literal  "igspace"
-    add $I11, rx577_pos, 7
+  # rx literal  "atchet"
+    add $I11, rx577_pos, 6
     gt $I11, rx577_eos, rx577_fail
     sub $I11, rx577_pos, rx577_off
-    substr $S10, rx577_tgt, $I11, 7
-    ne $S10, "igspace", rx577_fail
-    add rx577_pos, 7
+    substr $S10, rx577_tgt, $I11, 6
+    ne $S10, "atchet", rx577_fail
+    add rx577_pos, 6
     (rx577_rep) = rx577_cur."!mark_commit"($I583)
   rxquantr582_done:
   # rx pass
-    rx577_cur."!cursor_pass"(rx577_pos, "mod_ident:sym<sigspace>")
-    rx577_cur."!cursor_debug"("PASS  ", "mod_ident:sym<sigspace>", " at pos=", rx577_pos)
+    rx577_cur."!cursor_pass"(rx577_pos, "mod_ident:sym<ratchet>")
+    rx577_cur."!cursor_debug"("PASS  ", "mod_ident:sym<ratchet>", " at pos=", rx577_pos)
     .return (rx577_cur)
   rx577_fail:
 .annotate 'line', 3
@@ -7247,42 +7229,137 @@
     jump $I10
   rx577_done:
     rx577_cur."!cursor_fail"()
-    rx577_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<sigspace>")
+    rx577_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<ratchet>")
     .return (rx577_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("157_1275811476.7961") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("157_1277356887.58177") :method
 .annotate 'line', 3
     new $P579, "ResizablePMCArray"
-    push $P579, "s"
+    push $P579, "r"
     .return ($P579)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block584" :load :anon :subid("158_1275811476.7961")
+.sub "mod_ident:sym<sigspace>"  :subid("158_1277356887.58177") :method :outer("11_1277356887.58177")
 .annotate 'line', 3
-    .const 'Sub' $P586 = "11_1275811476.7961" 
-    $P587 = $P586()
+    .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) = self."!cursor_start"()
+    rx585_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
+    .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:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan588_done
+    goto rxscan588_scan
+  rxscan588_loop:
+    ($P10) = rx585_cur."from"()
+    inc $P10
+    set rx585_pos, $P10
+    ge rx585_pos, rx585_eos, rxscan588_done
+  rxscan588_scan:
+    set_addr $I10, rxscan588_loop
+    rx585_cur."!mark_push"(0, rx585_pos, $I10)
+  rxscan588_done:
+.annotate 'line', 186
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_589_fail
+    rx585_cur."!mark_push"(0, rx585_pos, $I10)
+  # rx literal  "s"
+    add $I11, rx585_pos, 1
+    gt $I11, rx585_eos, rx585_fail
+    sub $I11, rx585_pos, rx585_off
+    substr $S10, rx585_tgt, $I11, 1
+    ne $S10, "s", rx585_fail
+    add rx585_pos, 1
+    set_addr $I10, rxcap_589_fail
+    ($I12, $I11) = rx585_cur."!mark_peek"($I10)
+    rx585_cur."!cursor_pos"($I11)
+    ($P10) = rx585_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx585_pos, "")
+    rx585_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("sym")
+    goto rxcap_589_done
+  rxcap_589_fail:
+    goto rx585_fail
+  rxcap_589_done:
+  # rx rxquantr590 ** 0..1
+    set_addr $I591, rxquantr590_done
+    rx585_cur."!mark_push"(0, rx585_pos, $I591)
+  rxquantr590_loop:
+  # rx literal  "igspace"
+    add $I11, rx585_pos, 7
+    gt $I11, rx585_eos, rx585_fail
+    sub $I11, rx585_pos, rx585_off
+    substr $S10, rx585_tgt, $I11, 7
+    ne $S10, "igspace", rx585_fail
+    add rx585_pos, 7
+    (rx585_rep) = rx585_cur."!mark_commit"($I591)
+  rxquantr590_done:
+  # rx pass
+    rx585_cur."!cursor_pass"(rx585_pos, "mod_ident:sym<sigspace>")
+    rx585_cur."!cursor_debug"("PASS  ", "mod_ident:sym<sigspace>", " at pos=", rx585_pos)
+    .return (rx585_cur)
+  rx585_fail:
+.annotate 'line', 3
+    (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
+  rx585_done:
+    rx585_cur."!cursor_fail"()
+    rx585_cur."!cursor_debug"("FAIL  ", "mod_ident:sym<sigspace>")
+    .return (rx585_cur)
+    .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("159_1277356887.58177") :method
+.annotate 'line', 3
+    new $P587, "ResizablePMCArray"
+    push $P587, "s"
     .return ($P587)
 .end
 
 
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "_block592" :load :anon :subid("160_1277356887.58177")
+.annotate 'line', 3
+    .const 'Sub' $P594 = "11_1277356887.58177" 
+    $P595 = $P594()
+    .return ($P595)
+.end
+
+
 .namespace []
-.sub "_block589" :load :anon :subid("159_1275811476.7961")
+.sub "_block597" :load :anon :subid("161_1277356887.58177")
 .annotate 'line', 1
-    .const 'Sub' $P591 = "10_1275811476.7961" 
-    $P592 = $P591()
-    .return ($P592)
+    .const 'Sub' $P599 = "10_1277356887.58177" 
+    $P600 = $P599()
+    .return ($P600)
 .end
 
 ### .include 'gen/p6regex-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1275811482.3686")
+.sub "_block11"  :anon :subid("10_1277356890.79584")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
@@ -7299,15 +7376,15 @@
     $P1599 = $P14()
 .annotate 'line', 1
     .return ($P1599)
-    .const 'Sub' $P1601 = "91_1275811482.3686" 
+    .const 'Sub' $P1601 = "91_1277356890.79584" 
     .return ($P1601)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post92") :outer("10_1275811482.3686")
+.sub "" :load :init :subid("post92") :outer("10_1277356890.79584")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1275811482.3686" 
+    .const 'Sub' $P12 = "10_1277356890.79584" 
     .local pmc block
     set block, $P12
     $P1604 = get_root_global ["parrot"], "P6metaclass"
@@ -7316,115 +7393,115 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13"  :subid("11_1275811482.3686") :outer("10_1275811482.3686")
+.sub "_block13"  :subid("11_1277356890.79584") :outer("10_1277356890.79584")
 .annotate 'line', 4
-    .const 'Sub' $P1561 = "89_1275811482.3686" 
+    .const 'Sub' $P1561 = "89_1277356890.79584" 
     capture_lex $P1561
-    .const 'Sub' $P1492 = "85_1275811482.3686" 
+    .const 'Sub' $P1492 = "85_1277356890.79584" 
     capture_lex $P1492
-    .const 'Sub' $P1424 = "83_1275811482.3686" 
+    .const 'Sub' $P1424 = "83_1277356890.79584" 
     capture_lex $P1424
-    .const 'Sub' $P1351 = "80_1275811482.3686" 
+    .const 'Sub' $P1351 = "80_1277356890.79584" 
     capture_lex $P1351
-    .const 'Sub' $P1337 = "79_1275811482.3686" 
+    .const 'Sub' $P1337 = "79_1277356890.79584" 
     capture_lex $P1337
-    .const 'Sub' $P1313 = "78_1275811482.3686" 
+    .const 'Sub' $P1313 = "78_1277356890.79584" 
     capture_lex $P1313
-    .const 'Sub' $P1295 = "77_1275811482.3686" 
+    .const 'Sub' $P1295 = "77_1277356890.79584" 
     capture_lex $P1295
-    .const 'Sub' $P1281 = "76_1275811482.3686" 
+    .const 'Sub' $P1281 = "76_1277356890.79584" 
     capture_lex $P1281
-    .const 'Sub' $P1268 = "75_1275811482.3686" 
+    .const 'Sub' $P1268 = "75_1277356890.79584" 
     capture_lex $P1268
-    .const 'Sub' $P1237 = "74_1275811482.3686" 
+    .const 'Sub' $P1237 = "74_1277356890.79584" 
     capture_lex $P1237
-    .const 'Sub' $P1206 = "73_1275811482.3686" 
+    .const 'Sub' $P1206 = "73_1277356890.79584" 
     capture_lex $P1206
-    .const 'Sub' $P1190 = "72_1275811482.3686" 
+    .const 'Sub' $P1190 = "72_1277356890.79584" 
     capture_lex $P1190
-    .const 'Sub' $P1174 = "71_1275811482.3686" 
+    .const 'Sub' $P1174 = "71_1277356890.79584" 
     capture_lex $P1174
-    .const 'Sub' $P1158 = "70_1275811482.3686" 
+    .const 'Sub' $P1158 = "70_1277356890.79584" 
     capture_lex $P1158
-    .const 'Sub' $P1142 = "69_1275811482.3686" 
+    .const 'Sub' $P1142 = "69_1277356890.79584" 
     capture_lex $P1142
-    .const 'Sub' $P1126 = "68_1275811482.3686" 
+    .const 'Sub' $P1126 = "68_1277356890.79584" 
     capture_lex $P1126
-    .const 'Sub' $P1110 = "67_1275811482.3686" 
+    .const 'Sub' $P1110 = "67_1277356890.79584" 
     capture_lex $P1110
-    .const 'Sub' $P1094 = "66_1275811482.3686" 
+    .const 'Sub' $P1094 = "66_1277356890.79584" 
     capture_lex $P1094
-    .const 'Sub' $P1070 = "65_1275811482.3686" 
+    .const 'Sub' $P1070 = "65_1277356890.79584" 
     capture_lex $P1070
-    .const 'Sub' $P1055 = "64_1275811482.3686" 
+    .const 'Sub' $P1055 = "64_1277356890.79584" 
     capture_lex $P1055
-    .const 'Sub' $P999 = "63_1275811482.3686" 
+    .const 'Sub' $P999 = "63_1277356890.79584" 
     capture_lex $P999
-    .const 'Sub' $P978 = "62_1275811482.3686" 
+    .const 'Sub' $P978 = "62_1277356890.79584" 
     capture_lex $P978
-    .const 'Sub' $P956 = "61_1275811482.3686" 
+    .const 'Sub' $P956 = "61_1277356890.79584" 
     capture_lex $P956
-    .const 'Sub' $P946 = "60_1275811482.3686" 
+    .const 'Sub' $P946 = "60_1277356890.79584" 
     capture_lex $P946
-    .const 'Sub' $P936 = "59_1275811482.3686" 
+    .const 'Sub' $P936 = "59_1277356890.79584" 
     capture_lex $P936
-    .const 'Sub' $P926 = "58_1275811482.3686" 
+    .const 'Sub' $P926 = "58_1277356890.79584" 
     capture_lex $P926
-    .const 'Sub' $P914 = "57_1275811482.3686" 
+    .const 'Sub' $P914 = "57_1277356890.79584" 
     capture_lex $P914
-    .const 'Sub' $P902 = "56_1275811482.3686" 
+    .const 'Sub' $P902 = "56_1277356890.79584" 
     capture_lex $P902
-    .const 'Sub' $P890 = "55_1275811482.3686" 
+    .const 'Sub' $P890 = "55_1277356890.79584" 
     capture_lex $P890
-    .const 'Sub' $P878 = "54_1275811482.3686" 
+    .const 'Sub' $P878 = "54_1277356890.79584" 
     capture_lex $P878
-    .const 'Sub' $P866 = "53_1275811482.3686" 
+    .const 'Sub' $P866 = "53_1277356890.79584" 
     capture_lex $P866
-    .const 'Sub' $P854 = "52_1275811482.3686" 
+    .const 'Sub' $P854 = "52_1277356890.79584" 
     capture_lex $P854
-    .const 'Sub' $P842 = "51_1275811482.3686" 
+    .const 'Sub' $P842 = "51_1277356890.79584" 
     capture_lex $P842
-    .const 'Sub' $P830 = "50_1275811482.3686" 
+    .const 'Sub' $P830 = "50_1277356890.79584" 
     capture_lex $P830
-    .const 'Sub' $P807 = "49_1275811482.3686" 
+    .const 'Sub' $P807 = "49_1277356890.79584" 
     capture_lex $P807
-    .const 'Sub' $P784 = "48_1275811482.3686" 
+    .const 'Sub' $P784 = "48_1277356890.79584" 
     capture_lex $P784
-    .const 'Sub' $P766 = "47_1275811482.3686" 
+    .const 'Sub' $P766 = "47_1277356890.79584" 
     capture_lex $P766
-    .const 'Sub' $P756 = "46_1275811482.3686" 
+    .const 'Sub' $P756 = "46_1277356890.79584" 
     capture_lex $P756
-    .const 'Sub' $P738 = "45_1275811482.3686" 
+    .const 'Sub' $P738 = "45_1277356890.79584" 
     capture_lex $P738
-    .const 'Sub' $P665 = "43_1275811482.3686" 
+    .const 'Sub' $P665 = "43_1277356890.79584" 
     capture_lex $P665
-    .const 'Sub' $P648 = "42_1275811482.3686" 
+    .const 'Sub' $P648 = "42_1277356890.79584" 
     capture_lex $P648
-    .const 'Sub' $P633 = "41_1275811482.3686" 
+    .const 'Sub' $P633 = "41_1277356890.79584" 
     capture_lex $P633
-    .const 'Sub' $P618 = "40_1275811482.3686" 
+    .const 'Sub' $P618 = "40_1277356890.79584" 
     capture_lex $P618
-    .const 'Sub' $P592 = "39_1275811482.3686" 
+    .const 'Sub' $P592 = "39_1277356890.79584" 
     capture_lex $P592
-    .const 'Sub' $P541 = "37_1275811482.3686" 
+    .const 'Sub' $P541 = "37_1277356890.79584" 
     capture_lex $P541
-    .const 'Sub' $P473 = "35_1275811482.3686" 
+    .const 'Sub' $P473 = "35_1277356890.79584" 
     capture_lex $P473
-    .const 'Sub' $P418 = "32_1275811482.3686" 
+    .const 'Sub' $P418 = "32_1277356890.79584" 
     capture_lex $P418
-    .const 'Sub' $P403 = "31_1275811482.3686" 
+    .const 'Sub' $P403 = "31_1277356890.79584" 
     capture_lex $P403
-    .const 'Sub' $P377 = "29_1275811482.3686" 
+    .const 'Sub' $P377 = "29_1277356890.79584" 
     capture_lex $P377
-    .const 'Sub' $P360 = "28_1275811482.3686" 
+    .const 'Sub' $P360 = "28_1277356890.79584" 
     capture_lex $P360
-    .const 'Sub' $P338 = "27_1275811482.3686" 
+    .const 'Sub' $P338 = "27_1277356890.79584" 
     capture_lex $P338
-    .const 'Sub' $P305 = "26_1275811482.3686" 
+    .const 'Sub' $P305 = "26_1277356890.79584" 
     capture_lex $P305
-    .const 'Sub' $P50 = "13_1275811482.3686" 
+    .const 'Sub' $P50 = "13_1277356890.79584" 
     capture_lex $P50
-    .const 'Sub' $P16 = "12_1275811482.3686" 
+    .const 'Sub' $P16 = "12_1277356890.79584" 
     capture_lex $P16
     get_global $P15, "@MODIFIERS"
     unless_null $P15, vivify_94
@@ -7432,19 +7509,19 @@
     set_global "@MODIFIERS", $P15
   vivify_94:
 .annotate 'line', 494
-    .const 'Sub' $P16 = "12_1275811482.3686" 
+    .const 'Sub' $P16 = "12_1277356890.79584" 
     newclosure $P49, $P16
     .lex "buildsub", $P49
 .annotate 'line', 511
-    .const 'Sub' $P50 = "13_1275811482.3686" 
+    .const 'Sub' $P50 = "13_1277356890.79584" 
     newclosure $P304, $P50
     .lex "capnames", $P304
 .annotate 'line', 577
-    .const 'Sub' $P305 = "26_1275811482.3686" 
+    .const 'Sub' $P305 = "26_1277356890.79584" 
     newclosure $P337, $P305
     .lex "backmod", $P337
 .annotate 'line', 584
-    .const 'Sub' $P338 = "27_1275811482.3686" 
+    .const 'Sub' $P338 = "27_1277356890.79584" 
     newclosure $P358, $P338
     .lex "subrule_alias", $P358
 .annotate 'line', 4
@@ -7462,13 +7539,13 @@
     find_lex $P1593, "subrule_alias"
 .annotate 'line', 4
     .return ($P1593)
-    .const 'Sub' $P1595 = "90_1275811482.3686" 
+    .const 'Sub' $P1595 = "90_1277356890.79584" 
     .return ($P1595)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post93") :outer("11_1275811482.3686")
+.sub "" :load :init :subid("post93") :outer("11_1277356890.79584")
 .annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     .local pmc block
@@ -7485,7 +7562,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "buildsub"  :subid("12_1275811482.3686") :outer("11_1275811482.3686")
+.sub "buildsub"  :subid("12_1277356890.79584") :outer("11_1277356890.79584")
     .param pmc param_19
     .param pmc param_20 :optional
     .param int has_param_20 :opt_flag
@@ -7563,19 +7640,19 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "capnames"  :subid("13_1275811482.3686") :outer("11_1275811482.3686")
+.sub "capnames"  :subid("13_1277356890.79584") :outer("11_1277356890.79584")
     .param pmc param_53
     .param pmc param_54
 .annotate 'line', 511
-    .const 'Sub' $P279 = "24_1275811482.3686" 
+    .const 'Sub' $P279 = "24_1277356890.79584" 
     capture_lex $P279
-    .const 'Sub' $P216 = "21_1275811482.3686" 
+    .const 'Sub' $P216 = "21_1277356890.79584" 
     capture_lex $P216
-    .const 'Sub' $P174 = "19_1275811482.3686" 
+    .const 'Sub' $P174 = "19_1277356890.79584" 
     capture_lex $P174
-    .const 'Sub' $P132 = "17_1275811482.3686" 
+    .const 'Sub' $P132 = "17_1277356890.79584" 
     capture_lex $P132
-    .const 'Sub' $P65 = "14_1275811482.3686" 
+    .const 'Sub' $P65 = "14_1277356890.79584" 
     capture_lex $P65
     new $P52, 'ExceptionHandler'
     set_addr $P52, control_51
@@ -7631,21 +7708,21 @@
     set $S276, $P275
     iseq $I277, $S276, "quant"
     unless $I277, if_274_end
-    .const 'Sub' $P279 = "24_1275811482.3686" 
+    .const 'Sub' $P279 = "24_1277356890.79584" 
     capture_lex $P279
     $P279()
   if_274_end:
     goto if_211_end
   if_211:
 .annotate 'line', 549
-    .const 'Sub' $P216 = "21_1275811482.3686" 
+    .const 'Sub' $P216 = "21_1277356890.79584" 
     capture_lex $P216
     $P216()
   if_211_end:
     goto if_164_end
   if_164:
 .annotate 'line', 536
-    .const 'Sub' $P174 = "19_1275811482.3686" 
+    .const 'Sub' $P174 = "19_1277356890.79584" 
     capture_lex $P174
     $P174()
   if_164_end:
@@ -7665,7 +7742,7 @@
     unless $P126, loop161_done
     shift $P130, $P126
   loop161_redo:
-    .const 'Sub' $P132 = "17_1275811482.3686" 
+    .const 'Sub' $P132 = "17_1277356890.79584" 
     capture_lex $P132
     $P132($P130)
   loop161_next:
@@ -7684,7 +7761,7 @@
     goto if_60_end
   if_60:
 .annotate 'line', 514
-    .const 'Sub' $P65 = "14_1275811482.3686" 
+    .const 'Sub' $P65 = "14_1277356890.79584" 
     capture_lex $P65
     $P65()
   if_60_end:
@@ -7709,9 +7786,9 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block278"  :anon :subid("24_1275811482.3686") :outer("13_1275811482.3686")
+.sub "_block278"  :anon :subid("24_1277356890.79584") :outer("13_1277356890.79584")
 .annotate 'line', 566
-    .const 'Sub' $P290 = "25_1275811482.3686" 
+    .const 'Sub' $P290 = "25_1277356890.79584" 
     capture_lex $P290
 .annotate 'line', 567
     $P280 = root_new ['parrot';'Hash']
@@ -7740,7 +7817,7 @@
     unless $P285, loop295_done
     shift $P288, $P285
   loop295_redo:
-    .const 'Sub' $P290 = "25_1275811482.3686" 
+    .const 'Sub' $P290 = "25_1277356890.79584" 
     capture_lex $P290
     $P290($P288)
   loop295_next:
@@ -7770,7 +7847,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block289"  :anon :subid("25_1275811482.3686") :outer("24_1275811482.3686")
+.sub "_block289"  :anon :subid("25_1277356890.79584") :outer("24_1277356890.79584")
     .param pmc param_291
 .annotate 'line', 568
     .lex "$_", param_291
@@ -7791,11 +7868,11 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block215"  :anon :subid("21_1275811482.3686") :outer("13_1275811482.3686")
+.sub "_block215"  :anon :subid("21_1277356890.79584") :outer("13_1277356890.79584")
 .annotate 'line', 549
-    .const 'Sub' $P256 = "23_1275811482.3686" 
+    .const 'Sub' $P256 = "23_1277356890.79584" 
     capture_lex $P256
-    .const 'Sub' $P228 = "22_1275811482.3686" 
+    .const 'Sub' $P228 = "22_1277356890.79584" 
     capture_lex $P228
 .annotate 'line', 550
     new $P217, "Undef"
@@ -7830,7 +7907,7 @@
     unless $P223, loop244_done
     shift $P226, $P223
   loop244_redo:
-    .const 'Sub' $P228 = "22_1275811482.3686" 
+    .const 'Sub' $P228 = "22_1277356890.79584" 
     capture_lex $P228
     $P228($P226)
   loop244_next:
@@ -7869,7 +7946,7 @@
     unless $P251, loop269_done
     shift $P254, $P251
   loop269_redo:
-    .const 'Sub' $P256 = "23_1275811482.3686" 
+    .const 'Sub' $P256 = "23_1277356890.79584" 
     capture_lex $P256
     $P256($P254)
   loop269_next:
@@ -7899,7 +7976,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block227"  :anon :subid("22_1275811482.3686") :outer("21_1275811482.3686")
+.sub "_block227"  :anon :subid("22_1277356890.79584") :outer("21_1277356890.79584")
     .param pmc param_229
 .annotate 'line', 556
     .lex "$_", param_229
@@ -7939,7 +8016,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block255"  :anon :subid("23_1275811482.3686") :outer("21_1275811482.3686")
+.sub "_block255"  :anon :subid("23_1277356890.79584") :outer("21_1277356890.79584")
     .param pmc param_257
 .annotate 'line', 561
     .lex "$_", param_257
@@ -7980,9 +8057,9 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block173"  :anon :subid("19_1275811482.3686") :outer("13_1275811482.3686")
+.sub "_block173"  :anon :subid("19_1277356890.79584") :outer("13_1277356890.79584")
 .annotate 'line', 536
-    .const 'Sub' $P192 = "20_1275811482.3686" 
+    .const 'Sub' $P192 = "20_1277356890.79584" 
     capture_lex $P192
 .annotate 'line', 537
     new $P175, "Undef"
@@ -8025,7 +8102,7 @@
     unless $P187, loop208_done
     shift $P190, $P187
   loop208_redo:
-    .const 'Sub' $P192 = "20_1275811482.3686" 
+    .const 'Sub' $P192 = "20_1277356890.79584" 
     capture_lex $P192
     $P192($P190)
   loop208_next:
@@ -8045,7 +8122,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block191"  :anon :subid("20_1275811482.3686") :outer("19_1275811482.3686")
+.sub "_block191"  :anon :subid("20_1277356890.79584") :outer("19_1277356890.79584")
     .param pmc param_193
 .annotate 'line', 544
     .lex "$_", param_193
@@ -8086,10 +8163,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block131"  :anon :subid("17_1275811482.3686") :outer("13_1275811482.3686")
+.sub "_block131"  :anon :subid("17_1277356890.79584") :outer("13_1277356890.79584")
     .param pmc param_134
 .annotate 'line', 528
-    .const 'Sub' $P143 = "18_1275811482.3686" 
+    .const 'Sub' $P143 = "18_1277356890.79584" 
     capture_lex $P143
 .annotate 'line', 529
     $P133 = root_new ['parrot';'Hash']
@@ -8112,7 +8189,7 @@
     unless $P138, loop156_done
     shift $P141, $P138
   loop156_redo:
-    .const 'Sub' $P143 = "18_1275811482.3686" 
+    .const 'Sub' $P143 = "18_1277356890.79584" 
     capture_lex $P143
     $P143($P141)
   loop156_next:
@@ -8142,7 +8219,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block142"  :anon :subid("18_1275811482.3686") :outer("17_1275811482.3686")
+.sub "_block142"  :anon :subid("18_1277356890.79584") :outer("17_1277356890.79584")
     .param pmc param_144
 .annotate 'line', 530
     .lex "$_", param_144
@@ -8183,9 +8260,9 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block64"  :anon :subid("14_1275811482.3686") :outer("13_1275811482.3686")
+.sub "_block64"  :anon :subid("14_1277356890.79584") :outer("13_1277356890.79584")
 .annotate 'line', 514
-    .const 'Sub' $P74 = "15_1275811482.3686" 
+    .const 'Sub' $P74 = "15_1277356890.79584" 
     capture_lex $P74
 .annotate 'line', 515
     new $P66, "Undef"
@@ -8206,7 +8283,7 @@
     unless $P68, loop118_done
     shift $P72, $P68
   loop118_redo:
-    .const 'Sub' $P74 = "15_1275811482.3686" 
+    .const 'Sub' $P74 = "15_1277356890.79584" 
     capture_lex $P74
     $P74($P72)
   loop118_next:
@@ -8230,10 +8307,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block73"  :anon :subid("15_1275811482.3686") :outer("14_1275811482.3686")
+.sub "_block73"  :anon :subid("15_1277356890.79584") :outer("14_1277356890.79584")
     .param pmc param_76
 .annotate 'line', 516
-    .const 'Sub' $P85 = "16_1275811482.3686" 
+    .const 'Sub' $P85 = "16_1277356890.79584" 
     capture_lex $P85
 .annotate 'line', 517
     $P75 = root_new ['parrot';'Hash']
@@ -8256,7 +8333,7 @@
     unless $P80, loop105_done
     shift $P83, $P80
   loop105_redo:
-    .const 'Sub' $P85 = "16_1275811482.3686" 
+    .const 'Sub' $P85 = "16_1277356890.79584" 
     capture_lex $P85
     $P85($P83)
   loop105_next:
@@ -8305,7 +8382,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block84"  :anon :subid("16_1275811482.3686") :outer("15_1275811482.3686")
+.sub "_block84"  :anon :subid("16_1277356890.79584") :outer("15_1277356890.79584")
     .param pmc param_86
 .annotate 'line', 518
     .lex "$_", param_86
@@ -8365,7 +8442,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backmod"  :subid("26_1275811482.3686") :outer("11_1275811482.3686")
+.sub "backmod"  :subid("26_1277356890.79584") :outer("11_1277356890.79584")
     .param pmc param_308
     .param pmc param_309
 .annotate 'line', 577
@@ -8440,7 +8517,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "subrule_alias"  :subid("27_1275811482.3686") :outer("11_1275811482.3686")
+.sub "subrule_alias"  :subid("27_1277356890.79584") :outer("11_1277356890.79584")
     .param pmc param_341
     .param pmc param_342
 .annotate 'line', 584
@@ -8485,7 +8562,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "arg"  :subid("28_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "arg"  :subid("28_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_363
 .annotate 'line', 14
     new $P362, 'ExceptionHandler'
@@ -8542,10 +8619,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("29_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "arglist"  :subid("29_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_380
 .annotate 'line', 18
-    .const 'Sub' $P390 = "30_1275811482.3686" 
+    .const 'Sub' $P390 = "30_1277356890.79584" 
     capture_lex $P390
     new $P379, 'ExceptionHandler'
     set_addr $P379, control_378
@@ -8579,7 +8656,7 @@
     unless $P384, loop396_done
     shift $P388, $P384
   loop396_redo:
-    .const 'Sub' $P390 = "30_1275811482.3686" 
+    .const 'Sub' $P390 = "30_1277356890.79584" 
     capture_lex $P390
     $P390($P388)
   loop396_next:
@@ -8608,7 +8685,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block389"  :anon :subid("30_1275811482.3686") :outer("29_1275811482.3686")
+.sub "_block389"  :anon :subid("30_1277356890.79584") :outer("29_1277356890.79584")
     .param pmc param_391
 .annotate 'line', 20
     .lex "$_", param_391
@@ -8622,7 +8699,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("31_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "TOP"  :subid("31_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_406
 .annotate 'line', 24
     new $P405, 'ExceptionHandler'
@@ -8665,14 +8742,14 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "nibbler"  :subid("32_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "nibbler"  :subid("32_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_421
     .param pmc param_422 :optional
     .param int has_param_422 :opt_flag
 .annotate 'line', 30
-    .const 'Sub' $P456 = "34_1275811482.3686" 
+    .const 'Sub' $P456 = "34_1277356890.79584" 
     capture_lex $P456
-    .const 'Sub' $P430 = "33_1275811482.3686" 
+    .const 'Sub' $P430 = "33_1277356890.79584" 
     capture_lex $P430
     new $P420, 'ExceptionHandler'
     set_addr $P420, control_419
@@ -8693,7 +8770,7 @@
     set $S427, $P426
     iseq $I428, $S427, "open"
     unless $I428, if_425_end
-    .const 'Sub' $P430 = "33_1275811482.3686" 
+    .const 'Sub' $P430 = "33_1277356890.79584" 
     capture_lex $P430
     $P430()
   if_425_end:
@@ -8756,7 +8833,7 @@
     unless $P450, loop462_done
     shift $P454, $P450
   loop462_redo:
-    .const 'Sub' $P456 = "34_1275811482.3686" 
+    .const 'Sub' $P456 = "34_1277356890.79584" 
     capture_lex $P456
     $P456($P454)
   loop462_next:
@@ -8787,7 +8864,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "_block429"  :anon :subid("33_1275811482.3686") :outer("32_1275811482.3686")
+.sub "_block429"  :anon :subid("33_1277356890.79584") :outer("32_1277356890.79584")
 .annotate 'line', 32
     $P431 = root_new ['parrot';'Hash']
     .lex "%old", $P431
@@ -8827,7 +8904,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block455"  :anon :subid("34_1275811482.3686") :outer("32_1275811482.3686")
+.sub "_block455"  :anon :subid("34_1277356890.79584") :outer("32_1277356890.79584")
     .param pmc param_457
 .annotate 'line', 45
     .lex "$_", param_457
@@ -8843,10 +8920,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("35_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "termish"  :subid("35_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_476
 .annotate 'line', 55
-    .const 'Sub' $P489 = "36_1275811482.3686" 
+    .const 'Sub' $P489 = "36_1277356890.79584" 
     capture_lex $P489
     new $P475, 'ExceptionHandler'
     set_addr $P475, control_474
@@ -8889,7 +8966,7 @@
     unless $P483, loop534_done
     shift $P487, $P483
   loop534_redo:
-    .const 'Sub' $P489 = "36_1275811482.3686" 
+    .const 'Sub' $P489 = "36_1277356890.79584" 
     capture_lex $P489
     $P489($P487)
   loop534_next:
@@ -8918,7 +8995,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block488"  :anon :subid("36_1275811482.3686") :outer("35_1275811482.3686")
+.sub "_block488"  :anon :subid("36_1277356890.79584") :outer("35_1277356890.79584")
     .param pmc param_491
 .annotate 'line', 59
     new $P490, "Undef"
@@ -9046,10 +9123,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantified_atom"  :subid("37_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "quantified_atom"  :subid("37_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_544
 .annotate 'line', 76
-    .const 'Sub' $P553 = "38_1275811482.3686" 
+    .const 'Sub' $P553 = "38_1277356890.79584" 
     capture_lex $P553
     new $P543, 'ExceptionHandler'
     set_addr $P543, control_542
@@ -9112,7 +9189,7 @@
     goto if_549_end
   if_549:
 .annotate 'line', 78
-    .const 'Sub' $P553 = "38_1275811482.3686" 
+    .const 'Sub' $P553 = "38_1277356890.79584" 
     capture_lex $P553
     $P553()
   if_549_end:
@@ -9166,7 +9243,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block552"  :anon :subid("38_1275811482.3686") :outer("37_1275811482.3686")
+.sub "_block552"  :anon :subid("38_1277356890.79584") :outer("37_1277356890.79584")
 .annotate 'line', 80
     new $P554, "Undef"
     .lex "$qast", $P554
@@ -9207,7 +9284,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "atom"  :subid("39_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "atom"  :subid("39_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_595
 .annotate 'line', 91
     new $P594, 'ExceptionHandler'
@@ -9286,7 +9363,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<*>"  :subid("40_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "quantifier:sym<*>"  :subid("40_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_621
 .annotate 'line', 101
     new $P620, 'ExceptionHandler'
@@ -9327,7 +9404,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<+>"  :subid("41_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "quantifier:sym<+>"  :subid("41_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_636
 .annotate 'line', 106
     new $P635, 'ExceptionHandler'
@@ -9368,7 +9445,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<?>"  :subid("42_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "quantifier:sym<?>"  :subid("42_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_651
 .annotate 'line', 111
     new $P650, 'ExceptionHandler'
@@ -9413,10 +9490,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "quantifier:sym<**>"  :subid("43_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "quantifier:sym<**>"  :subid("43_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_668
 .annotate 'line', 117
-    .const 'Sub' $P683 = "44_1275811482.3686" 
+    .const 'Sub' $P683 = "44_1277356890.79584" 
     capture_lex $P683
     new $P667, 'ExceptionHandler'
     set_addr $P667, control_666
@@ -9554,7 +9631,7 @@
     goto if_679_end
   if_679:
 .annotate 'line', 120
-    .const 'Sub' $P683 = "44_1275811482.3686" 
+    .const 'Sub' $P683 = "44_1277356890.79584" 
     capture_lex $P683
     $P683()
   if_679_end:
@@ -9582,7 +9659,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block682"  :anon :subid("44_1275811482.3686") :outer("43_1275811482.3686")
+.sub "_block682"  :anon :subid("44_1277356890.79584") :outer("43_1277356890.79584")
 .annotate 'line', 121
     new $P684, "Undef"
     .lex "$ast", $P684
@@ -9625,7 +9702,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<ws>"  :subid("45_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<ws>"  :subid("45_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_741
 .annotate 'line', 146
     new $P740, 'ExceptionHandler'
@@ -9678,7 +9755,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<[ ]>"  :subid("46_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<[ ]>"  :subid("46_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_759
 .annotate 'line', 155
     new $P758, 'ExceptionHandler'
@@ -9711,7 +9788,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<( )>"  :subid("47_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<( )>"  :subid("47_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_769
 .annotate 'line', 159
     new $P768, 'ExceptionHandler'
@@ -9760,7 +9837,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<'>"  :subid("48_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<'>"  :subid("48_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_787
 .annotate 'line', 166
     new $P786, 'ExceptionHandler'
@@ -9817,7 +9894,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<\">"  :subid("49_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<\">"  :subid("49_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_810
 .annotate 'line', 173
     new $P809, 'ExceptionHandler'
@@ -9874,7 +9951,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<.>"  :subid("50_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<.>"  :subid("50_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_833
 .annotate 'line', 180
     new $P832, 'ExceptionHandler'
@@ -9906,7 +9983,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<^>"  :subid("51_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<^>"  :subid("51_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_845
 .annotate 'line', 185
     new $P844, 'ExceptionHandler'
@@ -9938,7 +10015,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<^^>"  :subid("52_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<^^>"  :subid("52_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_857
 .annotate 'line', 190
     new $P856, 'ExceptionHandler'
@@ -9970,7 +10047,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<$>"  :subid("53_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<$>"  :subid("53_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_869
 .annotate 'line', 195
     new $P868, 'ExceptionHandler'
@@ -10002,7 +10079,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<$$>"  :subid("54_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<$$>"  :subid("54_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_881
 .annotate 'line', 200
     new $P880, 'ExceptionHandler'
@@ -10034,7 +10111,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<:::>"  :subid("55_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<:::>"  :subid("55_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_893
 .annotate 'line', 205
     new $P892, 'ExceptionHandler'
@@ -10066,7 +10143,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<lwb>"  :subid("56_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<lwb>"  :subid("56_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_905
 .annotate 'line', 210
     new $P904, 'ExceptionHandler'
@@ -10098,7 +10175,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<rwb>"  :subid("57_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<rwb>"  :subid("57_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_917
 .annotate 'line', 215
     new $P916, 'ExceptionHandler'
@@ -10130,7 +10207,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<bs>"  :subid("58_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<bs>"  :subid("58_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_929
 .annotate 'line', 220
     new $P928, 'ExceptionHandler'
@@ -10163,7 +10240,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<mod>"  :subid("59_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<mod>"  :subid("59_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_939
 .annotate 'line', 224
     new $P938, 'ExceptionHandler'
@@ -10196,7 +10273,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<assert>"  :subid("60_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<assert>"  :subid("60_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_949
 .annotate 'line', 228
     new $P948, 'ExceptionHandler'
@@ -10229,7 +10306,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<~>"  :subid("61_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<~>"  :subid("61_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_959
 .annotate 'line', 232
     new $P958, 'ExceptionHandler'
@@ -10292,7 +10369,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<{*}>"  :subid("62_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<{*}>"  :subid("62_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_981
 .annotate 'line', 245
     new $P980, 'ExceptionHandler'
@@ -10354,7 +10431,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<var>"  :subid("63_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<var>"  :subid("63_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1002
 .annotate 'line', 252
     new $P1001, 'ExceptionHandler'
@@ -10515,7 +10592,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "metachar:sym<PIR>"  :subid("64_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "metachar:sym<PIR>"  :subid("64_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1058
 .annotate 'line', 272
     new $P1057, 'ExceptionHandler'
@@ -10555,7 +10632,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<w>"  :subid("65_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<w>"  :subid("65_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1073
 .annotate 'line', 280
     new $P1072, 'ExceptionHandler'
@@ -10622,7 +10699,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<b>"  :subid("66_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<b>"  :subid("66_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1097
 .annotate 'line', 286
     new $P1096, 'ExceptionHandler'
@@ -10666,7 +10743,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<e>"  :subid("67_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<e>"  :subid("67_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1113
 .annotate 'line', 292
     new $P1112, 'ExceptionHandler'
@@ -10710,7 +10787,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<f>"  :subid("68_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<f>"  :subid("68_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1129
 .annotate 'line', 298
     new $P1128, 'ExceptionHandler'
@@ -10754,7 +10831,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<h>"  :subid("69_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<h>"  :subid("69_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1145
 .annotate 'line', 304
     new $P1144, 'ExceptionHandler'
@@ -10798,7 +10875,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<r>"  :subid("70_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<r>"  :subid("70_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1161
 .annotate 'line', 310
     new $P1160, 'ExceptionHandler'
@@ -10842,7 +10919,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<t>"  :subid("71_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<t>"  :subid("71_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1177
 .annotate 'line', 316
     new $P1176, 'ExceptionHandler'
@@ -10886,7 +10963,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<v>"  :subid("72_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<v>"  :subid("72_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1193
 .annotate 'line', 322
     new $P1192, 'ExceptionHandler'
@@ -10930,7 +11007,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<o>"  :subid("73_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<o>"  :subid("73_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1209
 .annotate 'line', 329
     new $P1208, 'ExceptionHandler'
@@ -11014,7 +11091,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<x>"  :subid("74_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<x>"  :subid("74_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1240
 .annotate 'line', 338
     new $P1239, 'ExceptionHandler'
@@ -11098,7 +11175,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<c>"  :subid("75_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<c>"  :subid("75_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1271
 .annotate 'line', 347
     new $P1270, 'ExceptionHandler'
@@ -11134,7 +11211,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "backslash:sym<misc>"  :subid("76_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "backslash:sym<misc>"  :subid("76_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1284
 .annotate 'line', 351
     new $P1283, 'ExceptionHandler'
@@ -11168,7 +11245,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<?>"  :subid("77_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "assertion:sym<?>"  :subid("77_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1298
 .annotate 'line', 357
     new $P1297, 'ExceptionHandler'
@@ -11229,7 +11306,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<!>"  :subid("78_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "assertion:sym<!>"  :subid("78_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1316
 .annotate 'line', 367
     new $P1315, 'ExceptionHandler'
@@ -11298,7 +11375,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<method>"  :subid("79_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "assertion:sym<method>"  :subid("79_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1340
 .annotate 'line', 380
     new $P1339, 'ExceptionHandler'
@@ -11342,12 +11419,12 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<name>"  :subid("80_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "assertion:sym<name>"  :subid("80_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1354
 .annotate 'line', 387
-    .const 'Sub' $P1412 = "82_1275811482.3686" 
+    .const 'Sub' $P1412 = "82_1277356890.79584" 
     capture_lex $P1412
-    .const 'Sub' $P1376 = "81_1275811482.3686" 
+    .const 'Sub' $P1376 = "81_1277356890.79584" 
     capture_lex $P1376
     new $P1353, 'ExceptionHandler'
     set_addr $P1353, control_1352
@@ -11443,7 +11520,7 @@
     unless $P1403, loop1417_done
     shift $P1410, $P1403
   loop1417_redo:
-    .const 'Sub' $P1412 = "82_1275811482.3686" 
+    .const 'Sub' $P1412 = "82_1277356890.79584" 
     capture_lex $P1412
     $P1412($P1410)
   loop1417_next:
@@ -11483,7 +11560,7 @@
     goto if_1371_end
   if_1371:
 .annotate 'line', 394
-    .const 'Sub' $P1376 = "81_1275811482.3686" 
+    .const 'Sub' $P1376 = "81_1277356890.79584" 
     capture_lex $P1376
     $P1376()
   if_1371_end:
@@ -11524,7 +11601,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1411"  :anon :subid("82_1275811482.3686") :outer("80_1275811482.3686")
+.sub "_block1411"  :anon :subid("82_1277356890.79584") :outer("80_1277356890.79584")
     .param pmc param_1413
 .annotate 'line', 416
     .lex "$_", param_1413
@@ -11536,7 +11613,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1375"  :anon :subid("81_1275811482.3686") :outer("80_1275811482.3686")
+.sub "_block1375"  :anon :subid("81_1277356890.79584") :outer("80_1277356890.79584")
 .annotate 'line', 395
     new $P1377, "Undef"
     .lex "$regexsym", $P1377
@@ -11568,10 +11645,10 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "assertion:sym<[>"  :subid("83_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "assertion:sym<[>"  :subid("83_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1427
 .annotate 'line', 422
-    .const 'Sub' $P1462 = "84_1275811482.3686" 
+    .const 'Sub' $P1462 = "84_1277356890.79584" 
     capture_lex $P1462
     new $P1426, 'ExceptionHandler'
     set_addr $P1426, control_1425
@@ -11663,7 +11740,7 @@
     islt $I1460, $N1457, $N1459
     unless $I1460, loop1485_done
   loop1485_redo:
-    .const 'Sub' $P1462 = "84_1275811482.3686" 
+    .const 'Sub' $P1462 = "84_1277356890.79584" 
     capture_lex $P1462
     $P1462()
   loop1485_next:
@@ -11691,7 +11768,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1461"  :anon :subid("84_1275811482.3686") :outer("83_1275811482.3686")
+.sub "_block1461"  :anon :subid("84_1277356890.79584") :outer("83_1277356890.79584")
 .annotate 'line', 436
     new $P1463, "Undef"
     .lex "$ast", $P1463
@@ -11743,12 +11820,12 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "cclass_elem"  :subid("85_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "cclass_elem"  :subid("85_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1495
 .annotate 'line', 449
-    .const 'Sub' $P1520 = "87_1275811482.3686" 
+    .const 'Sub' $P1520 = "87_1277356890.79584" 
     capture_lex $P1520
-    .const 'Sub' $P1504 = "86_1275811482.3686" 
+    .const 'Sub' $P1504 = "86_1277356890.79584" 
     capture_lex $P1504
     new $P1494, 'ExceptionHandler'
     set_addr $P1494, control_1493
@@ -11797,7 +11874,7 @@
     unless $P1514, loop1545_done
     shift $P1518, $P1514
   loop1545_redo:
-    .const 'Sub' $P1520 = "87_1275811482.3686" 
+    .const 'Sub' $P1520 = "87_1277356890.79584" 
     capture_lex $P1520
     $P1520($P1518)
   loop1545_next:
@@ -11821,7 +11898,7 @@
     goto if_1500_end
   if_1500:
 .annotate 'line', 452
-    .const 'Sub' $P1504 = "86_1275811482.3686" 
+    .const 'Sub' $P1504 = "86_1277356890.79584" 
     capture_lex $P1504
     $P1504()
   if_1500_end:
@@ -11853,10 +11930,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1519"  :anon :subid("87_1275811482.3686") :outer("85_1275811482.3686")
+.sub "_block1519"  :anon :subid("87_1277356890.79584") :outer("85_1277356890.79584")
     .param pmc param_1521
 .annotate 'line', 456
-    .const 'Sub' $P1527 = "88_1275811482.3686" 
+    .const 'Sub' $P1527 = "88_1277356890.79584" 
     capture_lex $P1527
     .lex "$_", param_1521
 .annotate 'line', 457
@@ -11885,7 +11962,7 @@
 .annotate 'line', 457
     goto if_1523_end
   if_1523:
-    .const 'Sub' $P1527 = "88_1275811482.3686" 
+    .const 'Sub' $P1527 = "88_1277356890.79584" 
     capture_lex $P1527
     $P1540 = $P1527()
     set $P1522, $P1540
@@ -11896,7 +11973,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1526"  :anon :subid("88_1275811482.3686") :outer("87_1275811482.3686")
+.sub "_block1526"  :anon :subid("88_1277356890.79584") :outer("87_1277356890.79584")
 .annotate 'line', 458
     new $P1528, "Undef"
     .lex "$a", $P1528
@@ -11960,7 +12037,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1503"  :anon :subid("86_1275811482.3686") :outer("85_1275811482.3686")
+.sub "_block1503"  :anon :subid("86_1277356890.79584") :outer("85_1277356890.79584")
 .annotate 'line', 453
     new $P1505, "Undef"
     .lex "$name", $P1505
@@ -11989,7 +12066,7 @@
 
 .namespace ["Regex";"P6Regex";"Actions"]
 .include "except_types.pasm"
-.sub "mod_internal"  :subid("89_1275811482.3686") :method :outer("11_1275811482.3686")
+.sub "mod_internal"  :subid("89_1277356890.79584") :method :outer("11_1277356890.79584")
     .param pmc param_1564
 .annotate 'line', 487
     new $P1563, 'ExceptionHandler'
@@ -12087,18 +12164,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1594" :load :anon :subid("90_1275811482.3686")
+.sub "_block1594" :load :anon :subid("90_1277356890.79584")
 .annotate 'line', 4
-    .const 'Sub' $P1596 = "11_1275811482.3686" 
+    .const 'Sub' $P1596 = "11_1277356890.79584" 
     $P1597 = $P1596()
     .return ($P1597)
 .end
 
 
 .namespace []
-.sub "_block1600" :load :anon :subid("91_1275811482.3686")
+.sub "_block1600" :load :anon :subid("91_1277356890.79584")
 .annotate 'line', 1
-    .const 'Sub' $P1602 = "10_1275811482.3686" 
+    .const 'Sub' $P1602 = "10_1277356890.79584" 
     $P1603 = $P1602()
     .return ($P1603)
 .end

Modified: branches/dynop_mapping/ext/nqp-rx/src/stage0/nqp-setting.nqp
==============================================================================
--- branches/dynop_mapping/ext/nqp-rx/src/stage0/nqp-setting.nqp	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/ext/nqp-rx/src/stage0/nqp-setting.nqp	Sun Jul  4 06:24:50 2010	(r47981)
@@ -17,6 +17,22 @@
 
 module ResizablePMCArray {
 
+    =begin item delete
+    Remove item at C<$pos>
+    =end item
+
+    method delete($pos) {
+        pir::delete__vQi(self, $pos);
+    }
+
+    =begin item exists
+    Return true if item exists at C<$pos>
+    =end item
+
+    method exists($pos) {
+        pir::exists__IQi(self, $pos);
+    }
+
     =begin item join
     Return all elements joined by $sep.
     =end item
@@ -210,11 +226,11 @@
 
 =begin item slurp
 Returns the contents of C<$filename> as a single string.
-=end
+=end item
 
 our sub slurp ($filename) {
-    my $handle := FileHandle.new();
-    $handle.open($file, 'r');
+    my $handle := pir::new__Ps('FileHandle');
+    $handle.open($filename, 'r');
     my $contents := $handle.readall;
     $handle.close();
     $contents;
@@ -226,7 +242,7 @@
 =end item
 
 our sub spew($filename, $contents) {
-    my $handle := FileHandle.new();
+    my $handle := pir::new__Ps('FileHandle');
     $handle.open($filename, 'w');
     $handle.print($contents);
     $handle.close();

Modified: branches/dynop_mapping/include/parrot/context.h
==============================================================================
--- branches/dynop_mapping/include/parrot/context.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/context.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -78,402 +78,340 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 PARROT_EXPORT
-UINTVAL Parrot_pcc_dec_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+UINTVAL Parrot_pcc_dec_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_errors_off_func(PARROT_INTERP,
-    ARGIN(PMC *ctx),
-    UINTVAL flags)
-        __attribute__nonnull__(1)
+void Parrot_pcc_errors_off_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_errors_on_func(PARROT_INTERP,
-    ARGIN(PMC *ctx),
-    UINTVAL flags)
-        __attribute__nonnull__(1)
+void Parrot_pcc_errors_on_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-UINTVAL Parrot_pcc_errors_test_func(PARROT_INTERP,
+PARROT_PURE_FUNCTION
+UINTVAL Parrot_pcc_errors_test_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     UINTVAL flags)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_caller_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_caller_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
-struct PackFile_Constant ** Parrot_pcc_get_constants_func(PARROT_INTERP,
+PARROT_PURE_FUNCTION
+struct PackFile_Constant ** Parrot_pcc_get_constants_func(SHIM_INTERP,
     ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
 PARROT_CAN_RETURN_NULL
-Parrot_Context* Parrot_pcc_get_context_struct_func(PARROT_INTERP,
-    ARGIN_NULLOK(PMC *ctx))
-        __attribute__nonnull__(1);
+PARROT_PURE_FUNCTION
+Parrot_Context* Parrot_pcc_get_context_struct_func(SHIM_INTERP,
+    ARGIN_NULLOK(PMC *ctx));
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_continuation_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_continuation_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_handlers_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_handlers_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-INTVAL Parrot_pcc_get_HLL_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PARROT_PURE_FUNCTION
+INTVAL Parrot_pcc_get_HLL_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-INTVAL Parrot_pcc_get_int_constant_func(PARROT_INTERP,
+INTVAL Parrot_pcc_get_int_constant_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     INTVAL idx)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CANNOT_RETURN_NULL
-PMC* Parrot_pcc_get_lex_pad_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_lex_pad_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_namespace_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_namespace_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-FLOATVAL Parrot_pcc_get_num_constant_func(PARROT_INTERP,
+FLOATVAL Parrot_pcc_get_num_constant_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     INTVAL idx)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_object_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_object_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_outer_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_outer_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-opcode_t* Parrot_pcc_get_pc_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+opcode_t* Parrot_pcc_get_pc_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_pmc_constant_func(PARROT_INTERP,
+PMC* Parrot_pcc_get_pmc_constant_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     INTVAL idx)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-UINTVAL Parrot_pcc_get_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PARROT_PURE_FUNCTION
+UINTVAL Parrot_pcc_get_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-PMC* Parrot_pcc_get_signature_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+PMC* Parrot_pcc_get_signature_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
-STRING* Parrot_pcc_get_string_constant_func(PARROT_INTERP,
+STRING* Parrot_pcc_get_string_constant_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     INTVAL idx)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-UINTVAL Parrot_pcc_inc_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
-        __attribute__nonnull__(1)
+UINTVAL Parrot_pcc_inc_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_set_caller_ctx_func(PARROT_INTERP,
+void Parrot_pcc_set_caller_ctx_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN(PMC *caller_ctx))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
 PARROT_CAN_RETURN_NULL
-void Parrot_pcc_set_constants_func(PARROT_INTERP,
+void Parrot_pcc_set_constants_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN_NULLOK(struct PackFile_Constant **constants))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_set_continuation_func(PARROT_INTERP,
+void Parrot_pcc_set_continuation_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN_NULLOK(PMC *_continuation))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_set_handlers_func(PARROT_INTERP,
+void Parrot_pcc_set_handlers_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN(PMC *handlers))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
-void Parrot_pcc_set_HLL_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL hll)
-        __attribute__nonnull__(1)
+void Parrot_pcc_set_HLL_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL hll)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_set_lex_pad_func(PARROT_INTERP,
+void Parrot_pcc_set_lex_pad_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN(PMC *lex_pad))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
-void Parrot_pcc_set_namespace_func(PARROT_INTERP,
+void Parrot_pcc_set_namespace_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN_NULLOK(PMC *_namespace))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_set_object_func(PARROT_INTERP,
+void Parrot_pcc_set_object_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN_NULLOK(PMC *object))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_set_outer_ctx_func(PARROT_INTERP,
+void Parrot_pcc_set_outer_ctx_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN(PMC *outer_ctx))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
-void Parrot_pcc_set_pc_func(PARROT_INTERP,
+void Parrot_pcc_set_pc_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN_NULLOK(opcode_t *pc))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_set_signature_func(PARROT_INTERP,
+void Parrot_pcc_set_signature_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     ARGIN_NULLOK(PMC *sig_object))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_trace_flags_off_func(PARROT_INTERP,
+void Parrot_pcc_trace_flags_off_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     UINTVAL flags)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_trace_flags_on_func(PARROT_INTERP,
+void Parrot_pcc_trace_flags_on_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     UINTVAL flags)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-UINTVAL Parrot_pcc_trace_flags_test_func(PARROT_INTERP,
+PARROT_PURE_FUNCTION
+UINTVAL Parrot_pcc_trace_flags_test_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     UINTVAL flags)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-void Parrot_pcc_warnings_off_func(PARROT_INTERP,
+void Parrot_pcc_warnings_off_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     UINTVAL flags)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-UINTVAL Parrot_pcc_warnings_on_func(PARROT_INTERP,
+UINTVAL Parrot_pcc_warnings_on_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     UINTVAL flags)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
-UINTVAL Parrot_pcc_warnings_test_func(PARROT_INTERP,
+PARROT_PURE_FUNCTION
+UINTVAL Parrot_pcc_warnings_test_func(SHIM_INTERP,
     ARGIN(PMC *ctx),
     UINTVAL flags)
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
 #define ASSERT_ARGS_Parrot_pcc_dec_recursion_depth_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_errors_off_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_errors_on_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_errors_test_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_caller_ctx_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_constants_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_context_struct_func \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_Parrot_pcc_get_continuation_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_handlers_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_HLL_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_int_constant_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_lex_pad_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_namespace_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_num_constant_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_object_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_outer_ctx_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_pc_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_pmc_constant_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_recursion_depth_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_signature_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_get_string_constant_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_inc_recursion_depth_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_caller_ctx_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx) \
+       PARROT_ASSERT_ARG(ctx) \
     , PARROT_ASSERT_ARG(caller_ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_constants_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_continuation_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_handlers_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx) \
+       PARROT_ASSERT_ARG(ctx) \
     , PARROT_ASSERT_ARG(handlers))
 #define ASSERT_ARGS_Parrot_pcc_set_HLL_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_lex_pad_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx) \
+       PARROT_ASSERT_ARG(ctx) \
     , PARROT_ASSERT_ARG(lex_pad))
 #define ASSERT_ARGS_Parrot_pcc_set_namespace_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_object_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_outer_ctx_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx) \
+       PARROT_ASSERT_ARG(ctx) \
     , PARROT_ASSERT_ARG(outer_ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_pc_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_set_signature_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_trace_flags_off_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_trace_flags_on_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_trace_flags_test_func \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_warnings_off_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_warnings_on_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 #define ASSERT_ARGS_Parrot_pcc_warnings_test_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ctx))
+       PARROT_ASSERT_ARG(ctx))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: src/call/context_accessors.c */
 

Modified: branches/dynop_mapping/include/parrot/extend.h
==============================================================================
--- branches/dynop_mapping/include/parrot/extend.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/extend.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -28,7 +28,6 @@
 #if defined(PARROT_IN_CORE)
 
 #define Parrot_Language Parrot_Int
-#define Parrot_VTABLE VTABLE *
 
 /* Macro to save off the original stack pointer for GC scanning. If
    the stacktop was NULL, then set it to the address of the cached
@@ -74,8 +73,10 @@
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
-Parrot_Language Parrot_find_language(SHIM_INTERP, SHIM(char *language));
+Parrot_Language Parrot_find_language(SHIM_INTERP,
+    SHIM(const char *language));
 
 PARROT_EXPORT
 int Parrot_fprintf(PARROT_INTERP,
@@ -90,22 +91,27 @@
 void Parrot_free_cstring(ARGFREE(char *string));
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_Int Parrot_get_intreg(PARROT_INTERP, Parrot_Int regnum)
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_Float Parrot_get_numreg(PARROT_INTERP, Parrot_Int regnum)
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_PMC Parrot_get_pmcreg(PARROT_INTERP, Parrot_Int regnum)
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_PMC Parrot_get_root_namespace(PARROT_INTERP)
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_String Parrot_get_strreg(PARROT_INTERP, Parrot_Int regnum)
         __attribute__nonnull__(1);
 
@@ -128,6 +134,7 @@
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_PMC Parrot_PMC_null(void);
 
 PARROT_EXPORT

Deleted: branches/dynop_mapping/include/parrot/global.h
==============================================================================
--- branches/dynop_mapping/include/parrot/global.h	Sun Jul  4 06:24:50 2010	(r47980)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,204 +0,0 @@
-/* global.h
- *  Copyright (C) 2004, Parrot Foundation.
- *  SVN Info
- *     $Id$
- *  Overview:
- *      Contains accessor functions for globals
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
- */
-
-#ifndef PARROT_GLOBAL_H_GUARD
-#define PARROT_GLOBAL_H_GUARD
-
-/* HEADERIZER BEGIN: src/global.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_global_cur(PARROT_INTERP,
-    ARGIN_NULLOK(STRING *globalname))
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_global_n(PARROT_INTERP,
-    ARGIN_NULLOK(PMC *ns),
-    ARGIN_NULLOK(STRING *globalname))
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-PMC * Parrot_find_global_op(PARROT_INTERP,
-    ARGIN(PMC *ns),
-    ARGIN_NULLOK(STRING *globalname),
-    ARGIN_NULLOK(void *next))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_global_s(PARROT_INTERP,
-    ARGIN_NULLOK(STRING *str_key),
-    ARGIN_NULLOK(STRING *globalname))
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_find_name_op(PARROT_INTERP,
-    ARGIN(STRING *name),
-    SHIM(void *next))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_get_global(PARROT_INTERP,
-    ARGIN_NULLOK(PMC *ns),
-    ARGIN_NULLOK(STRING *globalname))
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_get_namespace_keyed(PARROT_INTERP,
-    ARGIN(PMC *base_ns),
-    ARGIN(PMC *pmc_key))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_get_namespace_keyed_str(PARROT_INTERP,
-    ARGIN(PMC *base_ns),
-    ARGIN_NULLOK(STRING *str_key))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_make_namespace_autobase(PARROT_INTERP, ARGIN_NULLOK(PMC *key))
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_make_namespace_keyed(PARROT_INTERP,
-    ARGIN(PMC *base_ns),
-    ARGIN(PMC *pmc_key))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_make_namespace_keyed_str(PARROT_INTERP,
-    ARGIN(PMC *base_ns),
-    ARGIN(STRING *str_key))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC * Parrot_ns_get_name(PARROT_INTERP, ARGIN(PMC *_namespace))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_EXPORT
-void Parrot_set_global(PARROT_INTERP,
-    ARGIN_NULLOK(PMC *ns),
-    ARGIN_NULLOK(STRING *globalname),
-    ARGIN_NULLOK(PMC *val))
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_store_global_n(PARROT_INTERP,
-    ARGIN_NULLOK(PMC *ns),
-    ARGIN_NULLOK(STRING *globalname),
-    ARGIN_NULLOK(PMC *val))
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_store_global_s(PARROT_INTERP,
-    ARGIN_NULLOK(STRING *str_key),
-    ARGIN_NULLOK(STRING *globalname),
-    ARGIN_NULLOK(PMC *val))
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void Parrot_store_sub_in_namespace(PARROT_INTERP, ARGIN(PMC *sub_pmc))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-#define ASSERT_ARGS_Parrot_find_global_cur __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_find_global_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_find_global_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ns))
-#define ASSERT_ARGS_Parrot_find_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_find_name_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_Parrot_get_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_get_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(base_ns) \
-    , PARROT_ASSERT_ARG(pmc_key))
-#define ASSERT_ARGS_Parrot_get_namespace_keyed_str \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(base_ns))
-#define ASSERT_ARGS_Parrot_make_namespace_autobase \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_make_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(base_ns) \
-    , PARROT_ASSERT_ARG(pmc_key))
-#define ASSERT_ARGS_Parrot_make_namespace_keyed_str \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(base_ns) \
-    , PARROT_ASSERT_ARG(str_key))
-#define ASSERT_ARGS_Parrot_ns_get_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(_namespace))
-#define ASSERT_ARGS_Parrot_set_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_store_global_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_store_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_store_sub_in_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(sub_pmc))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: src/global.c */
-
-#endif /* PARROT_GLOBAL_H_GUARD */
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-

Modified: branches/dynop_mapping/include/parrot/hash.h
==============================================================================
--- branches/dynop_mapping/include/parrot/hash.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/hash.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -9,10 +9,6 @@
 #ifndef PARROT_HASH_H_GUARD
 #define PARROT_HASH_H_GUARD
 
-/* Prototypes */
-
-/* Hash is really a hashtable, but 'hash' is standard perl nomenclature. */
-
 typedef enum {
     enum_hash_undef,
     enum_hash_int = enum_type_INTVAL,
@@ -22,14 +18,6 @@
     enum_hash_ptr = enum_type_ptr
 } HashEntryType;
 
-/*
- * hash_entry is currently unused in the hash structure
-
-typedef struct _hash_entry {
-    HashEntryType type;
-    UnionVal val;
-} HashEntry;
-*/
 
 /* A BucketIndex is an index into the pool of available buckets. */
 typedef UINTVAL BucketIndex;
@@ -59,18 +47,38 @@
 } HashBucket;
 
 struct _hash {
-    HashBucket *bs;             /* store of buckets */
-    HashBucket **bi;            /* list of Bucket pointers */
-    HashBucket *free_list;      /* empty buckets */
-    UINTVAL entries;            /* Number of values stored in hashtable */
-    UINTVAL mask;               /* alloced - 1 */
-    PMC *container;             /* e.g. the PerlHash PMC */
-    Hash_key_type key_type;     /* cstring, ascii-string, utf8-string */
-    PARROT_DATA_TYPE entry_type;/* type of value */
-    size_t seed;                /* randomizes the hash_key generation
-                                   updated for each new hash */
-    hash_comp_fn   compare;     /* compare two keys, 0 = equal */
-    hash_hash_key_fn hash_val;  /* generate a hash value for key */
+    /* Large slab store of buckets */
+    HashBucket *buckets;
+
+    /* List of Bucket pointers */
+    HashBucket **bucket_indices;
+
+    /* Store for empty buckets */
+    HashBucket *free_list;
+
+    /* Number of values stored in hashtable */
+    UINTVAL entries;
+
+    /* alloced - 1 */
+    UINTVAL mask;
+
+    /* The owner PMC */
+    PMC *container;
+
+    /* The type of key object this hash uses */
+    Hash_key_type key_type;
+
+    /* Type of value */
+    PARROT_DATA_TYPE entry_type;
+
+    /* Random seed value for seeding hash algorithms */
+    size_t seed;
+
+    /* Comparison function pointer. Returns 0 if elements are equal */
+    hash_comp_fn   compare;
+
+    /* Function pointer to generate a hash value for the object */
+    hash_hash_key_fn hash_val;
 };
 
 typedef void (*value_free)(ARGFREE(void *));
@@ -365,6 +373,15 @@
         __attribute__nonnull__(4)
         __attribute__nonnull__(5);
 
+void parrot_hash_clone_prunable(PARROT_INTERP,
+    ARGIN(const Hash *hash),
+    ARGOUT(Hash *dest),
+    int deep)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3)
+        FUNC_MODIFIES(*dest);
+
 PARROT_WARN_UNUSED_RESULT
 PARROT_PURE_FUNCTION
 int PMC_compare(PARROT_INTERP, ARGIN(PMC *a), ARGIN(PMC *b))
@@ -505,6 +522,10 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(compare) \
     , PARROT_ASSERT_ARG(keyhash))
+#define ASSERT_ARGS_parrot_hash_clone_prunable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(hash) \
+    , PARROT_ASSERT_ARG(dest))
 #define ASSERT_ARGS_PMC_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(a) \

Modified: branches/dynop_mapping/include/parrot/interpreter.h
==============================================================================
--- branches/dynop_mapping/include/parrot/interpreter.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/interpreter.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -24,7 +24,7 @@
 
     PARROT_IS_THREAD        = 0x1000, /* interpreter is a thread */
     PARROT_THR_COPY_INTERP  = 0x2000, /* thread start copies interp state */
-    PARROT_THR_THREAD_POOL  = 0x4000, /* type3 threads */
+    PARROT_THR_THREAD_POOL  = 0x4000  /* type3 threads */
 
 } Parrot_Interp_flag;
 /* &end_gen */

Modified: branches/dynop_mapping/include/parrot/key.h
==============================================================================
--- branches/dynop_mapping/include/parrot/key.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/key.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -88,13 +88,6 @@
 PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
-PMC * key_new_pmc(PARROT_INTERP, ARGIN(PMC *value))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
 PMC * key_new_string(PARROT_INTERP, ARGIN(STRING *value))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
@@ -132,13 +125,6 @@
         FUNC_MODIFIES(*key);
 
 PARROT_EXPORT
-void key_set_pmc(PARROT_INTERP, ARGMOD(PMC *key), ARGIN(PMC *value))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        FUNC_MODIFIES(*key);
-
-PARROT_EXPORT
 void key_set_register(PARROT_INTERP,
     ARGMOD(PMC *key),
     INTVAL value,
@@ -190,9 +176,6 @@
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_key_new_number __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_key_new_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(value))
 #define ASSERT_ARGS_key_new_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(value))
@@ -211,10 +194,6 @@
 #define ASSERT_ARGS_key_set_number __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(key))
-#define ASSERT_ARGS_key_set_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(key) \
-    , PARROT_ASSERT_ARG(value))
 #define ASSERT_ARGS_key_set_register __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(key))

Copied: branches/dynop_mapping/include/parrot/namespace.h (from r47980, trunk/include/parrot/namespace.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/include/parrot/namespace.h	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/include/parrot/namespace.h)
@@ -0,0 +1,208 @@
+/* namespace.h
+ *  Copyright (C) 2004-2010, Parrot Foundation.
+ *  SVN Info
+ *     $Id$
+ *  Overview:
+ *      Contains accessor functions for globals
+ *  Data Structure and Algorithms:
+ *  History:
+ *  Notes:
+ *  References:
+ */
+
+#ifndef PARROT_GLOBAL_H_GUARD
+#define PARROT_GLOBAL_H_GUARD
+
+/* HEADERIZER BEGIN: src/namespace.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_find_global_s(PARROT_INTERP,
+    ARGIN_NULLOK(STRING *str_key),
+    ARGIN_NULLOK(STRING *globalname))
+        __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_find_current_namespace_global(PARROT_INTERP,
+    ARGIN_NULLOK(STRING *globalname))
+        __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+PMC * Parrot_ns_find_global_from_op(PARROT_INTERP,
+    ARGIN(PMC *ns),
+    ARGIN_NULLOK(STRING *globalname),
+    ARGIN_NULLOK(void *next))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_find_named_item(PARROT_INTERP,
+    ARGIN(STRING *name),
+    SHIM(void *next))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_find_namespace_global(PARROT_INTERP,
+    ARGIN_NULLOK(PMC *ns),
+    ARGIN_NULLOK(STRING *globalname))
+        __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_get_global(PARROT_INTERP,
+    ARGIN_NULLOK(PMC *ns),
+    ARGIN_NULLOK(STRING *globalname))
+        __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_get_name(PARROT_INTERP, ARGIN(PMC *_namespace))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_get_namespace_keyed(PARROT_INTERP,
+    ARGIN(PMC *base_ns),
+    ARGIN(PMC *pmc_key))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_get_namespace_keyed_str(PARROT_INTERP,
+    ARGIN(PMC *base_ns),
+    ARGIN_NULLOK(STRING *str_key))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_make_namespace_autobase(PARROT_INTERP,
+    ARGIN_NULLOK(PMC *key))
+        __attribute__nonnull__(1);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_make_namespace_keyed(PARROT_INTERP,
+    ARGIN(PMC *base_ns),
+    ARGIN(PMC *pmc_key))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC * Parrot_ns_make_namespace_keyed_str(PARROT_INTERP,
+    ARGIN(PMC *base_ns),
+    ARGIN(STRING *str_key))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
+PARROT_EXPORT
+void Parrot_ns_set_global(PARROT_INTERP,
+    ARGIN_NULLOK(PMC *ns),
+    ARGIN_NULLOK(STRING *globalname),
+    ARGIN_NULLOK(PMC *val))
+        __attribute__nonnull__(1);
+
+PARROT_EXPORT
+void Parrot_ns_store_global(PARROT_INTERP,
+    ARGIN_NULLOK(PMC *ns),
+    ARGIN_NULLOK(STRING *globalname),
+    ARGIN_NULLOK(PMC *val))
+        __attribute__nonnull__(1);
+
+PARROT_EXPORT
+void Parrot_ns_store_sub(PARROT_INTERP, ARGIN(PMC *sub_pmc))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
+void Parrot_store_global_s(PARROT_INTERP,
+    ARGIN_NULLOK(STRING *str_key),
+    ARGIN_NULLOK(STRING *globalname),
+    ARGIN_NULLOK(PMC *val))
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_Parrot_find_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_ns_find_current_namespace_global \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_ns_find_global_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(ns))
+#define ASSERT_ARGS_Parrot_ns_find_named_item __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(name))
+#define ASSERT_ARGS_Parrot_ns_find_namespace_global \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_ns_get_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_ns_get_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(_namespace))
+#define ASSERT_ARGS_Parrot_ns_get_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(base_ns) \
+    , PARROT_ASSERT_ARG(pmc_key))
+#define ASSERT_ARGS_Parrot_ns_get_namespace_keyed_str \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(base_ns))
+#define ASSERT_ARGS_Parrot_ns_make_namespace_autobase \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_ns_make_namespace_keyed \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(base_ns) \
+    , PARROT_ASSERT_ARG(pmc_key))
+#define ASSERT_ARGS_Parrot_ns_make_namespace_keyed_str \
+     __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(base_ns) \
+    , PARROT_ASSERT_ARG(str_key))
+#define ASSERT_ARGS_Parrot_ns_set_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_ns_store_global __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_ns_store_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(sub_pmc))
+#define ASSERT_ARGS_Parrot_store_global_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: src/namespace.c */
+
+#endif /* PARROT_GLOBAL_H_GUARD */
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+

Modified: branches/dynop_mapping/include/parrot/oplib.h
==============================================================================
--- branches/dynop_mapping/include/parrot/oplib.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/oplib.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -50,7 +50,7 @@
     CORE_OPS_check_events,      /* explicit event check */
     CORE_OPS_check_events__,    /* inserted into op dispatch when an event
                                    got scheduled */
-    CORE_OPS_wrapper__,         /* inserted by dynop_register for new ops */
+    CORE_OPS_wrapper__          /* inserted by dynop_register for new ops */
         /* 2 more reserved */
 } special_core_ops_enum;
 

Modified: branches/dynop_mapping/include/parrot/oplib/core_ops.h
==============================================================================
--- branches/dynop_mapping/include/parrot/oplib/core_ops.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/oplib/core_ops.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -20,7 +20,7 @@
 #include "parrot/oplib.h"
 #include "parrot/runcore_api.h"
 
- op_lib_t *Parrot_DynOp_core_2_4_0(PARROT_INTERP, long init);
+ op_lib_t *Parrot_DynOp_core_2_5_0(PARROT_INTERP, long init);
 
  opcode_t * Parrot_end(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_noop(opcode_t *, PARROT_INTERP);

Modified: branches/dynop_mapping/include/parrot/packfile.h
==============================================================================
--- branches/dynop_mapping/include/parrot/packfile.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/packfile.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -91,6 +91,42 @@
 #endif
 
 /*
+** Enumerated constants
+** Changes here require update PBC_COMPAT
+** The prefered way to eliminate a value is just to stop using it without
+** renumbering others, that helps to keep backward compatibility.
+*/
+
+/* Packfile segment types */
+
+/* &gen_from_enum(packfile_segments.pasm) */
+
+typedef enum {
+    PF_DIR_SEG          = 0,
+    PF_UNKNOWN_SEG      = 1,
+    PF_FIXUP_SEG        = 2,
+    PF_CONST_SEG        = 3,
+    PF_BYTEC_SEG        = 4,
+    PF_DEBUG_SEG        = 5,
+    PF_ANNOTATIONS_SEG  = 6,
+
+    PF_MAX_SEG          = 7
+} pack_file_types;
+
+/* &end_gen */
+
+#define PF_DIR_FORMAT 1
+
+/* Fixup types */
+
+typedef enum {
+    enum_fixup_none = 0,
+    enum_fixup_sub  = 1,
+    enum_fixup_MAXUSEDVALUE = enum_fixup_sub
+} enum_fixup_t;
+
+
+/*
 ** Structure Definitions:
 */
 
@@ -174,24 +210,6 @@
     PackFile_Segment_dump_func_t        dump;
 } PackFile_funcs;
 
-/* &gen_from_enum(packfile_segments.pasm) */
-
-typedef enum {
-    PF_DIR_SEG          = 0,
-    PF_UNKNOWN_SEG      = 1,
-    PF_FIXUP_SEG        = 2,
-    PF_CONST_SEG        = 3,
-    PF_BYTEC_SEG        = 4,
-    PF_DEBUG_SEG        = 5,
-    PF_ANNOTATIONS_SEG  = 6,
-
-    PF_MAX_SEG          = 7
-} pack_file_types;
-
-/* &end_gen */
-
-#define PF_DIR_FORMAT 1
-
 typedef struct PackFile_Segment {
     struct PackFile           * pf;
     struct PackFile_Directory * dir;
@@ -220,11 +238,6 @@
     opcode_t                  offset;   /* location of the item */
 } PackFile_FixupEntry;
 
-typedef enum {
-    enum_fixup_none,
-    enum_fixup_sub
-} enum_fixup_t;
-
 typedef struct PackFile_FixupTable {
     PackFile_Segment             base;
     opcode_t                     fixup_count;

Modified: branches/dynop_mapping/include/parrot/parrot.h
==============================================================================
--- branches/dynop_mapping/include/parrot/parrot.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/parrot.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -284,7 +284,7 @@
 #include "parrot/vtables.h"
 #include "parrot/multidispatch.h"
 #include "parrot/library.h"
-#include "parrot/global.h"
+#include "parrot/namespace.h"
 #include "parrot/stat.h"
 #include "parrot/hll.h"
 #include "parrot/pbcversion.h"

Modified: branches/dynop_mapping/include/parrot/warnings.h
==============================================================================
--- branches/dynop_mapping/include/parrot/warnings.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/include/parrot/warnings.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -61,12 +61,20 @@
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
+void Parrot_warn_deprecated(PARROT_INTERP, ARGIN(const char *message))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
 void print_pbc_location(PARROT_INTERP)
         __attribute__nonnull__(1);
 
 #define ASSERT_ARGS_Parrot_warn __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(message))
+#define ASSERT_ARGS_Parrot_warn_deprecated __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(message))
 #define ASSERT_ARGS_print_pbc_location __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */

Modified: branches/dynop_mapping/lib/Parrot/Docs/Section/Parrot.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Docs/Section/Parrot.pm	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/lib/Parrot/Docs/Section/Parrot.pm	Sun Jul  4 06:24:50 2010	(r47981)
@@ -31,17 +31,10 @@
 use Parrot::Distribution;
 
 use Parrot::Docs::Section::Developer;
-#use Parrot::Docs::Section::Examples;
 use Parrot::Docs::Section::PMCs;
-#use Parrot::Docs::Section::C;
 use Parrot::Docs::Section::Ops;
-#use Parrot::Docs::Section::IMCC;
-#use Parrot::Docs::Section::Perl;
-#use Parrot::Docs::Section::Libs;
 use Parrot::Docs::Section::Tools;
 use Parrot::Docs::Section::Compilers;
-#use Parrot::Docs::Section::Config;
-#use Parrot::Docs::Section::Tests;
 use Parrot::Docs::Section::PDDs;
 use Parrot::Docs::Section::PCT_Tutorial;
 
@@ -74,7 +67,6 @@
             '',
             $self->new_item( 'Running Parrot', 'docs/running.pod'),
             $self->new_item( 'Testing Parrot', 'docs/tests.pod'),
-#            Parrot::Docs::Section::Examples->new,
             $self->new_item( 'Developer FAQ', 'docs/gettingstarted.pod'),
             $self->new_item( 'Submitting Bug Reports & Patches', 'docs/submissions.pod' ),
         ),
@@ -122,13 +114,6 @@
             $self->new_item( 'Chapter 4 Grammar Engine', 'docs/book/pct/ch04_pge.pod'),
             $self->new_item( 'Chapter 5 Grammar Actions', 'docs/book/pct/ch05_nqp.pod'),
         ),
-
-#        Parrot::Docs::Section::C->new,
-#        Parrot::Docs::Section::IMCC->new,
-#        Parrot::Docs::Section::Perl->new,
-#        Parrot::Docs::Section::Libs->new,
-#        Parrot::Docs::Section::Tests->new,
-#        Parrot::Docs::Section::Config->new,
     );
 }
 
@@ -167,38 +152,6 @@
 
 =back
 
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::Docs::Section::Info>
-
-=item C<Parrot::Docs::Section::Docs>
-
-=item C<Parrot::Docs::Section::Examples>
-
-=item C<Parrot::Docs::Section::PMCs>
-
-=item C<Parrot::Docs::Section::C>
-
-=item C<Parrot::Docs::Section::Ops>
-
-=item C<Parrot::Docs::Section::IMCC>
-
-=item C<Parrot::Docs::Section::Perl>
-
-=item C<Parrot::Docs::Section::Libs>
-
-=item C<Parrot::Docs::Section::Tools>
-
-=item C<Parrot::Docs::Section::Compilers>
-
-=item C<Parrot::Docs::Section::Config>
-
-=item C<Parrot::Docs::Section::Tests>
-
-=back
-
 =cut
 
 1;

Modified: branches/dynop_mapping/lib/Parrot/Harness/DefaultTests.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Harness/DefaultTests.pm	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/lib/Parrot/Harness/DefaultTests.pm	Sun Jul  4 06:24:50 2010	(r47981)
@@ -64,6 +64,7 @@
     t/op/*.t
     t/pmc/*.t
     t/oo/*.t
+    t/pir/*.t
     t/native_pbc/*.t
 );
 

Modified: branches/dynop_mapping/lib/Parrot/Pmc2c/PMCEmitter.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Pmc2c/PMCEmitter.pm	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/lib/Parrot/Pmc2c/PMCEmitter.pm	Sun Jul  4 06:24:50 2010	(r47981)
@@ -506,8 +506,6 @@
     my $multi_list_size = @multi_list;
     my $multi_list = join( "\n", @multi_list);
 
-    my @isa = grep { $_ ne 'default' } @{ $self->parents };
-
     my $provides        = join( " ", keys( %{ $self->{flags}{provides} } ) );
     my $class_init_code = "";
 
@@ -586,17 +584,9 @@
 EOC
     }
 
-    if (@isa) {
-        unshift @isa, $classname;
-        $cout .= <<"EOC";
+    $cout .= <<"EOC";
         vt->isa_hash     = Parrot_${classname}_get_isa(interp, NULL);
 EOC
-    }
-    else {
-        $cout .= <<"EOC";
-        vt->isa_hash     = NULL;
-EOC
-    }
 
     for my $k ( keys %extra_vt ) {
         my $k_flags = $self->$k->vtable_flags;
@@ -874,10 +864,19 @@
 PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 Hash* Parrot_${classname}_get_isa(PARROT_INTERP, Hash* isa) {
+EOC
+
+    if ($get_isa ne '') {
+        $cout .= $get_isa;
+    }
+    else {
+        $cout .= <<"EOC";
     if (isa == NULL) {
         isa = parrot_new_hash(interp);
     }
-$get_isa
+EOC
+    }
+    $cout .= <<"EOC";
     parrot_hash_put(interp, isa, (void *)(CONST_STRING_GEN(interp, "$classname")), PMCNULL);
     return isa;
 }

Modified: branches/dynop_mapping/lib/Parrot/Test.pm
==============================================================================
--- branches/dynop_mapping/lib/Parrot/Test.pm	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/lib/Parrot/Test.pm	Sun Jul  4 06:24:50 2010	(r47981)
@@ -280,6 +280,7 @@
 use File::Spec;
 use File::Basename;
 use Memoize ();
+use IO::File ();
 
 use lib qw( lib );
 use Parrot::BuildUtil ();

Modified: branches/dynop_mapping/ports/cygwin/README
==============================================================================
--- branches/dynop_mapping/ports/cygwin/README	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/ports/cygwin/README	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,7 +1,7 @@
 parrot
 ----------------------------------
 Parrot is a virtual machine designed to efficiently compile and
-execute bytecode for interpreted languages. Parrot is a target for Perl 6 
+execute bytecode for interpreted languages. Parrot is a target for Perl 6
 and a lot of other languages.
 
 Runtime requirements:
@@ -11,7 +11,7 @@
   w32api pcre libpq5 openssl
 
 Build requirements:
-  readline libncurses-devel libicu-devel libgmp-devel libgdbm-devel perl 
+  readline libncurses-devel libicu-devel libgmp-devel libgdbm-devel perl
   make gcc
 
 Optional build requirements:
@@ -40,7 +40,7 @@
   /usr/src/parrot-devel-<VER>-<REL>.tar.bz2
   /usr/src/parrot-docs-<VER>-<REL>.tar.bz2
 
-Or use 'cygport parrot-<VER>-<REL>.cygport prep' to get a patched 
+Or use 'cygport parrot-<VER>-<REL>.cygport prep' to get a patched
 source directory.
 
 -------------------------------------------------------------------------------
@@ -657,7 +657,6 @@
  /usr/include/parrot/1.0.0/parrot/extend.h
  /usr/include/parrot/1.0.0/parrot/extend_vtable.h
  /usr/include/parrot/1.0.0/parrot/feature.h
- /usr/include/parrot/1.0.0/parrot/global.h
  /usr/include/parrot/1.0.0/parrot/global_setup.h
  /usr/include/parrot/1.0.0/parrot/has_header.h
  /usr/include/parrot/1.0.0/parrot/hash.h
@@ -676,6 +675,7 @@
  /usr/include/parrot/1.0.0/parrot/memory.h
  /usr/include/parrot/1.0.0/parrot/misc.h
  /usr/include/parrot/1.0.0/parrot/mmd.h
+ /usr/include/parrot/1.0.0/parrot/namespace.h
  /usr/include/parrot/1.0.0/parrot/nci.h
  /usr/include/parrot/1.0.0/parrot/oo.h
  /usr/include/parrot/1.0.0/parrot/oo_private.h
@@ -1877,7 +1877,7 @@
 ----- version parrot-1.0.0-1 -----
 * cygwin 1.7, gcc-4.3 only
 * renamed libparrot-devel to parrot-devel
-* removed libparrot1 
+* removed libparrot1
 * new parrot-docs for make html
 * library.c patch to allow library/*.pbc
 * removed pbc_info
@@ -1910,21 +1910,21 @@
 
 ----- version parrot-0.7.0-1 -----
 * removed /usr/runtime and its preremove and postinstall scripts
-* added parrot_exists_check to .cygport. Already installed parrot 
+* added parrot_exists_check to .cygport. Already installed parrot
   still not supported, despite my #39742 patch
 * other minor .cygport improvements: export PATH in seperate lines to fix check
-* new patches: 
+* new patches:
   [perl #39742] [BUG]   installed conflict
   [perl #58034] [TODO]  config_args
   [perl #56996] [TODO]  FHS runtime paths
-* enhanced patch: 
+* enhanced patch:
   [perl #56554] [TODO]  make install -C languages
 * upstream fixed patches:
   [perl #56544] [PATCH] install_files.pl
   [perl #56998] [TODO]  rename cygwin dll to cygparrot$MAJOR_$MINOR_$PATCH.dll
   [perl #57006] [PATCH] add cygwin opengl config quirks
   [perl #57296] [TODO]  make install -C languages
-* fixed pipp, perl6, pheme, tcl installables. added pcbc's to library  
+* fixed pipp, perl6, pheme, tcl installables. added pcbc's to library
 
 ----- version parrot-0.6.4-2 -----
 * fixed invalid parrot languages and perl6 paths referencing the build_dir
@@ -1933,7 +1933,7 @@
 * added myconfig parrotbug VERSION to /usr/lib/parrot
 * moved language dll's to parrot-languages
 * added more sublanguage exe's: bfc, bfco
-* added usr/lib/parrot/include/config.fpmc usr/lib/parrot/include/interpinfo.pasm 
+* added usr/lib/parrot/include/config.fpmc usr/lib/parrot/include/interpinfo.pasm
   to parrot
 
 ----- version parrot-0.6.4-1 -----
@@ -1951,11 +1951,11 @@
      [perl #57114] [PATCH] urm RealBin issue
 
 ----- version parrot-0.6.3-1 -----
-* first port, with the help from #parrot, fedora spec, 
+* first port, with the help from #parrot, fedora spec,
   gentoo ebuild and freebsd ports.
 * the php implementation plumhead is still named plumhead.
   will be renamed to pipp from the next release 0.6.4 on.
 
 Cygwin port maintained by: Reini Urban <rurban at x-ray.at>
-Please address all questions to the Cygwin mailing list 
+Please address all questions to the Cygwin mailing list
 at <cygwin at cygwin.com>

Copied: branches/dynop_mapping/ports/fedora/2.5.0/parrot.desk.in.tar.gz (from r47980, trunk/ports/fedora/2.5.0/parrot.desk.in.tar.gz)
==============================================================================
Binary file (source and/or target). No diff available.

Copied: branches/dynop_mapping/ports/fedora/2.5.0/parrot.patch (from r47980, trunk/ports/fedora/2.5.0/parrot.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/ports/fedora/2.5.0/parrot.patch	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/ports/fedora/2.5.0/parrot.patch)
@@ -0,0 +1,19 @@
+--- lib/Parrot/Install.pm	2009-06-01 09:29:57.000000000 +0200
++++ lib/Parrot/Install.pm	2009-06-03 08:41:22.000000000 +0200
+@@ -220,6 +220,16 @@
+         else {
+             next unless -e $src;
+             next if $^O eq 'cygwin' and -e "$src.exe"; # stat works, copy not
++            if (-l $src) { 
++                # check if the system supports symbolic linking 
++                use Config; 
++                if ($Config{d_symlink} && $Config{d_readlink}) { 
++                # copy as symbolic link 
++                    symlink(readlink($src), $dest); 
++                    print "$dest\n"; 
++                    next; 
++                } 
++            } 
+             copy( $src, $dest ) or die "Error: couldn't copy $src to $dest: $!\n";
+             print "$dest\n";
+         }

Copied: branches/dynop_mapping/ports/fedora/2.5.0/parrot.spec (from r47980, trunk/ports/fedora/2.5.0/parrot.spec)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/ports/fedora/2.5.0/parrot.spec	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/ports/fedora/2.5.0/parrot.spec)
@@ -0,0 +1,372 @@
+Name:           parrot
+Version:        2.5.0
+Release:        1%{?dist}
+Summary:        a virtual machine
+License:        Artistic 2.0
+Group:          Development/Libraries
+URL:            http://www.parrot.org/
+
+Source0:        ftp://ftp.parrot.org/pub/parrot/releases/devel/%{version}/parrot-%{version}.tar.gz
+Source1:        %{name}.desk.in.tar.gz
+
+Patch0:         parrot.patch
+#
+# see for upstream:       https://trac.parrot.org/parrot/ticket/509
+# patched file:           lib/Parrot/Install.pm
+# is to have the symlink:    libparrot.so  ->  libparrot.so.%{version}
+# Without this %{_libdir}/libparrot.so would not be a symbolic link to
+# %{_libdir}/libparrot.so.%{version}  
+
+BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires:  readline-devel
+BuildRequires:  ncurses-devel
+BuildRequires:  gmp-devel
+BuildRequires:  gdbm-devel
+BuildRequires:  libicu-devel
+BuildRequires:  perl(Test::Harness)
+BuildRequires:  perl(Test::Simple)
+BuildRequires:  ctags
+BuildRequires:  openssl-devel
+BuildRequires:  flex
+BuildRequires:  bison
+# Needed to generate the Parrot PDF book
+BuildRequires:  perl(Pod::PseudoPod::LaTeX), texlive-latex
+# Needed to desktop-file-install usage
+BuildRequires:  desktop-file-utils
+ 
+
+%package docs
+Summary:        Parrot Virtual Machine documentation
+Group:          Documentation
+Requires:       perl(strict)
+Requires:       perl(warnings)
+# Provides the executable in the desktop file (xdg-open)
+Requires:       xdg-utils
+BuildArch:      noarch
+
+#--
+
+%package devel
+Summary:        Parrot Virtual Machine development headers and libraries
+Group:          Development/Libraries
+Requires:       %{name} = %{version}-%{release}
+Requires:       pkgconfig
+
+#--
+
+%package tools
+Summary:        Parrot Virtual Machine development for languages
+Group:          Development/Libraries
+Requires:       %{name} = %{version}-%{release}
+Requires:       perl(Pod::Simple)
+Requires:       perl(File::Which) >= 0.05
+Requires:       perl(Parrot::OpLib::core)
+# It is necessary to have installed the package "perl-Perl-Critic" to install
+# the parrot-tools
+Provides:       perl(Parrot::Pmc2c::MethodEmitter) = %{version}
+Provides:       perl(Parrot::Pmc2c::PCCMETHOD_BITS) = %{version}
+Provides:       perl(Parrot::Pmc2c::PMCEmitter) = %{version}
+Provides:       perl(Parrot::OpLib::core) = %{version}
+
+
+%description
+Parrot is a virtual machine designed to efficiently compile and execute
+bytecode for dynamic languages. Parrot is the target for Rakudo Perl 6,
+as well as variety of other languages.
+
+#--
+
+%description docs
+Documentation in text-, POD- and HTML-format (docs/html-subdirectory) and also
+examples about the Parrot Virtual Machine.
+
+#--
+
+%description devel
+Parrot Virtual Machine development headers and libraries.
+
+#--
+
+%description tools
+Parrot Virtual Machine development files for building languages.
+
+
+%prep
+%setup -q
+%patch0 -p0
+
+
+cat << \EOF > %{name}-prov
+#!/bin/sh
+%{__perl_provides} $* | %{__sed} -e '/perl(A)/d' -e '/perl(B)/d' \
+                            -e '/perl(DB)/d' -e '/perl(Parrot::OpLib::core)/d'
+EOF
+
+%global __perl_provides %{_builddir}/%{name}-%{version}/%{name}-prov
+chmod +x %{__perl_provides}
+
+
+%build
+%ifarch %{ix86} x86_64
+    RPM_OPT_FLAGS="$RPM_OPT_FLAGS -maccumulate-outgoing-args"
+%else
+# The PowerPC-architecture do not build with the '-maccumulate-outgoing-args'
+# option.
+    RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
+%endif
+
+# there are problems in this version with the optimize="-O2" option building on
+# ppc64 and ppc with nqp-rx
+%ifarch ppc64 ppc
+    RPM_OPT_FLAGS=`echo "$RPM_OPT_FLAGS" | %{__perl} -pi -e 's/-O2//'`
+%endif
+
+%{__perl} Configure.pl \
+    --prefix=%{_usr} \
+    --libdir=%{_libdir} \
+    --sysconfdir=%{_sysconfdir} \
+    --infodir=%{_datadir}/info \
+    --mandir=%{_mandir} \
+    --cc="%{__cc}" \
+    --cxx=%{__cxx} \
+    --optimize="$RPM_OPT_FLAGS" \
+    --parrot_is_shared \
+    --disable-rpath \
+    --pkgconfigdir=pkgconfig \
+    --lex=%{_bindir}/flex
+
+# The LD_LIBRARY_PATH hack is needed for "miniparrot"
+# to find his parrot-library in "blib/lib" 
+export LD_LIBRARY_PATH=$( pwd )/blib/lib
+
+# pbc_to_exe would not build if %{_smp_mflags} would used
+make
+make html pdf
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+# The LD_LIBRARY_PATH hack is needed for the command "pbc_to_exe parrot-nqp.pbc"
+# to find his parrot-library in "blib/lib" 
+export LD_LIBRARY_PATH=$( pwd )/blib/lib
+
+make install DESTDIR=$RPM_BUILD_ROOT
+
+# Creating man-pages
+%{__install} -d $RPM_BUILD_ROOT%{_mandir}/man1
+for var in 'parrot docs/running.pod' 'parrot_debugger src/parrot_debugger.c' \
+           'pbc_disassemble src/pbc_disassemble.c' 'pbc_dump src/pbc_dump.c' \
+           'pbc_merge src/pbc_merge.c' 'pbc_to_exe tools/dev/pbc_to_exe.pir' \
+           'parrot_config tools/build/parrot_config_c.pl' \
+           'parrot-nqp compilers/nqp/README.pod'
+do
+    MAN_NAME=`echo $var | %{__perl} -na -e 'print $F[0]'`
+    MAN_SOURCE=`echo $var | %{__perl} -na -e 'print $F[1]'`
+    pod2man --section=1 --name=$MAN_NAME $MAN_SOURCE | %{__gzip} -c > $RPM_BUILD_ROOT%{_mandir}/man1/${MAN_NAME}.1.gz
+done
+
+# Drop the docs so rpm can pick them up itself.
+rm -rf $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}
+
+# Force permissions on doc directories.
+find docs examples -type d -exec chmod 755 {} \;
+find docs examples -type f -exec chmod 644 {} \;
+
+
+%define RPM_PAR_LIB_DIR $RPM_BUILD_ROOT%{_libdir}/%{name}/%{version}/
+
+
+# Force permissions on shared versioned libs so they get stripped.
+# The parrot-install-script don't set the permissions right
+# With changed permissions the dependencies will be found
+find %{RPM_PAR_LIB_DIR}dynext -type f -name '*.so' -exec chmod 755 {} \;
+
+# Remove module that should be install instead (perl(File::Which))
+rm -rf %{RPM_PAR_LIB_DIR}tools/lib/File
+
+
+# Added to reduce output errors when using rpmlint
+
+# Force permission on perl-scripts in the "tools" subdirctory
+find %{RPM_PAR_LIB_DIR}tools -type f -name "*.pl" -exec chmod 755 {} \; \
+    -exec %{__sed} -i -e '1 s&#! perl&#!/usr/bin/perl&' {} \;
+# Set path to parrot binary and Force permission
+find %{RPM_PAR_LIB_DIR}tools/dev -type f -name "pbc_to_exe.pir" \
+    -exec %{__sed} -i -e '1 s&#! parrot&#!/usr/bin/parrot&' {} \; \
+    -exec chmod 755 {} \;
+
+# Remove doc-files with zero-length
+find docs/html -type f -size 0 -exec rm -f {} \;
+find docs -wholename 'docs/doc-prep' -type f -size 0 -exec rm -f {} \;
+
+# Set path for installed programs in docs package
+find examples -type f \( -name "*.pir" -o \
+                         -wholename 'examples/shootout/random.pasm' \)  \
+    -exec %{__sed} -i -e '1 s&#!.*\(parrot\)&#!/usr/bin/\1&' {} \;
+
+find examples -type f \( -name '*.pl' -o \
+                         -wholename 'examples/pir/befunge/t/basic.t' -o  \
+                         -path 'examples/languages/*/harness'               \) \
+    -exec %{__sed} -i -e '1 s&#! perl&#!/usr/bin/perl&' {} \;
+find examples -type f -name "*.py" \
+    -exec %{__sed} -i -e '1 s&#! python&#!/usr/bin/python&' {} \;
+find examples -type f -name "*.rb" \
+    -exec %{__sed} -i -e '1 s&#! ruby&#!/usr/bin/ruby&' {} \;
+
+find examples -wholename 'examples/languages/abc/t/01-tests.t' \
+    -exec %{__sed} -i -e '1 s&#!perl&#!/usr/bin/perl&' {} \;
+
+find examples -wholename 'examples/languages/abc/t/harness' \
+    -exec %{__perl} -pi -e 's/\r$//' {} \;
+
+#install desktop file
+%{__mkdir} ${RPM_BUILD_ROOT}%{_datadir}/applications/
+%{__tar} xzf %{SOURCE1} parrot_html.desk.in --to-stdout | %{__sed} "s|@DOCDIR@|%{_docdir}/%{name}-docs-%{version}|g" > ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_html.desktop
+%{__tar} xzf %{SOURCE1} parrot_pdf.desk.in --to-stdout | %{__sed} "s|@DOCDIR@|%{_docdir}/%{name}-docs-%{version}|g" > ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_pdf.desktop
+
+desktop-file-install --delete-original --add-category="Documentation"  \
+    --dir=${RPM_BUILD_ROOT}%{_datadir}/applications                    \
+    ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_html.desktop
+desktop-file-install --delete-original --add-category="Documentation"  \
+    --dir=${RPM_BUILD_ROOT}%{_datadir}/applications                    \
+    ${RPM_BUILD_ROOT}%{_datadir}/applications/parrot_pdf.desktop
+
+
+%check
+# 'make fulltest' is done by default; it take a lot of time
+export LD_LIBRARY_PATH=$( pwd )/blib/lib
+FULL='full'
+%{?_without_fulltest: FULL=''}
+%{?!_without_tests: make ${FULL}test; rm -f docs/doc-prep}
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%doc ChangeLog CREDITS NEWS PBC_COMPAT PLATFORMS README
+%doc RESPONSIBLE_PARTIES TODO LICENSE
+%{_bindir}/parrot
+%{_libdir}/parrot/
+%exclude %{_libdir}/parrot/%{version}/tools
+%exclude %{_libdir}/parrot/%{version}/VERSION
+%{_libdir}/libparrot.so.*
+%{_mandir}/man1/parrot.1.gz
+
+%files docs
+%defattr(-,root,root,-)
+%doc docs examples
+%{_datadir}/applications/parrot_html.desktop
+%{_datadir}/applications/parrot_pdf.desktop
+
+%files devel
+%defattr(-,root,root,-)
+%{_bindir}/parrot_config
+%{_bindir}/parrot_debugger
+%{_bindir}/parrot_nci_thunk_gen
+%{_bindir}/parrot-nqp
+%{_bindir}/parrot-prove
+%{_bindir}/pbc_disassemble
+%{_bindir}/pbc_merge
+%{_bindir}/pbc_to_exe
+%{_bindir}/pbc_dump
+%{_bindir}/ops2c
+%{_includedir}/parrot
+%{_libdir}/libparrot.so
+%exclude %{_libdir}/libparrot.a
+%{_libdir}/pkgconfig/*
+%{_mandir}/man1/parrot_config.1.gz
+%{_mandir}/man1/parrot_debugger.1.gz
+%{_mandir}/man1/pbc_disassemble.1.gz
+%{_mandir}/man1/pbc_merge.1.gz
+%{_mandir}/man1/pbc_to_exe.1.gz
+%{_mandir}/man1/pbc_dump.1.gz
+%{_mandir}/man1/parrot-nqp.1.gz
+
+%files tools
+%defattr(-,root,root,-)
+# Files for building languages
+%{_libdir}/parrot/%{version}/tools/*
+%{_libdir}/parrot/%{version}/VERSION
+%{_usr}/src/parrot/*
+
+
+%changelog
+* Fri Jun 18 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.5.0-1
+- updated to 2.5.0
+- add the ops2c binary
+- add the parrot-prove binary
+
+* Tue Apr 20 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.3.0-1
+- add desktop files to access the documentation for reading
+- add the parrot_nci_thunk_gen binary
+
+* Wed Jan 20 2010 Gerd Pokorra <gp at zimt.uni-siegen.de> 2.0.0-1
+- new upstream version
+- add the parrot-nqp binary, with generating of the man-page
+
+* Fri Aug 21 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.5.0-1
+- add man pages
+
+* Sat Aug 1 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.4.0-9
+- include the necessary module Parrot::OpLib::core
+- change the place of header files to /usr/include/parrot/<version>
+- install the files /usr/src/parrot/*
+- add the new disable-rpath configure option
+
+* Wed Mar 25 2009 Gerd Pokorra <gp at zimt.uni-siegen.de> 1.0.0-6
+- add a list of changes from Lubomir Rintel
+- add filtering Provides
+- change requires for docs-subpackage
+- enable test suite
+- change the group of the subpackage "-docs" to Documentation
+- put the main-documentation from the docs-package to the main package
+- LICENSE file added
+- add Provides-lines
+- add patch for the file "tools/dev/install_files.pl"
+- add commands to reduce output of errors when using rpmlint
+- define RPM_PAR_LIB_DIR added
+- add subpackage "tools"
+- exclude tools directory from main-package
+- added make html
+
+* Sun Mar 22 2009 Fabien Georget <fabien.georget at gmail.com> 1.0.0-4
+- add tools
+
+* Sun Mar 22 2009 David Fetter <david at fetter.org> 1.0.0-3
+- Removed wrong prefix from pkgconfig per Christoph Wickert
+
+* Tue Mar 17 2009 Allison Randal <allison at parrot.org> 1.0.0
+- updated to 1.0.0
+
+* Tue Jan 23 2009 Reini Urban <rurban at x-ray.at> 0.9.0
+- added parrot_utils to devel
+
+* Tue Dec 16 2008 Whiteknight <wknight8111 at gmail.com> 0.8.2
+- updated to 0.8.2
+
+* Wed Feb 20 2008 Patrick Michaud <pmichaud at pobox.com> 0.5.3
+- Update to 0.5.3.
+
+* Sat Mar 10 2007 Steven Pritchard <steve at kspei.com> 0.4.9-1
+- Update to 0.4.9.
+- BuildRequires ncurses-devel.
+- For some reason now I need to force -lm too.
+- Remove some files/directories that shouldn't be included.
+- Override lib_dir and make various substitutions to try to fix multilib.
+- Remove rpath use from Makefile.
+- Fix a pod error in src/ops/experimental.ops.
+- Enable "make test" since t/doc/pod.t won't fail now.
+- Force permissions on shared libraries so rpmbuild strips them.
+- Fix URL, description, summary, etc.
+- Add post/postun.
+- Move parrot-config to the devel sub-package.
+- Force permissions on the doc directories.
+- Add -lcurses to get readline detection to work.
+- Add BuildRequires libicu-devel.

Modified: branches/dynop_mapping/runtime/parrot/library/LWP/UserAgent.pir
==============================================================================
--- branches/dynop_mapping/runtime/parrot/library/LWP/UserAgent.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/runtime/parrot/library/LWP/UserAgent.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -17,7 +17,6 @@
 =cut
 
 .namespace ['LWP';'UserAgent']
-.loadlib 'io_ops'
 
 .sub '' :init :load :anon
     load_bytecode 'URI.pbc'
@@ -287,17 +286,19 @@
 .sub 'progress' :method
     .param string status
     .param pmc msg
+    .local pmc stderr
+    stderr = getstderr
     $P0 = getattribute self, 'show_progress'
     if null $P0 goto L1
     unless $P0 goto L1
     unless status == 'begin' goto L2
-    printerr "** "
+    print stderr, "** "
     $P0 = getattribute msg, 'method'
-    printerr $P0
-    printerr " "
+    print stderr, $P0
+    print stderr, " "
     $P0 = getattribute msg, 'uri'
-    printerr $P0
-    printerr " ==> "
+    print stderr, $P0
+    print stderr, " ==> "
     $N1 = time
     $P0 = box $N1
     setattribute self, 'progress_start', $P0
@@ -316,15 +317,15 @@
     setattribute self, 'progress_lastp', $P0
     setattribute self, 'progress_ani', $P0
     $S0 = msg.'status_line'()
-    printerr $S0
+    print stderr, $S0
     $N0 =$N2 - $N1
     $I0 = $N0
     unless $I0 goto L4
-    printerr " ("
-    printerr $I0
-    printerr "s)"
+    print stderr, " ("
+    print stderr, $I0
+    print stderr, "s)"
   L4:
-    printerr "\n"
+    print stderr, "\n"
     goto L1
   L3:
     unless status == 'tick' goto L5
@@ -333,8 +334,8 @@
     $P0 %= 4
     $P1 = split '', '-\|/'
     $S0 = $P1[$P0]
-    printerr $S0
-    printerr "\b"
+    print stderr, $S0
+    print stderr, "\b"
     goto L1
   L5:
     $N0 = status
@@ -347,8 +348,8 @@
     $S0 = $P0
     if $S0 == $S1 goto L1
     set $P0, $S1
-    printerr $S1
-    printerr "\b\b\b\b"
+    print stderr, $S1
+    print stderr, "\b\b\b\b"
   L1:
 .end
 

Modified: branches/dynop_mapping/runtime/parrot/library/P6object.pir
==============================================================================
--- branches/dynop_mapping/runtime/parrot/library/P6object.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/runtime/parrot/library/P6object.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -111,7 +111,8 @@
 .sub 'WHAT' :method :nsentry
     .local pmc how, what
     how = self.'HOW'()
-    .tailcall how.'WHAT'()
+    what = getattribute how, 'protoobject'
+    .return (what)
 .end
 
 
@@ -162,25 +163,13 @@
 
 =over
 
-=item WHAT()
-
-Return the protoobject for this metaclass.
-
-=cut
-
-.namespace ['P6metaclass']
-
-.sub 'WHAT' :method :nsentry
-    $P0 = getattribute self, 'protoobject'
-    .return ($P0)
-.end
-
 =item isa(x)
 
 Return a true value if the invocant 'isa' C<x>.
 
 =cut
 
+.namespace ['P6metaclass']
 .sub 'isa' :method :multi(_,_, _)
     .param pmc obj
     .param pmc x
@@ -829,7 +818,9 @@
     $I0 = 1
 
   end:
-    .return ($I0)
+    $P0 = new ['Boolean']
+    assign $P0, $I0
+    .return ($P0)
 .end
 
 

Modified: branches/dynop_mapping/runtime/parrot/library/Pg.pir
==============================================================================
--- branches/dynop_mapping/runtime/parrot/library/Pg.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/runtime/parrot/library/Pg.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -8,7 +8,7 @@
 =head1 SYNOPSIS
 
   .local pmc pg, con, res
-  pg = get_class 'Pg'
+  pg = new 'Pg'
   con = pg.'connectdb'('dbname = db')
   res = con.'exec'('SELECT * from tab')
   n = res.'ntuples'()
@@ -40,6 +40,7 @@
 ## TODO generate includes from libpq-fe.h
 ## .include 'postgres.pasm'
 
+.HLL 'parrot'
 .const int CONNECTION_OK = 0
 
 .sub __load :load
@@ -61,7 +62,7 @@
 
 =item con = Pg::connectdb('var=val var=val ...')
 
-A class method that returns a new connection object.
+A method that returns a new connection object.
 
 =back
 

Modified: branches/dynop_mapping/runtime/parrot/library/SDL.pir
==============================================================================
--- branches/dynop_mapping/runtime/parrot/library/SDL.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/runtime/parrot/library/SDL.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -91,7 +91,6 @@
     .local pmc env
     env = new 'Env'
     .local string sdlpath
-    say'Hu'
     sdlpath = env['SDLLIBPATH']
     if sdlpath == '' goto default_locations
     say sdlpath

Copied: branches/dynop_mapping/runtime/parrot/library/URI/Escape.pir (from r47980, trunk/runtime/parrot/library/URI/Escape.pir)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/runtime/parrot/library/URI/Escape.pir	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/runtime/parrot/library/URI/Escape.pir)
@@ -0,0 +1,155 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+URI/Escape - percent-encoding conversions
+
+=head1 DESCRIPTION
+
+Based on CPAN URL::Escape module.
+
+Sub names in the CPAN module are not used, reserved for eventual
+implementation more compatible.
+
+http://en.wikipedia.org/wiki/Percent_encoding
+
+=cut
+
+.namespace [ 'URI' ; 'Escape' ]
+
+.const string URIcomponentunchange = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~"
+.const string URIunchange          = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~!*\'();:@&=+$,/?#[]"
+
+.const string hexdigits     = '0123456789ABCDEF'
+
+=head1 Subs
+
+=over 4
+
+=item percent_encode_except
+
+$S0 = 'percent_encode_except'(source, except)
+
+Return the percent encoding of the source string preserving the characters
+present in the except string.
+
+=cut
+
+.sub percent_encode_except
+    .param string s
+    .param string except
+
+    .local int asciicharset, utf8enc, scharset, senc
+    asciicharset = find_charset 'ascii'
+    scharset = charset s
+    if scharset == asciicharset goto encodeit
+
+    utf8enc = find_encoding 'utf8'
+    senc = encoding s
+    if utf8enc == senc goto encodeit
+    s = trans_encoding s, utf8enc
+
+  encodeit:
+    .local pmc buf, result, it
+    .local string c
+    .local int code
+    buf = root_new ['parrot';'ByteBuffer']
+    buf = s
+    result = root_new ['parrot';'ByteBuffer']
+    it = iter buf
+  nextbuf:
+    unless it goto endbuf
+    code = shift it
+    c = chr code
+    $I0 = index except, c
+    if $I0 == -1 goto isreserved
+    push result, code
+    goto nextbuf
+  isreserved:
+    push result, 0x25
+    $I0 = code / 16
+    c = substr hexdigits, $I0, 1
+    $I0 = ord c
+    push result, $I0
+    $I0 = code % 16
+    c = substr hexdigits, $I0, 1
+    $I0 = ord c
+    push result, $I0
+    goto nextbuf
+  endbuf:
+    s = result.'get_string_as'(ascii:"")
+  done:
+    .return(s)
+.end
+
+=item percent_encode
+
+$S0 = 'percent_encode'(source)
+
+Return the percent encoding of the source string preserving the URI unreserved
+characters. Intended for usage with full URIs.
+
+=cut
+
+.sub percent_encode
+    .param string s
+    .tailcall 'percent_encode_except'(s, URIunchange)
+.end
+
+=item percent_encode_component
+
+$S0 = 'percent_encode_component'(source)
+
+Return the percent encoding of the source string prserving the URI unreserved
+and URI reserved characters. Intended for usage with URIs components, such as
+form data in HTTP GET requests.
+
+=cut
+
+.sub percent_encode_component
+    .param string s
+    .tailcall 'percent_encode_except'(s, URIcomponentunchange)
+.end
+
+=item main
+
+A main function for testing purposes.
+
+Prints the percent_encode and percent_encode_component of the command line
+args provided.
+
+=cut
+
+.sub main :anon :main
+    .param pmc args :optional
+    .local pmc it
+    .local string arg, encoded
+    it = iter args
+    unless it goto end
+    arg = shift it
+  next:
+    unless it goto end
+    arg = shift it
+    encoded = 'percent_encode'(arg)
+    print "'"
+    print arg
+    print "' -> '"
+    print encoded
+    print "' , '"
+    encoded = 'percent_encode_component'(arg)
+    print encoded
+    print "'\n"
+    goto next
+  end:
+.end
+
+=back
+
+=cut
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/dynop_mapping/src/call/args.c
==============================================================================
--- branches/dynop_mapping/src/call/args.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/call/args.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -777,19 +777,16 @@
        callee side only. Does not add :call_sig arg support on the caller side.
        This is not the final form of the algorithm, but should provide the
        tools that HLL designers need in the interim. */
-    if (param_count == 1) {
-        const INTVAL first_flag = raw_params[0];
-
-        if (first_flag & PARROT_ARG_CALL_SIG) {
-            *accessor->pmc(interp, arg_info, 0) = call_object;
-            return;
+    if (param_count > 2 || param_count == 0)
+        /* help branch predictors */;
+    else {
+        const INTVAL second_flag = raw_params[param_count - 1];
+        if (second_flag & PARROT_ARG_CALL_SIG) {
+            *accessor->pmc(interp, arg_info, param_count - 1) = call_object;
+            if (param_count == 1)
+                return;
         }
     }
-    else if (param_count == 2) {
-        const INTVAL second_flag = raw_params[1];
-        if (second_flag & PARROT_ARG_CALL_SIG)
-            *accessor->pmc(interp, arg_info, 1) = call_object;
-    }
 
     /* First iterate over positional args and positional parameters. */
     GETATTR_CallContext_num_positionals(interp, call_object, positional_args);
@@ -882,6 +879,14 @@
 
             /* Go ahead and fill the parameter with a positional argument. */
             switch (PARROT_ARG_TYPE_MASK_MASK(param_flags)) {
+              case PARROT_ARG_PMC:
+                *accessor->pmc(interp, arg_info, param_index) =
+                    VTABLE_get_pmc_keyed_int(interp, call_object, arg_index);
+                break;
+              case PARROT_ARG_STRING:
+                *accessor->string(interp, arg_info, param_index) =
+                    VTABLE_get_string_keyed_int(interp, call_object, arg_index);
+                break;
               case PARROT_ARG_INTVAL:
                 *accessor->intval(interp, arg_info, param_index) =
                     VTABLE_get_integer_keyed_int(interp, call_object, arg_index);
@@ -890,14 +895,6 @@
                 *accessor->numval(interp, arg_info, param_index) =
                     VTABLE_get_number_keyed_int(interp, call_object, arg_index);
                 break;
-              case PARROT_ARG_STRING:
-                *accessor->string(interp, arg_info, param_index) =
-                    VTABLE_get_string_keyed_int(interp, call_object, arg_index);
-                break;
-              case PARROT_ARG_PMC:
-                *accessor->pmc(interp, arg_info, param_index) =
-                    VTABLE_get_pmc_keyed_int(interp, call_object, arg_index);
-                break;
               default:
                 Parrot_ex_throw_from_c_args(interp, NULL,
                     EXCEPTION_INVALID_OPERATION, "invalid parameter type");
@@ -959,16 +956,9 @@
     }
 
     /* Now iterate over the named arguments and parameters. */
-    while (1) {
+    while (param_index < param_count) {
         STRING *param_name;
-        INTVAL  param_flags;
-
-        /* Check if we've used up all the parameters. We'll check for leftover
-         * named args after the loop. */
-        if (param_index >= param_count)
-            break;
-
-        param_flags = raw_params[param_index];
+        INTVAL  param_flags = raw_params[param_index];
 
         /* All remaining parameters must be named. */
         if (!(param_flags & PARROT_ARG_NAME))

Modified: branches/dynop_mapping/src/call/context.c
==============================================================================
--- branches/dynop_mapping/src/call/context.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/call/context.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -219,30 +219,24 @@
 clear_regs(PARROT_INTERP, ARGMOD(Parrot_Context *ctx))
 {
     ASSERT_ARGS(clear_regs)
-    UINTVAL i;
+    UINTVAL       i;
+    const UINTVAL s_regs = ctx->n_regs_used[REGNO_STR];
+    const UINTVAL p_regs = ctx->n_regs_used[REGNO_PMC];
 
-    /* NULL out registers - P/S have to be NULL for GC
-     *
-     * if the architecture has 0x := NULL and 0.0 we could memset too
-     */
+    /* NULL out registers - P/S have to be NULL for GC */
+    for (i = 0; i < s_regs; ++i)
+        ctx->bp_ps.regs_s[i] = STRINGNULL;
 
-    for (i = 0; i < ctx->n_regs_used[REGNO_PMC]; ++i) {
+    for (i = 0; i < p_regs; ++i)
         ctx->bp_ps.regs_p[-1L - i] = PMCNULL;
-    }
-
-    for (i = 0; i < ctx->n_regs_used[REGNO_STR]; ++i) {
-        ctx->bp_ps.regs_s[i] = STRINGNULL;
-    }
 
     if (Interp_debug_TEST(interp, PARROT_REG_DEBUG_FLAG)) {
         /* depending on -D40, set int and num to identifiable garbage values */
-        for (i = 0; i < ctx->n_regs_used[REGNO_INT]; ++i) {
+        for (i = 0; i < ctx->n_regs_used[REGNO_INT]; ++i)
             ctx->bp.regs_i[i] = -999;
-        }
 
-        for (i = 0; i < ctx->n_regs_used[REGNO_NUM]; ++i) {
+        for (i = 0; i < ctx->n_regs_used[REGNO_NUM]; ++i)
             ctx->bp.regs_n[-1L - i] = -99.9;
-        }
     }
 }
 
@@ -261,12 +255,7 @@
 init_context(PARROT_INTERP, ARGMOD(PMC *pmcctx), ARGIN_NULLOK(PMC *pmcold))
 {
     ASSERT_ARGS(init_context)
-    Parrot_Context * const ctx    = CONTEXT_STRUCT(pmcctx);
-
-    /* pmcold may be null */
-    Parrot_Context *old    = PMC_IS_NULL(pmcold)
-                           ? NULL
-                           : CONTEXT_STRUCT(pmcold);
+    Parrot_Context * const ctx = CONTEXT_STRUCT(pmcctx);
 
     PARROT_ASSERT_MSG(!PMC_IS_NULL(pmcctx), "Can't initialise Null CallContext");
 
@@ -286,7 +275,17 @@
     ctx->current_sig       = PMCNULL;
     ctx->current_sub       = PMCNULL;
 
-    if (old) {
+    if (PMC_IS_NULL(pmcold)) {
+        ctx->constants         = NULL;
+        ctx->warns             = 0;
+        ctx->errors            = 0;
+        ctx->trace_flags       = 0;
+        ctx->current_HLL       = 0;
+        ctx->current_namespace = PMCNULL;
+        ctx->recursion_depth   = 0;
+    }
+    else {
+        Parrot_Context *old = CONTEXT_STRUCT(pmcold);
         /* some items should better be COW copied */
         ctx->constants         = old->constants;
         ctx->warns             = old->warns;
@@ -298,18 +297,6 @@
         ctx->recursion_depth   = old->recursion_depth;
         ctx->caller_ctx        = pmcold;
     }
-    else {
-        ctx->constants         = NULL;
-        ctx->warns             = 0;
-        ctx->errors            = 0;
-        ctx->trace_flags       = 0;
-        ctx->current_HLL       = 0;
-        ctx->current_namespace = PMCNULL;
-        ctx->recursion_depth   = 0;
-    }
-
-    /* other stuff is set inside Sub.invoke */
-    clear_regs(interp, ctx);
 }
 
 
@@ -467,7 +454,11 @@
         ARGIN(const UINTVAL *number_regs_used))
 {
     ASSERT_ARGS(Parrot_pcc_allocate_registers)
-    allocate_registers(interp, pmcctx, number_regs_used);
+    if (number_regs_used[0]
+    ||  number_regs_used[1]
+    ||  number_regs_used[2]
+    ||  number_regs_used[3])
+        allocate_registers(interp, pmcctx, number_regs_used);
 }
 
 

Modified: branches/dynop_mapping/src/call/context_accessors.c
==============================================================================
--- branches/dynop_mapping/src/call/context_accessors.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/call/context_accessors.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -35,8 +35,9 @@
 
 PARROT_EXPORT
 PARROT_CAN_RETURN_NULL
+PARROT_PURE_FUNCTION
 Parrot_Context*
-Parrot_pcc_get_context_struct_func(PARROT_INTERP, ARGIN_NULLOK(PMC *ctx))
+Parrot_pcc_get_context_struct_func(SHIM_INTERP, ARGIN_NULLOK(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_context_struct_func)
 
@@ -62,8 +63,9 @@
 
 PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
+PARROT_PURE_FUNCTION
 struct PackFile_Constant **
-Parrot_pcc_get_constants_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_constants_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_constants_func)
     return CONTEXT_STRUCT(ctx)->constants;
@@ -72,7 +74,7 @@
 PARROT_EXPORT
 PARROT_CAN_RETURN_NULL
 void
-Parrot_pcc_set_constants_func(PARROT_INTERP, ARGIN(PMC *ctx),
+Parrot_pcc_set_constants_func(SHIM_INTERP, ARGIN(PMC *ctx),
         ARGIN_NULLOK(struct PackFile_Constant **constants))
 {
     ASSERT_ARGS(Parrot_pcc_set_constants_func)
@@ -91,11 +93,12 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 UINTVAL
-Parrot_pcc_get_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_recursion_depth_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->recursion_depth;
 }
 
@@ -111,7 +114,7 @@
 
 PARROT_EXPORT
 UINTVAL
-Parrot_pcc_inc_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_inc_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_inc_recursion_depth_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -130,7 +133,7 @@
 
 PARROT_EXPORT
 UINTVAL
-Parrot_pcc_dec_recursion_depth_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_dec_recursion_depth_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_dec_recursion_depth_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -151,18 +154,19 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PMC*
-Parrot_pcc_get_caller_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_caller_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_caller_ctx_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->caller_ctx;
 }
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_caller_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *caller_ctx))
+Parrot_pcc_set_caller_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *caller_ctx))
 {
     ASSERT_ARGS(Parrot_pcc_set_caller_ctx_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -183,18 +187,19 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PMC*
-Parrot_pcc_get_outer_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_outer_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_outer_ctx_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->outer_ctx;
 }
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_outer_ctx_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *outer_ctx))
+Parrot_pcc_set_outer_ctx_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *outer_ctx))
 {
     ASSERT_ARGS(Parrot_pcc_set_outer_ctx_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -214,18 +219,19 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CANNOT_RETURN_NULL
 PMC*
-Parrot_pcc_get_lex_pad_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_lex_pad_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_lex_pad_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->lex_pad;
 }
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_lex_pad_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *lex_pad))
+Parrot_pcc_set_lex_pad_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *lex_pad))
 {
     ASSERT_ARGS(Parrot_pcc_set_lex_pad_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -246,18 +252,19 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PMC*
-Parrot_pcc_get_namespace_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_namespace_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_namespace_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->current_namespace;
 }
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_namespace_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_namespace))
+Parrot_pcc_set_namespace_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_namespace))
 {
     ASSERT_ARGS(Parrot_pcc_set_namespace_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -277,17 +284,18 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 INTVAL
-Parrot_pcc_get_HLL_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_HLL_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_HLL_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->current_HLL;
 }
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_HLL_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL hll)
+Parrot_pcc_set_HLL_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL hll)
 {
     ASSERT_ARGS(Parrot_pcc_set_HLL_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -308,19 +316,20 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PMC*
-Parrot_pcc_get_handlers_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_handlers_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_handlers_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->handlers;
 }
 
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_handlers_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *handlers))
+Parrot_pcc_set_handlers_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN(PMC *handlers))
 {
     ASSERT_ARGS(Parrot_pcc_set_handlers_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -341,18 +350,19 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PMC*
-Parrot_pcc_get_continuation_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_continuation_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_continuation_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->current_cont;
 }
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_continuation_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_continuation))
+Parrot_pcc_set_continuation_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *_continuation))
 {
     ASSERT_ARGS(Parrot_pcc_set_continuation_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -373,18 +383,19 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PMC*
-Parrot_pcc_get_signature_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_signature_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_signature_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->current_sig;
 }
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_signature_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *sig_object))
+Parrot_pcc_set_signature_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *sig_object))
 {
     ASSERT_ARGS(Parrot_pcc_set_signature_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -404,18 +415,19 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PMC*
-Parrot_pcc_get_object_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_object_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_object_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->current_object;
 }
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_object_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *object))
+Parrot_pcc_set_object_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *object))
 {
     ASSERT_ARGS(Parrot_pcc_set_object_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -435,18 +447,19 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 opcode_t*
-Parrot_pcc_get_pc_func(PARROT_INTERP, ARGIN(PMC *ctx))
+Parrot_pcc_get_pc_func(SHIM_INTERP, ARGIN(PMC *ctx))
 {
     ASSERT_ARGS(Parrot_pcc_get_pc_func)
-    const Parrot_Context *c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->current_pc;
 }
 
 PARROT_EXPORT
 void
-Parrot_pcc_set_pc_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(opcode_t *pc))
+Parrot_pcc_set_pc_func(SHIM_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(opcode_t *pc))
 {
     ASSERT_ARGS(Parrot_pcc_set_pc_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -466,7 +479,7 @@
 
 PARROT_EXPORT
 UINTVAL
-Parrot_pcc_warnings_on_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_warnings_on_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pcc_warnings_on_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -488,7 +501,7 @@
 
 PARROT_EXPORT
 void
-Parrot_pcc_warnings_off_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_warnings_off_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pcc_warnings_off_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -508,11 +521,12 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 UINTVAL
-Parrot_pcc_warnings_test_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_warnings_test_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pcc_warnings_test_func)
-    Parrot_Context * const c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->warns & flags;
 }
 
@@ -528,7 +542,7 @@
 
 PARROT_EXPORT
 void
-Parrot_pcc_errors_on_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_errors_on_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pcc_errors_on_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -548,7 +562,7 @@
 
 PARROT_EXPORT
 void
-Parrot_pcc_errors_off_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_errors_off_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pcc_errors_off_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -567,11 +581,12 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 UINTVAL
-Parrot_pcc_errors_test_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_errors_test_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pcc_errors_test_func)
-    Parrot_Context * const c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->errors & flags;
 }
 
@@ -588,7 +603,7 @@
 
 PARROT_EXPORT
 void
-Parrot_pcc_trace_flags_on_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_trace_flags_on_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pcc_trace_flags_on_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -609,7 +624,7 @@
 
 PARROT_EXPORT
 void
-Parrot_pcc_trace_flags_off_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_trace_flags_off_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pcc_trace_flags_off_func)
     Parrot_Context * const c = CONTEXT_STRUCT(ctx);
@@ -628,11 +643,12 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 UINTVAL
-Parrot_pcc_trace_flags_test_func(PARROT_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
+Parrot_pcc_trace_flags_test_func(SHIM_INTERP, ARGIN(PMC *ctx), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pcc_trace_flags_test_func)
-    Parrot_Context * const c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     return c->trace_flags & flags;
 }
 
@@ -658,45 +674,49 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 INTVAL
-Parrot_pcc_get_int_constant_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_int_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
 {
     ASSERT_ARGS(Parrot_pcc_get_int_constant_func)
-    const Parrot_Context * c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     PARROT_ASSERT(c->constants[idx]->type == 'i');
     return c->constants[idx]->u.integer;
 }
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 FLOATVAL
-Parrot_pcc_get_num_constant_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_num_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
 {
     ASSERT_ARGS(Parrot_pcc_get_num_constant_func)
-    const Parrot_Context * c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     PARROT_ASSERT(c->constants[idx]->type == 'n');
     return c->constants[idx]->u.number;
 }
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 STRING*
-Parrot_pcc_get_string_constant_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_string_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
 {
     ASSERT_ARGS(Parrot_pcc_get_string_constant_func)
-    const Parrot_Context * c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     PARROT_ASSERT(c->constants[idx]->type == 's');
     return c->constants[idx]->u.string;
 }
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PMC*
-Parrot_pcc_get_pmc_constant_func(PARROT_INTERP, ARGIN(PMC *ctx), INTVAL idx)
+Parrot_pcc_get_pmc_constant_func(SHIM_INTERP, ARGIN(PMC *ctx), INTVAL idx)
 {
     ASSERT_ARGS(Parrot_pcc_get_pmc_constant_func)
-    const Parrot_Context * c = CONTEXT_STRUCT(ctx);
+    const Parrot_Context * const c = CONTEXT_STRUCT(ctx);
     PARROT_ASSERT((c->constants[idx]->type == 'k')
             || (c->constants[idx]->type == 'p'));
     return c->constants[idx]->u.key;

Modified: branches/dynop_mapping/src/call/pcc.c
==============================================================================
--- branches/dynop_mapping/src/call/pcc.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/call/pcc.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -291,12 +291,19 @@
 {
     ASSERT_ARGS(do_run_ops)
 
-    if (sub_obj->vtable->base_type < enum_class_core_max)
-        return sub_obj->vtable->base_type == enum_class_Sub
-            || sub_obj->vtable->base_type == enum_class_MultiSub
-            || sub_obj->vtable->base_type == enum_class_Eval;
-    else
-        return is_invokable(interp, sub_obj);
+    if (sub_obj->vtable->base_type < enum_class_core_max) {
+        switch (sub_obj->vtable->base_type) {
+          case enum_class_Sub:
+          case enum_class_MultiSub:
+          case enum_class_Eval:
+            return 1;
+          case enum_class_Object:
+            break;
+          default:
+            return 0;
+        }
+    }
+    return is_invokable(interp, sub_obj);
 }
 
 /*
@@ -352,7 +359,7 @@
 
     /* PIR Subs need runops to run their opcodes. Methods and NCI subs
      * don't. */
-    if (do_run_ops(interp, sub_obj)) {
+    if (dest && do_run_ops(interp, sub_obj)) {
         Parrot_runcore_t *old_core = interp->run_core;
         const opcode_t offset = dest - interp->code->base.data;
 

Modified: branches/dynop_mapping/src/dynpmc/Defines.in
==============================================================================
--- branches/dynop_mapping/src/dynpmc/Defines.in	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/dynpmc/Defines.in	Sun Jul  4 06:24:50 2010	(r47981)
@@ -41,7 +41,6 @@
     include/parrot/extend_vtable.h \
     include/parrot/feature.h \
     include/parrot/gc_api.h \
-    include/parrot/global.h \
     include/parrot/global_setup.h \
     include/parrot/has_header.h \
     include/parrot/hash.h \
@@ -54,6 +53,7 @@
     include/parrot/memory.h \
     include/parrot/misc.h \
     include/parrot/multidispatch.h \
+    include/parrot/namespace.h \
     include/parrot/nci.h \
     include/parrot/oo.h \
     include/parrot/op.h \

Modified: branches/dynop_mapping/src/dynpmc/gziphandle.pmc
==============================================================================
--- branches/dynop_mapping/src/dynpmc/gziphandle.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/dynpmc/gziphandle.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -27,7 +27,7 @@
 /* HEADERIZER BEGIN: static */
 /* HEADERIZER END: static */
 
-pmclass GzipHandle provides Handle dynpmc auto_attrs {
+pmclass GzipHandle extends Handle dynpmc auto_attrs {
     ATTR void *file;
 
 /*
@@ -224,6 +224,8 @@
 
 */
     METHOD is_tty() {
+        Parrot_warn_deprecated(INTERP,
+            "'is_tty' is deprecated, use 'isatty' instead - TT #1689");
         RETURN(INTVAL 0);
     }
 

Modified: branches/dynop_mapping/src/extend.c
==============================================================================
--- branches/dynop_mapping/src/extend.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/extend.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -180,6 +180,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_PMC
 Parrot_get_root_namespace(PARROT_INTERP)
 {
@@ -243,6 +244,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_PMC
 Parrot_PMC_null(void)
 {
@@ -337,6 +339,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_Int
 Parrot_get_intreg(PARROT_INTERP, Parrot_Int regnum)
 {
@@ -355,6 +358,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_Float
 Parrot_get_numreg(PARROT_INTERP, Parrot_Int regnum)
 {
@@ -373,6 +377,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_String
 Parrot_get_strreg(PARROT_INTERP, Parrot_Int regnum)
 {
@@ -391,6 +396,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_PMC
 Parrot_get_pmcreg(PARROT_INTERP, Parrot_Int regnum)
 {
@@ -513,7 +519,8 @@
 
 /*
 
-=item C<Parrot_Language Parrot_find_language(PARROT_INTERP, char *language)>
+=item C<Parrot_Language Parrot_find_language(PARROT_INTERP, const char
+*language)>
 
 Find the magic language token for a language, by language name.
 
@@ -522,9 +529,10 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 Parrot_Language
-Parrot_find_language(SHIM_INTERP, SHIM(char *language))
+Parrot_find_language(SHIM_INTERP, SHIM(const char *language))
 {
     ASSERT_ARGS(Parrot_find_language)
     return 0;

Modified: branches/dynop_mapping/src/gc/gc_private.h
==============================================================================
--- branches/dynop_mapping/src/gc/gc_private.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/gc/gc_private.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -85,7 +85,7 @@
 
 typedef enum _gc_sys_type_enum {
     MS,  /*mark and sweep*/
-    INF /*infinite memory core*/
+    INF  /*infinite memory core*/
 } gc_sys_type_enum;
 
 /* how often to skip a full GC when this pool has nothing free */

Deleted: branches/dynop_mapping/src/global.c
==============================================================================
--- branches/dynop_mapping/src/global.c	Sun Jul  4 06:24:50 2010	(r47980)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,854 +0,0 @@
-/*
-Copyright (C) 2004-2009, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/global.c
-
-=head1 DESCRIPTION
-
-Access to global PMCs
-
-=head1 FUNCTIONS
-
-=over 4
-
-=cut
-
-*/
-
-#include "parrot/parrot.h"
-#include "global.str"
-#include "pmc/pmc_sub.h"
-#include "pmc/pmc_callcontext.h"
-
-/* HEADERIZER HFILE: include/parrot/global.h */
-/* HEADERIZER BEGIN: static */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * get_namespace_pmc(PARROT_INTERP, ARGIN(PMC *sub_pmc))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * internal_ns_keyed(PARROT_INTERP,
-    ARGIN(PMC *base_ns),
-    ARGIN(PMC *pmc_key),
-    int flags)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * internal_ns_keyed_key(PARROT_INTERP,
-    ARGIN(PMC *ns),
-    ARGIN(PMC *key),
-    int flags)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * internal_ns_keyed_str(PARROT_INTERP,
-    ARGIN(PMC *base_ns),
-    ARGIN(STRING *key),
-    int flags)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC * internal_ns_maybe_create(PARROT_INTERP,
-    ARGIN(PMC *ns),
-    ARGIN(STRING *key),
-    int flags)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-static void store_sub_in_multi(PARROT_INTERP,
-    ARGIN(PMC *sub_pmc),
-    ARGIN(PMC *ns))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
-
-#define ASSERT_ARGS_get_namespace_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(sub_pmc))
-#define ASSERT_ARGS_internal_ns_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(base_ns) \
-    , PARROT_ASSERT_ARG(pmc_key))
-#define ASSERT_ARGS_internal_ns_keyed_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ns) \
-    , PARROT_ASSERT_ARG(key))
-#define ASSERT_ARGS_internal_ns_keyed_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(base_ns) \
-    , PARROT_ASSERT_ARG(key))
-#define ASSERT_ARGS_internal_ns_maybe_create __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(ns) \
-    , PARROT_ASSERT_ARG(key))
-#define ASSERT_ARGS_store_sub_in_multi __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(sub_pmc) \
-    , PARROT_ASSERT_ARG(ns))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
-/* HEADERIZER END: static */
-
-#define DEBUG_GLOBAL 0
-
-/* flags for internal_ns_keyed */
-#define INTERN_NS_CREAT 1       /* I'm a fan of the classics */
-
-/*
-
-=item C<static PMC * internal_ns_keyed_str(PARROT_INTERP, PMC *base_ns, STRING
-*key, int flags)>
-
-Internal function to do keyed namespace lookup relative to a given namespace
-PMC.  Understands STRINGs.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-internal_ns_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
-    ARGIN(STRING *key), int flags)
-{
-    ASSERT_ARGS(internal_ns_keyed_str)
-    PMC * const ns = VTABLE_get_pmc_keyed_str(interp, base_ns, key);
-
-    if (!PMC_IS_NULL(ns) && VTABLE_isa(interp, ns, CONST_STRING(interp, "NameSpace")))
-        return ns;
-
-    return internal_ns_maybe_create(interp, base_ns, key, flags);
-}
-
-/*
-
-=item C<static PMC * internal_ns_keyed_key(PARROT_INTERP, PMC *ns, PMC *key, int
-flags)>
-
-Internal function to do keyed namespace lookup relative to a given namespace
-PMC.  Understands Key PMCs.  Used from C<internal_ns_keyed>.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-internal_ns_keyed_key(PARROT_INTERP, ARGIN(PMC *ns), ARGIN(PMC *key), int flags)
-{
-    ASSERT_ARGS(internal_ns_keyed_key)
-    while (key) {
-        STRING * const part = VTABLE_get_string(interp, key);
-        PMC    *sub_ns      = VTABLE_get_pmc_keyed_str(interp, ns, part);
-
-        if (PMC_IS_NULL(sub_ns) || !VTABLE_isa(interp, sub_ns, CONST_STRING(interp, "NameSpace"))) {
-            sub_ns = internal_ns_maybe_create(interp, ns, part, flags);
-
-            if (PMC_IS_NULL(sub_ns))
-                return PMCNULL;
-        }
-
-        ns  = sub_ns;
-        key = VTABLE_shift_pmc(interp, key);
-    }
-
-    return ns;
-}
-
-/*
-
-=item C<static PMC * internal_ns_keyed(PARROT_INTERP, PMC *base_ns, PMC
-*pmc_key, int flags)>
-
-internal_ns_keyed: Internal function to do keyed namespace lookup relative to a
-given namespace PMC.  Understands String, Key, and array PMCs containing
-strings.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-internal_ns_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN(PMC *pmc_key), int flags)
-{
-    ASSERT_ARGS(internal_ns_keyed)
-
-    if (VTABLE_isa(interp, pmc_key, CONST_STRING(interp, "String"))) {
-        STRING * const str_key = VTABLE_get_string(interp, pmc_key);
-        return internal_ns_keyed_str(interp, base_ns, str_key, flags);
-    }
-    else if (pmc_key->vtable->base_type == enum_class_Key)
-        return internal_ns_keyed_key(interp, base_ns, pmc_key, flags);
-    else {
-        /* array of strings */
-        STRING * const isans = CONST_STRING(interp, "NameSpace");
-        const INTVAL n = VTABLE_elements(interp, pmc_key);
-        INTVAL i;
-        PMC *ns = base_ns;
-
-        for (i = 0; i < n; ++i) {
-            STRING * const part = VTABLE_get_string_keyed_int(interp, pmc_key, i);
-            PMC *sub_ns = VTABLE_get_pmc_keyed_str(interp, ns, part);
-
-            if (PMC_IS_NULL(sub_ns) || !VTABLE_isa(interp, sub_ns, isans)) {
-                sub_ns = internal_ns_maybe_create(interp, ns, part, flags);
-                if (PMC_IS_NULL(sub_ns))
-                    return PMCNULL;
-            }
-            ns = sub_ns;
-        }
-        return ns;
-    }
-}
-
-/*
-
-=item C<static PMC * internal_ns_maybe_create(PARROT_INTERP, PMC *ns, STRING
-*key, int flags)>
-
-Given the a namespace PMC, a STRING containing a name, and flags from
-C<internal_ns_keyed> or C<internal_ns_keyed_str>, creates and returns a new
-namespace with the given name in the given namespace.  This is an internal
-function only.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-internal_ns_maybe_create(PARROT_INTERP, ARGIN(PMC *ns), ARGIN(STRING *key), int flags)
-{
-    ASSERT_ARGS(internal_ns_maybe_create)
-    PMC *sub_ns;
-
-    /* TT #1220 - stop depending on typed namespace */
-    if (!(flags & INTERN_NS_CREAT))
-        return PMCNULL;
-
-    /* TT #1221 - match HLL of enclosing namespace? */
-    sub_ns = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp,
-                                                 enum_class_NameSpace));
-
-    if (PMC_IS_NULL(sub_ns))
-        return PMCNULL;
-
-    VTABLE_set_pmc_keyed_str(interp, ns, key, sub_ns);
-
-    return sub_ns;
-}
-
-
-/*
-
-=item C<PMC * Parrot_get_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
-*pmc_key)>
-
-Find the namespace relative to the namespace C<base_ns> with the key
-C<pmc_key>, which may be a String, a Key, or an array of strings.  Return
-the namespace, or NULL if not found.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_get_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN(PMC *pmc_key))
-{
-    ASSERT_ARGS(Parrot_get_namespace_keyed)
-    return internal_ns_keyed(interp, base_ns, pmc_key, 0);
-}
-
-/*
-
-=item C<PMC * Parrot_get_namespace_keyed_str(PARROT_INTERP, PMC *base_ns, STRING
-*str_key)>
-
-Find the namespace relative to the namespace C<base_ns> with the string key
-C<str_key>.  Return the namespace, or NULL if not found.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_get_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
-        ARGIN_NULLOK(STRING *str_key))
-{
-    ASSERT_ARGS(Parrot_get_namespace_keyed_str)
-    return internal_ns_keyed_str(interp, base_ns, str_key, 0);
-}
-
-/*
-
-=item C<PMC * Parrot_make_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
-*pmc_key)>
-
-Find, or create if necessary, the namespace relative to the namespace
-C<base_ns> with the key C<pmc_key>, which may be a String, a Key, or an
-array of strings.  Return the namespace.  Errors will result in exceptions.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_make_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns),
-        ARGIN(PMC *pmc_key))
-{
-    ASSERT_ARGS(Parrot_make_namespace_keyed)
-    return internal_ns_keyed(interp, base_ns, pmc_key, INTERN_NS_CREAT);
-}
-
-/*
-
-=item C<PMC * Parrot_make_namespace_keyed_str(PARROT_INTERP, PMC *base_ns,
-STRING *str_key)>
-
-Find, or create if necessary, the namespace relative to the namespace
-C<base_ns> with the string key C<str_key>.  Return the namespace.  Errors
-will result in exceptions.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_make_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
-        ARGIN(STRING *str_key))
-{
-    ASSERT_ARGS(Parrot_make_namespace_keyed_str)
-    return internal_ns_keyed_str(interp, base_ns, str_key, INTERN_NS_CREAT);
-}
-
-
-/*
-
-=item C<PMC * Parrot_make_namespace_autobase(PARROT_INTERP, PMC *key)>
-
-Find, or create if necessary, a namespace with the key C<key>, which may be a
-String, a Key, or an array of strings. If it is a String, then the lookup is
-relative to the current namespace. Otherwise, it is relative to the current HLL
-root namespace. Return the namespace.  Errors will result in exceptions.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_make_namespace_autobase(PARROT_INTERP, ARGIN_NULLOK(PMC *key))
-{
-    ASSERT_ARGS(Parrot_make_namespace_autobase)
-    PMC *base_ns;
-    if (VTABLE_isa(interp, key, CONST_STRING(interp, "String")))
-        base_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    else
-        base_ns = VTABLE_get_pmc_keyed_int(interp, interp->HLL_namespace,
-            Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
-    return Parrot_make_namespace_keyed(interp, base_ns, key);
-}
-
-/*
-
-=item C<PMC * Parrot_ns_get_name(PARROT_INTERP, PMC *_namespace)>
-
-Retrieve an array of names from a namespace object.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_ns_get_name(PARROT_INTERP, ARGIN(PMC *_namespace))
-{
-    ASSERT_ARGS(Parrot_ns_get_name)
-    PMC *names;
-    Parrot_pcc_invoke_method_from_c_args(interp, _namespace, CONST_STRING(interp, "get_name"), "->P", &names);
-    return names;
-}
-
-/*
-
-=item C<PMC * Parrot_get_global(PARROT_INTERP, PMC *ns, STRING *globalname)>
-
-Parrot_get_global allows a null namespace without throwing an exception; it
-simply returns PMCNULL in that case.
-
-NOTE: At present the use of the {get, set}_global functions is mandatory due to the
-      wacky namespace typing of the default Parrot namespace.  Eventually it will be
-      safe to just use the standard hash interface (if desired).
-
-Look up the global named C<globalname> in the namespace C<ns>.  Return the
-global, or return PMCNULL if C<ns> is null or if the global is not found.
-
-KLUDGE ALERT: Currently prefers non-namespaces in case of collision.
-
-=cut
-
-*/
-
-
-/*
- * {get, set}_global.
- *
- * Parrot_get_global allows a null namespace without throwing an exception; it
- * simply returns PMCNULL in that case.
- *
- * NOTE: At present the use of the {get, set}_global functions is mandatory due to the
- *       wacky namespace typing of the default Parrot namespace.  Eventually it will be
- *       safe to just use the standard hash interface (if desired).
- */
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_get_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
-{
-    ASSERT_ARGS(Parrot_get_global)
-    if (PMC_IS_NULL(ns))
-        return PMCNULL;
-
-    return (PMC *)VTABLE_get_pointer_keyed_str(interp, ns, globalname);
-}
-
-/*
-
-=item C<void Parrot_set_global(PARROT_INTERP, PMC *ns, STRING *globalname, PMC
-*val)>
-
-Set the global named C<globalname> in the namespace C<ns> to the value C<val>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_set_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
-        ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
-{
-    ASSERT_ARGS(Parrot_set_global)
-    VTABLE_set_pmc_keyed_str(interp, ns, globalname, val);
-}
-
-
-/*
-
-=item C<PMC * Parrot_find_global_n(PARROT_INTERP, PMC *ns, STRING *globalname)>
-
-Search the namespace PMC C<ns> for an object with name C<globalname>.
-Return the object, or NULL if not found.
-
-TT #1222 - For now this function prefers non-namespaces, it will eventually
-entirely use the untyped interface.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_find_global_n(PARROT_INTERP, ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
-{
-    ASSERT_ARGS(Parrot_find_global_n)
-    PMC *res;
-
-#if DEBUG_GLOBAL
-    if (globalname)
-        Parrot_io_printf(interp, "find_global name '%Ss'\n", globalname);
-#endif
-
-    if (PMC_IS_NULL(ns))
-        res = PMCNULL;
-    else {
-        /*
-         * TT #1219 - we should be able to use 'get_pmc_keyed' here,
-         * but we can't because Parrot's default namespaces are not
-         * fully typed and there's a pseudo-typed interface that
-         * distinguishes 'get_pmc_keyed' from 'get_pointer_keyed';
-         * the former is for NS and the latter is for non-NS.
-         */
-        res = (PMC *)VTABLE_get_pointer_keyed_str(interp, ns, globalname);
-    }
-
-    return PMC_IS_NULL(res) ? NULL : res;
-}
-
-/*
-
-=item C<PMC * Parrot_find_global_cur(PARROT_INTERP, STRING *globalname)>
-
-Finds and returns the data time named C<globalname> in the current namespace.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_find_global_cur(PARROT_INTERP, ARGIN_NULLOK(STRING *globalname))
-{
-    ASSERT_ARGS(Parrot_find_global_cur)
-    PMC * const ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    return Parrot_find_global_n(interp, ns, globalname);
-}
-
-/*
-
-=item C<PMC * Parrot_find_global_s(PARROT_INTERP, STRING *str_key, STRING
-*globalname)>
-
-Search the namespace designated by C<str_key>, or the HLL root if
-C<str_key> is NULL, for an object with name C<globalname>.  Return the
-object, or NULL if not found.
-
-TT #1222 - For now this function prefers non-namespaces, it will eventually
-entirely use the untyped interface.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_find_global_s(PARROT_INTERP, ARGIN_NULLOK(STRING *str_key),
-        ARGIN_NULLOK(STRING *globalname))
-{
-    ASSERT_ARGS(Parrot_find_global_s)
-    PMC *const ns =
-        Parrot_get_namespace_keyed_str(interp,
-                                       Parrot_get_ctx_HLL_namespace(interp),
-                                       str_key);
-    return Parrot_find_global_n(interp, ns, globalname);
-}
-
-/*
-
-=item C<void Parrot_store_global_n(PARROT_INTERP, PMC *ns, STRING *globalname,
-PMC *val)>
-
-Store the PMC C<val> into the namespace PMC C<ns> with name C<globalname>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_store_global_n(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
-        ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
-{
-    ASSERT_ARGS(Parrot_store_global_n)
-#if DEBUG_GLOBAL
-    if (globalname)
-        Parrot_io_printf(interp, "store_global name '%Ss'\n", globalname);
-#endif
-
-    if (PMC_IS_NULL(ns))
-        return;
-
-    VTABLE_set_pmc_keyed_str(interp, ns, globalname, val);
-}
-
-/*
-
-=item C<void Parrot_store_global_s(PARROT_INTERP, STRING *str_key, STRING
-*globalname, PMC *val)>
-
-Store the PMC C<val> into the namespace designated by C<str_key>, or
-the HLL root if C<str_key> is NULL, with the name C<globalname>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_store_global_s(PARROT_INTERP, ARGIN_NULLOK(STRING *str_key),
-        ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
-{
-    ASSERT_ARGS(Parrot_store_global_s)
-    PMC * const ns = Parrot_make_namespace_keyed_str(interp,
-                                         Parrot_get_ctx_HLL_namespace(interp),
-                                         str_key);
-
-    Parrot_store_global_n(interp, ns, globalname, val);
-
-    /* TT #1225 - method cache invalidation should be a namespace function */
-    Parrot_invalidate_method_cache(interp, str_key);
-}
-
-
-/*
-
-=item C<PMC * Parrot_find_global_op(PARROT_INTERP, PMC *ns, STRING *globalname,
-void *next)>
-
-If the global exists in the given namespace PMC, return it.  If not, return
-PMCNULL.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-PMC *
-Parrot_find_global_op(PARROT_INTERP, ARGIN(PMC *ns),
-        ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(void *next))
-{
-    ASSERT_ARGS(Parrot_find_global_op)
-    PMC *res;
-
-    if (STRING_IS_NULL(globalname))
-        Parrot_ex_throw_from_c_args(interp, next, EXCEPTION_GLOBAL_NOT_FOUND,
-            "Tried to get null global");
-
-    res = Parrot_find_global_n(interp, ns, globalname);
-    if (!res)
-        res = PMCNULL;
-
-    return res;
-}
-
-
-/*
-
-=item C<PMC * Parrot_find_name_op(PARROT_INTERP, STRING *name, void *next)>
-
-TT #1223 - THIS IS BROKEN - it doesn't walk up the scopes yet
-
-Find the given C<name> in lexicals, then the current namespace, then the HLL
-root namespace, and finally Parrot builtins.  If the name isn't found
-anywhere, return PMCNULL.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC *
-Parrot_find_name_op(PARROT_INTERP, ARGIN(STRING *name), SHIM(void *next))
-{
-    ASSERT_ARGS(Parrot_find_name_op)
-    PMC * const ctx     = CURRENT_CONTEXT(interp);
-    PMC * const lex_pad = Parrot_find_pad(interp, name, ctx);
-    PMC *g;
-
-    if (PMC_IS_NULL(lex_pad))
-        g = PMCNULL;
-    else
-        g = VTABLE_get_pmc_keyed_str(interp, lex_pad, name);
-
-    /* TT #1223 - walk up the scopes!  duh!! */
-
-    if (PMC_IS_NULL(g))
-        g = Parrot_find_global_cur(interp, name);
-
-    if (PMC_IS_NULL(g))
-        g = Parrot_find_global_n(interp, Parrot_get_ctx_HLL_namespace(interp), name);
-
-    if (PMC_IS_NULL(g))
-        return PMCNULL;
-    else
-        return g;
-}
-
-/*
-
-=item C<static PMC * get_namespace_pmc(PARROT_INTERP, PMC *sub_pmc)>
-
-Return the namespace PMC associated with the PMC C<sub>. If C<sub> is NULL,
-return the Associated HLL namespace PMC instead.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-static PMC *
-get_namespace_pmc(PARROT_INTERP, ARGIN(PMC *sub_pmc))
-{
-    ASSERT_ARGS(get_namespace_pmc)
-    Parrot_Sub_attributes *sub;
-    PMC        *nsname, *nsroot;
-
-    PMC_get_sub(interp, sub_pmc, sub);
-    nsname = sub->namespace_name;
-    nsroot = Parrot_get_HLL_namespace(interp, sub->HLL_id);
-
-    /* If we have a NULL, return the HLL namespace */
-    if (PMC_IS_NULL(nsname))
-        return nsroot;
-    /* If we have a String, do a string lookup */
-    else if (nsname->vtable->base_type == enum_class_String)
-        return Parrot_make_namespace_keyed_str(interp, nsroot,
-                VTABLE_get_string(interp, nsname));
-    /* Otherwise, do a PMC lookup */
-    else
-        return Parrot_make_namespace_keyed(interp, nsroot, nsname);
-}
-
-/*
-
-=item C<static void store_sub_in_multi(PARROT_INTERP, PMC *sub_pmc, PMC *ns)>
-
-Adds the sub C<sub> into a mulisub of the same name in the namespace C<ns>.
-If no multisub by that name currently exists, we create one.
-
-=cut
-
-*/
-
-static void
-store_sub_in_multi(PARROT_INTERP, ARGIN(PMC *sub_pmc), ARGIN(PMC *ns))
-{
-    ASSERT_ARGS(store_sub_in_multi)
-    Parrot_Sub_attributes *sub;
-    STRING     *ns_entry_name;
-    PMC        *multisub;
-
-    PMC_get_sub(interp, sub_pmc, sub);
-    ns_entry_name = sub->ns_entry_name;
-    multisub      = VTABLE_get_pmc_keyed_str(interp, ns, ns_entry_name);
-
-    /* is there an existing MultiSub PMC? or do we need to create one? */
-    if (PMC_IS_NULL(multisub)) {
-        multisub = Parrot_pmc_new(interp,  Parrot_get_ctx_HLL_type(interp, enum_class_MultiSub));
-        /* we have to push the sub onto the MultiSub before we try to store
-        it because storing requires information from the sub */
-        VTABLE_push_pmc(interp, multisub, sub_pmc);
-        VTABLE_set_pmc_keyed_str(interp, ns, ns_entry_name, multisub);
-    }
-    else
-        VTABLE_push_pmc(interp, multisub, sub_pmc);
-}
-
-/*
-
-=item C<void Parrot_store_sub_in_namespace(PARROT_INTERP, PMC *sub_pmc)>
-
-Adds the PMC C<sub> into the current namespace. Adds the sub to a multi of the
-same name if it's defined as a multi.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_store_sub_in_namespace(PARROT_INTERP, ARGIN(PMC *sub_pmc))
-{
-    ASSERT_ARGS(Parrot_store_sub_in_namespace)
-    const INTVAL cur_id = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp));
-
-    PMC        *ns;
-    Parrot_Sub_attributes *sub;
-
-    /* PF structures aren't fully constructed yet */
-    Parrot_block_GC_mark(interp);
-
-    /* store relative to HLL namespace */
-    PMC_get_sub(interp, sub_pmc, sub);
-    Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp), sub->HLL_id);
-
-    ns = get_namespace_pmc(interp, sub_pmc);
-
-    /* attach a namespace to the sub for lookups */
-    sub->namespace_stash = ns;
-
-    /* store a :multi sub */
-    if (!PMC_IS_NULL(sub->multi_signature))
-        store_sub_in_multi(interp, sub_pmc, ns);
-
-    /* store other subs (as long as they're not :anon) */
-    else if (!(PObj_get_FLAGS(sub_pmc) & SUB_FLAG_PF_ANON)
-        || sub->vtable_index != -1) {
-        STRING * const ns_entry_name = sub->ns_entry_name;
-        PMC    * const nsname        = sub->namespace_name;
-
-        Parrot_store_global_n(interp, ns, ns_entry_name, sub_pmc);
-
-        /* TT #1224:
-           TEMPORARY HACK - cache invalidation should be a namespace function */
-        if (!PMC_IS_NULL(nsname)) {
-            STRING * const nsname_s = VTABLE_get_string(interp, nsname);
-            Parrot_invalidate_method_cache(interp, nsname_s);
-        }
-    }
-
-    /* restore HLL_id */
-    Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp), cur_id);
-    Parrot_unblock_GC_mark(interp);
-}
-
-/*
-
-=back
-
-=head1 SEE ALSO
-
-F<include/parrot/global.h>
-
-=cut
-
-*/
-
-
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */

Modified: branches/dynop_mapping/src/hash.c
==============================================================================
--- branches/dynop_mapping/src/hash.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/hash.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -14,10 +14,7 @@
 hashing functions can be set.
 
 This hash implementation uses just one piece of malloced memory. The
-C<< hash->bs >> bucket store points to this region.
-
-This hash doesn't move during GC, therefore a lot of the old caveats
-don't apply.
+C<< hash->buckets >> bucket store points to this region.
 
 =head2 Functions
 
@@ -357,7 +354,7 @@
     if (a == b)
         return 0;
 
-    /* PMCs of different types are differ */
+    /* PMCs of different types are different */
     if (a->vtable->base_type != b->vtable->base_type)
         return 1;
 
@@ -427,8 +424,8 @@
 
 =item C<void parrot_mark_hash(PARROT_INTERP, Hash *hash)>
 
-Marks the hash and its contents as live.  Assumes that key and value are non
-null in all buckets.
+Marks the hash and its contents as live.  Assumes that key and value are
+non-null in all buckets.
 
 =cut
 
@@ -482,7 +479,7 @@
     INTVAL  i;
 
     for (i = hash->mask; i >= 0; --i) {
-        HashBucket *bucket = hash->bi[i];
+        HashBucket *bucket = hash->bucket_indices[i];
 
         while (bucket) {
             if (++found > entries)
@@ -518,7 +515,7 @@
     INTVAL  i;
 
     for (i = hash->mask; i >= 0; --i) {
-        HashBucket *bucket = hash->bi[i];
+        HashBucket *bucket = hash->bucket_indices[i];
 
         while (bucket) {
             if (++found > entries)
@@ -534,7 +531,6 @@
     }
 }
 
-
 /*
 
 =item C<static void parrot_mark_hash_both(PARROT_INTERP, Hash *hash)>
@@ -554,7 +550,7 @@
     INTVAL  i;
 
     for (i = hash->mask; i >= 0; --i) {
-        HashBucket *bucket = hash->bi[i];
+        HashBucket *bucket = hash->bucket_indices[i];
 
         while (bucket) {
             if (++found > entries)
@@ -592,31 +588,34 @@
     ASSERT_ARGS(hash_thaw)
 
     /* during thaw, info->extra is the key/value count */
-    const size_t     num_entries = (size_t) hash->entries;
-    size_t           entry_index;
+    const size_t           num_entries = (size_t) hash->entries;
+    const Hash_key_type    key_type    = hash->key_type;
+    const PARROT_DATA_TYPE entry_type  = hash->entry_type;
+    size_t                 entry_index;
 
     hash->entries = 0;
 
     for (entry_index = 0; entry_index < num_entries; ++entry_index) {
         HashBucket *b;
+        void       *key;
 
-        switch (hash->key_type) {
+        switch (key_type) {
           case Hash_key_type_int:
             {
                 const INTVAL i_key = VTABLE_shift_integer(interp, info);
-                b = parrot_hash_put(interp, hash, (void*)i_key, NULL);
+                key                = (void *)i_key;
             }
             break;
           case Hash_key_type_STRING:
             {
                 STRING * const s_key = VTABLE_shift_string(interp, info);
-                b = parrot_hash_put(interp, hash, s_key, NULL);
+                key                  = (void *)s_key;
             }
             break;
           case Hash_key_type_PMC:
             {
                 PMC * const p_key = VTABLE_shift_pmc(interp, info);
-                b = parrot_hash_put(interp, hash, p_key, NULL);
+                key               = (void *)p_key;
                 break;
             }
           default:
@@ -625,23 +624,23 @@
             break;
         }
 
-        switch (hash->entry_type) {
+        switch (entry_type) {
           case enum_hash_int:
             {
                 const INTVAL i = VTABLE_shift_integer(interp, info);
-                b->value       = (void *)i;
+                parrot_hash_put(interp, hash, key, (void *)i);
                 break;
             }
           case enum_hash_string:
             {
                 STRING * const s = VTABLE_shift_string(interp, info);
-                b->value = (void *)s;
+                parrot_hash_put(interp, hash, key, (void *)s);
                 break;
             }
           case enum_hash_pmc:
             {
                 PMC * const p = VTABLE_shift_pmc(interp, info);
-                b->value = (void *)p;
+                parrot_hash_put(interp, hash, key, (void *)p);
                 break;
             }
           default:
@@ -675,7 +674,7 @@
     size_t           i;
 
     for (i = 0; i < hash->entries; ++i) {
-        HashBucket * const b = hash->bs+i;
+        HashBucket * const b = hash->buckets + i;
 
         switch (hash->key_type) {
           case Hash_key_type_int:
@@ -784,9 +783,9 @@
     HashBucket   *bs, *b, *new_mem;
     HashBucket * const old_offset = (HashBucket *)((char *)hash + sizeof (Hash));
 
-    void * const  old_mem    = hash->bs;
+    void * const  old_mem    = hash->buckets;
     const UINTVAL old_size   = hash->mask + 1;
-    const UINTVAL new_size   = old_size << 1;
+    const UINTVAL new_size   = old_size << 1; /* Double. Right-shift is 2x */
     const UINTVAL old_nb     = N_BUCKETS(old_size);
     size_t        offset, i;
 
@@ -795,10 +794,10 @@
        e.g. 3 buckets, 4 pointers:
 
          +---+---+---+-+-+-+-+
-         | --> bs    | -> bi |
+         | --> buckets |     |
          +---+---+---+-+-+-+-+
-         ^           ^
-         | old_mem   | hash->bi
+         ^             ^
+         | old_mem     | hash->bucket_indices
     */
 
     /* resize mem */
@@ -816,11 +815,12 @@
 
     /*
          +---+---+---+---+---+---+-+-+-+-+-+-+-+-+
-         |  bs       | old_bi    |  new_bi       |
+         |  buckets  | old_bi    |  new_bi       |
          +---+---+---+---+---+---+-+-+-+-+-+-+-+-+
-           ^                       ^
-         | new_mem                 | hash->bi
+         ^                       ^
+         | new_mem               | hash->bucket_indices
     */
+
     bs     = new_mem;
     old_bi = (HashBucket **)(bs + old_nb);
     new_bi = (HashBucket **)(bs + N_BUCKETS(new_size));
@@ -832,8 +832,8 @@
     mem_sys_memmove(new_bi, old_bi, old_size * sizeof (HashBucket *));
 
     /* update hash data */
-    hash->bi   = new_bi;
-    hash->bs   = bs;
+    hash->bucket_indices = new_bi;
+    hash->buckets        = bs;
     hash->mask = new_size - 1;
 
     /* clear freshly allocated bucket index */
@@ -1024,12 +1024,6 @@
     hash->entries    = 0;
     hash->container  = PMCNULL;
 
-    /*
-     * TODO if we have a significant amount of small hashes:
-     * - allocate a bigger hash structure e.g. 128 byte
-     * - use the bucket store and bi inside this structure
-     * - when reallocate copy this part
-     */
     bp = (HashBucket *)((char *)alloc + sizeof (Hash));
     hash->free_list = NULL;
 
@@ -1037,9 +1031,9 @@
      * buckets[i] directly in an OrderedHash, *if* nothing
      * was deleted */
 
-    hash->bs  = bp;
-    bp       += N_BUCKETS(INITIAL_BUCKETS);
-    hash->bi  = (HashBucket **)bp;
+    hash->buckets = bp;
+    bp += N_BUCKETS(INITIAL_BUCKETS);
+    hash->bucket_indices = (HashBucket **)bp;
 
     for (i = 0, --bp; i < N_BUCKETS(INITIAL_BUCKETS); ++i, --bp) {
         bp->next        = hash->free_list;
@@ -1049,7 +1043,6 @@
     return hash;
 }
 
-
 /*
 
 =item C<void parrot_hash_destroy(PARROT_INTERP, Hash *hash)>
@@ -1069,8 +1062,8 @@
 {
     ASSERT_ARGS(parrot_hash_destroy)
     HashBucket * const bp = (HashBucket*)((char*)hash + sizeof (Hash));
-    if (bp != hash->bs)
-        mem_gc_free(interp, hash->bs);
+    if (bp != hash->buckets)
+        mem_gc_free(interp, hash->buckets);
     mem_gc_free(interp, hash);
 }
 
@@ -1093,7 +1086,7 @@
     UINTVAL i;
 
     for (i = 0; i <= hash->mask; ++i) {
-        HashBucket *bucket = hash->bi[i];
+        HashBucket *bucket = hash->bucket_indices[i];
         while (bucket) {
             mem_gc_free(interp, bucket->key);
             mem_gc_free(interp, bucket->value);
@@ -1127,7 +1120,7 @@
     UINTVAL i;
 
     for (i = 0; i <= hash->mask; ++i) {
-        HashBucket *bucket = hash->bi[i];
+        HashBucket *bucket = hash->bucket_indices[i];
         while (bucket) {
             mem_gc_free(interp, bucket->key);
             func(bucket->value);
@@ -1206,7 +1199,7 @@
 
     res = NULL;
 
-    for (b = hash->bs + i; i < size ; ++i, ++b) {
+    for (b = hash->buckets + i; i < size ; ++i, ++b) {
         /* XXX int keys may be zero - use different iterator */
         if (b->key) {
             if (!res)
@@ -1255,7 +1248,7 @@
         UINTVAL        i;
 
         for (i = 0; i < entries; ++i) {
-            HashBucket * const bucket = hash->bs + i;
+            HashBucket * const bucket = hash->buckets + i;
 
             /* the hash->compare cost is too high for this fast path */
             if (bucket->key == key)
@@ -1266,7 +1259,7 @@
     /* if the fast search didn't work, try the normal hashing search */
     {
         const UINTVAL hashval = (hash->hash_val)(interp, key, hash->seed);
-        HashBucket   *bucket  = hash->bi[hashval & hash->mask];
+        HashBucket   *bucket  = hash->bucket_indices[hashval & hash->mask];
 
         while (bucket) {
             /* key equality is always a match, so it's worth checking */
@@ -1347,7 +1340,7 @@
 {
     ASSERT_ARGS(parrot_hash_put)
     const UINTVAL hashval = (hash->hash_val)(interp, key, hash->seed);
-    HashBucket   *bucket  = hash->bi[hashval & hash->mask];
+    HashBucket   *bucket  = hash->bucket_indices[hashval & hash->mask];
 
     /* When the hash is constant, check that the key and value are also
      * constant. */
@@ -1364,6 +1357,7 @@
                 "Used non-constant value in constant hash.");
     }
 
+    /* See if we have an existing value for this key */
     while (bucket) {
         /* store hash_val or not */
         if ((hash->compare)(interp, key, bucket->key) == 0)
@@ -1371,22 +1365,26 @@
         bucket = bucket->next;
     }
 
+    /* If we have a bucket already, put the value in it. Otherwise, we need
+       to get a new bucket */
     if (bucket)
         bucket->value = value;
     else {
+        /* Get a new bucket off the free list. If the free list is empty, we
+           expand the hash so we get more items on the free list */
         bucket = hash->free_list;
-
         if (!bucket) {
             expand_hash(interp, hash);
             bucket = hash->free_list;
         }
 
+        /* Add the value to the new bucket, increasing the count of elements */
         ++hash->entries;
         hash->free_list                = bucket->next;
         bucket->key                    = key;
         bucket->value                  = value;
-        bucket->next                   = hash->bi[hashval & hash->mask];
-        hash->bi[hashval & hash->mask] = bucket;
+        bucket->next = hash->bucket_indices[hashval & hash->mask];
+        hash->bucket_indices[hashval & hash->mask] = bucket;
     }
 
     return bucket;
@@ -1412,13 +1410,13 @@
     HashBucket   *prev    = NULL;
     const UINTVAL hashval = (hash->hash_val)(interp, key, hash->seed) & hash->mask;
 
-    for (bucket = hash->bi[hashval]; bucket; bucket = bucket->next) {
+    for (bucket = hash->bucket_indices[hashval]; bucket; bucket = bucket->next) {
         if ((hash->compare)(interp, key, bucket->key) == 0) {
 
             if (prev)
                 prev->next = bucket->next;
             else
-                hash->bi[hashval] = bucket->next;
+                hash->bucket_indices[hashval] = bucket->next;
 
             --hash->entries;
             bucket->next    = hash->free_list;
@@ -1448,12 +1446,33 @@
 parrot_hash_clone(PARROT_INTERP, ARGIN(const Hash *hash), ARGOUT(Hash *dest))
 {
     ASSERT_ARGS(parrot_hash_clone)
+    parrot_hash_clone_prunable(interp, hash, dest, 1);
+}
+
+/*
+
+=item C<void parrot_hash_clone_prunable(PARROT_INTERP, const Hash *hash, Hash
+*dest, int deep)>
+
+helper function to Clone C<hash> to C<dest>
+
+allows deep cloning of PMC types if deep set
+
+=cut
+
+*/
+
+void
+parrot_hash_clone_prunable(PARROT_INTERP, ARGIN(const Hash *hash),
+    ARGOUT(Hash *dest), int deep)
+{
+    ASSERT_ARGS(parrot_hash_clone_prunable)
     UINTVAL entries = hash->entries;
     UINTVAL i;
 
     for (i = 0; i < entries; ++i) {
         void         *valtmp;
-        HashBucket   *b   = hash->bs+i;
+        HashBucket   *b   = hash->buckets + i;
         void * const  key = b->key;
 
         switch (hash->entry_type) {
@@ -1471,7 +1490,10 @@
             if (PMC_IS_NULL((PMC *)b->value))
                 valtmp = (void *)PMCNULL;
             else
-                valtmp = (void *)VTABLE_clone(interp, (PMC*)b->value);
+                if (deep)
+                    valtmp = (void *)VTABLE_clone(interp, (PMC*)b->value);
+                else
+                    valtmp = b->value;
             break;
 
           default:

Modified: branches/dynop_mapping/src/hll.c
==============================================================================
--- branches/dynop_mapping/src/hll.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/hll.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -167,7 +167,7 @@
      * ns_hash to another type, if mappings provide one
      * XXX - FIXME
      */
-    ns_hash = Parrot_make_namespace_keyed_str(interp, interp->root_namespace,
+    ns_hash = Parrot_ns_make_namespace_keyed_str(interp, interp->root_namespace,
                                               hll_name);
 
     /* cache HLL's toplevel namespace */
@@ -500,7 +500,7 @@
              * here because the typemap already exists, but it is not currently
              * done for consistency.
              */
-            ns_hash = Parrot_make_namespace_keyed_str(interp,
+            ns_hash = Parrot_ns_make_namespace_keyed_str(interp,
                 interp->root_namespace, hll_name);
 
             VTABLE_set_pmc_keyed_int(interp, interp->HLL_namespace,

Modified: branches/dynop_mapping/src/io/api.c
==============================================================================
--- branches/dynop_mapping/src/io/api.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/io/api.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -20,8 +20,8 @@
 is used in Parrot ops.
 
 TODO: Where possible, extract some of the filehandle-related details into
-src/io/filehandle.c, and extract the stringhandle details into
-src/io/io_string.c.
+F<src/io/filehandle.c>, and extract the stringhandle details into
+a new F<src/io/io_string.c>.
 
 =cut
 

Modified: branches/dynop_mapping/src/io/io_private.h
==============================================================================
--- branches/dynop_mapping/src/io/io_private.h	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/io/io_private.h	Sun Jul  4 06:24:50 2010	(r47981)
@@ -27,23 +27,19 @@
 
 #define PARROT_IN_IO 1
 #define PARROT_ASYNC_DEVEL 0
-#define PARROT_NET_DEVEL 1
 
 #include <parrot/io.h>
 
-#if PARROT_NET_DEVEL
 /* XXX: Parrot config is currently not probing for all headers so
  * I'm sticking here rather than parrot.h
  */
-#  ifdef UNIX
-#    include <sys/socket.h>
-#  endif
-
-#  ifdef WIN32
-#    include <winsock.h>
-#  endif
+#ifdef UNIX
+#  include <sys/socket.h>
+#endif
 
-#endif /* PARROT_NET_DEVEL */
+#ifdef WIN32
+#  include <winsock.h>
+#endif
 
 /* IO object flags */
 #define PIO_F_READ      00000001

Modified: branches/dynop_mapping/src/io/socket_unix.c
==============================================================================
--- branches/dynop_mapping/src/io/socket_unix.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/io/socket_unix.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -67,8 +67,6 @@
 
 =head2 Networking
 
-Define C<PARROT_NET_DEVEL> to enable networking.
-
 These could be native extensions but they probably should be here if we
 wish to make them integrated with the async IO system.
 
@@ -110,8 +108,6 @@
 }
 
 
-#  if PARROT_NET_DEVEL
-
 /*
 
 =item C<INTVAL Parrot_io_socket_unix(PARROT_INTERP, PMC *s, int fam, int type,
@@ -314,13 +310,13 @@
         switch (errno) {
           case EINTR:
             goto AGAIN;
-#    ifdef EWOULDBLOCK
+#  ifdef EWOULDBLOCK
           case EWOULDBLOCK:
             goto AGAIN;
-#    else
+#  else
           case EAGAIN:
             goto AGAIN;
-#    endif
+#  endif
           case EPIPE:
             /* XXX why close it here and not below */
             close(io->os_handle);
@@ -363,13 +359,13 @@
         switch (errno) {
           case EINTR:
             goto AGAIN;
-#    ifdef EWOULDBLOCK
+#  ifdef EWOULDBLOCK
           case EWOULDBLOCK:
             goto AGAIN;
-#    else
+#  else
           case EAGAIN:
             goto AGAIN;
-#    endif
+#  endif
           case ECONNRESET:
             /* XXX why close it on err return result is -1 anyway */
             close(io->os_handle);
@@ -457,12 +453,12 @@
     const int family = AF_INET;
 
     struct sockaddr_in * const sa = (struct sockaddr_in*)VTABLE_get_pointer(interp, sockaddr);
-#    ifdef PARROT_DEF_INET_ATON
+#  ifdef PARROT_DEF_INET_ATON
     if (inet_aton(host, &sa->sin_addr) != 0) {
-#    else
+#  else
     /* positive retval is success */
     if (inet_pton(family, host, &sa->sin_addr) > 0) {
-#    endif
+#  endif
         /* Success converting numeric IP */
     }
     else {
@@ -482,7 +478,6 @@
     sa->sin_family = family;
     sa->sin_port = htons(port);
 }
-#  endif
 
 
 #endif /* PIO_OS_UNIX */

Modified: branches/dynop_mapping/src/io/socket_win32.c
==============================================================================
--- branches/dynop_mapping/src/io/socket_win32.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/io/socket_win32.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -51,13 +51,11 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
-#  if PARROT_NET_DEVEL
-
 /* Helper macros to get sockaddr_in */
-#    define SOCKADDR_LOCAL(p) ((struct sockaddr_in*)VTABLE_get_pointer(interp, \
-                PARROT_SOCKET((p))->local))
-#    define SOCKADDR_REMOTE(p) ((struct sockaddr_in*)VTABLE_get_pointer(interp, \
-                PARROT_SOCKET((p))->remote))
+#  define SOCKADDR_LOCAL(p) ((struct sockaddr_in*)VTABLE_get_pointer(interp, \
+              PARROT_SOCKET((p))->local))
+#  define SOCKADDR_REMOTE(p) ((struct sockaddr_in*)VTABLE_get_pointer(interp, \
+              PARROT_SOCKET((p))->remote))
 
 /*
 
@@ -262,13 +260,13 @@
         switch (errno) {
           case WSAEINTR:
             goto AGAIN;
-#    ifdef WSAEWOULDBLOCK
+#  ifdef WSAEWOULDBLOCK
           case WSAEWOULDBLOCK:
             goto AGAIN;
-#    else
+#  else
           case WSAEAGAIN:
             goto AGAIN;
-#    endif
+#  endif
           case EPIPE:
             /* XXX why close it here and not below */
             close((int)io->os_handle);
@@ -311,13 +309,13 @@
         switch (errno) {
           case EINTR:
             goto AGAIN;
-#    ifdef WSAEWOULDBLOCK
+#  ifdef WSAEWOULDBLOCK
           case WSAEWOULDBLOCK:
             goto AGAIN;
-#    else
+#  else
           case WSAEAGAIN:
             goto AGAIN;
-#    endif
+#  endif
           case WSAECONNRESET:
             /* XXX why close it on err return result is -1 anyway */
             close((int)io->os_handle);
@@ -452,8 +450,6 @@
     return sockaddr;
 }
 
-#  endif /* PARROT_NET_DEVEL */
-
 #endif /* PIO_OS_WIN32 */
 
 /*

Modified: branches/dynop_mapping/src/io/win32.c
==============================================================================
--- branches/dynop_mapping/src/io/win32.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/io/win32.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -134,10 +134,8 @@
 {
     ASSERT_ARGS(Parrot_io_init_win32)
     HANDLE h;
-#  if PARROT_NET_DEVEL
     struct WSAData sockinfo;
     int ret;
-#  endif
 
     if ((h = GetStdHandle(STD_INPUT_HANDLE)) != INVALID_HANDLE_VALUE) {
         _PIO_STDIN(interp) = Parrot_io_fdopen_win32(interp, PMCNULL, h, PIO_F_READ);
@@ -157,7 +155,6 @@
     else {
         _PIO_STDERR(interp) = PMCNULL;
     }
-#  if PARROT_NET_DEVEL
     /* Start Winsock
      * no idea where or whether destroy it
      */
@@ -167,7 +164,6 @@
                   WSAGetLastError());
         return -4;
     }
-#  endif
     return 0;
 }
 

Modified: branches/dynop_mapping/src/key.c
==============================================================================
--- branches/dynop_mapping/src/key.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/key.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -146,31 +146,6 @@
     return key_new_string(interp, Parrot_str_new(interp, value, 0));
 }
 
-
-/*
-
-=item C<PMC * key_new_pmc(PARROT_INTERP, PMC *value)>
-
-Returns a new PMC C<Key> PMC with value C<value>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-PMC *
-key_new_pmc(PARROT_INTERP, ARGIN(PMC *value))
-{
-    ASSERT_ARGS(key_new_pmc)
-    PMC * const key = Parrot_pmc_new(interp, enum_class_Key);
-
-    PObj_get_FLAGS(key) |= KEY_pmc_FLAG;
-    Parrot_ex_throw_from_c_args(interp, NULL, 1, "this is broken - see slice.pmc");
-}
-
-
 /*
 
 =item C<void key_set_integer(PARROT_INTERP, PMC *key, INTVAL value)>
@@ -263,33 +238,6 @@
     return;
 }
 
-
-/*
-
-=item C<void key_set_pmc(PARROT_INTERP, PMC *key, PMC *value)>
-
-Set the PMC C<value> in C<key>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-key_set_pmc(PARROT_INTERP, ARGMOD(PMC *key), ARGIN(PMC *value))
-{
-    ASSERT_ARGS(key_set_pmc)
-    PObj_get_FLAGS(key) &= ~KEY_type_FLAGS;
-    PObj_get_FLAGS(key) |=  KEY_pmc_FLAG;
-
-    /*
-     * XXX leo
-     * what for is this indirection?
-     */
-    Parrot_ex_throw_from_c_args(interp, NULL, 1, "this is broken - see slice.pmc");
-}
-
-
 /*
 
 =item C<INTVAL key_type(PARROT_INTERP, const PMC *key)>

Modified: branches/dynop_mapping/src/library.c
==============================================================================
--- branches/dynop_mapping/src/library.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/library.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -809,6 +809,7 @@
     ASSERT_ARGS(Parrot_get_runtime_prefix)
     char * const env = Parrot_getenv(interp, CONST_STRING(interp, "PARROT_RUNTIME"));
 
+    Parrot_warn_deprecated(interp, "Parrot_get_runtime_prefix is deprecated TT #1191");
     if (env)
         return env;
     else {

Modified: branches/dynop_mapping/src/multidispatch.c
==============================================================================
--- branches/dynop_mapping/src/multidispatch.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/multidispatch.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -329,9 +329,9 @@
 {
     ASSERT_ARGS(Parrot_mmd_find_multi_from_long_sig)
     STRING * const multi_str = CONST_STRING(interp, "MULTI");
-    PMC    * const ns        = Parrot_make_namespace_keyed_str(interp,
+    PMC    * const ns        = Parrot_ns_make_namespace_keyed_str(interp,
                                     interp->root_namespace, multi_str);
-    PMC    * const multi_sub = Parrot_get_global(interp, ns, name);
+    PMC    * const multi_sub = Parrot_ns_get_global(interp, ns, name);
 
     if (PMC_IS_NULL(multi_sub)) {
         return PMCNULL;
@@ -844,7 +844,7 @@
     if (PMC_IS_NULL(ns))
         return;
 
-    multi_sub = Parrot_get_global(interp, ns, name);
+    multi_sub = Parrot_ns_get_global(interp, ns, name);
 
     if (PMC_IS_NULL(multi_sub))
         return;
@@ -868,9 +868,9 @@
 {
     ASSERT_ARGS(mmd_search_global)
     STRING * const multi_str = CONST_STRING(interp, "MULTI");
-    PMC    * const ns        = Parrot_get_namespace_keyed_str(interp,
+    PMC    * const ns        = Parrot_ns_get_namespace_keyed_str(interp,
                                     interp->root_namespace, multi_str);
-    PMC           *multi_sub = Parrot_get_global(interp, ns, name);
+    PMC           *multi_sub = Parrot_ns_get_global(interp, ns, name);
 
     if (PMC_IS_NULL(multi_sub))
         return;
@@ -896,13 +896,13 @@
 {
     ASSERT_ARGS(mmd_add_multi_global)
     STRING * const multi_str = CONST_STRING(interp, "MULTI");
-    PMC    * const ns        = Parrot_make_namespace_keyed_str(interp,
+    PMC    * const ns        = Parrot_ns_make_namespace_keyed_str(interp,
                                     interp->root_namespace, multi_str);
-    PMC           *multi_sub = Parrot_get_global(interp, ns, sub_name);
+    PMC           *multi_sub = Parrot_ns_get_global(interp, ns, sub_name);
 
     if (PMC_IS_NULL(multi_sub)) {
         multi_sub = Parrot_pmc_new_constant(interp, enum_class_MultiSub);
-        Parrot_set_global(interp, ns, sub_name, multi_sub);
+        Parrot_ns_set_global(interp, ns, sub_name, multi_sub);
     }
 
     PARROT_ASSERT(multi_sub->vtable->base_type == enum_class_MultiSub);
@@ -930,12 +930,12 @@
     PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
                         interp->HLL_namespace,
                         Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
-    PMC * const ns     = Parrot_make_namespace_keyed_str(interp, hll_ns, ns_name);
-    PMC        *multi_sub = Parrot_get_global(interp, ns, sub_name);
+    PMC * const ns     = Parrot_ns_make_namespace_keyed_str(interp, hll_ns, ns_name);
+    PMC        *multi_sub = Parrot_ns_get_global(interp, ns, sub_name);
 
     if (PMC_IS_NULL(multi_sub)) {
         multi_sub = Parrot_pmc_new_constant(interp, enum_class_MultiSub);
-        Parrot_set_global(interp, ns, sub_name, multi_sub);
+        Parrot_ns_set_global(interp, ns, sub_name, multi_sub);
     }
 
     PARROT_ASSERT(multi_sub->vtable->base_type == enum_class_MultiSub);

Copied: branches/dynop_mapping/src/namespace.c (from r47980, trunk/src/namespace.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/src/namespace.c	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/src/namespace.c)
@@ -0,0 +1,842 @@
+/*
+Copyright (C) 2004-2009, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/namespace.c
+
+=head1 DESCRIPTION
+
+Common routines for storing and finding elements in namespaces
+
+=cut
+
+*/
+
+#include "parrot/parrot.h"
+#include "namespace.str"
+#include "pmc/pmc_sub.h"
+#include "pmc/pmc_callcontext.h"
+
+/* HEADERIZER HFILE: include/parrot/namespace.h */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC * get_namespace_pmc(PARROT_INTERP, ARGIN(PMC *sub_pmc))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC * internal_ns_keyed(PARROT_INTERP,
+    ARGIN(PMC *base_ns),
+    ARGIN(PMC *pmc_key),
+    int flags)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC * internal_ns_keyed_key(PARROT_INTERP,
+    ARGIN(PMC *ns),
+    ARGIN(PMC *key),
+    int flags)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC * internal_ns_keyed_str(PARROT_INTERP,
+    ARGIN(PMC *base_ns),
+    ARGIN(STRING *key),
+    int flags)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC * internal_ns_maybe_create(PARROT_INTERP,
+    ARGIN(PMC *ns),
+    ARGIN(STRING *key),
+    int flags)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
+static void store_sub_in_multi(PARROT_INTERP,
+    ARGIN(PMC *sub_pmc),
+    ARGIN(PMC *ns))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
+#define ASSERT_ARGS_get_namespace_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(sub_pmc))
+#define ASSERT_ARGS_internal_ns_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(base_ns) \
+    , PARROT_ASSERT_ARG(pmc_key))
+#define ASSERT_ARGS_internal_ns_keyed_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(ns) \
+    , PARROT_ASSERT_ARG(key))
+#define ASSERT_ARGS_internal_ns_keyed_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(base_ns) \
+    , PARROT_ASSERT_ARG(key))
+#define ASSERT_ARGS_internal_ns_maybe_create __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(ns) \
+    , PARROT_ASSERT_ARG(key))
+#define ASSERT_ARGS_store_sub_in_multi __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(sub_pmc) \
+    , PARROT_ASSERT_ARG(ns))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: static */
+
+/* flags for internal_ns_keyed */
+#define INTERN_NS_CREAT 1       /* I'm a fan of the classics */
+
+/*
+
+=head1 Internal Static Functions
+
+=over 4
+
+=item C<static PMC * internal_ns_keyed_str(PARROT_INTERP, PMC *base_ns, STRING
+*key, int flags)>
+
+Looks up a nested NameSpace PMC starting from C<base_ns> and doing a relative
+lookup. C<key> is a STRING containing the name of the NameSpace to look up.
+Flags can be 0 or INTERN_NS_CREAT. In the former case, PMCNULL is returned
+if the namespace is not found. In the later, a new namespace with the given
+is created and returned if it is not found.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC *
+internal_ns_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
+    ARGIN(STRING *key), int flags)
+{
+    ASSERT_ARGS(internal_ns_keyed_str)
+    PMC * const ns = VTABLE_get_pmc_keyed_str(interp, base_ns, key);
+
+    if (!PMC_IS_NULL(ns) && VTABLE_isa(interp, ns, CONST_STRING(interp, "NameSpace")))
+        return ns;
+
+    return internal_ns_maybe_create(interp, base_ns, key, flags);
+}
+
+/*
+
+=item C<static PMC * internal_ns_keyed_key(PARROT_INTERP, PMC *ns, PMC *key, int
+flags)>
+
+Internal function to do keyed namespace lookup relative to a given namespace
+PMC. The namespace to find is located by C<key> relative to C<ns>. C<flags>
+determines what happens when an existing namespace is not found. 0 means
+PMCNULL is returned, INTERN_NS_CREAT means a new namespace is created.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC *
+internal_ns_keyed_key(PARROT_INTERP, ARGIN(PMC *ns), ARGIN(PMC *key), int flags)
+{
+    ASSERT_ARGS(internal_ns_keyed_key)
+    while (key) {
+        STRING * const part = VTABLE_get_string(interp, key);
+        PMC    *sub_ns      = VTABLE_get_pmc_keyed_str(interp, ns, part);
+
+        if (PMC_IS_NULL(sub_ns) || !VTABLE_isa(interp, sub_ns, CONST_STRING(interp, "NameSpace"))) {
+            sub_ns = internal_ns_maybe_create(interp, ns, part, flags);
+
+            if (PMC_IS_NULL(sub_ns))
+                return PMCNULL;
+        }
+
+        ns  = sub_ns;
+        key = VTABLE_shift_pmc(interp, key);
+    }
+
+    return ns;
+}
+
+/*
+
+=item C<static PMC * internal_ns_keyed(PARROT_INTERP, PMC *base_ns, PMC
+*pmc_key, int flags)>
+
+Search for a namespace PMC starting from a base namespace C<base_ns> and
+following C<pmc_key> to the nested namespace. C<pmc_key> can be a String,
+a Key, or an array of strings (such as an ResizableStringArray, or a
+ResizablePMCArray that contains Strings). Flags determines what we do if the
+requested namespace is not found: 0 means we return PMCNULL, INTERN_NS_CREAT
+means we create the new namespace and return it.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC *
+internal_ns_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN(PMC *pmc_key), int flags)
+{
+    ASSERT_ARGS(internal_ns_keyed)
+
+    if (VTABLE_isa(interp, pmc_key, CONST_STRING(interp, "String"))) {
+        STRING * const str_key = VTABLE_get_string(interp, pmc_key);
+        return internal_ns_keyed_str(interp, base_ns, str_key, flags);
+    }
+    else if (PMC_IS_TYPE(pmc_key, Key))
+        return internal_ns_keyed_key(interp, base_ns, pmc_key, flags);
+    else {
+        /* array of strings */
+        STRING * const isans = CONST_STRING(interp, "NameSpace");
+        const INTVAL n = VTABLE_elements(interp, pmc_key);
+        INTVAL i;
+        PMC *ns = base_ns;
+
+        for (i = 0; i < n; ++i) {
+            STRING * const part = VTABLE_get_string_keyed_int(interp, pmc_key, i);
+            PMC *sub_ns = VTABLE_get_pmc_keyed_str(interp, ns, part);
+
+            if (PMC_IS_NULL(sub_ns) || !VTABLE_isa(interp, sub_ns, isans)) {
+                sub_ns = internal_ns_maybe_create(interp, ns, part, flags);
+                if (PMC_IS_NULL(sub_ns))
+                    return PMCNULL;
+            }
+            ns = sub_ns;
+        }
+        return ns;
+    }
+}
+
+/*
+
+=item C<static PMC * internal_ns_maybe_create(PARROT_INTERP, PMC *ns, STRING
+*key, int flags)>
+
+Given a namespace PMC C<ns>, a STRING C<key> containing a name, and flags from
+C<internal_ns_keyed> or C<internal_ns_keyed_str>, creates and returns a new
+namespace with the given name as a child of the given namespace.  This is an
+internal function only.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC *
+internal_ns_maybe_create(PARROT_INTERP, ARGIN(PMC *ns), ARGIN(STRING *key), int flags)
+{
+    ASSERT_ARGS(internal_ns_maybe_create)
+
+    /* TT #1220 - stop depending on typed namespace */
+    if (!(flags & INTERN_NS_CREAT))
+        return PMCNULL;
+    else {
+        const INTVAL type_id = Parrot_get_ctx_HLL_type(interp, enum_class_NameSpace);
+        /* TT #1221 - match HLL of enclosing namespace? */
+        PMC * const sub_ns = Parrot_pmc_new(interp, type_id);
+
+        if (PMC_IS_NULL(sub_ns))
+            return PMCNULL;
+
+        VTABLE_set_pmc_keyed_str(interp, ns, key, sub_ns);
+        return sub_ns;
+    }
+}
+
+/*
+
+=item C<static PMC * get_namespace_pmc(PARROT_INTERP, PMC *sub_pmc)>
+
+Return the namespace PMC associated with the PMC C<sub>. If there is no
+NameSpace associated with the sub, return it's HLL NameSpace PMC instead.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+static PMC *
+get_namespace_pmc(PARROT_INTERP, ARGIN(PMC *sub_pmc))
+{
+    ASSERT_ARGS(get_namespace_pmc)
+    Parrot_Sub_attributes *sub;
+    PMC        *nsname, *nsroot;
+
+    PMC_get_sub(interp, sub_pmc, sub);
+    nsname = sub->namespace_name;
+    nsroot = Parrot_get_HLL_namespace(interp, sub->HLL_id);
+
+    /* If we have a NULL, return the HLL namespace */
+    if (PMC_IS_NULL(nsname))
+        return nsroot;
+    /* If we have a String, do a string lookup */
+    else if (nsname->vtable->base_type == enum_class_String)
+        return Parrot_ns_make_namespace_keyed_str(interp, nsroot,
+                VTABLE_get_string(interp, nsname));
+    /* Otherwise, do a PMC lookup */
+    else
+        return Parrot_ns_make_namespace_keyed(interp, nsroot, nsname);
+}
+
+/*
+
+=item C<static void store_sub_in_multi(PARROT_INTERP, PMC *sub_pmc, PMC *ns)>
+
+Adds the sub C<sub> into a multisub of the same name in the namespace C<ns>.
+If no multisub by that name currently exists, we create one.
+
+=cut
+
+*/
+
+static void
+store_sub_in_multi(PARROT_INTERP, ARGIN(PMC *sub_pmc), ARGIN(PMC *ns))
+{
+    ASSERT_ARGS(store_sub_in_multi)
+    Parrot_Sub_attributes *sub;
+    STRING     *ns_entry_name;
+    PMC        *multisub;
+
+    PMC_get_sub(interp, sub_pmc, sub);
+    ns_entry_name = sub->ns_entry_name;
+    multisub      = VTABLE_get_pmc_keyed_str(interp, ns, ns_entry_name);
+
+    /* is there an existing MultiSub PMC? or do we need to create one? */
+    if (PMC_IS_NULL(multisub)) {
+        multisub = Parrot_pmc_new(interp,  Parrot_get_ctx_HLL_type(interp, enum_class_MultiSub));
+        /* we have to push the sub onto the MultiSub before we try to store
+        it because storing requires information from the sub */
+        VTABLE_push_pmc(interp, multisub, sub_pmc);
+        VTABLE_set_pmc_keyed_str(interp, ns, ns_entry_name, multisub);
+    }
+    else
+        VTABLE_push_pmc(interp, multisub, sub_pmc);
+}
+
+/*
+
+=back
+
+=head1 NameSpace API Functions
+
+=over 4
+
+=item C<PMC * Parrot_ns_get_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
+*pmc_key)>
+
+Find the namespace relative to the namespace C<base_ns> with the key
+C<pmc_key>, which may be a String, a Key, or an array of strings.  Return
+the namespace, or NULL if not found.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_get_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN(PMC *pmc_key))
+{
+    ASSERT_ARGS(Parrot_ns_get_namespace_keyed)
+    return internal_ns_keyed(interp, base_ns, pmc_key, 0);
+}
+
+/*
+
+=item C<PMC * Parrot_ns_get_namespace_keyed_str(PARROT_INTERP, PMC *base_ns,
+STRING *str_key)>
+
+Find the namespace relative to the namespace C<base_ns> with the string key
+C<str_key>.  Return the namespace, or NULL if not found.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_get_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
+        ARGIN_NULLOK(STRING *str_key))
+{
+    ASSERT_ARGS(Parrot_ns_get_namespace_keyed_str)
+    return internal_ns_keyed_str(interp, base_ns, str_key, 0);
+}
+
+/*
+
+=item C<PMC * Parrot_ns_make_namespace_keyed(PARROT_INTERP, PMC *base_ns, PMC
+*pmc_key)>
+
+Find, or create if necessary, the namespace relative to the namespace
+C<base_ns> with the key C<pmc_key>, which may be a String, a Key, or an
+array of strings.  Return the namespace.  Errors will result in exceptions.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_make_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns),
+        ARGIN(PMC *pmc_key))
+{
+    ASSERT_ARGS(Parrot_ns_make_namespace_keyed)
+    return internal_ns_keyed(interp, base_ns, pmc_key, INTERN_NS_CREAT);
+}
+
+/*
+
+=item C<PMC * Parrot_ns_make_namespace_keyed_str(PARROT_INTERP, PMC *base_ns,
+STRING *str_key)>
+
+Find, or create if necessary, the namespace relative to the namespace
+C<base_ns> with the string key C<str_key>.  Return the namespace.  Errors
+will result in exceptions.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_make_namespace_keyed_str(PARROT_INTERP, ARGIN(PMC *base_ns),
+        ARGIN(STRING *str_key))
+{
+    ASSERT_ARGS(Parrot_ns_make_namespace_keyed_str)
+    return internal_ns_keyed_str(interp, base_ns, str_key, INTERN_NS_CREAT);
+}
+
+/*
+
+=item C<PMC * Parrot_ns_make_namespace_autobase(PARROT_INTERP, PMC *key)>
+
+Find, or create if necessary, a namespace with the key C<key>, which may be a
+String, a Key, or an array of strings. If it is a String, then the lookup is
+relative to the current namespace. Otherwise, it is relative to the current HLL
+root namespace. Return the namespace.  Errors will result in exceptions.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_make_namespace_autobase(PARROT_INTERP, ARGIN_NULLOK(PMC *key))
+{
+    ASSERT_ARGS(Parrot_ns_make_namespace_autobase)
+    PMC *base_ns;
+    if (VTABLE_isa(interp, key, CONST_STRING(interp, "String")))
+        base_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    else
+        base_ns = VTABLE_get_pmc_keyed_int(interp, interp->HLL_namespace,
+            Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
+    return Parrot_ns_make_namespace_keyed(interp, base_ns, key);
+}
+
+/*
+
+=item C<PMC * Parrot_ns_get_name(PARROT_INTERP, PMC *_namespace)>
+
+Get the name of the namespace, as a ResizableStringArray. For instance, the
+namespace Foo:Bar:Baz would return an RSA with three elements.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_get_name(PARROT_INTERP, ARGIN(PMC *_namespace))
+{
+    ASSERT_ARGS(Parrot_ns_get_name)
+    PMC *names;
+    STRING * const get_name = CONST_STRING(interp, "get_name");
+    Parrot_pcc_invoke_method_from_c_args(interp, _namespace, get_name, "->P", &names);
+    return names;
+}
+
+/*
+
+=item C<PMC * Parrot_ns_get_global(PARROT_INTERP, PMC *ns, STRING *globalname)>
+
+Look up the global named C<globalname> in the namespace C<ns>.  Return the
+global, or return PMCNULL if C<ns> is null or if the global is not found.
+
+Parrot_ns_get_global allows a null namespace without throwing an exception; it
+simply returns PMCNULL in that case.
+
+NOTE: At present the use of the {get, set}_global functions is mandatory due
+      to the wacky namespace typing of the default Parrot namespace.
+      Eventually it will be safe to just use the standard hash interface
+      (if desired).
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_get_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
+{
+    ASSERT_ARGS(Parrot_ns_get_global)
+    if (PMC_IS_NULL(ns))
+        return PMCNULL;
+
+    return (PMC *)VTABLE_get_pointer_keyed_str(interp, ns, globalname);
+}
+
+/*
+
+=item C<void Parrot_ns_set_global(PARROT_INTERP, PMC *ns, STRING *globalname,
+PMC *val)>
+
+Set the global named C<globalname> in the namespace C<ns> to the value C<val>.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_ns_set_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
+        ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
+{
+    ASSERT_ARGS(Parrot_ns_set_global)
+    VTABLE_set_pmc_keyed_str(interp, ns, globalname, val);
+}
+
+
+/*
+
+=item C<PMC * Parrot_ns_find_namespace_global(PARROT_INTERP, PMC *ns, STRING
+*globalname)>
+
+Search the namespace PMC C<ns> for an object with name C<globalname>.
+Return the object, or NULL if not found.
+
+TT #1222 - For now this function prefers non-namespaces, it will eventually
+entirely use the untyped interface.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_find_namespace_global(PARROT_INTERP,
+        ARGIN_NULLOK(PMC *ns), ARGIN_NULLOK(STRING *globalname))
+{
+    ASSERT_ARGS(Parrot_ns_find_namespace_global)
+    PMC *res;
+
+    if (PMC_IS_NULL(ns))
+        res = PMCNULL;
+    else {
+        /*
+         * TT #1219 - we should be able to use 'get_pmc_keyed' here,
+         * but we can't because Parrot's default namespaces are not
+         * fully typed and there's a pseudo-typed interface that
+         * distinguishes 'get_pmc_keyed' from 'get_pointer_keyed';
+         * the former is for NS and the latter is for non-NS.
+         */
+        res = (PMC *)VTABLE_get_pointer_keyed_str(interp, ns, globalname);
+    }
+
+    return PMC_IS_NULL(res) ? NULL : res;
+}
+
+/*
+
+=item C<PMC * Parrot_ns_find_current_namespace_global(PARROT_INTERP, STRING
+*globalname)>
+
+Finds and returns the data time named C<globalname> in the current namespace.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_find_current_namespace_global(PARROT_INTERP, ARGIN_NULLOK(STRING *globalname))
+{
+    ASSERT_ARGS(Parrot_ns_find_current_namespace_global)
+    PMC * const ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    return Parrot_ns_find_namespace_global(interp, ns, globalname);
+}
+
+/*
+
+=item C<PMC * Parrot_find_global_s(PARROT_INTERP, STRING *str_key, STRING
+*globalname)>
+
+Search the namespace designated by C<str_key>, or the HLL root if
+C<str_key> is NULL, for an object with name C<globalname>.  Return the
+object, or NULL if not found.
+
+TT #1222 - For now this function prefers non-namespaces, it will eventually
+entirely use the untyped interface.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_find_global_s(PARROT_INTERP, ARGIN_NULLOK(STRING *str_key),
+        ARGIN_NULLOK(STRING *globalname))
+{
+    ASSERT_ARGS(Parrot_find_global_s)
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    PMC * const ns = Parrot_ns_get_namespace_keyed_str(interp, hll_ns, str_key);
+    return Parrot_ns_find_namespace_global(interp, ns, globalname);
+}
+
+/*
+
+=item C<void Parrot_ns_store_global(PARROT_INTERP, PMC *ns, STRING *globalname,
+PMC *val)>
+
+Store the PMC C<val> into the namespace PMC C<ns> with name C<globalname>. If
+the namespace is null, do nothing.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_ns_store_global(PARROT_INTERP, ARGIN_NULLOK(PMC *ns),
+        ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
+{
+    ASSERT_ARGS(Parrot_ns_store_global)
+
+    if (PMC_IS_NULL(ns))
+        return;
+
+    VTABLE_set_pmc_keyed_str(interp, ns, globalname, val);
+}
+
+/*
+
+=item C<void Parrot_store_global_s(PARROT_INTERP, STRING *str_key, STRING
+*globalname, PMC *val)>
+
+Store the PMC C<val> into the namespace designated by C<str_key>, or
+the HLL root if C<str_key> is NULL, with the name C<globalname>.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_store_global_s(PARROT_INTERP, ARGIN_NULLOK(STRING *str_key),
+        ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(PMC *val))
+{
+    ASSERT_ARGS(Parrot_store_global_s)
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    PMC * const ns = Parrot_ns_make_namespace_keyed_str(interp, hll_ns, str_key);
+    Parrot_ns_store_global(interp, ns, globalname, val);
+
+    /* TT #1225 - method cache invalidation should be a namespace function */
+    Parrot_invalidate_method_cache(interp, str_key);
+}
+
+
+/*
+
+=item C<PMC * Parrot_ns_find_global_from_op(PARROT_INTERP, PMC *ns, STRING
+*globalname, void *next)>
+
+If the global exists in the given namespace PMC, return it.  If not, return
+PMCNULL. Throw an exception if a NULL name is passed.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+PMC *
+Parrot_ns_find_global_from_op(PARROT_INTERP, ARGIN(PMC *ns),
+        ARGIN_NULLOK(STRING *globalname), ARGIN_NULLOK(void *next))
+{
+    ASSERT_ARGS(Parrot_ns_find_global_from_op)
+    if (STRING_IS_NULL(globalname))
+        Parrot_ex_throw_from_c_args(interp, next, EXCEPTION_GLOBAL_NOT_FOUND,
+            "Tried to get null global");
+    else {
+        PMC * const res = Parrot_ns_find_namespace_global(interp, ns, globalname);
+        if (!res)
+            return PMCNULL;
+        return res;
+    }
+}
+
+
+/*
+
+=item C<PMC * Parrot_ns_find_named_item(PARROT_INTERP, STRING *name, void
+*next)>
+
+TT #1223 - THIS IS BROKEN - it doesn't walk up the scopes yet
+
+Find the given C<name> in lexicals, then the current namespace, then the HLL
+root namespace, and finally Parrot builtins.  If the name isn't found
+anywhere, return PMCNULL.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
+PMC *
+Parrot_ns_find_named_item(PARROT_INTERP, ARGIN(STRING *name), SHIM(void *next))
+{
+    ASSERT_ARGS(Parrot_ns_find_named_item)
+    PMC * const ctx     = CURRENT_CONTEXT(interp);
+    PMC * const lex_pad = Parrot_find_pad(interp, name, ctx);
+    PMC * g = PMCNULL;
+
+    if (!PMC_IS_NULL(lex_pad)) {
+        g = VTABLE_get_pmc_keyed_str(interp, lex_pad, name);
+
+        /* TT #1223 - walk up the scopes!  duh!! */
+        if (!PMC_IS_NULL(g))
+            return g;
+    }
+
+    g = Parrot_ns_find_current_namespace_global(interp, name);
+    if (!PMC_IS_NULL(g))
+        return g;
+
+    g = Parrot_ns_find_namespace_global(interp, Parrot_get_ctx_HLL_namespace(interp), name);
+    if (!PMC_IS_NULL(g))
+        return g;
+    return PMCNULL;
+}
+
+/*
+
+=item C<void Parrot_ns_store_sub(PARROT_INTERP, PMC *sub_pmc)>
+
+Adds the PMC C<sub> into the current namespace. Adds the sub to a multi of the
+same name if it's defined as a multi.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_ns_store_sub(PARROT_INTERP, ARGIN(PMC *sub_pmc))
+{
+    ASSERT_ARGS(Parrot_ns_store_sub)
+    const INTVAL cur_id = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp));
+
+    PMC *ns;
+    Parrot_Sub_attributes *sub;
+
+    /* PF structures aren't fully constructed yet */
+    Parrot_block_GC_mark(interp);
+
+    /* store relative to HLL namespace */
+    PMC_get_sub(interp, sub_pmc, sub);
+    Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp), sub->HLL_id);
+
+    ns = get_namespace_pmc(interp, sub_pmc);
+
+    /* attach a namespace to the sub for lookups */
+    sub->namespace_stash = ns;
+
+    /* store a :multi sub */
+    if (!PMC_IS_NULL(sub->multi_signature))
+        store_sub_in_multi(interp, sub_pmc, ns);
+
+    /* store other subs (as long as they're not :anon) */
+    else if (!(PObj_get_FLAGS(sub_pmc) & SUB_FLAG_PF_ANON)
+        || sub->vtable_index != -1) {
+        STRING * const ns_entry_name = sub->ns_entry_name;
+        PMC    * const nsname        = sub->namespace_name;
+
+        Parrot_ns_store_global(interp, ns, ns_entry_name, sub_pmc);
+
+        /* TT #1224:
+           TEMPORARY HACK - cache invalidation should be a namespace function
+         */
+        if (!PMC_IS_NULL(nsname)) {
+            STRING * const nsname_s = VTABLE_get_string(interp, nsname);
+            Parrot_invalidate_method_cache(interp, nsname_s);
+        }
+    }
+
+    /* restore HLL_id */
+    Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp), cur_id);
+    Parrot_unblock_GC_mark(interp);
+}
+
+/*
+
+=back
+
+=head1 SEE ALSO
+
+F<include/parrot/namespace.h>
+
+=cut
+
+*/
+
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: branches/dynop_mapping/src/nci/core_thunks.c
==============================================================================
--- branches/dynop_mapping/src/nci/core_thunks.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/nci/core_thunks.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -125,7 +125,7 @@
     char *t_1; STRING *ts_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_1);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (PMC *)(*fn_pointer)(interp, t_1);
@@ -868,7 +868,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &ts_2);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(interp, t_1, t_2);

Modified: branches/dynop_mapping/src/nci/extra_thunks.c
==============================================================================
--- branches/dynop_mapping/src/nci/extra_thunks.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/nci/extra_thunks.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -195,7 +195,7 @@
     PMC *t_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SP", &ts_0, &t_1);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1));
@@ -296,7 +296,7 @@
     INTVAL t_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_1, &ts_2, &t_3);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3);
@@ -346,7 +346,7 @@
     char *t_1; STRING *ts_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
@@ -392,7 +392,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIS", &t_0, &t_1, &ts_2);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
      (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -417,7 +417,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSS", &t_0, &ts_1, &ts_2);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
      (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -445,7 +445,7 @@
     char *t_6; STRING *ts_6;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIIIPS", &ts_1, &t_2, &t_3, &t_4, &t_5, &ts_6);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_6 = STRING_IS_NULL(ts_6) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_6);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
      (*fn_pointer)(interp, t_1, t_2, t_3, t_4, PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), t_6);
@@ -476,7 +476,7 @@
     PMC * t_4;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SSPP", &ts_1, &ts_2, &t_3, &t_4);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(interp, t_1, t_2, t_3, t_4);
@@ -507,7 +507,7 @@
     INTVAL t_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SPI", &ts_1, &t_2, &t_3);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (PMC *)(*fn_pointer)(interp, t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), t_3);
@@ -585,7 +585,7 @@
     char *t_1; STRING *ts_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
      (*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
@@ -608,7 +608,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &ts_2);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
      (*fn_pointer)(interp, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
@@ -1369,7 +1369,7 @@
     INTVAL t_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSII", &t_0, &ts_1, &t_2, &t_3);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -1424,7 +1424,7 @@
     INTVAL t_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSI", &t_0, &ts_1, &ts_2, &t_3);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -1452,7 +1452,7 @@
     INTVAL t_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -1481,7 +1481,7 @@
     INTVAL t_4;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSI", &t_0, &ts_1, &ts_2, &ts_3, &t_4);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
@@ -1642,7 +1642,7 @@
     char *t_1; STRING *ts_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SS", &ts_0, &ts_1);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(t_0, t_1);
@@ -1666,7 +1666,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &ts_2);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (INTVAL)(*fn_pointer)(interp, t_1, t_2);
@@ -2027,7 +2027,7 @@
     INTVAL t_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "ISSI", &t_0, &ts_1, &ts_2, &t_3);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (long)(*fn_pointer)(t_0, t_1, t_2, t_3);
@@ -2223,7 +2223,7 @@
     char *t_5; STRING *ts_5;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSSS", &t_0, &ts_1, &ts_2, &ts_3, &ts_4, &ts_5);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_5 = ts_5 ? Parrot_str_to_cstring(interp, ts_5) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);t_4 = STRING_IS_NULL(ts_4) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_4);t_5 = STRING_IS_NULL(ts_5) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_5);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5);
@@ -2252,7 +2252,7 @@
     char *t_3; STRING *ts_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSS", &t_0, &ts_1, &ts_2, &ts_3);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -2284,7 +2284,7 @@
     INTVAL t_7;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSSISI", &t_0, &ts_1, &ts_2, &ts_3, &ts_4, &t_5, &ts_6, &t_7);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);t_4 = STRING_IS_NULL(ts_4) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_4);t_6 = STRING_IS_NULL(ts_6) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_6);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, t_6, t_7);
@@ -2317,7 +2317,7 @@
     char *t_1; STRING *ts_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
@@ -2341,7 +2341,7 @@
     INTVAL t_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -2431,7 +2431,7 @@
     char *t_1; STRING *ts_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_0, &ts_1);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1);
@@ -2460,7 +2460,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSS", &t_0, &ts_1, &ts_2);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -2489,7 +2489,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIS", &t_0, &t_1, &ts_2);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -2542,7 +2542,7 @@
     INTVAL t_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SSI", &ts_0, &ts_1, &t_2);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (long)(*fn_pointer)(t_0, t_1, t_2);
@@ -2568,7 +2568,7 @@
     INTVAL t_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSI", &t_0, &ts_1, &ts_2, &t_3);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (long)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -2592,7 +2592,7 @@
     char *t_0; STRING *ts_0;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
      (*fn_pointer)(t_0);
@@ -2621,7 +2621,7 @@
     INTVAL t_7;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSSSISI", &t_0, &ts_1, &ts_2, &ts_3, &ts_4, &t_5, &ts_6, &t_7);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);t_4 = STRING_IS_NULL(ts_4) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_4);t_6 = STRING_IS_NULL(ts_6) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_6);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, t_6, t_7);
@@ -2658,7 +2658,7 @@
     PMC * t_4;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SISPP", &ts_0, &t_1, &ts_2, &t_3, &t_4);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *) NULL;i_3 = VTABLE_get_integer(interp, t_3);
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);t_2 = STRING_IS_NULL(ts_2) ? (char *) NULL : Parrot_str_to_cstring(interp, ts_2);i_3 = VTABLE_get_integer(interp, t_3);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(t_0, t_1, &t_2, &i_3, t_4);
@@ -2692,7 +2692,7 @@
     PMC * t_4;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIPPP", &ts_0, &t_1, &t_2, &t_3, &t_4);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;i_3 = VTABLE_get_integer(interp, t_3);
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);i_3 = VTABLE_get_integer(interp, t_3);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(t_0, t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2), &i_3, t_4);
@@ -2728,7 +2728,7 @@
     INTVAL t_7;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPSIIIPI", &t_0, &t_1, &ts_2, &t_3, &t_4, &t_5, &t_6, &t_7);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4, t_5, PMC_IS_NULL((PMC*)t_6) ? (void *)NULL : VTABLE_get_pointer(interp, t_6), t_7);
@@ -2761,7 +2761,7 @@
     INTVAL t_5;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SPIISI", &ts_0, &t_1, &t_2, &t_3, &t_4, &t_5);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2, t_3, Buffer_bufstart(t_4), t_5);
@@ -2795,7 +2795,7 @@
     INTVAL t_7;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIPPPPI", &t_0, &ts_1, &t_2, &t_3, &t_4, &t_5, &t_6, &t_7);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3), PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4), PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), PMC_IS_NULL((PMC*)t_6) ? (void *)NULL : VTABLE_get_pointer(interp, t_6), t_7);
@@ -2870,7 +2870,7 @@
     PMC *t_4;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSSIP", &t_0, &ts_1, &ts_2, &t_3, &t_4);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4));
@@ -2906,7 +2906,7 @@
     INTVAL t_6;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIPPPI", &t_0, &ts_1, &t_2, &t_3, &t_4, &t_5, &t_6);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, PMC_IS_NULL((PMC*)t_3) ? (void *)NULL : VTABLE_get_pointer(interp, t_3), PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4), PMC_IS_NULL((PMC*)t_5) ? (void *)NULL : VTABLE_get_pointer(interp, t_5), t_6);
@@ -3052,7 +3052,7 @@
     INTVAL t_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -3108,7 +3108,7 @@
     INTVAL t_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSII", &t_0, &ts_1, &t_2, &t_3);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -3138,7 +3138,7 @@
     INTVAL t_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SI", &ts_0, &t_1);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(t_0, t_1);
@@ -3167,7 +3167,7 @@
     PMC *t_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSP", &t_0, &ts_1, &t_2);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
@@ -3197,7 +3197,7 @@
     PMC *t_3; int i_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSPP", &t_0, &ts_1, &t_2, &t_3);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);i_2 = VTABLE_get_integer(interp, t_2);i_3 = VTABLE_get_integer(interp, t_3);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, &i_2, &i_3);
@@ -3643,7 +3643,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "IIS", &t_0, &t_1, &ts_2);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(t_0, t_1, t_2);
@@ -3669,7 +3669,7 @@
     INTVAL t_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "IISI", &t_0, &t_1, &ts_2, &t_3);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(t_0, t_1, t_2, t_3);
@@ -3722,7 +3722,7 @@
     INTVAL t_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "ISI", &t_0, &ts_1, &t_2);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(t_0, t_1, t_2);
@@ -4253,7 +4253,7 @@
     char *t_3; STRING *ts_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIIS", &t_0, &t_1, &t_2, &ts_3);
-    t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+    t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -4281,7 +4281,7 @@
     INTVAL t_4;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PIISI", &t_0, &t_1, &t_2, &ts_3, &t_4);
-    t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;
+    t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);
@@ -4615,7 +4615,7 @@
     INTVAL t_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSI", &t_0, &ts_1, &t_2);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2);
@@ -4641,7 +4641,7 @@
     INTVAL t_3;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PISI", &t_0, &t_1, &ts_2, &t_3);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3);
@@ -4813,7 +4813,7 @@
     char *t_0; STRING *ts_0;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(t_0);
@@ -4835,7 +4835,7 @@
     INTVAL t_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SI", &ts_0, &t_1);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(t_0, t_1);
@@ -5097,7 +5097,7 @@
     char *t_0; STRING *ts_0;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *) NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *) NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(&t_0);
@@ -5149,7 +5149,7 @@
     char *t_1; STRING *ts_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_1);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(interp, t_1);
@@ -5402,7 +5402,7 @@
     char *t_0; STRING *ts_0;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(t_0);
@@ -5430,7 +5430,7 @@
     PMC *t_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SPP", &ts_0, &t_1, &t_2);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(t_0, PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), PMC_IS_NULL((PMC*)t_2) ? (void *)NULL : VTABLE_get_pointer(interp, t_2));
@@ -5464,7 +5464,7 @@
     char *t_6; STRING *ts_6;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SSSSSSS", &ts_0, &ts_1, &ts_2, &ts_3, &ts_4, &ts_5, &ts_6);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;t_3 = ts_3 ? Parrot_str_to_cstring(interp, ts_3) : (char *)NULL;t_4 = ts_4 ? Parrot_str_to_cstring(interp, ts_4) : (char *)NULL;t_5 = ts_5 ? Parrot_str_to_cstring(interp, ts_5) : (char *)NULL;t_6 = ts_6 ? Parrot_str_to_cstring(interp, ts_6) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);t_3 = STRING_IS_NULL(ts_3) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_3);t_4 = STRING_IS_NULL(ts_4) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_4);t_5 = STRING_IS_NULL(ts_5) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_5);t_6 = STRING_IS_NULL(ts_6) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_6);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (void *)(*fn_pointer)(t_0, t_1, t_2, t_3, t_4, t_5, t_6);
@@ -5636,7 +5636,7 @@
     char *t_0; STRING *ts_0;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(t_0);
@@ -5661,7 +5661,7 @@
     PMC *t_2; long i_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SIP", &ts_0, &t_1, &t_2);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;i_2 = VTABLE_get_integer(interp, t_2);
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);i_2 = VTABLE_get_integer(interp, t_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(t_0, t_1, &i_2);
@@ -5687,7 +5687,7 @@
     PMC *t_1; long i_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SP", &ts_0, &t_1);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;i_1 = VTABLE_get_integer(interp, t_1);
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);i_1 = VTABLE_get_integer(interp, t_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(t_0, &i_1);
@@ -5851,7 +5851,7 @@
     char *t_0; STRING *ts_0;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_0);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *) NULL;
+    t_0 = STRING_IS_NULL(ts_0) ? (char *) NULL : Parrot_str_to_cstring(interp, ts_0);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (char *)(*fn_pointer)(&t_0);
@@ -6062,7 +6062,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PiS", &t_1, &ts_2);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(interp, t_1, t_2);
@@ -6085,7 +6085,7 @@
     char *t_1; STRING *ts_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "S", &ts_1);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(interp, t_1);
@@ -6385,7 +6385,7 @@
     char *t_2; STRING *ts_2;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PPS", &t_0, &t_1, &ts_2);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), PMC_IS_NULL((PMC*)t_1) ? (void *)NULL : VTABLE_get_pointer(interp, t_1), t_2);
@@ -6608,7 +6608,7 @@
     PMC *t_1; void *v_1;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "SP", &ts_0, &t_1);
-    t_0 = ts_0 ? Parrot_str_to_cstring(interp, ts_0) : (char *)NULL;v_1 = VTABLE_get_pointer(interp, t_1);
+    t_0 = STRING_IS_NULL(ts_0) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_0);v_1 = VTABLE_get_pointer(interp, t_1);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(t_0, &v_1);
@@ -6634,7 +6634,7 @@
     PMC *t_4;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PSIPP", &t_0, &ts_1, &t_2, &t_3, &t_4);
-    t_1 = ts_1 ? Parrot_str_to_cstring(interp, ts_1) : (char *)NULL;v_3 = VTABLE_get_pointer(interp, t_3);
+    t_1 = STRING_IS_NULL(ts_1) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_1);v_3 = VTABLE_get_pointer(interp, t_3);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, &v_3, PMC_IS_NULL((PMC*)t_4) ? (void *)NULL : VTABLE_get_pointer(interp, t_4));
@@ -6688,7 +6688,7 @@
     INTVAL t_4;
     UNUSED(return_data); /* Potentially unused, at least */
     Parrot_pcc_fill_params_from_c_args(interp, call_object, "PISII", &t_0, &t_1, &ts_2, &t_3, &t_4);
-    t_2 = ts_2 ? Parrot_str_to_cstring(interp, ts_2) : (char *)NULL;
+    t_2 = STRING_IS_NULL(ts_2) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_2);
     GETATTR_NCI_orig_func(interp, nci, orig_func);
     fn_pointer = (func_t)D2FPTR(orig_func);
     return_data =  (int)(*fn_pointer)(PMC_IS_NULL((PMC*)t_0) ? (void *)NULL : VTABLE_get_pointer(interp, t_0), t_1, t_2, t_3, t_4);

Modified: branches/dynop_mapping/src/nci_test.c
==============================================================================
--- branches/dynop_mapping/src/nci_test.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/nci_test.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2007, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -159,8 +159,11 @@
 
 */
 
-PARROT_DYNEXT_EXPORT char
-nci_c(void) {
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+char
+nci_c(void)
+{
     return nci_dlvar_char;
 }
 
@@ -174,7 +177,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT char
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+char
 nci_csc(short l1, char l2)
 {
     return l1 * l2;
@@ -191,7 +196,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT double
+PARROT_DYNEXT_EXPORT
+double
 nci_d(void)
 {
     nci_dlvar_double *= 10.0;
@@ -209,7 +215,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT double
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+double
 nci_dd(double d)
 {
     return d * 2.0;
@@ -226,7 +234,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT float
+PARROT_DYNEXT_EXPORT
+float
 nci_f(void)
 {
     nci_dlvar_float *= 10.0;
@@ -244,7 +253,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT float
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+float
 nci_fff(float l1, float l2)
 {
     return l1 / l2;
@@ -260,7 +271,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+int
 nci_i(void)
 {
     return nci_dlvar_int;
@@ -276,7 +289,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+int
 nci_isc(short l1, char l2)
 {
     return l1 * l2;
@@ -292,7 +307,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
 nci_ip(void *p)
 {
     typedef struct _dfi {
@@ -318,7 +334,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
 nci_it(void *p)
 {
     fprintf(stderr, "%c%c\n", ((char*) p)[1], ((char *) p)[0]);
@@ -337,7 +354,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT long
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+long
 nci_l(void)
 {
     return nci_dlvar_long;
@@ -353,7 +372,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int *
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+int *
 nci_p(void)
 {
     return &nci_dlvar_int;
@@ -369,7 +390,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+char *
 nci_t(void)
 {
     return nci_dlvar_cstring;
@@ -388,7 +411,8 @@
 
 static char b[] = "xx worked\n";
 
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+char *
 nci_tb(void *p)
 {
     b[0] = ((char*) p)[1];
@@ -410,7 +434,8 @@
 
 static char s[] = "xx worked\n";
 
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+char *
 nci_tt(char *p)
 {
     s[0] = p[1];
@@ -432,7 +457,8 @@
 
 static char B[] = "xx done\n";
 
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+char *
 nci_tB(void **p)
 {
     B[0] = (*(char**) p)[1];
@@ -451,7 +477,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void *
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+void *
 nci_pp(void *p)
 {
     return p;
@@ -468,7 +496,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
 nci_iiii(int i1, int i2, int i3)
 {
     fprintf(stderr, "%d %d %d\n", i1, i2, i3);
@@ -487,7 +516,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+int
 nci_i4i(long * l, int i)
 {
 
@@ -505,7 +536,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
 nci_ii3(int a, int *bp)
 {
     int r = a * *bp;
@@ -524,7 +556,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int
+PARROT_DYNEXT_EXPORT
+int
 call_back(const char *str)
 {
     puts(str);
@@ -543,7 +576,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void *
+PARROT_DYNEXT_EXPORT
+void *
 nci_pi(int test)
 {
     switch (test) {
@@ -691,7 +725,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT short
+PARROT_DYNEXT_EXPORT
+PARROT_PURE_FUNCTION
+short
 nci_s(void)
 {
     return nci_dlvar_short;
@@ -707,7 +743,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT short
+PARROT_DYNEXT_EXPORT
+PARROT_CONST_FUNCTION
+short
 nci_ssc(short l1, char l2)
 {
     return l1 * l2;
@@ -723,7 +761,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_vP(void *pmc)
 {
     /* TODO:
@@ -760,7 +799,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_cb_C1(cb_C1_func cb, void* user_data)
 {
     const char *result = "succeeded";
@@ -781,7 +821,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_cb_C2(cb_C2_func cb, void* user_data)
 {
     /* call the cb synchronously */
@@ -803,7 +844,8 @@
 
 static int int_cb_C3 = 99;
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_cb_C3(cb_C3_func cb, void* user_data)
 {
     /* call the cb synchronously */
@@ -823,7 +865,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_cb_D1(cb_D1_func cb, void* user_data)
 {
     const char *result = "succeeded";
@@ -844,7 +887,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_cb_D2(cb_D2_func cb, void* user_data)
 {
     /* call the cb synchronously */
@@ -866,7 +910,8 @@
 
 static int int_cb_D3 = 111;
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_cb_D3(cb_D3_func cb, void* user_data)
 {
     /* call the cb synchronously */
@@ -888,7 +933,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_cb_D4(cb_D4_func times_ten, void* user_data)
 {
     int cnt;
@@ -911,7 +957,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_pip(int count, Rect_Like *rects)
 {
     int i;
@@ -931,8 +978,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT int
-nci_i33(int *double_me, int *triple_me)
+PARROT_DYNEXT_EXPORT
+int
+nci_i33(ARGMOD(int *double_me), ARGMOD(int *triple_me))
 {
     *double_me *= 2;
     *triple_me *= 3;
@@ -951,8 +999,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
-nci_vpii(Outer *my_data, int my_x, int my_y)
+PARROT_DYNEXT_EXPORT
+void
+nci_vpii(ARGMOD(Outer *my_data), int my_x, int my_y)
 {
     my_data->x            = my_x;
     my_data->nested->y    = my_y;
@@ -972,7 +1021,8 @@
 
 static int my_array[4];
 
-PARROT_DYNEXT_EXPORT void *
+PARROT_DYNEXT_EXPORT
+void *
 nci_piiii(int alpha, int beta, int gamma, int delta)
 {
     static struct array_container
@@ -1003,7 +1053,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void *
+PARROT_DYNEXT_EXPORT
+void *
 nci_pii(int fac1, int fac2)
 {
     nci_dlvar_int = fac1 * fac2;
@@ -1021,7 +1072,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_v(void)
 {
     nci_dlvar_int *= 10;
@@ -1037,7 +1089,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_vv(void)
 {
     nci_dlvar_int *= 3;
@@ -1053,8 +1106,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
-nci_vVi(Opaque **outOpaque, int x)
+PARROT_DYNEXT_EXPORT
+void
+nci_vVi(ARGOUT(Opaque **outOpaque), int x)
 {
     static Opaque opaque;
     opaque.x = x;
@@ -1072,8 +1126,9 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
-nci_vp(Opaque *inOpaque)
+PARROT_DYNEXT_EXPORT
+void
+nci_vp(ARGIN(Opaque *inOpaque))
 {
     if (inOpaque)
         printf("got %d\n", inOpaque->x);
@@ -1091,7 +1146,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT char *
+PARROT_DYNEXT_EXPORT
+char *
 nci_ttt(char *s1, char *s2)
 {
     char* s = (char*) malloc((2 * strlen(s2)) + strlen(s1) + 5);
@@ -1100,9 +1156,20 @@
     return s;
 }
 
+/*
+
+=item C<static void validate_float(float f, double checkval)>
+
+Check that a float value f is has an error ratio of less than 0.01
+when compared to a double value checkval
+
+=cut
+
+*/
 
 static void
-validate_float(float f, double checkval) {
+validate_float(float f, double checkval)
+{
     int valid;
     double error_ratio;
     error_ratio = (((double)f) - checkval) / checkval;
@@ -1121,7 +1188,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_vfff(float l1, float l2, float l3)
 {
     validate_float(l1, 3456.54);
@@ -1140,7 +1208,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_vV(const char **ptr)
 {
     *ptr = "Hello bright new world\n";
@@ -1158,7 +1227,8 @@
 
 */
 
-PARROT_DYNEXT_EXPORT void
+PARROT_DYNEXT_EXPORT
+void
 nci_vVVV(const char **ptr1, const char **ptr2, const char **ptr3)
 {
     *ptr1 = "Hello bright new world!\n";

Modified: branches/dynop_mapping/src/oo.c
==============================================================================
--- branches/dynop_mapping/src/oo.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/oo.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -190,7 +190,7 @@
                 PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
                                         interp->HLL_namespace,
                                         Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
-                PMC * const ns     = Parrot_get_namespace_keyed(interp,
+                PMC * const ns     = Parrot_ns_get_namespace_keyed(interp,
                                         hll_ns, key);
 
                 if (!PMC_IS_NULL(ns))
@@ -334,9 +334,9 @@
         return type_class;
     }
     else {
-        PMC * const parrot_hll = Parrot_get_namespace_keyed_str(interp, interp->root_namespace, CONST_STRING(interp, "parrot"));
+        PMC * const parrot_hll = Parrot_ns_get_namespace_keyed_str(interp, interp->root_namespace, CONST_STRING(interp, "parrot"));
         PMC * const pmc_ns =
-            Parrot_make_namespace_keyed_str(interp, parrot_hll,
+            Parrot_ns_make_namespace_keyed_str(interp, parrot_hll,
                 interp->vtables[type]->whoami);
         PMC * proxy = VTABLE_get_class(interp, pmc_ns);
 
@@ -375,7 +375,7 @@
         /* First check in current HLL namespace */
         PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp, interp->HLL_namespace,
                                Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
-        PMC * const ns     = Parrot_get_namespace_keyed_str(interp, hll_ns, name);
+        PMC * const ns     = Parrot_ns_get_namespace_keyed_str(interp, hll_ns, name);
         PMC * const _class = PMC_IS_NULL(ns)
                            ? PMCNULL : VTABLE_get_class(interp, ns);
 

Modified: branches/dynop_mapping/src/ops/core_ops.c
==============================================================================
--- branches/dynop_mapping/src/ops/core_ops.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/ops/core_ops.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -15266,7 +15266,7 @@
 opcode_t *
 Parrot_check_events(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const next =cur_opcode + 1;
+    opcode_t * const next = cur_opcode + 1;
     Parrot_cx_check_tasks(interp, interp->scheduler);return (opcode_t *)next;   /* force this being a branch op */
 }
 
@@ -15328,7 +15328,7 @@
 Parrot_local_branch_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     INTVAL return_addr;
-    opcode_t * const dest =cur_opcode + 3;
+    opcode_t * const dest = cur_opcode + 3;
 
     if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
         opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
@@ -15344,7 +15344,7 @@
 Parrot_local_branch_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     INTVAL return_addr;
-    opcode_t * const dest =cur_opcode + 3;
+    opcode_t * const dest = cur_opcode + 3;
 
     if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
         opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
@@ -15361,7 +15361,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     INTVAL return_addr;
     opcode_t *next;
-    opcode_t * const dest =cur_opcode + 2;
+    opcode_t * const dest = cur_opcode + 2;
 
     if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
         opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
@@ -15460,7 +15460,7 @@
 Parrot_invokecc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const p     = PREG(1);
-    opcode_t *dest         =cur_opcode + 2;
+    opcode_t *dest         = cur_opcode + 2;
     PMC      * const signature = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
@@ -15475,7 +15475,7 @@
 opcode_t *
 Parrot_invoke_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t   *dest       =cur_opcode + 3;
+    opcode_t   *dest       = cur_opcode + 3;
     PMC * const p          = PREG(1);
     PMC * const signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
@@ -15492,7 +15492,7 @@
 opcode_t *
 Parrot_yield(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t   *dest =cur_opcode + 1;
+    opcode_t   *dest = cur_opcode + 1;
     PMC * const p    = Parrot_pcc_get_sub(interp, CURRENT_CONTEXT(interp));
 
     VTABLE_increment(interp, p);
@@ -15503,7 +15503,7 @@
 Parrot_tailcall_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const p               = PREG(1);
-    opcode_t   *dest            =cur_opcode + 2;
+    opcode_t   *dest            = cur_opcode + 2;
     PMC * const ctx             = CURRENT_CONTEXT(interp);
     PMC * const parent_ctx      = Parrot_pcc_get_caller_ctx(interp, ctx);
     PMC * const this_call_sig   = Parrot_pcc_get_signature(interp, ctx);
@@ -15520,7 +15520,7 @@
 Parrot_returncc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const p = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
-    opcode_t * const dest = VTABLE_invoke(interp, p,cur_opcode + 1);return (opcode_t *)dest;
+    opcode_t * const dest = VTABLE_invoke(interp, p, cur_opcode + 1);return (opcode_t *)dest;
 }
 
 opcode_t *
@@ -15714,7 +15714,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * except = PREG(1);
     opcode_t *dest;
-    opcode_t * const ret    =cur_opcode + 2;
+    opcode_t * const ret    = cur_opcode + 2;
     PMC      * const resume = pmc_new(interp, enum_class_Continuation);
 
     VTABLE_set_pointer(interp, resume, ret);
@@ -15746,7 +15746,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t * dest;
     if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_Exception) {
-        opcode_t * const ret    =cur_opcode + 2;
+        opcode_t * const ret    = cur_opcode + 2;
         PMC      * const except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
                 EXCEPTION_UNIMPLEMENTED,
                 Parrot_str_new_constant(interp, "Not a throwable object"));
@@ -15767,7 +15767,7 @@
 Parrot_die_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
+    opcode_t * const ret       = cur_opcode + 2;
     PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
     PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
                                     CONTROL_ERROR, SREG(1));
@@ -15783,7 +15783,7 @@
 Parrot_die_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
+    opcode_t * const ret       = cur_opcode + 2;
     PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
     PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
                                     CONTROL_ERROR, CONST(1)->u.string);
@@ -15799,7 +15799,7 @@
 Parrot_die_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
+    opcode_t * const ret       = cur_opcode + 2;
     PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
     STRING   * const msg       = PMC_IS_NULL(PREG(1)) ? NULL : VTABLE_get_string(interp, PREG(1));
     PMC      * const exception =
@@ -15816,7 +15816,7 @@
 Parrot_die_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
+    opcode_t * const ret       = cur_opcode + 2;
     PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
     STRING   * const msg       = PMC_IS_NULL(CONST(1)->u.key) ? NULL : VTABLE_get_string(interp, CONST(1)->u.key);
     PMC      * const exception =
@@ -15835,7 +15835,7 @@
     if (IREG(1) == EXCEPT_doomed)
         _exit(IREG(2));
     else {
-        opcode_t * const ret       =cur_opcode + 3;
+        opcode_t * const ret       = cur_opcode + 3;
         PMC      * const exception = Parrot_ex_build_exception(interp, IREG(1), IREG(2), NULL);
         opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
     }
@@ -15847,7 +15847,7 @@
     if (cur_opcode[1] == EXCEPT_doomed)
         _exit(IREG(2));
     else {
-        opcode_t * const ret       =cur_opcode + 3;
+        opcode_t * const ret       = cur_opcode + 3;
         PMC      * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], IREG(2), NULL);
         opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
     }
@@ -15859,7 +15859,7 @@
     if (IREG(1) == EXCEPT_doomed)
         _exit(cur_opcode[2]);
     else {
-        opcode_t * const ret       =cur_opcode + 3;
+        opcode_t * const ret       = cur_opcode + 3;
         PMC      * const exception = Parrot_ex_build_exception(interp, IREG(1), cur_opcode[2], NULL);
         opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
     }
@@ -15871,7 +15871,7 @@
     if (cur_opcode[1] == EXCEPT_doomed)
         _exit(cur_opcode[2]);
     else {
-        opcode_t * const ret       =cur_opcode + 3;
+        opcode_t * const ret       = cur_opcode + 3;
         PMC      * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], cur_opcode[2], NULL);
         opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
     }
@@ -15881,7 +15881,7 @@
 Parrot_exit_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
+    opcode_t * const ret       = cur_opcode + 2;
     PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
     PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
                                                            CONTROL_EXIT, NULL);
@@ -15899,7 +15899,7 @@
 Parrot_exit_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t        *dest;
-    opcode_t * const ret       =cur_opcode + 2;
+    opcode_t * const ret       = cur_opcode + 2;
     PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
     PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
                                                            CONTROL_EXIT, NULL);
@@ -16448,7 +16448,7 @@
 Parrot_annotations_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     if (interp->code->annotations) {
-        const opcode_t cur_pos = (cur_opcode + 2) - interp->code->base.data;
+        const opcode_t cur_pos = ( cur_opcode + 2) - interp->code->base.data;
         PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
                 cur_pos, NULL);
     }
@@ -16462,7 +16462,7 @@
 Parrot_annotations_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     if (interp->code->annotations) {
-        const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+        const opcode_t cur_pos = ( cur_opcode + 3) - interp->code->base.data;
         PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
                 cur_pos, SREG(2));
     }
@@ -16476,7 +16476,7 @@
 Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     if (interp->code->annotations) {
-        const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+        const opcode_t cur_pos = ( cur_opcode + 3) - interp->code->base.data;
         PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
                 cur_pos, CONST(2)->u.string);
     }
@@ -18460,7 +18460,7 @@
     PMC * const p = PREG(1);
 
     if (PMC_IS_NULL(p)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 2,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 2,
              EXCEPTION_UNEXPECTED_NULL,
             "Null PMC in say");return (opcode_t *)handler;
     }
@@ -18770,7 +18770,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     INTVAL den = IREG(2);
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18783,7 +18783,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     INTVAL den = cur_opcode[2];
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18796,7 +18796,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = NREG(2);
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18809,7 +18809,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = CONST(2)->u.number;
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18857,7 +18857,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     INTVAL den = IREG(3);
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18870,7 +18870,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     INTVAL den = IREG(3);
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18883,7 +18883,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     INTVAL den = cur_opcode[3];
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18896,7 +18896,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     INTVAL den = cur_opcode[3];
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18909,7 +18909,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = NREG(3);
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18922,7 +18922,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = NREG(3);
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18935,7 +18935,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = CONST(3)->u.number;
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18948,7 +18948,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = CONST(3)->u.number;
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -18998,7 +18998,7 @@
     FLOATVAL f;
 
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19015,7 +19015,7 @@
     FLOATVAL f;
 
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19030,7 +19030,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = NREG(2);
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19043,7 +19043,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = CONST(2)->u.number;
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19093,7 +19093,7 @@
     FLOATVAL f;
 
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19110,7 +19110,7 @@
     FLOATVAL f;
 
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19127,7 +19127,7 @@
     FLOATVAL f;
 
     if (den == 0) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19142,7 +19142,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = NREG(3);
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19155,7 +19155,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = NREG(3);
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19168,7 +19168,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     FLOATVAL den = CONST(3)->u.number;
     if (FLOAT_IS_ZERO(den)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_DIV_BY_ZERO,
             "Divide by zero");return (opcode_t *)handler;
     }
@@ -19750,16 +19750,23 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const object     = PREG(1);
     STRING   * const meth       = SREG(2);
-    opcode_t * const next       =cur_opcode + 3;
+    opcode_t * const next       = cur_opcode + 3;
 
     PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
     opcode_t *dest              = NULL;
-    PMC      * const signature  = Parrot_pcc_get_signature(interp,
-                                    CURRENT_CONTEXT(interp));
 
     Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
 
-    if (PMC_IS_NULL(method_pmc)) {
+    if (!PMC_IS_NULL(method_pmc)) {
+        PMC * const signature = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+        if (!PMC_IS_NULL(signature))
+            Parrot_pcc_set_object(interp, signature, object);
+
+        interp->current_cont = NEED_CONTINUATION;
+        dest                 = VTABLE_invoke(interp, method_pmc, next);
+    }
+    else {
         PMC * const _class = VTABLE_get_class(interp, object);
         if (PMC_IS_NULL(_class)) {
             dest = Parrot_ex_throw_from_op_args(interp, next,
@@ -19772,12 +19779,6 @@
                 "Method '%Ss' not found for invocant of class '%Ss'", meth,
                 VTABLE_get_string(interp, _class));
         }
-    }
-    else {
-        if (!PMC_IS_NULL(signature))
-            Parrot_pcc_set_object(interp, signature, object);
-        interp->current_cont   = NEED_CONTINUATION;
-        dest                   = VTABLE_invoke(interp, method_pmc, next);
     }return (opcode_t *)dest;
 }
 
@@ -19786,16 +19787,23 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const object     = PREG(1);
     STRING   * const meth       = CONST(2)->u.string;
-    opcode_t * const next       =cur_opcode + 3;
+    opcode_t * const next       = cur_opcode + 3;
 
     PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
     opcode_t *dest              = NULL;
-    PMC      * const signature  = Parrot_pcc_get_signature(interp,
-                                    CURRENT_CONTEXT(interp));
 
     Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
 
-    if (PMC_IS_NULL(method_pmc)) {
+    if (!PMC_IS_NULL(method_pmc)) {
+        PMC * const signature = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+        if (!PMC_IS_NULL(signature))
+            Parrot_pcc_set_object(interp, signature, object);
+
+        interp->current_cont = NEED_CONTINUATION;
+        dest                 = VTABLE_invoke(interp, method_pmc, next);
+    }
+    else {
         PMC * const _class = VTABLE_get_class(interp, object);
         if (PMC_IS_NULL(_class)) {
             dest = Parrot_ex_throw_from_op_args(interp, next,
@@ -19808,12 +19816,6 @@
                 "Method '%Ss' not found for invocant of class '%Ss'", meth,
                 VTABLE_get_string(interp, _class));
         }
-    }
-    else {
-        if (!PMC_IS_NULL(signature))
-            Parrot_pcc_set_object(interp, signature, object);
-        interp->current_cont   = NEED_CONTINUATION;
-        dest                   = VTABLE_invoke(interp, method_pmc, next);
     }return (opcode_t *)dest;
 }
 
@@ -19821,7 +19823,7 @@
 Parrot_callmethodcc_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t        *dest;
-    opcode_t * const next  =cur_opcode + 3;
+    opcode_t * const next  = cur_opcode + 3;
     PMC      *       signature  = Parrot_pcc_get_signature(interp,
                                     CURRENT_CONTEXT(interp));
 
@@ -19838,7 +19840,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const object     = PREG(1);
     STRING   * const meth       = SREG(2);
-    opcode_t * const next       =cur_opcode + 4;
+    opcode_t * const next       = cur_opcode + 4;
 
     PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
     opcode_t *dest              = NULL;
@@ -19865,7 +19867,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const object     = PREG(1);
     STRING   * const meth       = CONST(2)->u.string;
-    opcode_t * const next       =cur_opcode + 4;
+    opcode_t * const next       = cur_opcode + 4;
 
     PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
     opcode_t *dest              = NULL;
@@ -19892,7 +19894,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const object     = PREG(1);
     PMC      * const method_pmc = PREG(2);
-    opcode_t * const next       =cur_opcode + 4;
+    opcode_t * const next       = cur_opcode + 4;
 
     opcode_t *dest;
     PMC      *       signature  = Parrot_pcc_get_signature(interp,
@@ -19909,7 +19911,7 @@
 opcode_t *
 Parrot_tailcallmethod_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const next       =cur_opcode + 3;
+    opcode_t * const next       = cur_opcode + 3;
     PMC      * const object     = PREG(1);
     STRING   * const meth       = SREG(2);
     PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
@@ -19935,7 +19937,7 @@
 opcode_t *
 Parrot_tailcallmethod_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const next       =cur_opcode + 3;
+    opcode_t * const next       = cur_opcode + 3;
     PMC      * const object     = PREG(1);
     STRING   * const meth       = CONST(2)->u.string;
     PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
@@ -19961,7 +19963,7 @@
 opcode_t *
 Parrot_tailcallmethod_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const next       =cur_opcode + 3;
+    opcode_t * const next       = cur_opcode + 3;
     PMC      * const object     = PREG(1);
     PMC      * const method_pmc = PREG(2);
 
@@ -20097,7 +20099,7 @@
 Parrot_subclass_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
-    opcode_t * const next         =cur_opcode + 3;
+    opcode_t * const next         = cur_opcode + 3;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20112,7 +20114,7 @@
 Parrot_subclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
-    opcode_t * const next         =cur_opcode + 3;
+    opcode_t * const next         = cur_opcode + 3;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20127,7 +20129,7 @@
 Parrot_subclass_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20142,7 +20144,7 @@
 Parrot_subclass_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20157,7 +20159,7 @@
 Parrot_subclass_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20172,7 +20174,7 @@
 Parrot_subclass_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20187,7 +20189,7 @@
 Parrot_subclass_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20202,7 +20204,7 @@
 Parrot_subclass_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20217,7 +20219,7 @@
 Parrot_subclass_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20232,7 +20234,7 @@
 Parrot_subclass_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20247,7 +20249,7 @@
 Parrot_subclass_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
-    opcode_t * const next         =cur_opcode + 3;
+    opcode_t * const next         = cur_opcode + 3;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20263,7 +20265,7 @@
 Parrot_subclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
-    opcode_t * const next         =cur_opcode + 3;
+    opcode_t * const next         = cur_opcode + 3;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20279,7 +20281,7 @@
 Parrot_subclass_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20295,7 +20297,7 @@
 Parrot_subclass_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20311,7 +20313,7 @@
 Parrot_subclass_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20327,7 +20329,7 @@
 Parrot_subclass_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20343,7 +20345,7 @@
 Parrot_subclass_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20359,7 +20361,7 @@
 Parrot_subclass_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20375,7 +20377,7 @@
 Parrot_subclass_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20391,7 +20393,7 @@
 Parrot_subclass_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
-    opcode_t * const next         =cur_opcode + 4;
+    opcode_t * const next         = cur_opcode + 4;
 
     if (PMC_IS_NULL(parent_class)) {
         opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
@@ -20644,7 +20646,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -20666,7 +20668,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -20688,7 +20690,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -20710,7 +20712,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -20732,7 +20734,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -20754,7 +20756,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -20774,7 +20776,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type(interp, name_key);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
         }
@@ -20794,7 +20796,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type(interp, name_key);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
         }
@@ -20814,7 +20816,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type(interp, name_key);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
         }
@@ -20834,7 +20836,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type(interp, name_key);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
         }
@@ -20854,7 +20856,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type(interp, name_key);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
         }
@@ -20874,7 +20876,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type(interp, name_key);
         if (type <= 0) {
-            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
         }
@@ -20888,7 +20890,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const key      = PREG(2);
     PMC * const root_ns  = interp->root_namespace;
-    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
     PMC * classobj       = PMCNULL;
 
     if (!PMC_IS_NULL(ns))
@@ -20896,7 +20898,7 @@
     if (!PMC_IS_NULL(classobj))
         PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
     else {
-        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
     }
@@ -20908,7 +20910,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const key      = CONST(2)->u.key;
     PMC * const root_ns  = interp->root_namespace;
-    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
     PMC * classobj       = PMCNULL;
 
     if (!PMC_IS_NULL(ns))
@@ -20916,7 +20918,7 @@
     if (!PMC_IS_NULL(classobj))
         PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
     else {
-        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
     }
@@ -20928,7 +20930,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const key      = PREG(2);
     PMC * const root_ns  = interp->root_namespace;
-    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
     PMC * classobj       = PMCNULL;
 
     if (!PMC_IS_NULL(ns))
@@ -20936,7 +20938,7 @@
     if (!PMC_IS_NULL(classobj))
         PREG(1) = VTABLE_instantiate(interp, classobj, PREG(3));
     else {
-        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
     }
@@ -20948,7 +20950,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const key      = CONST(2)->u.key;
     PMC * const root_ns  = interp->root_namespace;
-    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
     PMC * classobj       = PMCNULL;
 
     if (!PMC_IS_NULL(ns))
@@ -20956,7 +20958,7 @@
     if (!PMC_IS_NULL(classobj))
         PREG(1) = VTABLE_instantiate(interp, classobj, PREG(3));
     else {
-        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
     }
@@ -20968,7 +20970,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const key      = PREG(2);
     PMC * const root_ns  = interp->root_namespace;
-    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
     PMC * classobj       = PMCNULL;
 
     if (!PMC_IS_NULL(ns))
@@ -20976,7 +20978,7 @@
     if (!PMC_IS_NULL(classobj))
         PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3)->u.key);
     else {
-        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
     }
@@ -20988,7 +20990,7 @@
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const key      = CONST(2)->u.key;
     PMC * const root_ns  = interp->root_namespace;
-    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
     PMC * classobj       = PMCNULL;
 
     if (!PMC_IS_NULL(ns))
@@ -20996,7 +20998,7 @@
     if (!PMC_IS_NULL(classobj))
         PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3)->u.key);
     else {
-        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
     }
@@ -21027,7 +21029,7 @@
 opcode_t *
 Parrot_find_method_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const resume =cur_opcode + 4;
+    opcode_t * const resume = cur_opcode + 4;
     PREG(1) = VTABLE_find_method(interp, PREG(2), SREG(3));
     if (PMC_IS_NULL(PREG(1)) || !VTABLE_defined(interp, PREG(1))) {
         opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, resume,
@@ -21040,7 +21042,7 @@
 opcode_t *
 Parrot_find_method_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t * const resume =cur_opcode + 4;
+    opcode_t * const resume = cur_opcode + 4;
     PREG(1) = VTABLE_find_method(interp, PREG(2), CONST(3)->u.string);
     if (PMC_IS_NULL(PREG(1)) || !VTABLE_defined(interp, PREG(1))) {
         opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, resume,
@@ -22172,7 +22174,7 @@
 Parrot_copy_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     if (PMC_IS_NULL(PREG(1))) {
-        opcode_t * const dest =cur_opcode + 3;
+        opcode_t * const dest = cur_opcode + 3;
         opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
                 EXCEPTION_NULL_REG_ACCESS, "Null PMC in copy");return (opcode_t *)handler;
     }
@@ -23661,7 +23663,7 @@
 opcode_t *
 Parrot_sleep_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t *next =cur_opcode + 2;
+    opcode_t *next = cur_opcode + 2;
     if (IREG(1) < 0) {
         opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
             EXCEPTION_NEG_SLEEP,
@@ -23673,7 +23675,7 @@
 opcode_t *
 Parrot_sleep_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t *next =cur_opcode + 2;
+    opcode_t *next = cur_opcode + 2;
     if (cur_opcode[1] < 0) {
         opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
             EXCEPTION_NEG_SLEEP,
@@ -23685,7 +23687,7 @@
 opcode_t *
 Parrot_sleep_n(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t *next =cur_opcode + 2;
+    opcode_t *next = cur_opcode + 2;
     if (NREG(1) < 0.0) {
         opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
             EXCEPTION_NEG_SLEEP,
@@ -23697,7 +23699,7 @@
 opcode_t *
 Parrot_sleep_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t *next =cur_opcode + 2;
+    opcode_t *next = cur_opcode + 2;
     if (CONST(1)->u.number < 0.0) {
         opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
             EXCEPTION_NEG_SLEEP,
@@ -23908,7 +23910,7 @@
 Parrot_get_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PMC * const ns     = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+    PMC * const ns     = Parrot_ns_get_namespace_keyed(interp, cur_ns, PREG(2));
 
     PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns;
 
@@ -23918,7 +23920,7 @@
 Parrot_get_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PMC * const ns     = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+    PMC * const ns     = Parrot_ns_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
 
     PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns;
 
@@ -23939,7 +23941,7 @@
     if (PMC_IS_NULL(hll_ns))
         PREG(1) = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, PREG(2));
         PREG(1) = ns;
     }
 
@@ -23952,7 +23954,7 @@
     if (PMC_IS_NULL(hll_ns))
         PREG(1) = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
         PREG(1) = ns;
     }
 
@@ -23973,7 +23975,7 @@
     if (PMC_IS_NULL(root_ns))
         PREG(1) = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, PREG(2));
         PREG(1) = ns;
     }
 
@@ -23986,7 +23988,7 @@
     if (PMC_IS_NULL(root_ns))
         PREG(1) = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
         PREG(1) = ns;
     }
 
@@ -23996,7 +23998,7 @@
 Parrot_get_global_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PREG(1) = Parrot_find_global_op(interp, cur_ns, SREG(2),cur_opcode + 3);
+    PREG(1) = Parrot_ns_find_global_from_op(interp, cur_ns, SREG(2), cur_opcode + 3);
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24004,7 +24006,7 @@
 Parrot_get_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PREG(1) = Parrot_find_global_op(interp, cur_ns, CONST(2)->u.string,cur_opcode + 3);
+    PREG(1) = Parrot_ns_find_global_from_op(interp, cur_ns, CONST(2)->u.string, cur_opcode + 3);
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24016,11 +24018,11 @@
         PREG(1) = PMCNULL;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, PREG(2));
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24033,11 +24035,11 @@
         PREG(1) = PMCNULL;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24050,11 +24052,11 @@
         PREG(1) = PMCNULL;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, PREG(2));
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24067,11 +24069,11 @@
         PREG(1) = PMCNULL;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24080,7 +24082,7 @@
 Parrot_get_hll_global_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    PREG(1) = Parrot_find_global_op(interp, hll_ns, SREG(2),cur_opcode + 3);
+    PREG(1) = Parrot_ns_find_global_from_op(interp, hll_ns, SREG(2), cur_opcode + 3);
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24088,7 +24090,7 @@
 Parrot_get_hll_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    PREG(1) = Parrot_find_global_op(interp, hll_ns, CONST(2)->u.string,cur_opcode + 3);
+    PREG(1) = Parrot_ns_find_global_from_op(interp, hll_ns, CONST(2)->u.string, cur_opcode + 3);
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24100,11 +24102,11 @@
         PREG(1) = hll_ns;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, PREG(2));
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24117,11 +24119,11 @@
         PREG(1) = hll_ns;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24134,11 +24136,11 @@
         PREG(1) = hll_ns;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, PREG(2));
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24151,11 +24153,11 @@
         PREG(1) = hll_ns;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24164,7 +24166,7 @@
 Parrot_get_root_global_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const root_ns = interp->root_namespace;
-    PREG(1) = Parrot_find_global_op(interp, root_ns, SREG(2),cur_opcode + 3);
+    PREG(1) = Parrot_ns_find_global_from_op(interp, root_ns, SREG(2), cur_opcode + 3);
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24172,7 +24174,7 @@
 Parrot_get_root_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const root_ns = interp->root_namespace;
-    PREG(1) = Parrot_find_global_op(interp, root_ns, CONST(2)->u.string,cur_opcode + 3);
+    PREG(1) = Parrot_ns_find_global_from_op(interp, root_ns, CONST(2)->u.string, cur_opcode + 3);
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24183,11 +24185,11 @@
     if (PMC_IS_NULL(root_ns))
         PREG(1) = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, PREG(2));
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24199,11 +24201,11 @@
     if (PMC_IS_NULL(root_ns))
         PREG(1) = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24215,11 +24217,11 @@
     if (PMC_IS_NULL(root_ns))
         PREG(1) = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, PREG(2));
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24231,11 +24233,11 @@
     if (PMC_IS_NULL(root_ns))
         PREG(1) = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
         if (PMC_IS_NULL(ns))
             PREG(1) = PMCNULL;
         else
-            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+            PREG(1) = Parrot_ns_find_global_from_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
     }
 
 return (opcode_t *)cur_opcode + 4;}
@@ -24244,7 +24246,7 @@
 Parrot_set_global_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    Parrot_set_global(interp, cur_ns, SREG(1), PREG(2));
+    Parrot_ns_set_global(interp, cur_ns, SREG(1), PREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24252,7 +24254,7 @@
 Parrot_set_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    Parrot_set_global(interp, cur_ns, CONST(1)->u.string, PREG(2));
+    Parrot_ns_set_global(interp, cur_ns, CONST(1)->u.string, PREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24260,9 +24262,9 @@
 Parrot_set_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, cur_ns, PREG(1));
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, cur_ns, PREG(1));
 
-    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+    Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24270,9 +24272,9 @@
 Parrot_set_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
 
-    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+    Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24280,9 +24282,9 @@
 Parrot_set_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, cur_ns, PREG(1));
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, cur_ns, PREG(1));
 
-    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+    Parrot_ns_set_global(interp, ns, CONST(2)->u.string, PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24290,9 +24292,9 @@
 Parrot_set_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
 
-    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+    Parrot_ns_set_global(interp, ns, CONST(2)->u.string, PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24300,7 +24302,7 @@
 Parrot_set_hll_global_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    Parrot_set_global(interp, hll_ns, SREG(1), PREG(2));
+    Parrot_ns_set_global(interp, hll_ns, SREG(1), PREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24308,7 +24310,7 @@
 Parrot_set_hll_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    Parrot_set_global(interp, hll_ns, CONST(1)->u.string, PREG(2));
+    Parrot_ns_set_global(interp, hll_ns, CONST(1)->u.string, PREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24316,9 +24318,9 @@
 Parrot_set_hll_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, hll_ns, PREG(1));
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, hll_ns, PREG(1));
 
-    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+    Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24326,9 +24328,9 @@
 Parrot_set_hll_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
 
-    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+    Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24336,9 +24338,9 @@
 Parrot_set_hll_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, hll_ns, PREG(1));
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, hll_ns, PREG(1));
 
-    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+    Parrot_ns_set_global(interp, ns, CONST(2)->u.string, PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24346,9 +24348,9 @@
 Parrot_set_hll_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
 
-    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+    Parrot_ns_set_global(interp, ns, CONST(2)->u.string, PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24356,7 +24358,7 @@
 Parrot_set_root_global_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const root_ns = interp->root_namespace;
-    Parrot_set_global(interp, root_ns, SREG(1), PREG(2));
+    Parrot_ns_set_global(interp, root_ns, SREG(1), PREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24364,7 +24366,7 @@
 Parrot_set_root_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const root_ns = interp->root_namespace;
-    Parrot_set_global(interp, root_ns, CONST(1)->u.string, PREG(2));
+    Parrot_ns_set_global(interp, root_ns, CONST(1)->u.string, PREG(2));
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24372,9 +24374,9 @@
 Parrot_set_root_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const root_ns = interp->root_namespace;
-    PMC * const ns      = Parrot_make_namespace_keyed(interp, root_ns, PREG(1));
+    PMC * const ns      = Parrot_ns_make_namespace_keyed(interp, root_ns, PREG(1));
 
-    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+    Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24382,9 +24384,9 @@
 Parrot_set_root_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const root_ns = interp->root_namespace;
-    PMC * const ns      = Parrot_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
+    PMC * const ns      = Parrot_ns_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
 
-    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+    Parrot_ns_set_global(interp, ns, SREG(2), PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24392,9 +24394,9 @@
 Parrot_set_root_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const root_ns = interp->root_namespace;
-    PMC * const ns      = Parrot_make_namespace_keyed(interp, root_ns, PREG(1));
+    PMC * const ns      = Parrot_ns_make_namespace_keyed(interp, root_ns, PREG(1));
 
-    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+    Parrot_ns_set_global(interp, ns, CONST(2)->u.string, PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24402,9 +24404,9 @@
 Parrot_set_root_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     PMC * const root_ns = interp->root_namespace;
-    PMC * const ns      = Parrot_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
+    PMC * const ns      = Parrot_ns_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
 
-    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+    Parrot_ns_set_global(interp, ns, CONST(2)->u.string, PREG(3));
 
 return (opcode_t *)cur_opcode + 4;}
 
@@ -24417,7 +24419,7 @@
                 "Tried to find null name");return (opcode_t *)handler;
     }
 
-    PREG(1) = Parrot_find_name_op(interp, SREG(2),cur_opcode + 3);
+    PREG(1) = Parrot_ns_find_named_item(interp, SREG(2), cur_opcode + 3);
 
 return (opcode_t *)cur_opcode + 3;}
 
@@ -24430,15 +24432,15 @@
                 "Tried to find null name");return (opcode_t *)handler;
     }
 
-    PREG(1) = Parrot_find_name_op(interp, CONST(2)->u.string,cur_opcode + 3);
+    PREG(1) = Parrot_ns_find_named_item(interp, CONST(2)->u.string, cur_opcode + 3);
 
 return (opcode_t *)cur_opcode + 3;}
 
 opcode_t *
 Parrot_find_sub_not_null_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t *dest =cur_opcode + 3;
-    PMC *sub = Parrot_find_name_op(interp, SREG(2), dest);
+    opcode_t *dest = cur_opcode + 3;
+    PMC *sub = Parrot_ns_find_named_item(interp, SREG(2), dest);
 
     if (PMC_IS_NULL(sub)) {
         opcode_t *handler;
@@ -24455,8 +24457,8 @@
 opcode_t *
 Parrot_find_sub_not_null_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    opcode_t *dest =cur_opcode + 3;
-    PMC *sub = Parrot_find_name_op(interp, CONST(2)->u.string, dest);
+    opcode_t *dest = cur_opcode + 3;
+    PMC *sub = Parrot_ns_find_named_item(interp, CONST(2)->u.string, dest);
 
     if (PMC_IS_NULL(sub)) {
         opcode_t *handler;
@@ -24509,7 +24511,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24531,7 +24533,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24553,7 +24555,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24575,7 +24577,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24597,7 +24599,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24619,7 +24621,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24641,7 +24643,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24663,7 +24665,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24685,7 +24687,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24707,7 +24709,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24729,7 +24731,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24751,7 +24753,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24773,7 +24775,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24795,7 +24797,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24817,7 +24819,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24839,7 +24841,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24861,7 +24863,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24883,7 +24885,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24905,7 +24907,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24927,7 +24929,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -24949,7 +24951,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24971,7 +24973,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -24993,7 +24995,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25015,7 +25017,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25039,7 +25041,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25064,7 +25066,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25089,7 +25091,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25114,7 +25116,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25139,7 +25141,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25164,7 +25166,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25189,7 +25191,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25214,7 +25216,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25238,7 +25240,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25263,7 +25265,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25288,7 +25290,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25313,7 +25315,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25338,7 +25340,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25363,7 +25365,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25388,7 +25390,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25413,7 +25415,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25438,7 +25440,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25463,7 +25465,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25488,7 +25490,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25513,7 +25515,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
             }
 
@@ -25538,7 +25540,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25563,7 +25565,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25588,7 +25590,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25613,7 +25615,7 @@
             const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
             if (type <= 0) {
                 opcode_t *dest = Parrot_ex_throw_from_op_args(
-                    interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
                     "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
             }
 
@@ -25641,7 +25643,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -25666,7 +25668,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -25691,7 +25693,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -25716,7 +25718,7 @@
     else {
         const INTVAL type = Parrot_pmc_get_type_str(interp, name);
         if (type <= 0) {
-            opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+            opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
                 EXCEPTION_NO_CLASS,
                 "Class '%Ss' not found", name);return (opcode_t *)dest;
         }
@@ -25750,7 +25752,7 @@
 
     /* it's a typo */
     else {
-        opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
     }
@@ -25782,7 +25784,7 @@
 
     /* it's a typo */
     else {
-        opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
     }
@@ -25814,7 +25816,7 @@
 
     /* it's a typo */
     else {
-        opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
     }
@@ -25846,7 +25848,7 @@
 
     /* it's a typo */
     else {
-        opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
     }
@@ -25864,7 +25866,7 @@
     /* if it's clearly a PIR-level PMC */
     if (type > enum_class_core_max) {
         PMC * const root_ns  = interp->root_namespace;
-        PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+        PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
         PMC * const _class   = Parrot_oo_get_class(interp, ns);
         if (!PMC_IS_NULL(_class)) {
             PMC *initial = Parrot_pmc_new(interp,
@@ -25880,7 +25882,7 @@
 
     /* it's a typo */
     else {
-        opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
     }
@@ -25898,7 +25900,7 @@
     /* if it's clearly a PIR-level PMC */
     if (type > enum_class_core_max) {
         PMC * const root_ns  = interp->root_namespace;
-        PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+        PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
         PMC * const _class   = Parrot_oo_get_class(interp, ns);
         if (!PMC_IS_NULL(_class)) {
             PMC *initial = Parrot_pmc_new(interp,
@@ -25914,7 +25916,7 @@
 
     /* it's a typo */
     else {
-        opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
     }
@@ -25932,7 +25934,7 @@
     /* if it's clearly a PIR-level PMC */
     if (type > enum_class_core_max) {
         PMC * const root_ns  = interp->root_namespace;
-        PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+        PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
         PMC * const _class   = Parrot_oo_get_class(interp, ns);
         if (!PMC_IS_NULL(_class)) {
             PMC *initial = Parrot_pmc_new(interp,
@@ -25948,7 +25950,7 @@
 
     /* it's a typo */
     else {
-        opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
     }
@@ -25966,7 +25968,7 @@
     /* if it's clearly a PIR-level PMC */
     if (type > enum_class_core_max) {
         PMC * const root_ns  = interp->root_namespace;
-        PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+        PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
         PMC * const _class   = Parrot_oo_get_class(interp, ns);
         if (!PMC_IS_NULL(_class)) {
             PMC *initial = Parrot_pmc_new(interp,
@@ -25982,7 +25984,7 @@
 
     /* it's a typo */
     else {
-        opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
             EXCEPTION_NO_CLASS,
             "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
     }
@@ -25999,7 +26001,7 @@
     Parrot_str_free_cstring(cstr);
     IREG(1) = U_SUCCESS(err) ? (INTVAL) codepoint : -1;
 #else
-    opcode_t * const dest =cur_opcode + 3;
+    opcode_t * const dest = cur_opcode + 3;
     Parrot_ex_throw_from_op_args(interp, dest, EXCEPTION_LIBRARY_ERROR,
         "no ICU lib loaded");
 #endif
@@ -26016,7 +26018,7 @@
     Parrot_str_free_cstring(cstr);
     IREG(1) = U_SUCCESS(err) ? (INTVAL) codepoint : -1;
 #else
-    opcode_t * const dest =cur_opcode + 3;
+    opcode_t * const dest = cur_opcode + 3;
     Parrot_ex_throw_from_op_args(interp, dest, EXCEPTION_LIBRARY_ERROR,
         "no ICU lib loaded");
 #endif
@@ -26027,7 +26029,7 @@
 Parrot_finalize_p(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     /* Go to the next op after loop unrolling */
-    opcode_t * const dest =cur_opcode + 2;
+    opcode_t * const dest = cur_opcode + 2;
     PMC *eh = PMCNULL;
     if (!PMC_IS_NULL(PREG(1))) {
         /* If isa ExceptionHandler, use it. If isa Exception, get its active handler */
@@ -26066,7 +26068,7 @@
 Parrot_finalize_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     /* Go to the next op after loop unrolling */
-    opcode_t * const dest =cur_opcode + 2;
+    opcode_t * const dest = cur_opcode + 2;
     PMC *eh = PMCNULL;
     if (!PMC_IS_NULL(CONST(1)->u.key)) {
         /* If isa ExceptionHandler, use it. If isa Exception, get its active handler */
@@ -26112,7 +26114,7 @@
   PARROT_FUNCTION_CORE,                       /* core_type = PARROT_XX_CORE */
   0,                                /* flags */
   2,    /* major_version */
-  4,    /* minor_version */
+  5,    /* minor_version */
   0,    /* patch_version */
   1083,             /* op_count */
   core_op_info_table,       /* op_info_table */
@@ -26161,7 +26163,10 @@
  * returns >= 0 (found idx into info_table), -1 if not
  */
 
-static size_t hash_str(const char *str) {
+PARROT_PURE_FUNCTION
+static
+size_t hash_str(ARGIN(const char *str))
+{
     size_t      key = 0;
     const char *s   = str;
 
@@ -26173,7 +26178,8 @@
     return key;
 }
 
-static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+static void store_op(PARROT_INTERP, op_info_t *info, int full)
+{
     HOP * const p     = mem_gc_allocate_zeroed_typed(interp, HOP);
     const size_t hidx =
         hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
@@ -26182,7 +26188,9 @@
     p->next   = hop[hidx];
     hop[hidx] = p;
 }
-static int get_op(PARROT_INTERP, const char * name, int full) {
+
+static int get_op(PARROT_INTERP, const char * name, int full)
+{
     const HOP * p;
     const size_t hidx = hash_str(name) % OP_HASH_SIZE;
     if (!hop) {
@@ -26195,7 +26203,9 @@
     }
     return -1;
 }
-static void hop_init(PARROT_INTERP) {
+
+static void hop_init(PARROT_INTERP)
+{
     size_t i;
     op_info_t * const info = core_op_lib.op_info_table;
     /* store full names */
@@ -26206,6 +26216,7 @@
         if (get_op(interp, info[i].name, 0) == -1)
             store_op(interp, info + i, 0);
 }
+
 static void hop_deinit(PARROT_INTERP)
 {
     if (hop) {
@@ -26223,7 +26234,7 @@
     }
 }
 op_lib_t *
-Parrot_DynOp_core_2_4_0(PARROT_INTERP, long init) {
+Parrot_DynOp_core_2_5_0(PARROT_INTERP, long init) {
     /* initialize and return op_lib ptr */
     if (init == 1) {
 
@@ -26252,7 +26263,7 @@
 
 {
     PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
-    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_4_0;
+    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_5_0;
     dynop_register(interp, lib);
     return lib;
 }

Modified: branches/dynop_mapping/src/ops/experimental.ops
==============================================================================
--- branches/dynop_mapping/src/ops/experimental.ops	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/ops/experimental.ops	Sun Jul  4 06:24:50 2010	(r47981)
@@ -325,7 +325,7 @@
     /* if it's clearly a PIR-level PMC */
     if (type > enum_class_core_max) {
         PMC * const root_ns  = interp->root_namespace;
-        PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+        PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, name_key);
         PMC * const _class   = Parrot_oo_get_class(interp, ns);
         if (!PMC_IS_NULL(_class)) {
             PMC *initial = Parrot_pmc_new(interp,

Modified: branches/dynop_mapping/src/ops/object.ops
==============================================================================
--- branches/dynop_mapping/src/ops/object.ops	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/ops/object.ops	Sun Jul  4 06:24:50 2010	(r47981)
@@ -56,12 +56,19 @@
 
     PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
     opcode_t *dest              = NULL;
-    PMC      * const signature  = Parrot_pcc_get_signature(interp,
-                                    CURRENT_CONTEXT(interp));
 
     Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
 
-    if (PMC_IS_NULL(method_pmc)) {
+    if (!PMC_IS_NULL(method_pmc)) {
+        PMC * const signature = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+        if (!PMC_IS_NULL(signature))
+            Parrot_pcc_set_object(interp, signature, object);
+
+        interp->current_cont = NEED_CONTINUATION;
+        dest                 = VTABLE_invoke(interp, method_pmc, next);
+    }
+    else {
         PMC * const _class = VTABLE_get_class(interp, object);
         if (PMC_IS_NULL(_class)) {
             dest = Parrot_ex_throw_from_op_args(interp, next,
@@ -75,12 +82,7 @@
                 VTABLE_get_string(interp, _class));
         }
     }
-    else {
-        if (!PMC_IS_NULL(signature))
-            Parrot_pcc_set_object(interp, signature, object);
-        interp->current_cont   = NEED_CONTINUATION;
-        dest                   = VTABLE_invoke(interp, method_pmc, next);
-    }
+
     goto ADDRESS(dest);
 }
 

Modified: branches/dynop_mapping/src/ops/pmc.ops
==============================================================================
--- branches/dynop_mapping/src/ops/pmc.ops	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/ops/pmc.ops	Sun Jul  4 06:24:50 2010	(r47981)
@@ -146,7 +146,7 @@
 op root_new(out PMC, in PMC) {
     PMC * const key      = $2;
     PMC * const root_ns  = interp->root_namespace;
-    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
     PMC * classobj       = PMCNULL;
 
     if (!PMC_IS_NULL(ns))
@@ -164,7 +164,7 @@
 op root_new(out PMC, in PMC, in PMC) {
     PMC * const key      = $2;
     PMC * const root_ns  = interp->root_namespace;
-    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * const ns       = Parrot_ns_get_namespace_keyed(interp, root_ns, key);
     PMC * classobj       = PMCNULL;
 
     if (!PMC_IS_NULL(ns))

Modified: branches/dynop_mapping/src/ops/var.ops
==============================================================================
--- branches/dynop_mapping/src/ops/var.ops	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/ops/var.ops	Sun Jul  4 06:24:50 2010	(r47981)
@@ -192,7 +192,7 @@
 
 op get_namespace(out PMC, in PMC) {
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PMC * const ns     = Parrot_get_namespace_keyed(interp, cur_ns, $2);
+    PMC * const ns     = Parrot_ns_get_namespace_keyed(interp, cur_ns, $2);
 
     $1 = PMC_IS_NULL(ns) ? PMCNULL : ns;
 }
@@ -219,7 +219,7 @@
     if (PMC_IS_NULL(hll_ns))
         $1 = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, $2);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, $2);
         $1 = ns;
     }
 }
@@ -245,7 +245,7 @@
     if (PMC_IS_NULL(root_ns))
         $1 = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, $2);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, $2);
         $1 = ns;
     }
 }
@@ -275,7 +275,7 @@
 
 op get_global(out PMC, in STR) {
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    $1 = Parrot_find_global_op(interp, cur_ns, $2, expr NEXT());
+    $1 = Parrot_ns_find_global_from_op(interp, cur_ns, $2, expr NEXT());
 }
 
 op get_global(out PMC, in PMC, in STR) {
@@ -284,11 +284,11 @@
         $1 = PMCNULL;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, $2);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, $2);
         if (PMC_IS_NULL(ns))
             $1 = PMCNULL;
         else
-            $1 = Parrot_find_global_op(interp, ns, $3, expr NEXT());
+            $1 = Parrot_ns_find_global_from_op(interp, ns, $3, expr NEXT());
     }
 }
 
@@ -307,7 +307,7 @@
 
 op get_hll_global(out PMC, in STR) {
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    $1 = Parrot_find_global_op(interp, hll_ns, $2, expr NEXT());
+    $1 = Parrot_ns_find_global_from_op(interp, hll_ns, $2, expr NEXT());
 }
 
 op get_hll_global(out PMC, in PMC, in STR) {
@@ -316,11 +316,11 @@
         $1 = hll_ns;
     }
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, $2);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, $2);
         if (PMC_IS_NULL(ns))
             $1 = PMCNULL;
         else
-            $1 = Parrot_find_global_op(interp, ns, $3, expr NEXT());
+            $1 = Parrot_ns_find_global_from_op(interp, ns, $3, expr NEXT());
     }
 }
 
@@ -339,7 +339,7 @@
 
 op get_root_global(out PMC, in STR) {
     PMC * const root_ns = interp->root_namespace;
-    $1 = Parrot_find_global_op(interp, root_ns, $2, expr NEXT());
+    $1 = Parrot_ns_find_global_from_op(interp, root_ns, $2, expr NEXT());
 }
 
 op get_root_global(out PMC, in PMC, in STR) {
@@ -347,11 +347,11 @@
     if (PMC_IS_NULL(root_ns))
         $1 = PMCNULL;
     else {
-        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, $2);
+        PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, $2);
         if (PMC_IS_NULL(ns))
             $1 = PMCNULL;
         else
-            $1 = Parrot_find_global_op(interp, ns, $3, expr NEXT());
+            $1 = Parrot_ns_find_global_from_op(interp, ns, $3, expr NEXT());
     }
 }
 
@@ -379,14 +379,14 @@
 
 op set_global(in STR, invar PMC) {
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    Parrot_set_global(interp, cur_ns, $1, $2);
+    Parrot_ns_set_global(interp, cur_ns, $1, $2);
 }
 
 op set_global(in PMC, in STR, invar PMC) {
     PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, cur_ns, $1);
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, cur_ns, $1);
 
-    Parrot_set_global(interp, ns, $2, $3);
+    Parrot_ns_set_global(interp, ns, $2, $3);
 }
 
 =item B<set_hll_global>(in STR, invar PMC)
@@ -403,14 +403,14 @@
 
 op set_hll_global(in STR, invar PMC) {
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    Parrot_set_global(interp, hll_ns, $1, $2);
+    Parrot_ns_set_global(interp, hll_ns, $1, $2);
 }
 
 op set_hll_global(in PMC, in STR, invar PMC) {
     PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
-    PMC * const ns     = Parrot_make_namespace_keyed(interp, hll_ns, $1);
+    PMC * const ns     = Parrot_ns_make_namespace_keyed(interp, hll_ns, $1);
 
-    Parrot_set_global(interp, ns, $2, $3);
+    Parrot_ns_set_global(interp, ns, $2, $3);
 }
 
 =item B<set_root_global>(in STR, invar PMC)
@@ -427,14 +427,14 @@
 
 op set_root_global(in STR, invar PMC) {
     PMC * const root_ns = interp->root_namespace;
-    Parrot_set_global(interp, root_ns, $1, $2);
+    Parrot_ns_set_global(interp, root_ns, $1, $2);
 }
 
 op set_root_global(in PMC, in STR, invar PMC) {
     PMC * const root_ns = interp->root_namespace;
-    PMC * const ns      = Parrot_make_namespace_keyed(interp, root_ns, $1);
+    PMC * const ns      = Parrot_ns_make_namespace_keyed(interp, root_ns, $1);
 
-    Parrot_set_global(interp, ns, $2, $3);
+    Parrot_ns_set_global(interp, ns, $2, $3);
 }
 
 =back
@@ -470,7 +470,7 @@
         goto ADDRESS(handler);
     }
 
-    $1 = Parrot_find_name_op(interp, $2, expr NEXT());
+    $1 = Parrot_ns_find_named_item(interp, $2, expr NEXT());
 }
 
 =item B<find_sub_not_null>(out PMC, in STR)
@@ -482,7 +482,7 @@
 
 inline op find_sub_not_null(out PMC, in STR) :base_core {
     opcode_t *dest = expr NEXT();
-    PMC *sub = Parrot_find_name_op(interp, $2, dest);
+    PMC *sub = Parrot_ns_find_named_item(interp, $2, dest);
 
     if (PMC_IS_NULL(sub)) {
         opcode_t *handler;

Modified: branches/dynop_mapping/src/packdump.c
==============================================================================
--- branches/dynop_mapping/src/packdump.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/packdump.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -68,7 +68,7 @@
     opcode_t i;
 
     for (i = 0; i < self->const_count; ++i) {
-        Parrot_io_printf(interp, "    # %ld:\n", (long)i);
+        Parrot_io_printf(interp, "    # %x:\n", (long)i);
         PackFile_Constant_dump(interp, self, self->constants[i]);
     }
 }

Modified: branches/dynop_mapping/src/packfile.c
==============================================================================
--- branches/dynop_mapping/src/packfile.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/packfile.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -3377,7 +3377,7 @@
         /* Vtable overrides and methods were already cloned, so don't reclone them. */
         if (new_sub->vtable_index == -1
         && !(old_sub->comp_flags   &  SUB_COMP_FLAG_METHOD))
-            Parrot_store_sub_in_namespace(interp, new_sub_pmc);
+            Parrot_ns_store_sub(interp, new_sub_pmc);
 
         ret->u.key = new_sub_pmc;
 
@@ -3471,7 +3471,7 @@
         return;
 
     for (i = 0; i <= hash->mask; ++i) {
-        HashBucket *bucket = hash->bi[i];
+        HashBucket *bucket = hash->bucket_indices[i];
 
         while (bucket) {
             PackFile_ConstTable * const table      =
@@ -3561,7 +3561,8 @@
 
 =item C<static size_t fixup_packed_size(PARROT_INTERP, PackFile_Segment *self)>
 
-I<What does this do?>
+Calculates the size, in multiples of C<opcode_t>, required to store the
+passed C<PackFile_FixupTable> in bytecode.
 
 =cut
 
@@ -4235,7 +4236,7 @@
     /* finally place the sub into some namespace stash
      * XXX place this code in Sub.thaw ?  */
     if (VTABLE_isa(interp, pmc, _sub))
-        Parrot_store_sub_in_namespace(interp, pmc);
+        Parrot_ns_store_sub(interp, pmc);
 
     /* restore code */
     interp->code = cs_save;

Modified: branches/dynop_mapping/src/pmc/arrayiterator.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/arrayiterator.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/arrayiterator.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -43,7 +43,7 @@
 TODO: Discuss idea of having separate get_iter/get_reverse_iter VTABLEs
 to avoid this caveat.
 
-=head1 Methods
+=head1 Vtable functions
 
 =over 4
 
@@ -53,6 +53,15 @@
 
 /* HEADERIZER HFILE: none */
 /* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+PARROT_DOES_NOT_RETURN
+static void out_of_bounds(PARROT_INTERP)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_out_of_bounds __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
 pmclass ArrayIterator extends Iterator no_ro auto_attrs {
@@ -199,24 +208,25 @@
 
     VTABLE void set_integer_native(INTVAL value) {
         PMC *array;
+        INTVAL element;
+        GET_ATTR_array(INTERP, SELF, array);
+        element = VTABLE_elements(INTERP, array);
 
-        if (value == ITERATE_FROM_START) {
-            GET_ATTR_array(INTERP, SELF, array);
+        switch (value) {
+          case ITERATE_FROM_START:
             SET_ATTR_reverse(INTERP, SELF, 0);
             SET_ATTR_pos(INTERP, SELF, 0);
-            SET_ATTR_length(INTERP, SELF, VTABLE_elements(INTERP, array));
-        }
-        else if (value == ITERATE_FROM_END) {
-            INTVAL element;
-            GET_ATTR_array(INTERP, SELF, array);
-            element = VTABLE_elements(INTERP, array);
+            SET_ATTR_length(INTERP, SELF, element);
+            break;
+          case ITERATE_FROM_END:
             SET_ATTR_reverse(INTERP, SELF, 1);
             SET_ATTR_length(INTERP, SELF, element);
             SET_ATTR_pos(INTERP, SELF, element);
-        }
-        else
+            break;
+          default:
             Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
                     "Wrong direction for ArrayIterator");
+        }
     }
 
 /*
@@ -254,8 +264,7 @@
         GET_ATTR_length(INTERP, SELF, length);
 
         if (pos >= length)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "StopIteration");
+            out_of_bounds(INTERP);
 
         GET_ATTR_array(INTERP, SELF, array);
         SET_ATTR_pos(INTERP, SELF, pos+1);
@@ -278,8 +287,7 @@
         GET_ATTR_pos(INTERP, SELF, pos);
 
         if (!STATICSELF.get_bool())
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "StopIteration");
+            out_of_bounds(INTERP);
 
         GET_ATTR_array(INTERP, SELF, array);
         SET_ATTR_pos(INTERP, SELF, pos+1);
@@ -303,8 +311,7 @@
         GET_ATTR_pos(INTERP, SELF, pos);
 
         if (!STATICSELF.get_bool())
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "StopIteration");
+            out_of_bounds(INTERP);
 
         GET_ATTR_array(INTERP, SELF, array);
         SET_ATTR_pos(INTERP, SELF, pos+1);
@@ -331,8 +338,7 @@
 
 
         if (!STATICSELF.get_bool())
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "StopIteration");
+            out_of_bounds(INTERP);
 
         GET_ATTR_array(INTERP, SELF, array);
         SET_ATTR_pos(INTERP, SELF, pos+1);
@@ -360,8 +366,7 @@
 
 
         if (!STATICSELF.get_bool())
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "StopIteration");
+            out_of_bounds(INTERP);
 
         GET_ATTR_array(INTERP, SELF, array);
         SET_ATTR_pos(INTERP, SELF, --pos);
@@ -384,8 +389,7 @@
         GET_ATTR_pos(INTERP, SELF, pos);
 
         if (!STATICSELF.get_bool())
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "StopIteration");
+            out_of_bounds(INTERP);
 
         GET_ATTR_array(INTERP, SELF, array);
         SET_ATTR_pos(INTERP, SELF, --pos);
@@ -409,8 +413,7 @@
         GET_ATTR_pos(INTERP, SELF, pos);
 
         if (!STATICSELF.get_bool())
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "StopIteration");
+            out_of_bounds(INTERP);
 
         GET_ATTR_array(INTERP, SELF, array);
         SET_ATTR_pos(INTERP, SELF, --pos);
@@ -436,8 +439,7 @@
         GET_ATTR_pos(INTERP, SELF, pos);
 
         if (!STATICSELF.get_bool())
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "StopIteration");
+            out_of_bounds(INTERP);
 
         GET_ATTR_array(INTERP, SELF, array);
         SET_ATTR_pos(INTERP, SELF, --pos);
@@ -646,6 +648,32 @@
     }
 }
 
+
+/*
+
+=back
+
+=head1 Auxiliar functions
+
+=over 4
+
+=item C<static void out_of_bounds(PARROT_INTERP)>
+
+Throw out-of-bounds exception.
+
+=cut
+
+*/
+
+PARROT_DOES_NOT_RETURN
+static void
+out_of_bounds(PARROT_INTERP)
+{
+    ASSERT_ARGS(out_of_bounds)
+    Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_OUT_OF_BOUNDS,
+            "StopIteration");
+}
+
 /*
 
 =back

Modified: branches/dynop_mapping/src/pmc/bytebuffer.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/bytebuffer.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/bytebuffer.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -19,6 +19,23 @@
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
+PARROT_CANNOT_RETURN_NULL
+static STRING * build_string(PARROT_INTERP,
+    ARGIN(const unsigned char *content),
+    INTVAL size,
+    ARGIN_NULLOK(const CHARSET *charset),
+    ARGIN_NULLOK(const ENCODING *encoding))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+static INTVAL grow_to(INTVAL position);
+#define ASSERT_ARGS_build_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(content))
+#define ASSERT_ARGS_grow_to __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: static */
+
 pmclass ByteBuffer auto_attrs {
     ATTR INTVAL allocated_size;
     ATTR INTVAL size;
@@ -99,6 +116,63 @@
 
 /*
 
+=item C<void set_integer_native()>
+
+Resize the buffer to the given value.
+
+=cut
+
+*/
+
+    VTABLE void set_integer_native(INTVAL set_size) {
+        INTVAL size,  allocated_size;
+        unsigned char *content;
+        if (set_size < 0)
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
+                "Negative size in ByteBuffer");
+
+        GET_ATTR_allocated_size(INTERP, SELF, allocated_size);
+        if (set_size == 0) {
+            if (allocated_size == 0)
+                SET_ATTR_source(INTERP, SELF, STRINGNULL);
+            else {
+                GET_ATTR_content(INTERP, SELF, content);
+                Parrot_gc_free_memory_chunk(INTERP, content);
+            }
+            SET_ATTR_allocated_size(INTERP, SELF, 0);
+            SET_ATTR_size(INTERP, SELF, 0);
+            SET_ATTR_content(INTERP, SELF, NULL);
+        }
+        else {
+            GET_ATTR_size(INTERP, SELF, size);
+            /* If reducing size, just change the size value */
+            if (set_size > size) {
+                INTVAL copysize = set_size < size ? set_size : size;
+                if (allocated_size == 0) {
+                    content = (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, set_size);
+                    if (size > 0) {
+                        STRING * source;
+                        GET_ATTR_source(INTERP, SELF, source);
+                        memcpy(content, source->strstart, copysize);
+                    }
+                    SET_ATTR_source(INTERP, SELF, STRINGNULL);
+                }
+                else {
+                    GET_ATTR_content(INTERP, SELF, content);
+                    content = (unsigned char *)
+                        Parrot_gc_reallocate_memory_chunk(INTERP, content, set_size);
+                }
+                if (copysize < set_size)
+                    memset(content + copysize, '\0', set_size - copysize);
+                SET_ATTR_allocated_size(INTERP, SELF, set_size);
+                SET_ATTR_content(INTERP, SELF, content);
+            }
+            SET_ATTR_size(INTERP, SELF, set_size);
+        }
+    }
+
+/*
+
 =item C<void set_string_native()>
 
 Reset the buffer with the content of the string.
@@ -143,7 +217,8 @@
 
 =item C<void set_integer_keyed_int()>
 
-Set the value of the byte at position.
+Set the value of the byte at position, resizing the buffer if the position
+is out of current size.
 
 =cut
 
@@ -158,7 +233,7 @@
 
         GET_ATTR_allocated_size(INTERP, SELF, allocated_size);
         if (position >= allocated_size) {
-            INTVAL newsize = position + 1;
+            INTVAL newsize = grow_to(position);
             if (allocated_size == 0) {
                 INTVAL copysize = newsize;
                 STRING * source;
@@ -192,12 +267,155 @@
         content[position] = value;
     }
 
+/*
+
+=item C<void push_integer(INTVAL value)>
+
+Extends the buffer by adding a byte of value C<value> to the end.
+
+=cut
+
+*/
+
+    VTABLE void push_integer(INTVAL value) {
+        INTVAL size;
+
+        GET_ATTR_size(INTERP, SELF, size);
+        SELF.set_integer_keyed_int(size, value);
+    }
+
+/*
+
+=item C<PMC *get_iter()>
+
+Return a new Iterator for this PMC.
+
+=cut
+
+*/
+
+    VTABLE PMC *get_iter() {
+        return Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
+    }
+
+/*
+
+=back
+
+=head2 Methods
+
+=over 4
+
+=item C<get_string(string charset, string encoding)>
+
+Create a string with the buffer content and the charset and encoding
+specified.
+
+=cut
+
+*/
+
+    METHOD get_string(STRING *charsetname, STRING *encodingname) {
+        STRING *result;
+        unsigned char *content;
+        INTVAL size;
+        const CHARSET *charset = Parrot_get_charset(INTERP,
+            Parrot_charset_number(INTERP, charsetname));
+        const ENCODING *encoding = Parrot_get_encoding(INTERP,
+            Parrot_encoding_number(INTERP, encodingname));
+        GET_ATTR_content(INTERP, SELF, content);
+        GET_ATTR_size(INTERP, SELF, size);
+        result = build_string(INTERP, content, size, charset, encoding);
+        RETURN(STRING *result);
+    }
+
+/*
+
+=item C<get_string_as(string as)>
+
+Create a string with the buffer content and the same charset and encoding
+as the string argument.
+
+=cut
+
+*/
+
+    METHOD get_string_as(STRING *as :optional) {
+        STRING *result;
+        unsigned char *content;
+        INTVAL size;
+        const CHARSET* charset = STRING_IS_NULL(as) ? PARROT_DEFAULT_CHARSET : as->charset;
+        const ENCODING *encoding = STRING_IS_NULL(as) ? PARROT_DEFAULT_ENCODING : as->encoding;
+        GET_ATTR_content(INTERP, SELF, content);
+        GET_ATTR_size(INTERP, SELF, size);
+        result = build_string(INTERP, content, size, charset, encoding);
+        RETURN(STRING *result);
+    }
+
 } /* pmclass end */
 
 /*
 
 =back
 
+=head2 Auxiliar functions
+
+=over 4
+
+=item C<static INTVAL grow_to(INTVAL position)>
+
+Calculate new size enough for using position and with some margin to
+decrease the number of reallocations.
+
+=item C<static STRING * build_string(PARROT_INTERP, const unsigned char
+*content, INTVAL size, const CHARSET *charset, const ENCODING *encoding)>
+
+Build a string fro the buffer content with the charset and encoding specified.
+
+=cut
+
+*/
+
+static INTVAL
+grow_to(INTVAL position)
+{
+    ASSERT_ARGS(grow_to)
+
+    const UINTVAL blocksize = 2048;
+    UINTVAL minsize = position + 1;
+    return (INTVAL) (minsize < 64 ? 64 :
+           minsize < 256 ? 256 :
+           minsize < 1024 ? 1024 :
+           ((minsize + blocksize - 1) / blocksize) * blocksize);
+}
+
+PARROT_CANNOT_RETURN_NULL
+static STRING *
+build_string(PARROT_INTERP, ARGIN(const unsigned char *content),
+        INTVAL size,
+        ARGIN_NULLOK(const CHARSET *charset),
+        ARGIN_NULLOK(const ENCODING *encoding))
+{
+    ASSERT_ARGS(build_string)
+    STRING *result;
+    if (charset == NULL)
+        Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+                "Invalid charset");
+    if (encoding == NULL)
+        Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+                "Invalid encoding");
+    result = Parrot_str_new_init(interp, (const char *)content, size, encoding, charset, 0);
+    if (!CHARSET_VALIDATE(interp, result))
+        Parrot_ex_throw_from_c_args(interp, NULL,
+                EXCEPTION_INVALID_STRING_REPRESENTATION,
+                "Invalid buffer content");
+    return result;
+}
+
+/*
+
+=back
+
 =cut
 
 */

Modified: branches/dynop_mapping/src/pmc/callcontext.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/callcontext.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/callcontext.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -359,14 +359,18 @@
 mark_positionals(PARROT_INTERP, ARGIN(PMC *self))
 {
     ASSERT_ARGS(mark_positionals)
-    INTVAL size, i;
-    Pcc_cell *cells;
+    INTVAL size;
 
     GETATTR_CallContext_num_positionals(interp, self, size);
-    GETATTR_CallContext_positionals(interp, self, cells);
 
-    for (i = 0; i < size; ++i)
-        mark_cell(interp, &cells[i]);
+    if (size) {
+        Pcc_cell *cells;
+        INTVAL i;
+        GETATTR_CallContext_positionals(interp, self, cells);
+
+        for (i = 0; i < size; ++i)
+            mark_cell(interp, &cells[i]);
+    }
 }
 
 /* don't look now, but here goes encapsulation.... */
@@ -377,7 +381,7 @@
     INTVAL  i;
 
     for (i = h->mask; i >= 0; --i) {
-        HashBucket *b = h->bi[i];
+        HashBucket *b = h->bucket_indices[i];
 
         while (b) {
             Parrot_gc_mark_STRING_alive(interp, (STRING *)b->key);
@@ -403,7 +407,7 @@
         result = Parrot_pmc_new_init_int(interp, enum_class_FixedStringArray, hash->entries);
 
         for (i = 0; i <= hash->mask; ++i) {
-            HashBucket *b = hash->bi[i];
+            HashBucket *b = hash->bucket_indices[i];
 
             while (b) {
                 VTABLE_set_string_keyed_int(interp, result,
@@ -494,35 +498,32 @@
 */
     VTABLE void mark() {
         Hash     *hash;
+        PMC      *tmp;
         STRING   *short_sig;
         Pcc_cell *positionals;
-        INTVAL    num_positionals;
-        PMC      *arg_flags, *type_tuple, *return_flags, *tmp;
-        UINTVAL   i;
         UINTVAL  *n_regs_used;
-        Regs_ps   bp_ps;
 
         if (!PMC_data(SELF))
             return;
 
-        GET_ATTR_type_tuple(INTERP, SELF, type_tuple);
         GET_ATTR_short_sig(INTERP, SELF, short_sig);
-        GET_ATTR_arg_flags(INTERP, SELF, arg_flags);
-        GET_ATTR_return_flags(INTERP, SELF, return_flags);
-        GET_ATTR_num_positionals(INTERP, SELF, num_positionals);
-        GET_ATTR_positionals(INTERP, SELF, positionals);
-        GET_ATTR_hash(INTERP, SELF, hash);
-
-        Parrot_gc_mark_PMC_alive(INTERP, type_tuple);
         Parrot_gc_mark_STRING_alive(INTERP, short_sig);
-        Parrot_gc_mark_PMC_alive(INTERP, arg_flags);
-        Parrot_gc_mark_PMC_alive(INTERP, return_flags);
 
         mark_positionals(INTERP, SELF);
 
+        GET_ATTR_hash(INTERP, SELF, hash);
         if (hash)
             mark_hash(INTERP, hash);
 
+        GET_ATTR_arg_flags(INTERP, SELF, tmp);
+        Parrot_gc_mark_PMC_alive(INTERP, tmp);
+
+        GET_ATTR_return_flags(INTERP, SELF, tmp);
+        Parrot_gc_mark_PMC_alive(INTERP, tmp);
+
+        GET_ATTR_type_tuple(INTERP, SELF, tmp);
+        Parrot_gc_mark_PMC_alive(INTERP, tmp);
+
         GET_ATTR_caller_ctx(INTERP, SELF, tmp);
         Parrot_gc_mark_PMC_alive(INTERP, tmp);
 
@@ -551,21 +552,26 @@
         Parrot_gc_mark_PMC_alive(INTERP, tmp);
 
         GET_ATTR_n_regs_used(INTERP, SELF, n_regs_used);
-        if (!n_regs_used)
-            return;
 
-        GET_ATTR_bp_ps(INTERP, SELF, bp_ps);
-        for (i = 0; i < n_regs_used[REGNO_PMC]; ++i) {
-            PMC * const p = bp_ps.regs_p[-1L-(i)];
-            /* Original code from CTX_REG_PMC */
-            if (p)
-                Parrot_gc_mark_PMC_alive(INTERP, p);
-        }
+        if (n_regs_used) {
+            Regs_ps         bp_ps;
+            const UINTVAL   regs_p = n_regs_used[REGNO_PMC];
+            const UINTVAL   regs_s = n_regs_used[REGNO_STR];
+            UINTVAL         i;
+
+            GET_ATTR_bp_ps(INTERP, SELF, bp_ps);
+            for (i = 0; i < regs_p; ++i) {
+                PMC * const p = bp_ps.regs_p[-1L-(i)];
+                /* Original code from CTX_REG_PMC */
+                if (p)
+                    Parrot_gc_mark_PMC_alive(INTERP, p);
+            }
 
-        for (i = 0; i < n_regs_used[REGNO_STR]; ++i) {
-            STRING * const s = bp_ps.regs_s[i];
-            if (s)
-                Parrot_gc_mark_STRING_alive(INTERP, s);
+            for (i = 0; i < regs_s; ++i) {
+                STRING * const s = bp_ps.regs_s[i];
+                if (s)
+                    Parrot_gc_mark_STRING_alive(INTERP, s);
+            }
         }
     }
 
@@ -600,7 +606,7 @@
             UINTVAL i;
 
             for (i = 0; i <= hash->mask; ++i) {
-                HashBucket *b = hash->bi[i];
+                HashBucket *b = hash->bucket_indices[i];
 
                 while (b) {
                     FREE_CELL(INTERP, (Pcc_cell *)b->value);
@@ -638,7 +644,7 @@
             UINTVAL i;
 
             for (i = 0; i <= hash->mask; ++i) {
-                HashBucket *b = hash->bi[i];
+                HashBucket *b = hash->bucket_indices[i];
 
                 while (b) {
                     FREE_CELL(INTERP, (Pcc_cell *)b->value);

Modified: branches/dynop_mapping/src/pmc/capture.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/capture.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/capture.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -855,8 +855,8 @@
             PMC    *ns        = INTERP->root_namespace;
             STRING *attribute = CONST_STRING(INTERP, "proxy");
 
-            ns                = Parrot_get_namespace_keyed_str(INTERP, ns, CONST_STRING(INTERP, "parrot"));
-            ns                = Parrot_get_namespace_keyed_str(INTERP, ns, CONST_STRING(INTERP, "Capture"));
+            ns                = Parrot_ns_get_namespace_keyed_str(INTERP, ns, CONST_STRING(INTERP, "parrot"));
+            ns                = Parrot_ns_get_namespace_keyed_str(INTERP, ns, CONST_STRING(INTERP, "Capture"));
             classobj          = Parrot_oo_get_class(INTERP, ns);
             capt              = VTABLE_get_attr_keyed(INTERP, SELF, classobj, attribute);
         }

Modified: branches/dynop_mapping/src/pmc/class.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/class.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/class.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -141,11 +141,20 @@
         __attribute__nonnull__(3)
         __attribute__nonnull__(4);
 
+static size_t key_hash_pointer(SHIM_INTERP,
+    ARGIN(const void *value),
+    size_t seed)
+        __attribute__nonnull__(2);
+
 PARROT_CANNOT_RETURN_NULL
 static STRING * make_class_name(PARROT_INTERP, ARGIN(PMC *SELF))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
+static int pointer_compare(SHIM_INTERP,
+    ARGIN_NULLOK(const void *a),
+    ARGIN_NULLOK(const void *b));
+
 #define ASSERT_ARGS_build_attrib_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(self))
@@ -169,13 +178,31 @@
     , PARROT_ASSERT_ARG(object) \
     , PARROT_ASSERT_ARG(all_parents) \
     , PARROT_ASSERT_ARG(init))
+#define ASSERT_ARGS_key_hash_pointer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(value))
 #define ASSERT_ARGS_make_class_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(SELF))
+#define ASSERT_ARGS_pointer_compare __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
 static int
+pointer_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a),
+    ARGIN_NULLOK(const void *b))
+{
+    ASSERT_ARGS(pointer_compare)
+    return a != b;
+}
+
+static size_t
+key_hash_pointer(SHIM_INTERP, ARGIN(const void *value), size_t seed)
+{
+    ASSERT_ARGS(key_hash_pointer)
+    return ((size_t) value ^ seed);
+}
+
+static int
 cache_class_attribs(PARROT_INTERP,
         ARGIN(PMC *cur_class), ARGIN(PMC *attrib_index),
         ARGIN(PMC *cache), int cur_index)
@@ -284,7 +311,7 @@
         else {
             PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
                     interp->HLL_namespace, Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
-            new_namespace = Parrot_make_namespace_keyed(interp, hll_ns, name_arg);
+            new_namespace = Parrot_ns_make_namespace_keyed(interp, hll_ns, name_arg);
         }
 
         if (PMC_IS_NULL(new_namespace))
@@ -559,8 +586,9 @@
     ATTR PMC *attrib_cache;     /* Cache of visible attrib names to indexes. */
     ATTR PMC *resolve_method;   /* List of method names the class provides to resolve
                                  * conflicts with methods from roles. */
-    ATTR PMC *parent_overrides;
-    ATTR PMC *meth_cache;
+    ATTR PMC  *parent_overrides;
+    ATTR PMC  *meth_cache;
+    ATTR Hash *isa_cache;
 
 /*
 
@@ -600,6 +628,9 @@
 
         _class->vtable_overrides = Parrot_pmc_new(INTERP, enum_class_Hash);
         _class->parent_overrides = Parrot_pmc_new(INTERP, enum_class_Hash);
+        _class->isa_cache        = parrot_create_hash(INTERP,
+            enum_type_INTVAL, Hash_key_type_PMC,
+            (hash_comp_fn)pointer_compare, (hash_hash_key_fn)key_hash_pointer);
 
         /* We put ourself on the all parents list. */
         VTABLE_push_pmc(INTERP, _class->all_parents, SELF);
@@ -657,6 +688,11 @@
         init_class_from_hash(INTERP, SELF, arg);
     }
 
+    void destroy() {
+        Parrot_Class_attributes * const _class = PARROT_CLASS(SELF);
+        parrot_hash_destroy(INTERP, _class->isa_cache);
+    }
+
 /*
 
 =item C<STRING *get_string()>
@@ -697,6 +733,8 @@
         Parrot_gc_mark_PMC_alive(INTERP, _class->attrib_cache);
         Parrot_gc_mark_PMC_alive(INTERP, _class->resolve_method);
         Parrot_gc_mark_PMC_alive(INTERP, _class->meth_cache);
+        if (_class->isa_cache)
+            parrot_mark_hash(INTERP, _class->isa_cache);
     }
 
 
@@ -922,6 +960,7 @@
 
         /* Add to the lists of our immediate parents and all parents. */
         VTABLE_push_pmc(INTERP, _class->parents, parent);
+        parrot_hash_put(INTERP, _class->isa_cache, (void *)parent, (void *)1);
         calculate_mro(INTERP, SELF, parent_count + 1);
     }
 
@@ -969,6 +1008,7 @@
                 "Can't remove_parent: is not a parent.");
 
         VTABLE_delete_keyed_int(INTERP, _class->parents, index);
+        parrot_hash_put(INTERP, _class->isa_cache, (void *)parent, (void *)0);
         calculate_mro(INTERP, SELF, parent_count - 1);
     }
 
@@ -1084,13 +1124,11 @@
         if (found->vtable->base_type == enum_class_Hash) {
             /* for Hash return values, create and return a shallow
              * clone because the VTABLE_clone does a deep clone */
-            PMC * const hash  = Parrot_pmc_new(INTERP, enum_class_Hash);
-            PMC * const iter  = VTABLE_get_iter(INTERP, found);
-            while (VTABLE_get_bool(INTERP, iter)) {
-                STRING * const key   = VTABLE_shift_string(INTERP, iter);
-                PMC    * const value = VTABLE_get_pmc_keyed_str(INTERP, found, key);
-                VTABLE_set_pmc_keyed_str(INTERP, hash, key, value);
-            }
+            PMC * const hash = Parrot_pmc_new(INTERP, enum_class_Hash);
+            Hash       *src  = (Hash *)VTABLE_get_pointer(interp, found);
+            Hash       *dest = (Hash *)VTABLE_get_pointer(interp, hash);
+
+            parrot_hash_clone_prunable(interp, src, dest, 0);
 
             return hash;
         }
@@ -1329,7 +1367,8 @@
     VTABLE INTVAL isa_pmc(PMC *lookup) {
         Parrot_Class_attributes * const _class = PARROT_CLASS(SELF);
         PMC          *classobj;
-        INTVAL        i, num_classes;
+        HashBucket   *b;
+        INTVAL        i, num_classes, retval = 0;
 
         if (PMC_IS_NULL(lookup))
             return 0;
@@ -1344,7 +1383,14 @@
 
         /* Check if the class object is the same as self's class object */
         if (VTABLE_is_same(INTERP, SELF, classobj))
-            return 1;
+            goto found;
+
+        if (_class->instantiated) {
+            b = parrot_hash_get_bucket(INTERP, _class->isa_cache,
+                 (void *)classobj);
+            if (b)
+                return (INTVAL)b->value;
+        }
 
         /* this is effectively what the default PMC's isa_pmc does
          * ... but this can cheat and avoid COW STRINGs for the classobj
@@ -1352,14 +1398,9 @@
         if (classobj->vtable->base_type == enum_class_Class
         ||  classobj->vtable->base_type == enum_class_PMCProxy) {
             STRING *classname = make_class_name(INTERP, classobj);
-
-            if (Parrot_str_equal(INTERP, SELF->vtable->whoami, classname))
-                return 1;
-
-            if (SELF->vtable->isa_hash
-            &&  parrot_hash_exists(INTERP, SELF->vtable->isa_hash,
-                                    (void *)classname))
-                return 1;
+            PARROT_ASSERT(SELF->vtable->isa_hash);
+            if (parrot_hash_exists(INTERP, SELF->vtable->isa_hash, classname))
+                goto found;
         }
 
         /* Iterate over all the parents and check if they respond true
@@ -1371,10 +1412,18 @@
                     _class->parents, i);
 
             if (VTABLE_isa_pmc(INTERP, cur_class, lookup))
-                return 1;
+                goto found;
         }
 
-        return 0;
+    cache_and_return:
+        if (_class->instantiated)
+            parrot_hash_put(INTERP, _class->isa_cache, (void *)classobj,
+                 (void *)retval);
+        return retval;
+
+    found:
+        retval = 1;
+        goto cache_and_return;
     }
 
 /*
@@ -1401,8 +1450,22 @@
 
         if (SELF == want_class)
             return 1;
+        else {
+            Parrot_Class_attributes * const _class = PARROT_CLASS(SELF);
+
+            INTVAL num_classes = VTABLE_elements(INTERP, _class->all_parents);
+            int    i           = 0;
+
+            for (i = 1; i < num_classes; ++i) {
+                PMC * const cur_class = VTABLE_get_pmc_keyed_int(INTERP,
+                                            _class->all_parents, i);
 
-        return VTABLE_isa_pmc(INTERP, SELF, want_class);
+                if (VTABLE_is_same(INTERP, want_class, cur_class))
+                    return 1;
+            }
+        }
+
+        return 0;
     }
 
 /*
@@ -1589,13 +1652,13 @@
         STRING * const semicolon_str = CONST_STRING(INTERP, ";");
         PMC    * const namespace_array =
             Parrot_str_split(INTERP, semicolon_str, serial_namespace);
-        PMC *ns = Parrot_get_namespace_keyed(INTERP,
+        PMC *ns = Parrot_ns_get_namespace_keyed(INTERP,
                 INTERP->root_namespace, namespace_array);
 
         /* If the namespace doesn't exist, we create it, and initialize
          * ourselves in it */
         if (PMC_IS_NULL(ns)) {
-            ns = Parrot_make_namespace_keyed(INTERP,
+            ns = Parrot_ns_make_namespace_keyed(INTERP,
                     INTERP->root_namespace, namespace_array);
             SELF.init_pmc(ns);
         }

Modified: branches/dynop_mapping/src/pmc/default.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/default.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/default.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -23,9 +23,6 @@
 
 #define INT2KEY(i, k) key_new_integer((i), (k))
 
-/* undef 'interface' to keep MSVC happy */
-#undef interface
-
 /* HEADERIZER HFILE: none */
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
@@ -903,18 +900,18 @@
 
 /*
 
-=item C<INTVAL does(STRING *interface)>
+=item C<INTVAL does(STRING *interface_name)>
 
-Reports whether the PMC "does" perform C<interface>.
-If the interface C<interface> is found in the PMC's interface list,
+Reports whether the PMC "does" perform C<interface_name>.
+If the interface C<interface_name> is found in the PMC's interface list,
 true (1) is returned; otherwise, false (0) is returned.
 
 =cut
 
 */
 
-    VTABLE INTVAL does(STRING *_interface) {
-        return Parrot_pmc_type_does(INTERP, _interface, SELF->vtable->base_type);
+    VTABLE INTVAL does(STRING *interface_name) {
+        return Parrot_pmc_type_does(INTERP, interface_name, SELF->vtable->base_type);
     }
 
 /*
@@ -946,18 +943,13 @@
 */
 
     VTABLE INTVAL isa_pmc(PMC *lookup) {
-        Hash   * const isa_hash = SELF->vtable->isa_hash;
-        STRING *pmc_name;
-
         if (PMC_IS_NULL(lookup))
             return 0;
-
-        pmc_name = VTABLE_get_string(INTERP, lookup);
-
-        if (!isa_hash)
-            return Parrot_str_equal(INTERP, SELF->vtable->whoami, pmc_name);
-
-        return parrot_hash_exists(INTERP, isa_hash, (void *)pmc_name);
+        else {
+            Hash   * const isa_hash = SELF->vtable->isa_hash;
+            STRING * const pmc_name = VTABLE_get_string(INTERP, lookup);
+            return parrot_hash_exists(INTERP, isa_hash, pmc_name);
+        }
     }
 
 /*
@@ -973,11 +965,15 @@
 */
 
     VTABLE INTVAL isa(STRING *_class) {
-        const Hash * const isa_hash = SELF->vtable->isa_hash;
-        if (!isa_hash)
-            return Parrot_str_equal(INTERP, SELF->vtable->whoami, _class);
+        if (SELF->vtable->whoami == _class)
+            return 1;
+        else {
+            const Hash * const isa_hash = SELF->vtable->isa_hash;
+            if (!isa_hash)
+                return Parrot_str_equal(INTERP, SELF->vtable->whoami, _class);
 
-        return parrot_hash_exists(INTERP, isa_hash, (void *)_class);
+            return parrot_hash_exists(INTERP, isa_hash, (void *)_class);
+        }
     }
 
 /*

Modified: branches/dynop_mapping/src/pmc/eval.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/eval.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/eval.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -57,30 +57,25 @@
 {
     ASSERT_ARGS(clear_fixups)
 
-    INTVAL               i;
-    PackFile_ByteCode   * const seg = sub_data->seg;
-    PackFile_FixupTable *ft;
-    PackFile_ConstTable *ct;
-
-    if (!seg)
-        return;
-
-    ft = seg->fixups;
-    if (!ft)
-        return;
-
-    ct = seg->const_table;
-    if (!ct)
-        return;
+    PackFile_ByteCode * const seg = sub_data->seg;
 
-    for (i = 0; i < ft->fixup_count; ++i) {
-        PackFile_FixupEntry * const e = ft->fixups + i;
-
-        if (e->type == enum_fixup_sub) {
-            opcode_t  ci             = e->offset;
-
-            ct->constants[ci]->u.key = NULL;
-            e->type                  = 0;
+    if (seg) {
+        PackFile_FixupTable * const ft = seg->fixups;
+        if (ft) {
+            PackFile_ConstTable * const ct = seg->const_table;
+            if (ct) {
+                INTVAL i;
+                for (i = 0; i < ft->fixup_count; ++i) {
+                    PackFile_FixupEntry * const e = ft->fixups + i;
+
+                    if (e->type == enum_fixup_sub) {
+                        opcode_t  ci             = e->offset;
+
+                        ct->constants[ci]->u.key = NULL;
+                        e->type                  = 0;
+                    }
+                }
+            }
         }
     }
 }
@@ -92,34 +87,29 @@
 {
     ASSERT_ARGS(get_sub)
 
-    INTVAL                 i, n;
     Parrot_Sub_attributes *sub;
     PackFile_ByteCode     *seg;
-    PackFile_FixupTable   *ft;
-    PackFile_ConstTable   *ct;
 
     PMC_get_sub(interp, self, sub);
     seg = sub->seg;
 
-    if (!seg)
-        return PMCNULL;
-
-    ft = seg->fixups;
-    if (!ft)
-        return PMCNULL;
-
-    ct = seg->const_table;
-    if (!ct)
-        return PMCNULL;
-
-    for (i = n = 0; i < ft->fixup_count; ++i) {
-        const PackFile_FixupEntry * const e = ft->fixups + i;
-
-        if (e->type == enum_fixup_sub) {
-            opcode_t ci = e->offset;
-
-            if (n++ == idx)
-                return ct->constants[ci]->u.key;
+    if (seg) {
+        PackFile_FixupTable * const ft = seg->fixups;
+        if (ft) {
+            PackFile_ConstTable * const ct = seg->const_table;
+            if (ct) {
+                INTVAL i, n;
+                for (i = n = 0; i < ft->fixup_count; ++i) {
+                    const PackFile_FixupEntry * const e = ft->fixups + i;
+
+                    if (e->type == enum_fixup_sub) {
+                        opcode_t ci = e->offset;
+
+                        if (n++ == idx)
+                            return ct->constants[ci]->u.key;
+                    }
+                }
+            }
         }
     }
 
@@ -133,32 +123,27 @@
 
     Parrot_Sub_attributes *sub;
     PackFile_ByteCode   *seg;
-    PackFile_FixupTable *ft;
-    PackFile_ConstTable *ct;
-    INTVAL               i;
 
     PMC_get_sub(interp, self, sub);
     seg = sub->seg;
 
-    if (!seg)
-        return;
-
-    ft = seg->fixups;
-    if (!ft)
-        return;
-
-    ct = seg->const_table;
-    if (!ct)
-        return;
-
-    for (i = 0; i < ft->fixup_count; ++i) {
-        const PackFile_FixupEntry * const e = ft->fixups + i;
-
-        if (e->type == enum_fixup_sub) {
-            opcode_t  ci  = e->offset;
-            PMC      *sub = ct->constants[ci]->u.key;
-
-            Parrot_gc_mark_PMC_alive(interp, sub);
+    if (seg) {
+        PackFile_FixupTable * const ft = seg->fixups;
+        if (ft) {
+            PackFile_ConstTable * const ct = seg->const_table;
+            if (ct) {
+                INTVAL i;
+                for (i = 0; i < ft->fixup_count; ++i) {
+                    const PackFile_FixupEntry * const e = ft->fixups + i;
+
+                    if (e->type == enum_fixup_sub) {
+                        opcode_t  ci  = e->offset;
+                        PMC      *sub = ct->constants[ci]->u.key;
+
+                        Parrot_gc_mark_PMC_alive(interp, sub);
+                    }
+                }
+            }
         }
     }
 }
@@ -411,26 +396,24 @@
     }
 
     VTABLE INTVAL elements() {
-        INTVAL               i, n;
+        INTVAL                 n = 0;
         Parrot_Sub_attributes *sub;
-        PackFile_ByteCode   *seg;
-        PackFile_FixupTable *ft;
+        PackFile_ByteCode     *seg;
 
         PMC_get_sub(INTERP, SELF, sub);
         seg = sub->seg;
 
-        if (!seg)
-            return 0;
-
-        ft = seg->fixups;
-        if (!ft)
-            return 0;
-
-        for (i = n = 0; i < ft->fixup_count; ++i) {
-            const PackFile_FixupEntry * const e = ft->fixups + i;
-
-            if (e->type == enum_fixup_sub)
-                ++n;
+        if (seg) {
+            PackFile_FixupTable *const ft = seg->fixups;
+            if (ft) {
+                INTVAL i;
+                for (i = n = 0; i < ft->fixup_count; ++i) {
+                    const PackFile_FixupEntry * const e = ft->fixups + i;
+
+                    if (e->type == enum_fixup_sub)
+                        ++n;
+                }
+            }
         }
 
         return n;

Modified: branches/dynop_mapping/src/pmc/filehandle.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/filehandle.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/filehandle.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2008-2009, Parrot Foundation.
+Copyright (C) 2008-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -281,12 +281,14 @@
 
 =item C<METHOD isatty()>
 
+Returns a boolean value indicating whether C<SELF> is a console/tty.
+
 =cut
 
 */
+
     METHOD isatty() {
-        const INTVAL isatty =
-            (PARROT_FILEHANDLE(SELF)->flags & PIO_F_CONSOLE) == PIO_F_CONSOLE;
+        const INTVAL isatty = Parrot_io_is_tty(INTERP, SELF);
         RETURN(INTVAL isatty);
     }
 

Modified: branches/dynop_mapping/src/pmc/fixedintegerarray.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/fixedintegerarray.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/fixedintegerarray.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -21,8 +21,27 @@
 
 /* HEADERIZER HFILE: none */
 /* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+PARROT_PURE_FUNCTION
+static int auxcmpfunc(ARGIN(const INTVAL *i), ARGIN(const INTVAL *j))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_auxcmpfunc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(i) \
+    , PARROT_ASSERT_ARG(j))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
+PARROT_PURE_FUNCTION
+static int
+auxcmpfunc(ARGIN(const INTVAL *i), ARGIN(const INTVAL *j))
+{
+    ASSERT_ARGS(auxcmpfunc)
+    return *i - *j;
+}
+
 pmclass FixedIntegerArray auto_attrs provides array {
     ATTR INTVAL   size;  /* number of INTVALs stored in this array */
     ATTR INTVAL * int_array; /* INTVALs are stored here */
@@ -492,19 +511,23 @@
         SELF.set_pmc_keyed_int(k, value);
     }
 
-    METHOD sort(PMC *cmp_func) {
-        INTVAL *int_array;
+    METHOD sort(PMC *cmp_func :optional) {
         UINTVAL n;
         INTVAL  size;
 
         GET_ATTR_size(INTERP, SELF, size);
-
         n = (UINTVAL)size;
 
         if (n > 1) {
+            INTVAL *int_array;
             GET_ATTR_int_array(INTERP, SELF, int_array);
-            Parrot_quicksort(INTERP, (void**)int_array, n, cmp_func);
+            if (PMC_IS_NULL(cmp_func))
+                qsort(int_array, n, sizeof (INTVAL),
+                        (int (*)(const void *, const void*))auxcmpfunc);
+            else
+                Parrot_quicksort(INTERP, (void**)int_array, n, cmp_func);
         }
+        RETURN(PMC *SELF);
     }
 
 /*
@@ -529,8 +552,8 @@
             return 0;
 
         for (j = 0; j < n; ++j) {
-            INTVAL item1 = SELF.get_integer_keyed_int(j);
-            INTVAL item2 = VTABLE_get_integer_keyed_int(INTERP, value, j);
+            const INTVAL item1 = SELF.get_integer_keyed_int(j);
+            const INTVAL item2 = VTABLE_get_integer_keyed_int(INTERP, value, j);
 
             if (item1 != item2)
                 return 0;

Modified: branches/dynop_mapping/src/pmc/handle.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/handle.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/handle.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2008, Parrot Foundation.
+Copyright (C) 2008-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -14,9 +14,12 @@
 
 =over 4
 
-=item * [to come]
+=item C<init>
 
-=back
+=item C<init_pmc>
+
+Handle shouldn't be directly instantiated, init and init_pmc throws
+EXCEPTION_INVALID_OPERATION.
 
 =cut
 
@@ -42,6 +45,29 @@
         Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
             "Handle cannot be instantiated directly.");
     }
+
+/*
+
+=back
+
+=head2 Methods
+
+=over 4
+
+=item C<METHOD isatty()>
+
+Returns a boolean value indicating whether C<SELF> is a console/tty.
+This default implementation always return false. Override it in
+subtypes that are or can be tty.
+
+=cut
+
+*/
+
+    METHOD isatty() {
+        RETURN(INTVAL 0);
+    }
+
 }
 
 /*

Modified: branches/dynop_mapping/src/pmc/hash.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/hash.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/hash.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1080,26 +1080,6 @@
 
 /*
 
-=item C<PMC *slice(PMC *key)>
-
-Return a new iterator for the slice PMC C<key>
-
-=cut
-
-*/
-
-    VTABLE PMC *slice(PMC *key, INTVAL f) {
-        if (f == 0) {
-            return SELF.get_iter();
-        }
-
-        Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-            "Hash: Unknown slice type");
-    }
-
-
-/*
-
 =item C<void visit(PMC *info)>
 
 Used during archiving to visit the elements in the hash.

Modified: branches/dynop_mapping/src/pmc/hashiterator.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/hashiterator.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/hashiterator.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -87,7 +87,7 @@
         if (attrs->pos == attrs->total_buckets)
             break;
 
-        bucket = attrs->parrot_hash->bi[attrs->pos++];
+        bucket = attrs->parrot_hash->bucket_indices[attrs->pos++];
     }
     attrs->bucket = bucket;
     --attrs->elements;
@@ -172,7 +172,7 @@
         Parrot_HashIterator_attributes * const attrs =
                 PARROT_HASHITERATOR(SELF);
 
-        if (value == 0) {
+        if (value == ITERATE_FROM_START) {
             /* Restart iterator */
             attrs->bucket           = 0;
             attrs->pos              = 0;
@@ -264,10 +264,17 @@
 */
 
     VTABLE STRING* shift_string() {
-        PMC    * const key = SELF.shift_pmc();
-        STRING * const ret = VTABLE_get_string(INTERP, key);
-        Parrot_pmc_free_temporary(INTERP, key);
-        return ret;
+        Parrot_HashIterator_attributes * const attrs =
+                PARROT_HASHITERATOR(SELF);
+        HashBucket                     * const bucket = attrs->bucket;
+
+        if (!attrs->parrot_hash || !attrs->bucket)
+            return CONST_STRING(INTERP, "");
+
+        /* Move to next bucket */
+        advance_to_next(INTERP, SELF);
+
+        return hash_key_to_string(INTERP, attrs->parrot_hash, bucket->key);
     }
 
 }

Modified: branches/dynop_mapping/src/pmc/key.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/key.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/key.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -78,11 +78,8 @@
                 break;
               case KEY_pmc_FLAG:
               case KEY_pmc_FLAG | KEY_register_FLAG:
-                {
-                    PMC * const p = key_pmc(INTERP, key);
-                    key_set_pmc(INTERP, dkey, VTABLE_clone(INTERP, p));
-                }
-                break;
+                Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
+                        "this is broken - see TT #1683");
               default:
                 break;
             }
@@ -223,7 +220,8 @@
 */
 
     VTABLE void set_pmc(PMC *value) {
-        key_set_pmc(INTERP, SELF, value);
+        Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
+                "this is broken - see TT #1683");
     }
 
 /*

Modified: branches/dynop_mapping/src/pmc/lexinfo.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/lexinfo.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/lexinfo.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -105,7 +105,7 @@
             INTVAL  i;
 
             for (i = hash->mask; i >= 0; --i) {
-                HashBucket *bucket = hash->bi[i];
+                HashBucket *bucket = hash->bucket_indices[i];
                 while (bucket) {
                     if (++found > entries)
                         Parrot_ex_throw_from_c_args(INTERP, NULL, 1,

Modified: branches/dynop_mapping/src/pmc/namespace.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/namespace.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/namespace.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -456,11 +456,11 @@
                 key                 = VTABLE_shift_pmc(INTERP, key);
 
                 if (!key) {
-                    Parrot_set_global(INTERP, ns, part, value);
+                    Parrot_ns_set_global(INTERP, ns, part, value);
                     return;
                 }
 
-                ns = Parrot_make_namespace_keyed_str(INTERP, ns, part);
+                ns = Parrot_ns_make_namespace_keyed_str(INTERP, ns, part);
             }
         }
 
@@ -471,11 +471,11 @@
                 STRING * const part = VTABLE_get_string_keyed_int(INTERP, key, i);
 
                 if ((i + 1) >= elements) { /* Last entry in the array */
-                    Parrot_set_global(INTERP, ns, part, value);
+                    Parrot_ns_set_global(INTERP, ns, part, value);
                     return;
                 }
 
-                ns = Parrot_make_namespace_keyed_str(INTERP, ns, part);
+                ns = Parrot_ns_make_namespace_keyed_str(INTERP, ns, part);
             }
         }
 
@@ -515,7 +515,7 @@
             if (!key)
                 return VTABLE_get_pmc_keyed_str(INTERP, ns, part);
 
-            ns = Parrot_get_namespace_keyed_str(INTERP, ns, part);
+            ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, part);
 
             if (PMC_IS_NULL(ns))
                 return PMCNULL;
@@ -531,14 +531,14 @@
                     /* What to do here? Throw an exception or something? */
                     break;
                 }
-                ns = Parrot_get_namespace_keyed_str(INTERP, ns, name);
+                ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, name);
                 ++i;
             }
             return ns;
         }
         else {
             STRING * const name = VTABLE_get_string(INTERP, key);
-            ns = Parrot_get_namespace_keyed_str(INTERP, ns, name);
+            ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, name);
             return ns;
         }
         /* If we get the wrong type, should we throw an exception?
@@ -605,7 +605,7 @@
                     if (!key)
                         return VTABLE_get_pointer_keyed_str(INTERP, ns, part);
 
-                    ns = Parrot_get_namespace_keyed_str(INTERP, ns, part);
+                    ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, part);
 
                     if (PMC_IS_NULL(ns))
                         return PMCNULL;
@@ -621,7 +621,7 @@
                     if ((i + 1) >= elements)
                         return VTABLE_get_pointer_keyed_str(INTERP, ns, part);
 
-                    ns = Parrot_get_namespace_keyed_str(INTERP, ns, part);
+                    ns = Parrot_ns_get_namespace_keyed_str(INTERP, ns, part);
 
                     if (PMC_IS_NULL(ns))
                         return PMCNULL;
@@ -729,9 +729,9 @@
 */
 
     METHOD make_namespace(PMC *key) {
-        PMC *ns = Parrot_get_namespace_keyed(INTERP, SELF, key);
+        PMC *ns = Parrot_ns_get_namespace_keyed(INTERP, SELF, key);
         if (PMC_IS_NULL(ns)) {
-            ns = Parrot_make_namespace_keyed(INTERP, SELF, key);
+            ns = Parrot_ns_make_namespace_keyed(INTERP, SELF, key);
         }
         RETURN(PMC *ns);
     }

Modified: branches/dynop_mapping/src/pmc/object.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/object.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/object.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -103,7 +103,7 @@
 
     /* there's a semi-predicate problem with a retval of 0 */
     if (retval
-    || VTABLE_exists_keyed_str(interp, _class->attrib_cache, name)) {
+    ||  VTABLE_exists_keyed_str(interp, _class->attrib_cache, name)) {
         Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp), cur_hll);
         return retval;
     }
@@ -138,6 +138,7 @@
     return -1;
 }
 
+
 /* This variation bypasses the cache and finds the index of a particular
  * parent's attribute in an object's attribute store and returns it. Returns -1
  * if the attribute does not exist. */
@@ -148,8 +149,10 @@
 {
     ASSERT_ARGS(get_attrib_index_keyed)
     Parrot_Class_attributes * const _class       = PARROT_CLASS(self);
-    PMC          * const class_cache  = VTABLE_get_pmc_keyed_str(interp,
-                    _class->attrib_cache, VTABLE_get_string(interp, key));
+    PMC                     * const class_cache  =
+        VTABLE_get_pmc_keyed_str(interp, _class->attrib_cache,
+                                 VTABLE_get_string(interp, key));
+
     PMC                 *parent_class;
     STRING              *fq_name;
 
@@ -173,6 +176,7 @@
     return -1;
 }
 
+
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 static PMC *
@@ -188,8 +192,10 @@
     return VTABLE_get_pmc_keyed_str(interp, cache, name);
 }
 
+
 static void
-cache_method(PARROT_INTERP, ARGIN(PMC *_class), ARGIN(STRING *name), ARGIN(PMC *method))
+cache_method(PARROT_INTERP, ARGIN(PMC *_class), ARGIN(STRING *name),
+ARGIN(PMC *method))
 {
     ASSERT_ARGS(cache_method)
     PMC *cache;
@@ -207,6 +213,7 @@
     ATTR PMC *_class;       /* The class this is an instance of. */
     ATTR PMC *attrib_store; /* The attributes store - a resizable PMC array. */
 
+
 /*
 
 =item C<void init()>
@@ -238,6 +245,7 @@
                 "Object must be created by a class.");
     }
 
+
 /*
 
 =item C<void destroy()>
@@ -250,6 +258,7 @@
     VTABLE void destroy() {
     }
 
+
 /*
 
 =item C<STRING *name()>
@@ -265,7 +274,8 @@
         STRING * const name       = CONST_STRING(INTERP, "name");
 
         /* If there's a vtable override for 'name' run that instead. */
-        PMC * const method = Parrot_oo_find_vtable_override(INTERP, _class, name);
+        PMC * const method = Parrot_oo_find_vtable_override(INTERP,
+                                 _class, name);
 
         if (!PMC_IS_NULL(method)) {
             STRING *result = NULL;
@@ -277,6 +287,7 @@
             return VTABLE_get_string(INTERP, _class);
     }
 
+
 /*
 
 =item C<void mark()>
@@ -295,6 +306,7 @@
         }
     }
 
+
 /*
 
 =item C<PMC *get_attr_str(STRING *name)>
@@ -307,7 +319,8 @@
 */
     VTABLE PMC *get_attr_str(STRING *name) {
         Parrot_Object_attributes * const obj      = PARROT_OBJECT(SELF);
-        STRING        * const get_attr = CONST_STRING(INTERP, "get_attr_str");
+        STRING                   * const get_attr = CONST_STRING(INTERP, "get_attr_str");
+
         INTVAL index;
 
         /* If there's a vtable override for 'get_attr_str' run that first. */
@@ -326,12 +339,13 @@
 
         /* If lookup failed, exception. */
         if (index == -1)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
-                "No such attribute '%S'", name);
+            Parrot_ex_throw_from_c_args(INTERP, NULL,
+                EXCEPTION_ATTRIB_NOT_FOUND, "No such attribute '%S'", name);
 
         return VTABLE_get_pmc_keyed_int(INTERP, obj->attrib_store, index);
     }
 
+
 /*
 
 =item C<PMC *get_attr_keyed(PMC *key, STRING *name)>
@@ -346,17 +360,20 @@
         Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
 
         /* Look up the index. */
-        const INTVAL index = get_attrib_index_keyed(INTERP, obj->_class, key, name);
+        const INTVAL index = get_attrib_index_keyed(INTERP, obj->_class,
+                                                    key, name);
 
         /* If lookup failed, exception. */
         if (index == -1)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
+            Parrot_ex_throw_from_c_args(INTERP, NULL,
+                EXCEPTION_ATTRIB_NOT_FOUND,
                 "No such attribute '%S' in class '%S'", name,
                 VTABLE_get_string(INTERP, key));
 
         return VTABLE_get_pmc_keyed_int(INTERP, obj->attrib_store, index);
     }
 
+
 /*
 
 =item C<void set_attr_str(STRING *name, PMC *value)>
@@ -368,13 +385,14 @@
 
 */
     VTABLE void set_attr_str(STRING *name, PMC *value) {
-        Parrot_Object_attributes * const obj       = PARROT_OBJECT(SELF);
-        STRING        * const vtable_meth_name = CONST_STRING(INTERP, "set_attr_str");
+        Parrot_Object_attributes * const obj              = PARROT_OBJECT(SELF);
+        STRING                   * const vtable_meth_name = CONST_STRING(INTERP, "set_attr_str");
         INTVAL         index;
 
         /* If there's a vtable override for 'set_attr_str' run that first. */
         PMC * const method = Parrot_oo_find_vtable_override(INTERP,
                 VTABLE_get_class(INTERP, SELF), vtable_meth_name);
+
         if (!PMC_IS_NULL(method)) {
             Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "PiSP->",
                 SELF, name, value);
@@ -385,12 +403,13 @@
 
         /* If lookup failed, exception. */
         if (index == -1)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
-                "No such attribute '%S'", name);
+            Parrot_ex_throw_from_c_args(INTERP, NULL,
+                EXCEPTION_ATTRIB_NOT_FOUND, "No such attribute '%S'", name);
 
         VTABLE_set_pmc_keyed_int(INTERP, obj->attrib_store, index, value);
     }
 
+
 /*
 
 =item C<void set_attr_keyed(PMC *key, STRING *name, PMC *value)>
@@ -402,18 +421,21 @@
 
 */
     VTABLE void set_attr_keyed(PMC *key, STRING *name, PMC *value) {
-        Parrot_Object_attributes * const obj = PARROT_OBJECT(SELF);
-        const INTVAL index        = get_attrib_index_keyed(INTERP, obj->_class, key, name);
+        Parrot_Object_attributes * const obj  = PARROT_OBJECT(SELF);
+        const INTVAL                    index =
+             get_attrib_index_keyed(INTERP, obj->_class, key, name);
 
         /* If lookup failed, exception. */
         if (index == -1)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
+            Parrot_ex_throw_from_c_args(INTERP, NULL,
+                 EXCEPTION_ATTRIB_NOT_FOUND,
                 "No such attribute '%S' in class '%S'", name,
                 VTABLE_get_string(INTERP, key));
 
         VTABLE_set_pmc_keyed_int(INTERP, obj->attrib_store, index, value);
     }
 
+
 /*
 
 =item C<PMC *find_method(STRING *name)>
@@ -426,7 +448,8 @@
     VTABLE PMC *find_method(STRING *name) {
         Parrot_Object_attributes * const obj    = PARROT_OBJECT(SELF);
         Parrot_Class_attributes  * const _class = PARROT_CLASS(obj->_class);
-        PMC                             *method = find_cached(INTERP, obj->_class, name);
+        PMC                             *method =
+                 find_cached(INTERP, obj->_class, name);
 
         if (!PMC_IS_NULL(method))
             return method;
@@ -486,6 +509,7 @@
         }
     }
 
+
 /*
 
 =item C<INTVAL get_integer()>
@@ -498,37 +522,42 @@
     VTABLE INTVAL get_integer() {
         Parrot_Object_attributes * const obj       = PARROT_OBJECT(SELF);
         Parrot_Class_attributes  * const _class    = PARROT_CLASS(obj->_class);
-        STRING * const meth_name = CONST_STRING(INTERP, "get_integer");
+        STRING                   * const meth_name = CONST_STRING(INTERP, "get_integer");
 
         /* Walk and search for the vtable. */
         const int num_classes = VTABLE_elements(INTERP, _class->all_parents);
-        int i;
+        int       i;
+
         for (i = 0; i < num_classes; i++) {
             /* Get the class. */
-            PMC * const cur_class = VTABLE_get_pmc_keyed_int(INTERP, _class->all_parents, i);
+            PMC * const cur_class =
+                VTABLE_get_pmc_keyed_int(INTERP, _class->all_parents, i);
 
             PMC * const meth = Parrot_oo_find_vtable_override_for_class(INTERP,
                     cur_class, meth_name);
+
             if (!PMC_IS_NULL(meth)) {
                 INTVAL result;
-                Parrot_pcc_invoke_sub_from_c_args(INTERP, meth, "Pi->I", SELF, &result);
+                Parrot_pcc_invoke_sub_from_c_args(INTERP, meth, "Pi->I",
+                     SELF, &result);
                 return result;
 
             }
+
             if (cur_class->vtable->base_type == enum_class_PMCProxy) {
                 /* Get the PMC instance and call the vtable function on that. */
                 STRING * const proxy      = CONST_STRING(INTERP, "proxy");
-                PMC    * const del_object = VTABLE_get_attr_str(INTERP, SELF, proxy);
+                PMC    * const del_object =
+                     VTABLE_get_attr_str(INTERP, SELF, proxy);
 
-                if (!PMC_IS_NULL(del_object)) {
+                if (!PMC_IS_NULL(del_object))
                     return (INTVAL)VTABLE_get_integer(INTERP, del_object);
-
-                }
             }
         }
         return INTERP->vtables[enum_class_default]->get_integer(INTERP, SELF);
     }
 
+
 /*
 
 =item C<PMC *get_class()>
@@ -541,8 +570,9 @@
     VTABLE PMC *get_class() {
         PMC    * const classobj  = PARROT_OBJECT(SELF)->_class;
         STRING * const get_class = CONST_STRING(INTERP, "get_class");
+
         /* If there's a vtable override for 'get_class' run that instead. */
-        PMC * const method = Parrot_oo_find_vtable_override(INTERP,
+        PMC    * const method    = Parrot_oo_find_vtable_override(INTERP,
                 classobj, get_class);
 
         if (!PMC_IS_NULL(method)) {
@@ -555,6 +585,7 @@
         return classobj;
     }
 
+
 /*
 
 =item C<PMC *get_namespace()>
@@ -568,8 +599,9 @@
     VTABLE PMC *get_namespace() {
         PMC    * const classobj      = VTABLE_get_class(INTERP, SELF);
         STRING * const get_namespace = CONST_STRING(INTERP, "get_namespace");
-        /* If there's a vtable override for 'get_namespace' run that instead. */
-        PMC * const method = Parrot_oo_find_vtable_override(INTERP,
+
+        /* If there's a vtable override for 'get_namespace' run that instead */
+        PMC    * const method = Parrot_oo_find_vtable_override(INTERP,
                 classobj, get_namespace);
 
         if (!PMC_IS_NULL(method)) {
@@ -578,11 +610,11 @@
                     SELF, &result);
             return result;
         }
-        else
-            return VTABLE_inspect_str(INTERP, classobj, CONST_STRING(INTERP, "namespace"));
 
+       return VTABLE_inspect_str(INTERP, classobj, CONST_STRING(INTERP, "namespace"));
     }
 
+
 /*
 
 =item C<INTVAL can(STRING *method_name)>
@@ -595,10 +627,12 @@
 */
     VTABLE INTVAL can(STRING *method_name) {
         /* Just use find_method and see it if finds anything. */
-        const PMC * const method = VTABLE_find_method(INTERP, SELF, method_name);
+        const PMC * const method =
+            VTABLE_find_method(INTERP, SELF, method_name);
         return !PMC_IS_NULL(method);
     }
 
+
 /*
 
 =item C<INTVAL isa_pmc(PMC *classname)>
@@ -620,6 +654,7 @@
         return VTABLE_isa_pmc(INTERP, VTABLE_get_class(INTERP, SELF), lookup);
     }
 
+
 /*
 
 =item C<INTVAL isa(STRING *classname)>
@@ -631,15 +666,15 @@
 */
 
     VTABLE INTVAL isa(STRING *classname) {
-        PMC   *_class;
-
         if (SUPER(classname))
             return 1;
-
-        _class = VTABLE_get_class(INTERP, SELF);
-        return VTABLE_isa(INTERP, _class, classname);
+        else {
+            PMC * _class = VTABLE_get_class(INTERP, SELF);
+            return VTABLE_isa(INTERP, _class, classname);
+        }
     }
 
+
 /*
 
 =item C<INTVAL does(STRING *role_name)>
@@ -669,6 +704,7 @@
                     return 1;
             }
         }
+
         /* Check the superclass's vtable interface, if any. */
         if (SUPER(role_name))
             return 1;
@@ -677,6 +713,7 @@
         return VTABLE_does(INTERP, VTABLE_get_class(INTERP, SELF), role_name);
     }
 
+
 /*
 
 =item C<INTVAL does_pmc(PMC *role)>
@@ -698,6 +735,7 @@
         return VTABLE_does_pmc(INTERP, VTABLE_get_class(INTERP, SELF), role);
     }
 
+
 /*
 
 =item C<opcode_t *invoke(void *next)>
@@ -720,17 +758,19 @@
             /* Get the class. */
             STRING * const meth_name = CONST_STRING(INTERP, "invoke");
             STRING * const proxy     = CONST_STRING(INTERP, "proxy");
-            PMC * const cur_class =
+            PMC    * const cur_class =
                 VTABLE_get_pmc_keyed_int(INTERP, _class->all_parents, i);
 
-            PMC * const meth =
+            PMC    * const meth      =
                 Parrot_oo_find_vtable_override_for_class(INTERP, cur_class,
                                                          meth_name);
             if (!PMC_IS_NULL(meth)) {
                 /* Experimental code. See DEPRECATED.pod */
-                PMC *call_sig = Parrot_pcc_get_signature(INTERP, CURRENT_CONTEXT(INTERP));
-                if ((VTABLE_elements(INTERP, call_sig) == 0 ||
-                        VTABLE_get_pmc_keyed_int(INTERP, call_sig, 0) != SELF))
+                PMC *call_sig =
+                    Parrot_pcc_get_signature(INTERP, CURRENT_CONTEXT(INTERP));
+
+                if ((VTABLE_elements(INTERP, call_sig) == 0
+                ||   VTABLE_get_pmc_keyed_int(INTERP, call_sig, 0) != SELF))
                     VTABLE_unshift_pmc(INTERP, call_sig, SELF);
 
                 return VTABLE_invoke(INTERP, meth, next);
@@ -749,6 +789,7 @@
         return (opcode_t *)INTERP->vtables[enum_class_default]->invoke(INTERP, SELF, next);
     }
 
+
 /*
 
 =item C<INTVAL type()>
@@ -764,6 +805,7 @@
         return VTABLE_type(INTERP, _class);
     }
 
+
 /*
 
 =item C<PMC * clone()>
@@ -779,20 +821,20 @@
         /* If we have a custom override, invoke it.
          * If not, use the oo function. */
         STRING * const meth_name = CONST_STRING(INTERP, "clone");
-        PMC * const meth =
+        PMC    * const meth      =
                 Parrot_oo_find_vtable_override(INTERP, obj->_class, meth_name);
-        PMC *result;
 
         if (!PMC_IS_NULL(meth)) {
-            Parrot_pcc_invoke_sub_from_c_args(INTERP, meth, "Pi->P", SELF, &result);
-        }
-        else {
-            result = Parrot_oo_clone_object(INTERP, SELF, NULL);
+            PMC *result;
+            Parrot_pcc_invoke_sub_from_c_args(INTERP, meth, "Pi->P",
+                 SELF, &result);
+            return result;
         }
 
-        return result;
+        return Parrot_oo_clone_object(INTERP, SELF, NULL);
     }
 
+
 /*
 
 =item C<void visit(PMC *info)>
@@ -815,6 +857,7 @@
         VISIT_PMC(INTERP, info, obj_data->attrib_store);
     }
 
+
 /*
 
 =item C<void freeze(PMC *info)>
@@ -828,13 +871,12 @@
 */
 
     VTABLE void freeze(PMC *info) {
-        return;
     }
 
     VTABLE void thaw(PMC *info) {
-        return;
     }
 
+
 /*
 
 =item C<void thawfinish(PMC *info)>
@@ -854,6 +896,7 @@
         PObj_is_object_SET(SELF);
     }
 
+
 /*
 
 =item C<PMC * share_ro()>
@@ -913,6 +956,7 @@
         return ret;
     }
 
+
 /*
 
 =item C<void morph(PMC* type)>
@@ -927,8 +971,8 @@
         PMC    * const classobj  = VTABLE_get_class(INTERP, SELF);
         STRING * const meth_name = CONST_STRING(INTERP, "morph");
         /* If there's a vtable override for 'morph' run that instead. */
-        PMC * const method = Parrot_oo_find_vtable_override(INTERP,
-                classobj, meth_name);
+        PMC    * const method    =
+             Parrot_oo_find_vtable_override(INTERP, classobj, meth_name);
 
         if (!PMC_IS_NULL(method))
             Parrot_pcc_invoke_sub_from_c_args(INTERP, method, "PiP->",

Modified: branches/dynop_mapping/src/pmc/orderedhashiterator.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/orderedhashiterator.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/orderedhashiterator.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -95,21 +95,22 @@
 
         /* Restart iterator */
         attrs->elements = VTABLE_elements(INTERP, attrs->pmc_hash);
-        if (value == ITERATE_FROM_START || value == ITERATE_FROM_START_KEYS) {
+        switch (value) {
+          case ITERATE_FROM_START:
+          case ITERATE_FROM_START_KEYS:
             attrs->pos          = 0;
             attrs->reverse      = 0;
             attrs->next_entry   = PARROT_ORDEREDHASH(attrs->pmc_hash)->first;
-            return;
-        }
-        else if (value == ITERATE_FROM_END) {
+            break;
+          case ITERATE_FROM_END:
             attrs->pos          = attrs->elements;
             attrs->reverse      = 1;
             attrs->next_entry   = PARROT_ORDEREDHASH(attrs->pmc_hash)->last;
-            return;
+            break;
+          default:
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
+                    "HashIterator: unknown iterator type");
         }
-
-        Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
-                "HashIterator: unknown iterator type");
     };
 
 /*

Modified: branches/dynop_mapping/src/pmc/packfilefixupentry.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/packfilefixupentry.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/packfilefixupentry.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -47,6 +47,23 @@
         PObj_custom_mark_SET(SELF);
     }
 
+    VTABLE void init_pmc(PMC *init) {
+        Parrot_PackfileFixupEntry_attributes * attrs =
+                PMC_data_typed(SELF, Parrot_PackfileFixupEntry_attributes*);
+        STRING *name    = CONST_STRING_GEN(INTERP, "name");
+        STRING *type    = CONST_STRING_GEN(INTERP, "type");
+        STRING *offset  = CONST_STRING_GEN(INTERP, "offset");
+
+        attrs->name = VTABLE_get_string(INTERP,
+                        VTABLE_get_pmc_keyed_str(INTERP, init, name));
+        attrs->type = VTABLE_get_integer(INTERP,
+                        VTABLE_get_pmc_keyed_str(INTERP, init, type));
+        attrs->offset = VTABLE_get_integer(INTERP,
+                        VTABLE_get_pmc_keyed_str(INTERP, init, offset));
+
+        PObj_custom_mark_SET(SELF);
+    }
+
 /*
 
 =item C<void mark()>

Modified: branches/dynop_mapping/src/pmc/packfilerawsegment.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/packfilerawsegment.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/packfilerawsegment.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -147,6 +147,15 @@
                 PARROT_PACKFILERAWSEGMENT(SELF)->opcodes);
     }
 
+    VTABLE INTVAL get_integer() {
+        return VTABLE_elements(INTERP,
+                PARROT_PACKFILERAWSEGMENT(SELF)->opcodes);
+    }
+
+    VTABLE FLOATVAL get_number() {
+        return VTABLE_elements(INTERP,
+                PARROT_PACKFILERAWSEGMENT(SELF)->opcodes);
+    }
 
 /*
 
@@ -177,6 +186,12 @@
             PARROT_PACKFILERAWSEGMENT(SELF)->opcodes, key, value);
     }
 
+    VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
+        SELF.set_integer_keyed_int(
+            VTABLE_get_integer(INTERP, key),
+            VTABLE_get_integer(INTERP, value));
+    }
+
 /*
 
 =item C<void push_integer(INTVAL value)>
@@ -191,6 +206,12 @@
             PARROT_PACKFILERAWSEGMENT(SELF)->opcodes, value);
     }
 
+    VTABLE void push_pmc(PMC *value)  {
+        VTABLE_push_integer(INTERP,
+            PARROT_PACKFILERAWSEGMENT(SELF)->opcodes,
+                VTABLE_get_integer(INTERP, value));
+    }
+
 /*
 
 =item C<METHOD type()>

Modified: branches/dynop_mapping/src/pmc/parrotinterpreter.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/parrotinterpreter.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/parrotinterpreter.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -844,6 +844,7 @@
 
     METHOD stdhandle(INTVAL fileno, PMC *newhandle :optional) {
         PMC * const handle = Parrot_io_stdhandle(INTERP, fileno, newhandle);
+        Parrot_warn_deprecated(INTERP, "stdhandle method is experimental");
         RETURN(PMC *handle);
     }
 

Modified: branches/dynop_mapping/src/pmc/pmcproxy.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/pmcproxy.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/pmcproxy.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -81,38 +81,18 @@
 */
 
     VTABLE void init() {
-        Parrot_Class_attributes * const _pmc =
-                (Parrot_Class_attributes *) PMC_data(SELF);
-        PMC          * const new_attribute   = Parrot_pmc_new(INTERP, enum_class_Hash);
-        STRING       * const name            = CONST_STRING(INTERP, "proxy");
+        Parrot_PMCProxy_attributes * const _pmc = PARROT_PMCPROXY(SELF);
+        STRING                     * const name = CONST_STRING(INTERP, "proxy");
+        PMC                        * const new_attribute
+             = Parrot_pmc_new(INTERP, enum_class_Hash);
 
-        /* Set flag for custom GC mark. */
-        PObj_custom_mark_SET(SELF);
-
-        /* Set up the object. */
-        _pmc->id               = 0;
-        _pmc->name             = CONST_STRING(INTERP, "");
-        _pmc->_namespace       = PMCNULL;
-        _pmc->parents          = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
-        _pmc->all_parents      = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
-        _pmc->roles            = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
-        _pmc->methods          = Parrot_pmc_new(INTERP, enum_class_Hash);
-        _pmc->vtable_overrides = Parrot_pmc_new(INTERP, enum_class_Hash);
-        _pmc->parent_overrides = Parrot_pmc_new(INTERP, enum_class_Hash);
-        _pmc->attrib_metadata  = Parrot_pmc_new(INTERP, enum_class_Hash);
-        _pmc->attrib_index     = PMCNULL;
-        _pmc->attrib_cache     = PMCNULL;
-        _pmc->resolve_method   = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);
+        SUPER();
 
         /* Set up the attribute storage for the proxy instance */
         VTABLE_set_string_keyed_str(INTERP, new_attribute, CONST_STRING(INTERP, "name"), name);
         VTABLE_set_pmc_keyed_str(INTERP, _pmc->attrib_metadata, name, new_attribute);
 
-        /* We put ourself on the all parents list. */
-        VTABLE_push_pmc(INTERP, _pmc->all_parents, SELF);
-
-        /* We are a class. */
-        PObj_is_class_SET(SELF);
+        CLASS_is_anon_CLEAR(SELF);
     }
 
     VTABLE void init_int(INTVAL type_num) {
@@ -251,12 +231,8 @@
         /* Look in the isa hash. */
         if (INTERP->vtables[_proxy->id]) {
             Hash *isa_hash = INTERP->vtables[_proxy->id]->isa_hash;
-
-            if (!isa_hash && Parrot_str_equal(INTERP,
-                     INTERP->vtables[_proxy->id]->whoami, classname))
-                return 1;
-
-            if (isa_hash && parrot_hash_exists(INTERP, isa_hash, classname))
+            PARROT_ASSERT(isa_hash);
+            if (parrot_hash_exists(INTERP, isa_hash, classname))
                 return 1;
         }
 

Modified: branches/dynop_mapping/src/pmc/resizableintegerarray.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/resizableintegerarray.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/resizableintegerarray.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -313,8 +313,12 @@
     }
 
     VTABLE void thaw(PMC *info) {
-        const INTVAL n = VTABLE_shift_integer(INTERP, info);
-        const INTVAL rt = VTABLE_shift_integer(INTERP, info);
+        INTVAL n, rt;
+
+        SUPER(info);
+
+        n = VTABLE_shift_integer(INTERP, info);
+        rt = VTABLE_shift_integer(INTERP, info);
 
         SET_ATTR_size(INTERP, SELF, 0);
         SET_ATTR_resize_threshold(INTERP, SELF, rt);

Modified: branches/dynop_mapping/src/pmc/resizablepmcarray.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/resizablepmcarray.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/resizablepmcarray.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -27,6 +27,16 @@
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
+PARROT_INLINE
+static void do_shift(ARGIN(PMC *arr))
+        __attribute__nonnull__(1);
+
+PARROT_INLINE
+static void do_unshift(PARROT_INTERP, ARGIN(PMC *arr), ARGIN(PMC *val))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
+
 PARROT_DOES_NOT_RETURN
 static void throw_pop_empty(PARROT_INTERP)
         __attribute__nonnull__(1);
@@ -35,6 +45,12 @@
 static void throw_shift_empty(PARROT_INTERP)
         __attribute__nonnull__(1);
 
+#define ASSERT_ARGS_do_shift __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(arr))
+#define ASSERT_ARGS_do_unshift __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(arr) \
+    , PARROT_ASSERT_ARG(val))
 #define ASSERT_ARGS_throw_pop_empty __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_throw_shift_empty __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -42,6 +58,34 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
+PARROT_INLINE
+static void
+do_shift(ARGIN(PMC *arr))
+{
+    ASSERT_ARGS(do_shift)
+    INTVAL    size = PMC_size(arr);
+    PMC     **item = PMC_array(arr);
+
+    PMC_size(arr) = --size;
+    mem_sys_memmove(item, item + 1, size * sizeof (PMC *));
+    item[size] = PMCNULL;
+}
+
+PARROT_INLINE
+static void
+do_unshift(PARROT_INTERP, ARGIN(PMC *arr), ARGIN(PMC *val))
+{
+    ASSERT_ARGS(do_unshift)
+    const INTVAL size = PMC_size(arr);
+    PMC        **item;
+
+    VTABLE_set_integer_native(interp, arr, size + 1);
+    item = PMC_array(arr);
+    mem_sys_memmove(item + 1, item, size * sizeof (PMC *));
+    item[0] = val;
+}
+
+
 pmclass ResizablePMCArray extends FixedPMCArray auto_attrs provides array {
     ATTR INTVAL resize_threshold; /* max size before array needs resizing */
 
@@ -143,82 +187,50 @@
 */
 
     VTABLE FLOATVAL shift_float() {
-        INTVAL    size = PMC_size(SELF);
-        PMC      *data;
-        PMC     **item;
-        FLOATVAL  value;
+        INTVAL   size = PMC_size(SELF);
+        FLOATVAL value;
 
         if (0 == size)
             throw_shift_empty(INTERP);
 
-        item           = PMC_array(SELF);
-        data           = item[0];
-        value          = VTABLE_get_number(INTERP, data);
-        PMC_size(SELF) = --size;
-
-        mem_sys_memmove(item, item + 1, size * sizeof (PMC *));
-
-        item[size] = PMCNULL;
-
+        value = VTABLE_get_number(INTERP, PMC_array(SELF)[0]);
+        do_shift(SELF);
         return value;
     }
 
     VTABLE INTVAL shift_integer() {
-        INTVAL    size = PMC_size(SELF);
-        PMC      *data;
-        PMC     **item;
-        INTVAL    value;
+        INTVAL size = PMC_size(SELF);
+        INTVAL value;
 
         if (0 == size)
             throw_shift_empty(INTERP);
 
-        item           = PMC_array(SELF);
-        data           = item[0];
-        value          = VTABLE_get_integer(INTERP, data);
-        PMC_size(SELF) = --size;
-
-        mem_sys_memmove(item, item + 1, size * sizeof (PMC*));
-        item[size] = PMCNULL;
-
+        value = VTABLE_get_integer(INTERP, PMC_array(SELF)[0]);
+        do_shift(SELF);
         return value;
     }
 
     VTABLE PMC *shift_pmc() {
-        INTVAL  size = PMC_size(SELF);
-        PMC    *data;
-        PMC   **item;
+        INTVAL size = PMC_size(SELF);
+        PMC   *data;
 
         if (0 == size)
             throw_shift_empty(INTERP);
 
-        item           = PMC_array(SELF);
-        data           = item[0];
-        PMC_size(SELF) = --size;
-
-        mem_sys_memmove(item, item + 1, size * sizeof (PMC *));
-        item[size] = PMCNULL;
-
+        data = PMC_array(SELF)[0];
+        do_shift(SELF);
         return data;
     }
 
     VTABLE STRING *shift_string() {
         INTVAL   size = PMC_size(SELF);
-        PMC     *data;
-        PMC    **item;
         STRING  *value;
 
         if (0 == size)
             throw_shift_empty(INTERP);
 
-        item           = PMC_array(SELF);
-        data           = item[0];
-        value          = VTABLE_get_string(INTERP, data);
-        PMC_size(SELF) = --size;
-
-        mem_sys_memmove(item, item + 1, size * sizeof (PMC *));
-
-        item[size] = PMCNULL;
-
+        value = VTABLE_get_string(INTERP, PMC_array(SELF)[0]);
+        do_shift(SELF);
         return value;
     }
 
@@ -515,79 +527,27 @@
 
     VTABLE void unshift_float(FLOATVAL value) {
 
-        const INTVAL size = PMC_size(SELF);
-        PMC * const val   = Parrot_pmc_new(INTERP, enum_class_Float);
-        PMC   **data;
-        INTVAL  i;
-
+        PMC * const val = Parrot_pmc_new(INTERP, enum_class_Float);
         VTABLE_set_number_native(INTERP, val, value);
-        SELF.set_integer_native(size + 1);
-
-        data = PMC_array(SELF);
-
-        for (i = size; i; --i)
-            data[i] = data[i - 1];
-
-        data[0] = val;
-
-        return;
+        do_unshift(INTERP, SELF, val);
     }
 
     VTABLE void unshift_integer(INTVAL value) {
 
-        const INTVAL size = PMC_size(SELF);
-        PMC * const val   = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, value);
-        PMC    **data;
-        INTVAL   i;
-
-        SELF.set_integer_native(size + 1);
-
-        data = PMC_array(SELF);
-
-        for (i = size; i; --i)
-            data[i] = data[i - 1];
-
-        data[0] = val;
-
-        return;
+        PMC * const val = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, value);
+        do_unshift(INTERP, SELF, val);
     }
 
     VTABLE void unshift_pmc(PMC *value) {
 
-        const INTVAL size = PMC_size(SELF);
-        PMC   **data;
-        INTVAL  i;
-
-        SELF.set_integer_native(size + 1);
-
-        data = PMC_array(SELF);
-
-        for (i = size; i; --i)
-            data[i] = data[i - 1];
-
-        data[0] = value;
-
-        return;
+        do_unshift(INTERP, SELF, value);
     }
 
     VTABLE void unshift_string(STRING *value) {
 
-        const INTVAL size = PMC_size(SELF);
-        PMC * const val  = Parrot_pmc_new(INTERP, enum_class_String);
-        PMC   **data;
-        INTVAL  i;
-
+        PMC * const val = Parrot_pmc_new(INTERP, enum_class_String);
         VTABLE_set_string_native(INTERP, val, value);
-        SELF.set_integer_native(size + 1);
-
-        data = PMC_array(SELF);
-
-        for (i = size; i; --i)
-            data[i] = data[i - 1];
-
-        data[0] = val;
-
-        return;
+        do_unshift(INTERP, SELF, val);
     }
 
 /*
@@ -790,6 +750,14 @@
 
 =over 4
 
+=item C<static void do_shift(PMC *arr)>
+
+Common part for shift operations.
+
+=item C<static void do_unshift(PARROT_INTERP, PMC *arr, PMC *val)>
+
+Common part for unshift operations.
+
 =item C<static void throw_shift_empty(PARROT_INTERP)>
 
 =item C<static void throw_pop_empty(PARROT_INTERP)>

Modified: branches/dynop_mapping/src/pmc/role.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/role.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/role.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -101,7 +101,7 @@
          * to look one up with and do so. */
         PMC *_namespace = VTABLE_get_pmc_keyed_str(interp, info, namespace_str);
         if (!VTABLE_isa(interp, _namespace, ns_string))
-            _namespace = Parrot_make_namespace_autobase(interp, _namespace);
+            _namespace = Parrot_ns_make_namespace_autobase(interp, _namespace);
 
         /* If we get something null back it's an error; otherwise, store it. */
         if (!PMC_IS_NULL(_namespace))
@@ -121,7 +121,7 @@
 
         /* Namespace is nested in the current namespace and with the name of
          * the role. */
-        role->_namespace = Parrot_make_namespace_keyed_str(interp,
+        role->_namespace = Parrot_ns_make_namespace_keyed_str(interp,
             Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp)), role->name);
     }
 
@@ -131,7 +131,7 @@
          * to look one up with and do so. */
         PMC *_namespace = VTABLE_get_pmc_keyed_str(interp, info, namespace_str);
         if (!VTABLE_isa(interp, _namespace, ns_string))
-            _namespace = Parrot_make_namespace_autobase(interp, _namespace);
+            _namespace = Parrot_ns_make_namespace_autobase(interp, _namespace);
 
         /* If we get something null back it's an error; otherwise, store it. */
         if (PMC_IS_NULL(_namespace))

Modified: branches/dynop_mapping/src/pmc/scheduler.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/scheduler.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/scheduler.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -251,6 +251,7 @@
 */
     VTABLE void destroy() {
         Parrot_Scheduler_attributes * const core_struct = PARROT_SCHEDULER(SELF);
+        core_struct->interp->scheduler = NULL;
         /* TT #946: this line is causing an order-of-destruction error
            because the scheduler is being freed before its tasks.
            Commenting this out till we get a real fix (although it's a hack) */

Modified: branches/dynop_mapping/src/pmc/string.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/string.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/string.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -56,10 +56,6 @@
 
     VTABLE void mark() {
         STRING *str_val;
-
-        if (!PMC_data(SELF))
-            return;
-
         GET_ATTR_str_val(INTERP, SELF, str_val);
         Parrot_gc_mark_STRING_alive(INTERP, str_val);
     }

Modified: branches/dynop_mapping/src/pmc/stringhandle.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/stringhandle.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/stringhandle.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -109,12 +109,9 @@
         PMC * const copy = Parrot_pmc_new(INTERP, enum_class_StringHandle);
         Parrot_StringHandle_attributes * const data_struct = PARROT_STRINGHANDLE(copy);
 
-        if (old_struct->stringhandle != NULL)
-            data_struct->stringhandle = old_struct->stringhandle;
-        if (old_struct->mode != NULL)
-            data_struct->mode     = old_struct->mode;
-        if (old_struct->encoding != NULL)
-            data_struct->encoding = old_struct->encoding;
+        data_struct->stringhandle = old_struct->stringhandle;
+        data_struct->mode     = old_struct->mode;
+        data_struct->encoding = old_struct->encoding;
         data_struct->flags    = old_struct->flags;
 
         return copy;
@@ -225,6 +222,8 @@
 
 */
     METHOD is_tty() {
+        Parrot_warn_deprecated(INTERP,
+            "'is_tty' is deprecated, use 'isatty' instead - TT #1689");
         RETURN(INTVAL 0);
     }
 

Modified: branches/dynop_mapping/src/pmc/stringiterator.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/stringiterator.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/stringiterator.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -139,19 +139,21 @@
     VTABLE void set_integer_native(INTVAL value) {
         Parrot_StringIterator_attributes * const attrs =
                 PARROT_STRINGITERATOR(SELF);
-        if (value == ITERATE_FROM_START) {
+        switch (value) {
+          case ITERATE_FROM_START:
             attrs->reverse   = 0;
             attrs->pos       = 0;
             attrs->length    = VTABLE_elements(INTERP, attrs->string);
-        }
-        else if (value == ITERATE_FROM_END) {
+            break;
+          case ITERATE_FROM_END:
             attrs->reverse   = 1;
             attrs->pos       = attrs->length
                              = VTABLE_elements(INTERP, attrs->string);
-        }
-        else
+            break;
+          default:
             Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
                     "Wrong direction for StringIterator");
+        }
     }
 
 /*

Modified: branches/dynop_mapping/src/pmc/sub.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/sub.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/sub.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -108,6 +108,7 @@
         attrs->outer_sub       = PMCNULL;
         attrs->multi_signature = PMCNULL;
         attrs->namespace_name  = PMCNULL;
+        attrs->vtable_index    = -1;
 
         PObj_custom_mark_destroy_SETALL(SELF);
     }
@@ -167,6 +168,8 @@
         field = CONST_STRING(INTERP, "vtable_index");
         if (VTABLE_exists_keyed_str(INTERP, init, field))
             attrs->vtable_index = VTABLE_get_integer_keyed_str(INTERP, init, field);
+        else
+            attrs->vtable_index = -1;
 
         field = CONST_STRING(INTERP, "multi_signature");
         if (VTABLE_exists_keyed_str(INTERP, init, field))
@@ -182,8 +185,19 @@
 
         /* comp_flags is actually UINTVAL */
         field = CONST_STRING(INTERP, "comp_flags");
-        if (VTABLE_exists_keyed_str(INTERP, init, field))
-            attrs->comp_flags = (UINTVAL)VTABLE_get_integer_keyed_str(INTERP, init, field);
+        if (VTABLE_exists_keyed_str(INTERP, init, field)) {
+            UINTVAL flags = (UINTVAL)VTABLE_get_integer_keyed_str(INTERP, init, field);
+            /* Mask comp flags only */
+            attrs->comp_flags = flags & SUB_COMP_FLAG_MASK;
+        }
+
+        /* In order to create Sub dynamicaly we have to set PObj flags */
+        field = CONST_STRING(INTERP, "pf_flags");
+        if (VTABLE_exists_keyed_str(INTERP, init, field)) {
+            UINTVAL flags = (UINTVAL)VTABLE_get_integer_keyed_str(INTERP, init, field);
+            /* Mask Sub specific flags only */
+            PObj_get_FLAGS(SELF) |= flags & SUB_FLAG_PF_MASK;
+        }
 
         field = CONST_STRING(INTERP, "n_regs_used");
         if (VTABLE_exists_keyed_str(INTERP, init, field)) {
@@ -1123,6 +1137,31 @@
 
         RETURN(INTVAL arity);
     }
+
+/*
+=item C<INTVAL comp_flags()>
+
+=item C<INTVAL pf_flags()>
+
+(Experimental) Returns Sub flags.
+
+=cut
+*/
+    METHOD comp_flags() {
+        Parrot_Sub_attributes  *sub;
+        INTVAL                  flags;
+
+        PMC_get_sub(INTERP, SELF, sub);
+        flags = sub->comp_flags;
+        RETURN(INTVAL flags);
+    }
+
+    METHOD pf_flags() {
+        /* Only PF specific flags */
+        INTVAL  flags = PObj_get_FLAGS(SELF) & SUB_FLAG_PF_MASK;
+        RETURN(INTVAL flags);
+    }
+
 }
 
 

Modified: branches/dynop_mapping/src/pmc/timer.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/timer.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/timer.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -105,7 +105,7 @@
 
 =item C<void init_pmc(PMC *init)>
 
-See F<docs/pdds/pdd02_vtables.pod> for initializers.
+Takes an even-length collection of keys and values.
 
 =cut
 

Modified: branches/dynop_mapping/src/pmc/unmanagedstruct.pmc
==============================================================================
--- branches/dynop_mapping/src/pmc/unmanagedstruct.pmc	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc/unmanagedstruct.pmc	Sun Jul  4 06:24:50 2010	(r47981)
@@ -241,7 +241,7 @@
                 Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_KEY_NOT_FOUND,
                     "key doesn't exist");
 
-            ix = b - hash->bs;
+            ix = b - hash->buckets;
         }
         else
             Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,

Modified: branches/dynop_mapping/src/pmc_freeze.c
==============================================================================
--- branches/dynop_mapping/src/pmc_freeze.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/pmc_freeze.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -78,9 +78,10 @@
 {
     ASSERT_ARGS(Parrot_freeze_pbc)
     PMC *visitor;
-
     PMC * const pf_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
-    VTABLE_set_pointer(interp, pf_pmc, (void *)pf);
+    DECL_CONST_CAST;
+
+    VTABLE_set_pointer(interp, pf_pmc, PARROT_const_cast(void *, (const void*)pf));
 
     visitor  = Parrot_pmc_new_init(interp, enum_class_ImageIO, pf_pmc);
     VTABLE_set_pmc(interp, visitor, pmc);
@@ -131,10 +132,11 @@
 Parrot_freeze_pbc_size(PARROT_INTERP, ARGIN(PMC *pmc), ARGIN(const PackFile_ConstTable *pf))
 {
     ASSERT_ARGS(Parrot_freeze_pbc_size)
-    PMC     *pf_pmc, *visitor, *pmc_result;
+    PMC *pf_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+    PMC *visitor, *pmc_result;
+    DECL_CONST_CAST;
 
-    pf_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
-    VTABLE_set_pointer(interp, pf_pmc, (void *)pf);
+    VTABLE_set_pointer(interp, pf_pmc, PARROT_const_cast(void *, (const void *)pf));
 
     visitor = Parrot_pmc_new_init(interp, enum_class_ImageIOSize, pf_pmc);
     VTABLE_set_pmc(interp, visitor, pmc);

Modified: branches/dynop_mapping/src/scheduler.c
==============================================================================
--- branches/dynop_mapping/src/scheduler.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/scheduler.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -403,7 +403,7 @@
 Parrot_cx_delete_task(PARROT_INTERP, ARGIN(PMC *task))
 {
     ASSERT_ARGS(Parrot_cx_delete_task)
-    if (interp->scheduler && !PObj_on_free_list_TEST(interp->scheduler)) {
+    if (interp->scheduler) {
         const INTVAL tid = VTABLE_get_integer(interp, task);
         VTABLE_delete_keyed_int(interp, interp->scheduler, tid);
     }

Modified: branches/dynop_mapping/src/string/charset/ascii.c
==============================================================================
--- branches/dynop_mapping/src/string/charset/ascii.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/string/charset/ascii.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -678,6 +678,8 @@
 =item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
 UINTVAL offset)>
 
+Returns Boolean.
+
 =cut
 
 */
@@ -729,6 +731,8 @@
 =item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
 *src, UINTVAL offset, UINTVAL count)>
 
+Returns C<INTVAL>.
+
 =cut
 
 */
@@ -883,6 +887,14 @@
 }
 
 /*
+
+=back
+
+=cut
+
+*/
+
+/*
  * Local variables:
  *   c-file-style: "parrot"
  * End:

Modified: branches/dynop_mapping/src/string/charset/binary.c
==============================================================================
--- branches/dynop_mapping/src/string/charset/binary.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/string/charset/binary.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -407,6 +407,8 @@
 =item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
 UINTVAL offset)>
 
+Returns Boolean.
+
 =cut
 
 */
@@ -423,6 +425,8 @@
 =item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, const STRING
 *src, UINTVAL offset, UINTVAL count)>
 
+Find a character in the given character class.
+
 =cut
 
 */
@@ -440,6 +444,8 @@
 =item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
 *src, UINTVAL offset, UINTVAL count)>
 
+Returns C<INTVAL>.
+
 =cut
 
 */
@@ -456,6 +462,9 @@
 
 =item C<static STRING * string_from_codepoint(PARROT_INTERP, UINTVAL codepoint)>
 
+Creates a new STRING object from a single codepoint C<codepoint>. Returns
+the new STRING.
+
 =cut
 
 */

Modified: branches/dynop_mapping/src/string/charset/iso-8859-1.c
==============================================================================
--- branches/dynop_mapping/src/string/charset/iso-8859-1.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/string/charset/iso-8859-1.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -541,6 +541,8 @@
 =item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
 UINTVAL offset)>
 
+Returns Boolean.
+
 =cut
 
 */
@@ -591,6 +593,8 @@
 =item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
 *src, UINTVAL offset, UINTVAL count)>
 
+Returns C<INTVAL>.
+
 =cut
 
 */

Modified: branches/dynop_mapping/src/string/charset/unicode.c
==============================================================================
--- branches/dynop_mapping/src/string/charset/unicode.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/string/charset/unicode.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -738,6 +738,8 @@
 
 =item C<static int u_iscclass(PARROT_INTERP, UINTVAL codepoint, INTVAL flags)>
 
+Returns Boolean.
+
 =cut
 
 */
@@ -834,6 +836,8 @@
 =item C<static INTVAL is_cclass(PARROT_INTERP, INTVAL flags, const STRING *src,
 UINTVAL offset)>
 
+Returns Boolean.
+
 =cut
 
 */
@@ -861,6 +865,8 @@
 =item C<static INTVAL find_cclass(PARROT_INTERP, INTVAL flags, const STRING
 *src, UINTVAL offset, UINTVAL count)>
 
+Find a character in the given character class.
+
 =cut
 
 */
@@ -901,6 +907,8 @@
 =item C<static INTVAL find_not_cclass(PARROT_INTERP, INTVAL flags, const STRING
 *src, UINTVAL offset, UINTVAL count)>
 
+Returns C<INTVAL>.
+
 =cut
 
 */

Modified: branches/dynop_mapping/src/thread.c
==============================================================================
--- branches/dynop_mapping/src/thread.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/thread.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -197,7 +197,7 @@
         /* Skip vtable overrides and methods. */
         if (ret_val_sub->vtable_index == -1
                 && !(ret_val_sub->comp_flags & SUB_COMP_FLAG_METHOD)) {
-            Parrot_store_sub_in_namespace(interp, ret_val);
+            Parrot_ns_store_sub(interp, ret_val);
         }
     }
     else {

Modified: branches/dynop_mapping/src/warnings.c
==============================================================================
--- branches/dynop_mapping/src/warnings.c	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/src/warnings.c	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -124,6 +124,30 @@
 
 /*
 
+=item C<void Parrot_warn_deprecated(PARROT_INTERP, const char *message)>
+
+Warn about use of a deprecated feature
+
+C<message> is a C string.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_warn_deprecated(PARROT_INTERP, ARGIN(const char *message))
+{
+    ASSERT_ARGS(Parrot_warn_deprecated)
+
+    if (PARROT_WARNINGS_test(interp, PARROT_WARNINGS_DEPRECATED_FLAG)) {
+        STRING *msg = Parrot_sprintf_c(interp, "WARNING: %s\n", message);
+        print_warning(interp, msg);
+    }
+}
+
+/*
+
 =back
 
 =head1 SEE ALSO

Modified: branches/dynop_mapping/t/codingstd/c_function_docs.t
==============================================================================
--- branches/dynop_mapping/t/codingstd/c_function_docs.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/codingstd/c_function_docs.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -91,28 +91,6 @@
 }
 
 __DATA__
-compilers/pirc/src/pircapi.c
-config/gen/platform/ansi/dl.c
-config/gen/platform/ansi/exec.c
-config/gen/platform/ansi/time.c
-config/gen/platform/darwin/memalign.c
-config/gen/platform/generic/dl.c
-config/gen/platform/generic/exec.c
-config/gen/platform/generic/math.c
-config/gen/platform/generic/memalign.c
-config/gen/platform/generic/stat.c
-config/gen/platform/generic/time.c
-config/gen/platform/netbsd/math.c
-config/gen/platform/openbsd/math.c
-config/gen/platform/solaris/math.c
-config/gen/platform/solaris/time.c
-examples/compilers/japhc.c
-src/gc/generational_ms.c
-src/io/io_string.c
-src/string/charset/ascii.c
-src/string/charset/binary.c
-src/string/charset/iso-8859-1.c
-src/string/charset/unicode.c
 
 # Local Variables:
 #   mode: cperl

Modified: branches/dynop_mapping/t/compilers/imcc/syn/regressions.t
==============================================================================
--- branches/dynop_mapping/t/compilers/imcc/syn/regressions.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/compilers/imcc/syn/regressions.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -6,7 +6,7 @@
 use warnings;
 use lib qw( . lib ../lib ../../lib );
 use Test::More;
-use Parrot::Test tests => 22;
+use Parrot::Test tests => 21;
 
 pir_error_output_like( <<'CODE', <<'OUT', 'invalid get_results syntax');
 .sub main :main
@@ -191,19 +191,6 @@
 3
 OUT
 
-TODO: {
-    local $TODO = "works in PIR, not PASM";
-
-pasm_output_is( <<"CODE", <<'OUT', 'long register numbers in PASM (TT #1025)');
-      new P$register, 'Integer'
-      assign P$register, 3
-  say P$register
-CODE
-3
-OUT
-
-}
-
 pir_error_output_like( <<'CODE', <<'OUT', 'die in immediate, TT #629');
 .sub 'foo' :immediate
   die 'no'

Copied: branches/dynop_mapping/t/dynoplibs/io-old.t (from r47980, trunk/t/dynoplibs/io-old.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/t/dynoplibs/io-old.t	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/t/dynoplibs/io-old.t)
@@ -0,0 +1,91 @@
+#! perl
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+
+use Test::More;
+use Parrot::Test tests => 4;
+use Parrot::Test::Util 'create_tempfile';
+
+=head1 NAME
+
+t/pmc/io.t - IO Ops
+
+=head1 SYNOPSIS
+
+    % prove t/pmc/io.t
+
+=head1 DESCRIPTION
+
+Tests the Parrot IO operations.
+
+=cut
+
+my ($FOO, $temp_file) = create_tempfile( UNLINK => 1 );
+close $FOO;
+
+pasm_error_output_like( <<"CODE", <<'OUTPUT', '32bit seek: exception (ops)' );
+.loadlib 'io_ops'
+   open P0, "$temp_file", 'w'
+   seek P0, -1, 0
+   say "error!"
+   end
+CODE
+/seek failed \(32bit\)/
+OUTPUT
+
+pasm_error_output_like( <<"CODE", <<'OUTPUT', '64bit seek: exception (ops)' );
+.loadlib 'io_ops'
+   open P0, "$temp_file", 'w'
+   seek P0, -1, -1, 0
+   say "error!"
+   end
+CODE
+/seek failed \(64bit\)/
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', "peek (ops)" );
+.loadlib 'io_ops'
+    open P0, "$temp_file", 'w'
+    print P0, "a line\\n"
+    close P0
+    open P0, "$temp_file", 'r'
+    peek S0, P0
+    print S0
+    peek S1, P0
+    print S1
+    print "\\n"
+    read S2, P0, 2
+    peek S3, P0
+    print S3
+    print "\\n"
+    end
+CODE
+aa
+l
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', "peek on an empty file (ops)" );
+.loadlib 'io_ops'
+    open P0, "$temp_file", 'w'
+    close P0
+    open P0, "$temp_file", 'r'
+    peek S0, P0
+    eq S0, "", OK1
+    print "not "
+OK1:
+    say "ok 1"
+    end
+CODE
+ok 1
+OUTPUT
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Modified: branches/dynop_mapping/t/dynpmc/gziphandle.t
==============================================================================
--- branches/dynop_mapping/t/dynpmc/gziphandle.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/dynpmc/gziphandle.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -24,7 +24,7 @@
     .local pmc config_hash, interp
     .local int num_tests
 
-    num_tests = 9
+    num_tests = 10
     plan(num_tests)
     interp = getinterp
     config_hash = interp[.IGLOBALS_CONFIG_HASH]
@@ -48,8 +48,8 @@
     $P0 = new 'GzipHandle'
     $S0 = typeof $P0
     is($S0, 'GzipHandle', 'GzipHandle typeof')
-    $I0 = does $P0, 'Handle'
-    ok($I0, 'does Handle')
+    $I0 = isa $P0, 'Handle'
+    ok($I0, 'isa Handle')
 .end
 
 .include 'stat.pasm'
@@ -70,6 +70,8 @@
     ok($I2, "compressed")
     $P2 = new 'GzipHandle'
     $P2.'open'(filename, 'rb')
+    $I2 = $P2.'isatty'()
+    is($I2, 0, 'isatty')
     $S1 = $P2.'read'($I0)
     $P2.'close'()
     is($S1, $S0, "gzip stream")

Modified: branches/dynop_mapping/t/examples/pir.t
==============================================================================
--- branches/dynop_mapping/t/examples/pir.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/examples/pir.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -7,7 +7,7 @@
 use lib qw( . lib ../lib ../../lib );
 
 use Test::More;
-use Parrot::Test tests => 17;
+use Parrot::Test tests => 18;
 use Parrot::Config;
 
 =head1 NAME
@@ -181,6 +181,10 @@
 +---------+---------+---------+
 solved
 END_EXPECTED
+
+    'make_hello_pbc.pir' => << 'END_EXPECTED',
+Hello World
+END_EXPECTED
 );
 
 # expected output of a quine is the quine itself

Copied: branches/dynop_mapping/t/library/uri_escape.t (from r47980, trunk/t/library/uri_escape.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/t/library/uri_escape.t	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/t/library/uri_escape.t)
@@ -0,0 +1,54 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/library/uri_escape.t
+
+=head1 DESCRIPTION
+
+Test the URI Escape library
+
+=head1 SYNOPSIS
+
+    % prove t/library/uri_escape.t
+
+=cut
+
+.sub 'main' :main
+    .include 'test_more.pir'
+
+    load_bytecode 'URI/Escape.pbc'
+
+    plan(6)
+
+    $P0 = new ['Exporter']
+    $P1 = get_namespace ['URI'; 'Escape']
+    $P2 = get_namespace
+    $P0.'import'($P1 :named('source'), $P2 :named('destination'), 'percent_encode percent_encode_component' :named('globals'))
+
+    $S0 = percent_encode('Hello')
+    is($S0, 'Hello', 'plain ascii without special chars')
+
+    $S0 = percent_encode_component('Hello')
+    is($S0, 'Hello', 'plain ascii without special chars - component')
+
+    $S0 = percent_encode('Hello?world')
+    is($S0, 'Hello?world', 'plain ascii')
+
+    $S1 = percent_encode_component('Hello?world')
+    is($S1, 'Hello%3Fworld', 'plain ascii - component')
+
+    $S0 = percent_encode(iso-8859-1:"A\x{D1}O#a")
+    is($S0, 'A%C3%91O#a', 'iso-8859-1 string')
+
+    $S0 = percent_encode_component(iso-8859-1:"A\x{D1}O#a")
+    is($S0, 'A%C3%91O%23a', 'iso-8859-1 string - component')
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/dynop_mapping/t/oo/objects.t (from r47980, trunk/t/oo/objects.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/t/oo/objects.t	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/t/oo/objects.t)
@@ -0,0 +1,1791 @@
+#!./parrot
+# Copyright (C) 2001-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/oo/objects.t - Objects
+
+=head1 SYNOPSIS
+
+    % prove t/oo/objects.t
+
+=head1 DESCRIPTION
+
+Tests the object/class subsystem.
+
+=cut
+
+.sub main :main
+    .include 'test_more.pir'
+    .include "iglobals.pasm"
+    .include "interpinfo.pasm"
+
+    plan(194)
+
+    get_classname_from_class()
+    test_get_class()
+    test_isa()
+    does_scalar()
+    does_array()
+    new_object()
+    new_object__isa_test()
+    new_object__classname()
+    isa_subclass()
+    isa_subclass__objects()
+    test_addmethod()
+    test_addattribute()
+    addattribute_subclass()
+    addattribute_subclass__same_name()
+    set_and_get_object_attribs()
+    set_and_get_multiple_object_attribs()
+    attribute_values_are_specific_to_objects()
+    attribute_values_and_subclassing()
+    attribute_values_and_subclassing_2()
+    PMC_as_classes__overridden_mmd_methods()
+    typeof_class()
+    typeof_objects()
+    multiple_inheritance__with_attributes()
+    attributes_two_levels_of_inheritance()
+    class_op_test()
+    anon_subclass_has_no_name()
+    get_attrib_by_name()
+    get_attrib_by_name_subclass()
+    set_attrib_by_name_subclass()
+    PMC_as_classes()
+    PMC_as_classes__subclass()
+    PMC_as_classes__instantiate()
+    PMC_as_classes__methods()
+    PMC_as_classes__mmd_methods()
+    PMC_as_classes__derived_1()
+    PMC_as_classes__derived_2()
+    PMC_as_classes__derived_3()
+    subclassing_Class()
+    namespace_vs_name()
+    multiple_anon_classes()
+    subclassed_Integer_bug()
+    equality_of_subclassed_Integer()
+    short_name_attributes()
+    init_with_and_without_arg()
+    newclass_bracket_parsing()
+    verify_namespace_types()
+    verify_data_type()
+    new_keyed()
+    new_keyed_2()
+    new_keyed_3()
+    subclass_keyed()
+    test_class_name_multipart_name()
+    test_get_class_multipart_name()
+    isa_bug()
+    new_nested_ordering()
+    vtable_override_once_removed()
+    vtable_fails_for_subclasses_of_core_classes()
+    super___init_called_twice()
+    using_class_object_from_typeof_op_with_new()
+    setting_non_existent_attribute()
+    setting_non_existent_attribute_by_name()
+    getting_null_attribute()
+    getting_non_existent_attribute()
+    addparent_exceptions_1()
+    addparent_exceptions_2()
+    subclassing_a_non_existent_class()
+    anon_subclass_of_non_existent_class()
+    addattribute_duplicate()
+    wrong_way_to_create_new_objects()
+    attribute_values__subclassing_access_meths()
+    attribute_values__inherited_access_meths()
+
+    # END_OF_TESTS
+.end
+
+.sub get_classname_from_class
+    newclass $P1, "Foo5"
+    set $S0, $P1
+    is( $S0, "Foo5", "got classname Foo5" )
+
+    subclass $P2, $P1, "Bar5"
+    set $S1, $P2
+    is( $S1, "Bar5", "got subclass Bar5" )
+
+    subclass $P3, "Foo5", "Baz5"
+    set $S2, $P3
+    is( $S2, "Baz5", "got subclass Baz5" )
+.end
+
+.sub test_get_class
+    newclass $P1, "Foo6"
+    get_class $P2, "Foo6"
+    set $S2, $P2
+    is( $S2, "Foo6", 'get_class for Foo6' )
+
+    subclass $P3, $P1, "FooBar6"
+    get_class $P4, "FooBar6"
+    set $S4, $P4
+    is( $S4, 'FooBar6', 'get_class for FooBar6' )
+
+    get_class $P3, "NoSuch6"
+    isnull $I0, $P3
+    ok( $I0, "no class for 'NoSuch6'" )
+.end
+
+.sub test_isa
+    new $P1, ['Boolean']
+
+    isa $I0, $P1, "Boolean"
+    is( $I0, 1, 'Boolean isa Boolean' )
+
+    isa $I0, $P1, "Bool"
+    is( $I0, 0, 'Boolean !isa Bool' )
+
+    isa $I0, $P1, "scalar"
+    is( $I0, 1, 'Boolean isa scalar' )
+
+    isa $I0, $P1, "calar"
+    is( $I0, 0, 'Boolean !isa calar' )
+
+    isa $I0, $P1, "Integer"
+    is( $I0, 1, 'Boolean isa Integer' )
+
+    isa $I0, $P1, "Integ"
+    is( $I0, 0, 'Boolean !isa Integ' )
+
+    isa $I0, $P1, "eger"
+    is( $I0, 0, 'Boolean !isa eger' )
+
+    isa $I0, $P1, " "
+    is( $I0, 0, 'Boolean !isa " "' )
+
+    isa $I0, $P1, ""
+    is( $I0, 0, 'Boolean !isa ""' )
+
+    null $S0
+    isa $I0, $P1, $S0
+    is( $I0, 0, 'Boolean !isa null $S0' )
+
+    set $S0, "scalar"
+    isa $I0, $P1, $S0
+    is( $I0, 1, 'Boolean isa scalar $S0' )
+.end
+
+.sub does_scalar
+    new $P1, ['Boolean']
+
+    does $I0, $P1, "Boolean"
+    is( $I0, 0, 'Boolean !does Boolean' )
+
+    does $I0, $P1, "Bool"
+    is( $I0, 0, 'Boolean !does Bool' )
+
+    does $I0, $P1, "scalar"
+    is( $I0, 1, 'Boolean does scalar' )
+.end
+
+.sub does_array
+    new $P1, ['OrderedHash']
+
+    does $I0, $P1, "Boolean"
+    is( $I0, 0, 'OrderedHash !does Boolean' )
+
+    does $I0, $P1, "Bool"
+    is( $I0, 0, 'OrderedHash !does Bool' )
+
+    does $I0, $P1, "hash"
+    is( $I0, 1, 'OrderedHash does hash' )
+
+    does $I0, $P1, "array"
+    is( $I0, 1, 'OrderedHash does array' )
+.end
+
+.sub new_object
+    newclass $P1, "Foo7"
+    new $P2, "Foo7"
+    ok( 1, 'created new object from Foo7 class' )
+.end
+
+.sub new_object__isa_test
+    newclass $P1, "Foo8"
+    new $P2, $P1
+    ok( 1, 'created new object from Foo8 class' )
+
+    isa $I0, $P2, "Foo8"
+    ok( $I0, 'new object isa Foo8' )
+.end
+
+.sub new_object__classname
+    newclass $P1, "Foo9"
+    new $P2, $P1
+    set $S0, $P1    # class
+    is( $S0, "Foo9", 'new object from Foo9 class as a string is Foo9' )
+
+    typeof $S0, $P2 # object
+    is( $S0, 'Foo9', 'typeof obj is Foo9' )
+
+    class $P3, $P1
+    set $S0, $P1    # class
+    is( $S0, 'Foo9', 'class of obj is Foo9' )
+
+    typeof $S0, $P2 # object
+    is( $S0, 'Foo9', 'typeof obj is Foo9' )
+
+.end
+
+.sub isa_subclass
+    newclass $P1, "Foo10"
+    subclass $P2, $P1, "Bar10"
+
+    isa_ok( $P2, "Foo10", 'newclass isa Foo10' )
+    isa_ok( $P2, "Bar10", 'new subclass isa Bar10' )
+    isa_ok( $P2, "Foo10", 'new subclass isa parent' )
+    isa_ok( $P2, "Class", 'new subclass isa Class' )
+
+    isa $I0, $P2, "Object"
+    is( $I0, 0, 'new subclass !isa Object' )
+.end
+
+.sub isa_subclass__objects
+    newclass $P3, "Foo30"
+    subclass $P4, $P3, "Bar30"
+    $P1 = $P3.'new'()
+    $P2 = $P4.'new'()
+
+    isa_ok( $P1, "Foo30",  'obj isa its class' )
+    isa_ok( $P2, "Bar30",  'obj isa its class' )
+    isa_ok( $P2, "Foo30",  'obj isa its parent class' )
+    isa_ok( $P2, "Object", 'obj isa Object' )
+    isa_ok( $P2, "Class",  'obj isa Class' )
+.end
+
+.sub test_addmethod
+    newclass $P0, 'Foo31'
+    $P2 = get_hll_global 'sayFoo31'
+
+    # add a method BEFORE creating a Foo object
+    addmethod $P0, 'foo31', $P2
+    $P1 = new 'Foo31'
+    $P1.'foo31'()
+
+    # get a method from some other namespace
+    $P2 = get_hll_global ['Bar31'], 'sayBar31'
+
+    # add a method AFTER creating the object
+    addmethod $P0, 'bar31', $P2
+    $P1.'bar31'()
+.end
+
+.sub sayFoo31
+    ok( 1, 'called method added before creating obj' )
+.end
+
+.namespace ['Bar31']
+.sub sayBar31
+    ok( 1, 'called method added after created obj' )
+.end
+
+.namespace [] # Reset to root namespace for next test
+
+.sub test_addattribute
+    newclass $P1, "Foo11"
+
+    addattribute $P1, "foo_i"
+    ok( 1, 'addattribute did not blow up' )
+
+    set $S0, $P1
+    is( $S0, "Foo11", '$P1 is still the same class as PMC' )
+
+    # Check that we can add multiple attributes
+    set $I0, 0
+l1:
+    set $S0, $I0
+    addattribute $P1, $S0
+    inc $I0
+    lt $I0, 1000, l1
+    ok( 1, 'addattribute 1000x without blow up' )
+.end
+
+.sub addattribute_subclass
+    newclass $P1, "Foo12"
+    addattribute $P1, "foo_i"
+    ok( 1, 'addattribute to Foo12' )
+
+    subclass $P2, $P1, "Bar12"
+    addattribute $P2, "bar_i"
+    ok( 1, 'addattribute to subclass of Foo12' )
+.end
+
+.sub addattribute_subclass__same_name
+    newclass $P1, "Foo32"
+    addattribute $P1, "i"
+    addattribute $P1, "j"
+
+    subclass $P2, $P1, "Bar32"
+    addattribute $P2, "j"
+    addattribute $P2, "k"
+
+    ok( 1, 'created class and subclass and added attributes' )
+
+    .local pmc o
+    o = $P2.'new'()
+    $P0 = getattribute o, 'i'
+    is( $P0, 'Foo32.i', 'parent attrib initialized in init' )
+    $P0 = getattribute o, ['Foo32'], 'j'
+    is( $P0, 'Foo32.j', 'parent attrib initialized in init' )
+    $P0 = getattribute o, ['Bar32'], 'j'
+    is( $P0, 'Bar32.j', 'subclass attrib initialized in init' )
+    $P0 = getattribute o, 'k'
+    is( $P0, 'Bar32.k', 'subclass attrib initialized in init' )
+
+    $P0 = getattribute o, 'i'
+    is( $P0, 'Foo32.i', 'parent attrib init-ed' )
+    $P0 = getattribute o, ['Foo32'], "j"
+    is( $P0, 'Foo32.j', 'parent attrib init-ed' )
+    $P0 = getattribute o, 'j'
+    is( $P0, 'Bar32.j', 'subclass attrib returned over parent' )
+    $P0 = getattribute o, 'k'
+    is( $P0, 'Bar32.k', 'subclass attrib init-ed' )
+.end
+
+.namespace ['Bar32']
+
+.sub init :vtable :method
+    $P0 = new ['String']
+    $P0 = 'Foo32.i'
+    setattribute self, ['Foo32'], "i", $P0
+    $P0 = new ['String']
+    $P0 = 'Foo32.j'
+    setattribute self, ["Foo32"], "j", $P0
+    $P0 = new ['String']
+    $P0 = 'Bar32.j'
+    setattribute self, ["Bar32"], "j", $P0
+    $P0 = new ['String']
+    $P0 = 'Bar32.k'
+    setattribute self, ["Bar32"], "k", $P0
+.end
+
+.namespace []       # Reset to root namespace for next test
+
+.sub set_and_get_object_attribs
+    newclass $P1, "Foo13"
+    addattribute $P1, "i"
+    new $P2, $P1
+
+    new $P3, ['Integer']
+    set $P3, 1024
+    setattribute $P2, "i", $P3
+
+    new $P4, ['Integer']
+    getattribute $P4, $P2, "i"
+
+    is( $P4, 1024, 'set/get Integer attribute' )
+.end
+
+.sub set_and_get_multiple_object_attribs
+    newclass $P1, "Foo14"
+    addattribute $P1, "i"
+    addattribute $P1, "j"
+    new $P2, "Foo14"
+
+    new $P3, ['Integer']
+    set $P3, 4201
+    new $P4, ['Hash']
+    set $P4["Key"], "Value"
+
+    setattribute $P2, "i", $P3
+    setattribute $P2, "j", $P4
+
+    getattribute $P5, $P2, "i"
+    is( $P5, '4201', 'set/get Integer attribute' )
+
+    getattribute $P6, $P2, "j"
+    set $S0, $P6["Key"]
+    is( $S0, 'Value', 'set/get Hash attribute on same obj' )
+.end
+
+.sub attribute_values_are_specific_to_objects
+    newclass $P1, "Foo15"
+    addattribute $P1, "i"
+    new $P2, $P1
+    new $P3, $P1
+
+    new $P4, ['Integer']
+    set $P4, 100
+    setattribute $P2, "i", $P4
+    new $P5, ['String']
+    set $P5, "One hundred"
+    setattribute $P3, "i", $P5
+
+    getattribute $P6, $P2, "i"
+    is( $P6, 100, 'attribute value on 1st object is specific to obj' )
+
+    getattribute $P6, $P3, "i"
+    is( $P6, 'One hundred', 'attribute value on 2nd obj is specific to obj' )
+.end
+
+.sub attribute_values_and_subclassing
+    newclass $P1, "Foo16"
+    addattribute $P1, "i"
+    addattribute $P1, "j"
+    subclass $P2, $P1, "Bar16"
+    addattribute $P2, "k"
+    addattribute $P2, "l"
+
+    new $P2, "Bar16"
+    new $P3, "Bar16"
+
+    # Note that setattribute holds the actual PMC, not a copy, so
+    # in this test both attributes get the PMC from $P4, and should
+    # both have the same value, despite the C<inc>.
+    new $P4, ['Integer']
+    set $P4, 10
+    setattribute $P2, "i", $P4
+    inc $P4
+    setattribute $P2, "j", $P4
+
+    new $P5, ['Integer']
+    set $P5, 100
+    setattribute $P3, "i", $P5
+    inc $P5
+    setattribute $P3, "j", $P5
+
+    getattribute $P6, $P2, "i"
+    is( $P6, 11, 'setattrib with a PMC holds actual PMC not copy' )
+
+    getattribute $P6, $P2, "j"
+    is( $P6, 11, '...so changes to the PMC appear through the attrib' )
+
+    getattribute $P6, $P3, "i"
+    is( $P6, 101, '...and second test on new objects' )
+
+    getattribute $P6, $P3, "j"
+    is( $P6, 101, '...should have same result' )
+.end
+
+.sub attribute_values_and_subclassing_2
+    newclass $P1, "Foo17"
+    # must add attributes before object instantiation
+    addattribute $P1, ".i"
+    addattribute $P1, ".j"
+
+    subclass $P2, $P1, "Bar17"
+    addattribute $P2, ".k"
+    addattribute $P2, ".l"
+
+    # subclass is preferred for the SI case over
+    #   newclass $P2, "Bar"
+    #   addattrib ...
+    #   addparent $P2, $P1
+    # which is suitable for adding multiple parents to one class
+
+    # instantiate a Bar object
+    new $P3, "Bar17"
+
+    # Set the attribute values
+    new $P10, ['String']           # set attribute values
+    set $P10, "i"                # attribute slots have reference semantics
+    setattribute $P3, ".i", $P10  # so always put new PMCs in
+                                # if you have unique values
+    new $P10, ['String']
+    set $P10, "j"
+    setattribute $P3, ".j", $P10
+
+    new $P10, ['String']
+    set $P10, "k"
+    setattribute $P3, ".k", $P10
+
+    new $P10, ['String']
+    set $P10, "l"
+    setattribute $P3, ".l", $P10
+
+    # retrieve attribs
+    getattribute $P11, $P3, ".i"
+    is( $P11, "i", 'string attribute get/set on parent' )
+
+    getattribute $P11, $P3, ".j"
+    is( $P11, "j", 'string attribute get/set on parent' )
+
+    getattribute $P11, $P3, ".k"
+    is( $P11, "k", 'string attribute get/set on subclass' )
+
+    getattribute $P11, $P3, ".l"
+    is( $P11, "l", 'string attribute get/set on subclass' )
+.end
+
+.sub PMC_as_classes__overridden_mmd_methods
+    .local pmc myint, i, j, k
+
+    get_class $P0, "Integer"
+    subclass myint, $P0, "MyInt1"
+
+    i = new 'MyInt1'
+    j = new 'MyInt1'
+    k = new 'MyInt1'
+    i = 6
+    j = 7
+    k = i + j
+
+    is( k, 13, 'added two MyInt1' )
+
+    j = new ['Integer']
+    j = 100
+    k = i + j
+
+    is( k, 106, 'added MyInt1 and an Integer' )
+.end
+
+.namespace ["MyInt1"]
+
+.sub add :multi(MyInt1, MyInt1, MyInt1)
+    .param pmc self
+    .param pmc right
+    .param pmc dest
+    ok( 1, 'in the add method' )
+    $P0 = getattribute self, ['Integer'], "proxy"
+    $I0 = $P0
+    $I1 = right
+    $I2 = $I0 + $I1
+    dest = $I2
+    .return(dest)
+.end
+
+.namespace []       # Reset to root namespace for next test
+
+.sub typeof_class
+    newclass $P0, "Foo21"
+    typeof $S0, $P0
+    is( $S0, "Class", 'typeof for a Class PMC is "Class"' )
+.end
+
+.sub typeof_objects
+    newclass $P0, "A"
+    newclass $P1, "B"
+
+    new $P0, ['A']
+    new $P1, ['B']
+
+    typeof $S0, $P0
+    typeof $S1, $P1
+
+    is( $S0, 'A', 'typeof object of class A is "A"' )
+    is( $S1, 'B', 'typeof object of class B is "B"' )
+.end
+
+.sub multiple_inheritance__with_attributes
+    newclass $P1, "Star"
+    addattribute $P1, "Spectral Type"
+
+    newclass $P2, "Company"
+    addattribute $P2, "Annual Profit"
+
+    subclass $P3, $P1, "Sun"
+    addparent $P3, $P2
+
+    new $P4, ['Sun']
+
+    new $P5, ['String']
+    set $P5, "G"
+    setattribute $P4, "Spectral Type", $P5
+
+    new $P6, ['String']
+    set $P6, "$100,000,000"
+    setattribute $P4, "Annual Profit", $P6
+
+    getattribute $P7, $P4, "Spectral Type"
+    is( $P7, 'G', 'direct parents attribute' )
+
+    getattribute $P8, $P4, "Annual Profit"
+    is( $P8, '$100,000,000', "addparent's attribute" )
+.end
+
+.sub attributes_two_levels_of_inheritance
+    newclass $P0, "Astronomical Object"
+    addattribute $P0, "Location"
+
+    subclass $P1, $P0, "Star2"
+    addattribute $P1, "Spectral Type"
+
+    newclass $P2, "Sun2"
+    addparent $P2, $P1
+    addparent $P2, $P0
+
+    new $P4, "Sun2"
+
+    new $P5, ['String']
+    set $P5, "Taurus"
+    setattribute $P4, "Location", $P5
+    getattribute $P6, $P4, "Location"
+    is( $P6, 'Taurus', 'attributes with two levels of inheritance' )
+.end
+
+.sub class_op_test
+    newclass $P0, "City1"
+    new $P1, "City1"
+
+    class $P2, $P1
+    set $S0, $P2
+    is( $S0, 'City1', 'class op works' )
+.end
+
+.sub anon_subclass_has_no_name
+    newclass $P0, "City2"
+    subclass $P1, $P0
+    set $S0, $P1
+    is( $S0, '', 'anonymous subclass has no name' )
+.end
+
+.sub get_attrib_by_name
+    newclass $P1, "Foo18"
+    addattribute $P1, "i"
+    new $P2, "Foo18"
+    new $P3, ['String']
+    set $P3, "ok"
+    setattribute $P2, "i", $P3
+
+    getattribute $P4, $P2, ["Foo18"], "i"
+    is( $P4, 'ok', 'get attrib by name' )
+.end
+
+.sub get_attrib_by_name_subclass
+    newclass $P0, "Bar19"
+    addattribute $P0, "j"
+
+    subclass $P1, $P0, "Foo19"
+    addattribute $P1, "i"
+
+    new $P2, "Foo19"
+
+    new $P3, ['String']
+    set $P3, "foo i"
+    setattribute $P2, "i", $P3
+
+    new $P3, ['String']
+    set $P3, "bar j"
+    setattribute $P2, "j", $P3
+
+    getattribute $P4, $P2, ["Foo19"], "i"
+    is( $P4, 'foo i', 'attribute from subclass get by name' )
+
+    getattribute $P4, $P2, ["Bar19"], "j"
+    is( $P4, 'bar j', 'attribute from parent class get by name' )
+.end
+
+.sub set_attrib_by_name_subclass
+    newclass $P0, "Bar20"
+    addattribute $P0, "j"
+
+    subclass $P1, $P0, "Foo20"
+    addattribute $P1, "i"
+
+    new $P2, "Foo20"
+
+    new $P3, ['String']
+    set $P3, "foo i"
+    setattribute $P2, ["Foo20"], "i", $P3
+
+    new $P3, ['String']
+    set $P3, "bar j"
+    setattribute $P2, ["Bar20"], "j", $P3
+
+    getattribute $P4, $P2, "i"
+    is( $P4, 'foo i', 'attribute from subclass set by name' )
+
+    getattribute $P4, $P2, "j"
+    is( $P4, 'bar j', 'attribute from parent class set by name' )
+.end
+
+.sub PMC_as_classes
+    get_class $P0, "Integer"
+    ok( 1, "get_class of Integer did't croak" )
+
+    get_class $P0, "Integer"
+    ok( 1, "get_class of Integer did't croak second time" )
+
+    typeof $S0, $P0
+    is( $S0, 'PMCProxy', 'typeof PMCProxy' )
+.end
+
+.sub PMC_as_classes__subclass
+    .local pmc MyInt3
+    get_class $P0, "Integer"
+    ok( 1, "get_class on Integer didn't blow up" )
+
+    subclass MyInt3, $P0, "MyInt3"
+    ok( 1, "subclassing didn't blow up" )
+
+    $S0 = typeof MyInt3
+    is( $S0, 'Class', 'new subclass is typeof Class' )
+
+    $I0 = isa MyInt3, "MyInt3"
+    ok( $I0, 'new subclass isa MyInt' )
+
+    $I0 = isa MyInt3, "Integer"
+    ok( $I0, 'new subclass isa parent class' )
+.end
+
+.sub PMC_as_classes__instantiate
+    .local pmc MyInt4
+    get_class $P0, "Integer"
+    ok( 1, 'able to get_class of Integer' )
+
+    subclass MyInt4, $P0, "MyInt4"
+    addattribute MyInt4, ".i"
+    ok( 1, 'able to addattribute to subclass' )
+
+    .local pmc i
+    i = new "MyInt4"
+    ok( 1, 'able to instantiate obj of subclass w/ attribute' )
+.end
+
+.sub PMC_as_classes__methods
+    .local pmc MyInt5
+    get_class $P0, "Integer"
+
+    subclass MyInt5, $P0, "MyInt5"
+    addattribute MyInt5, "intval"
+
+    .local pmc i, i2
+    i = new "MyInt5"
+    i2 = new ['Integer']
+    i2 = 43
+
+    i = 42    # set_integer is inherited from Integer
+    ok( 1, 'able to assign int to MyInt' )
+
+    $I0 = i   # get_integer is overridden below
+    is( $I0, 42, 'get_integer is overridden for MyInt5' )
+
+    $S0 = i   # get_string is overridden below
+    is( $S0, 'MyInt5(42)', 'get_string is overridden for MyInt5' )
+.end
+
+.namespace ["MyInt5"]
+
+.sub set_integer_native :vtable :method
+   .param int new_value
+   $P1 = new ['Integer']
+   $P1 = new_value
+   setattribute self, "intval", $P1
+.end
+
+.sub get_integer :vtable :method
+   $P0 = getattribute self, "intval"
+   $I0 = $P0
+   .return ($I0)
+.end
+
+.sub get_string :vtable :method
+   $P0 = getattribute self, "intval"
+   $I0 = $P0
+   $S1 = $I0
+   $S0 = "MyInt5("
+   $S0 .= $S1
+   $S0 .= ")"
+   .return ($S0)
+.end
+
+.namespace []       # Reset to root namespace for next test
+
+.sub PMC_as_classes__mmd_methods
+  .local pmc MyInt6
+  get_class $P0, "Integer"
+  subclass MyInt6, $P0, "MyInt6"
+  .local pmc i
+  .local pmc j
+  .local pmc k
+  i = new "MyInt6"
+  j = new "MyInt6"
+  k = new "MyInt6"
+  i = 6
+  j = 7
+  k = i * j
+  $I0 = k
+  is( $I0, 42, 'MyInt6 defaults to Integer class for mult' )
+
+  $S0 = k   # get_string is overridden below
+  is( $S0, 'MyInt6(42)', 'get_string is overridden for MyInt6' )
+.end
+
+.namespace ["MyInt6"]
+
+.sub get_string :vtable :method
+   $I0 = self   # get_integer is not overridden
+   $S1 = $I0
+   $S0 = "MyInt6("
+   $S0 .= $S1
+   $S0 .= ")"
+   .return ($S0)
+.end
+
+.namespace []       # Reset to root namespace for next test
+
+.sub PMC_as_classes__derived_1
+  .local pmc MyInt8
+  .local pmc MyInt8_2
+  get_class $P0, "Integer"
+
+  subclass MyInt8, $P0, "MyInt8"
+  addattribute MyInt8, 'intval'
+  get_class $P1, "MyInt8"
+  subclass MyInt8_2, $P1, "MyInt8_2"
+
+  .local pmc i
+  i = new "MyInt8_2"
+  $I0 = isa i, "Integer"
+  ok( $I0, 'obj isa grandparent (Integer)' )
+
+  $I0 = isa i, "MyInt8"
+  ok( $I0, 'obj isa parent (MyInt8)' )
+
+  $I0 = isa i, "MyInt8_2"
+  ok( $I0, 'obj isa its class (MyInt8_2)' )
+
+  i = 42    # set_integer is overridden below
+  $I0 = i   # get_integer is overridden below
+  is( $I0, 42, 'set/get_integer overridden' )
+
+  $S0 = i   # get_string is overridden below
+  is( $S0, 'MyInt8_2(42)', 'set/get_string overridden' )
+.end
+
+.namespace ["MyInt8"]
+.sub 'set_integer_native' :vtable :method
+    .param int val
+    $P1 = new ['Integer']
+    $P1 = val
+    setattribute self, "intval", $P1
+    .return ()
+.end
+.sub get_integer :vtable :method
+   $P0 = getattribute self, 'intval'
+   $I0 = $P0
+   .return ($I0)
+.end
+.sub get_string :vtable :method
+   $P0 = getattribute self, 'intval'
+   $I0 = $P0
+   $S1 = $I0
+   $S0 = typeof self
+   $S0 .= "("
+   $S0 .= $S1
+   $S0 .= ")"
+   .return ($S0)
+.end
+
+.namespace []       # Reset to root namespace for next test
+
+.sub PMC_as_classes__derived_2
+  .local pmc MyInt9
+  .local pmc MyInt9_2
+  get_class $P0, "Integer"
+
+  subclass MyInt9, $P0, "MyInt9"
+  addattribute MyInt9, 'intval'
+  get_class $P1, "MyInt9"
+  subclass MyInt9_2, $P1, "MyInt9_2"
+
+  .local pmc i
+  i = new "MyInt9_2"
+  $I0 = isa i, "Integer"
+  ok( $I0, 'obj isa grandparent (Integer)' )
+  $I0 = isa i, "MyInt9"
+  ok( $I0, 'obj isa parent (MyInt9)' )
+  $I0 = isa i, "MyInt9_2"
+  ok( $I0, 'obj isa its class (MyInt9_2)' )
+
+  i = 42    # set_integer is overridden below
+  $I0 = i   # get_integer is overridden below
+  is( $I0, 43, 'set/get_integer overridden' )
+
+  $S0 = i   # get_string is overridden below
+  is( $S0, 'MyInt9_2(42)', 'set/get_string overridden' )
+.end
+
+.namespace ["MyInt9_2"]
+# subclassing methods from MyInt9 is ok
+# this one changes the value a bit
+.sub get_integer :vtable :method
+   $P0 = getattribute self, 'intval'
+   $I0 = $P0
+   inc $I0            # <<<<<
+   .return ($I0)
+.end
+.namespace ["MyInt9"]
+.sub 'set_integer_native' :vtable :method
+    .param int val
+    $P1 = new ['Integer']
+    $P1 = val
+    setattribute self, "intval", $P1
+    .return ()
+.end
+.sub get_integer :vtable :method
+   $P0 = getattribute self, 'intval'
+   $I0 = $P0
+   .return ($I0)
+.end
+.sub get_string :vtable :method
+   $P0 = getattribute self, 'intval'
+   $I0 = $P0
+   $S1 = $I0
+   $S0 = typeof self
+   $S0 .= "("
+   $S0 .= $S1
+   $S0 .= ")"
+   .return ($S0)
+.end
+
+.namespace []       # Reset to root namespace for next test
+
+.sub PMC_as_classes__derived_3
+    .local pmc MyInt10
+    .local pmc MyInt10_2
+    get_class $P0, "Integer"
+
+    subclass MyInt10, $P0, "MyInt10"
+    addattribute MyInt10, 'intval'
+    get_class $P1, "MyInt10"
+    subclass MyInt10_2, $P1, "MyInt10_2"
+
+    .local pmc i
+    i = new "MyInt10_2"
+    $I0 = isa i, "Integer"
+    ok( $I0, 'obj isa grandparent (Integer)' )
+    $I0 = isa i, "MyInt10"
+    ok( $I0, 'obj isa parent (MyInt10)' )
+    $I0 = isa i, "MyInt10_2"
+    ok( $I0, 'obj isa its class (MyInt102)' )
+
+    i = 42    # set_integer is overridden below
+    $I0 = i   # get_integer is overridden below
+    is( $I0, 42, 'set/get_integer overridden' )
+
+    $S0 = i   # get_string is overridden below
+    is( $S0, 'MyInt10_2(42)', 'set/get_string overridden' )
+.end
+
+.namespace ["MyInt10_2"]
+.sub get_integer :vtable :method
+    $P0 = getattribute self, 'intval'
+    $I0 = $P0
+    .return ($I0)
+.end
+.sub get_string :vtable :method
+    $P0 = getattribute self, 'intval'
+    $I0 = $P0
+    $S1 = $I0
+    $S0 = typeof self
+    $S0 .= "("
+    $S0 .= $S1
+    $S0 .= ")"
+    .return ($S0)
+.end
+.namespace ['MyInt10']
+.sub 'set_integer_native' :vtable :method
+    .param int val
+    $P1 = new ['Integer']
+    $P1 = val
+    setattribute self, "intval", $P1
+    .return ()
+.end
+
+.namespace []       # Reset to root namespace for next test
+
+.sub subclassing_Class
+    .local pmc cl
+    .local pmc parent
+    parent = get_class "Class"
+    cl = subclass parent, "Foo33"
+    ok( 1, 'able to subclass Class' )
+
+    .local pmc o
+    o = new "Foo33"
+    ok( 1, 'able to instantiate subclass of Class' )
+
+    $S0 = typeof o
+    is( $S0, 'Foo33', 'object returns correct class' )
+.end
+
+.sub namespace_vs_name
+    .local pmc o, cl, f
+    newclass cl, "Foo34"
+    o = new "Foo34"
+    is( o, 'Foo34::get_string', 'found Foo34 namespace' )
+
+    o = Foo34()
+    is( o, 'Foo34', 'found global Foo34' )
+
+    f = get_global "Foo34"
+    o = f()
+    is( o, 'Foo34', 'found global Foo34 explicitly' )
+
+    f = get_global ["Foo34"], "Foo34"
+    o = f()
+    is( o, 'Foo34::Foo34', 'found method in Foo34 namespace' )
+.end
+
+.sub Foo34
+    .return("Foo34")
+.end
+
+.namespace [ "Foo34" ]
+
+.sub get_string :vtable :method
+    .return("Foo34::get_string")
+.end
+
+.sub Foo34
+    .return("Foo34::Foo34")
+.end
+
+.namespace []       # Reset to root namespace for next test
+
+.sub multiple_anon_classes
+     newclass $P0, "City3"
+     subclass $P1, $P0
+     newclass $P2, "State3"
+     subclass $P3, $P2
+     ok( 1,  "multiple anon classes didn't croak (bug #33103)" )
+.end
+
+.sub subclassed_Integer_bug
+   .local pmc class
+   .local pmc a
+   .local pmc b
+
+    subclass class, "Integer", "LispInteger1"
+
+    a = new "LispInteger1"
+    b = new "LispInteger1"
+
+    a = 1
+    b = 1
+
+    set $S0, a
+    is( $S0, '1', 'subclassed Integer is 1' )
+    set $S0, b
+    is( $S0, '1', 'subclassed Integer is 1' )
+
+    a = a * b
+    set $S0, a
+    is( $S0, '1', 'multip and reasign to subclassed Integer is 1' )
+.end
+
+.sub equality_of_subclassed_Integer
+  .local pmc class
+  class = subclass "Integer", "LispInteger2"
+
+  .local pmc a
+  a = new 'LispInteger2'
+  a = 123
+
+  .local pmc b
+  b = new 'LispInteger2'
+  b = 123
+
+  $I0 = a == b
+  ok( $I0, '123 is equal to 123' )
+
+.end
+
+.sub short_name_attributes
+    newclass $P1, "Foo22"
+    addattribute $P1, "i"
+    addattribute $P1, "j"
+
+    subclass $P2, $P1, "Bar22"
+    addattribute $P2, "k"
+    addattribute $P2, "l"
+
+    new $P2, "Bar22"
+
+    # set a bunch of attribs
+    new $P4, ['Integer']
+    set $P4, 10
+    setattribute $P2, "i", $P4
+
+    new $P4, ['Integer']
+    set $P4, 11
+    setattribute $P2, "j", $P4
+
+    new $P4, ['Integer']
+    set $P4, 20
+    setattribute $P2, "k", $P4
+
+    new $P4, ['Integer']
+    set $P4, 21
+    setattribute $P2, "l", $P4
+
+    getattribute $P6, $P2, "i"
+    is( $P6, 10, '"i" getattribute on parent class attrib' )
+    getattribute $P6, $P2, "j"
+    is( $P6, 11, '"j" getattribute on parent class attrib' )
+
+    getattribute $P6, $P2, "k"
+    is( $P6, 20, '"k" getattribute on subclass attrib' )
+    getattribute $P6, $P2, "l"
+    is( $P6, 21, '"l" getattribute on subclass attrib' )
+
+    getattribute $P6, $P2, ["Foo22"], "i"
+    is( $P6, 10, '["Foo22"], "i" getattribute on parent class attrib' )
+    getattribute $P6, $P2, ["Bar22"], "k"
+    is( $P6, 20, '["Bar22"], "k" getattribute on subclass attrib' )
+.end
+
+.sub init_with_and_without_arg
+    .local pmc cl, o, h, a
+    cl = newclass "Foo35"
+    addattribute cl, "a"
+    o = cl.'new'()
+    a = getattribute o, "a"
+    is( a, 'ok 1', 'init without an arg' )
+
+    h = new ['Hash']
+    $P0 = new ['String']
+    $P0 = "ok 2"
+    h['a'] = $P0
+    o  = new cl, h
+    a = getattribute o, "a"
+    is( a, 'ok 2', 'init with an arg' )
+.end
+
+.namespace ["Foo35"]
+.sub init_pmc :vtable :method
+    .param pmc args
+    $P0 = args['a']
+    setattribute self, 'a', $P0
+    .return()
+.end
+.sub init :vtable :method
+    $P0 = new ['String']
+    $P0 = "ok 1"
+    setattribute self, 'a', $P0
+.end
+
+.namespace []       # Reset to root namespace for next test
+
+.sub newclass_bracket_parsing
+    newclass $P0, ['Foo23';'Bar23']
+    ok( 1, 'newclass  created with brackets' )
+.end
+
+.sub verify_namespace_types
+    newclass $P0, ['Foo24';'Bar24']
+    getinterp $P0
+    set $P1, $P0[.IGLOBALS_CLASSNAME_HASH]
+    typeof $S0, $P1
+    is( $S0, 'NameSpace', 'namespace verified' )
+
+    set $P2, $P1['Foo24']
+    typeof $S0, $P2
+    is( $S0, 'NameSpace', 'namespace verified' )
+.end
+
+.sub verify_data_type
+    newclass $P0, ['Foo25';'Bar25']
+    getinterp $P0
+    set $P1, $P0[.IGLOBALS_CLASSNAME_HASH]
+    set $P2, $P1['Foo25']
+    set $P3, $P2['Bar25']
+
+    set $I0, $P3
+    isgt $I0, $I0, 0
+    ok( $I0, 'verified datatype > 0' )
+.end
+
+# Puts init in a namespace
+.sub new_keyed
+    .local pmc cl, o, p
+    cl = newclass ['Foo36';'Bar36']
+    addattribute cl, "init_check"
+    o = cl.'new'()
+    ok( 1, 'obj successfully created' )
+
+    p = getattribute o, "init_check"
+    is( p, 999, "overridden init called")
+.end
+
+.namespace ['Foo36';'Bar36']
+
+.sub init :vtable :method
+    .local pmc p
+    p = new ['Integer']
+    p = 999
+    setattribute self, "init_check", p
+.end
+
+.namespace []   # revert to root for next test
+
+.sub new_keyed_2
+    .local pmc c1, c2, o1, o2
+    c1 = newclass ['Foo37';'Bar37']
+    c2 = newclass ['Foo37';'Fuz37']
+    o1 = c1.'new'()
+    o2 = c2.'new'()
+    ok( 1, 'objects created successfully' )
+.end
+
+.namespace ['Foo37';'Bar37']
+
+.sub init :vtable :method
+    ok( 1, '__init Bar37' )
+.end
+
+.namespace ['Foo37';'Fuz37']
+
+.sub init :vtable :method
+    ok( 1, '__init Fuz37' )
+.end
+
+.namespace []   # revert to root for next test
+
+.sub new_keyed_3
+    .local pmc c1, c2, c3, o1, o2, o3
+    c1 = newclass ['Foo38';'Bar38']
+    c2 = newclass ['Foo38';'Buz38']
+    c3 = newclass 'Foo38'
+    o1 = new      ['Foo38';'Bar38']
+    o2 = new      ['Foo38';'Buz38']
+    o3 = new      'Foo38'
+    ok( 1, 'objects created successfully' )
+.end
+
+.namespace ['Foo38';'Bar38']
+
+.sub init :vtable :method
+    ok( 1, '__init Bar38' )
+.end
+
+.namespace ['Foo38';'Buz38']
+
+.sub init :vtable :method
+    ok( 1, '__init Buz38' )
+.end
+
+.namespace ['Foo38']
+
+.sub init :vtable :method
+    ok( 1, '__init Foo38' )
+.end
+
+.namespace []   # revert to root for next test
+
+.sub subclass_keyed
+    .local pmc base, o1, o2
+    base = subclass 'Hash', ['Perl6-3'; 'PAST'; 'Node']
+    addattribute base, '$.source'                  # original source
+    addattribute base, '$.pos'                     # offset position
+
+    $P0 = subclass base, ['Perl6-3'; 'PAST'; 'Sub']
+    $P0 = subclass base, ['Perl6-3'; 'PAST'; 'Stmt']
+    ok( 1, 'ok 1\n' )
+
+    o1 = new   ['Perl6-3'; 'PAST'; 'Sub']
+    o2 = new   ['Perl6-3'; 'PAST'; 'Stmt']
+    ok( 1, 'objects created successfully' )
+.end
+
+.namespace ['Perl6-3'; 'PAST'; 'Stmt']
+
+.sub init :vtable :method
+    ok( 1, '__init Stmt' )
+.end
+
+.namespace ['Perl6-3'; 'PAST'; 'Sub']
+
+.sub init :vtable :method
+    ok( 1, '__init Sub' )
+.end
+
+.namespace []   # revert to root for next test
+
+.sub test_class_name_multipart_name
+    .local pmc base, o1
+    base = subclass 'Hash', ['Perl6'; 'PAST'; 'Node']
+    o1 = new base
+    $S0 = typeof o1
+    is( $S0, "Perl6;PAST;Node", "typeof returns object's class name" )
+.end
+
+.sub test_get_class_multipart_name
+    .local pmc base, o1
+    base = subclass 'Hash', ['Perl6a'; 'PAST'; 'Node']
+    $P0 = get_class ['Perl6a'; 'PAST'; 'Node']
+    o1 = new $P0
+    $S0 = typeof o1
+    is( $S0, 'Perl6a;PAST;Node', 'typeof returns objects created from get_class' )
+.end
+
+.sub isa_bug
+    .local pmc base, o1, o2
+    base = subclass 'Hash', ['Perl6b'; 'PAST'; 'Node']
+    $P0 = new [ 'Perl6b'; 'PAST'; 'Node' ]
+
+    $I0 = isa $P0, [ 'Perl6b'; 'PAST'; 'Node']
+    is( $I0, 1, 'obj isa the full class name' )
+
+    $I0 = isa $P0, 'Hash'
+    is( $I0, 1, 'obj isa the parent class' )
+
+    $I0 = isa $P0, 'Perl6b'
+    is( $I0, 0, 'obj !isa the first part of the class name' )
+.end
+
+.sub new_nested_ordering
+    .local pmc c1, c2, o
+    c1 = newclass ['Foo39']
+    c2 = newclass ['Foo39';'Bar39']
+    o = c2.'new'()
+    ok( 1, 'objects created successfully' )
+.end
+
+.namespace ['Foo39']
+
+.sub init :vtable :method
+    ok( 0, '__init Foo39' )     # shouldn't be called
+.end
+
+.namespace ['Foo39';'Bar39']
+
+.sub init :vtable :method
+    ok( 1, '__init Bar39' )     # should be called
+.end
+
+.namespace []   # revert to root for next test
+
+.sub vtable_override_once_removed
+    .local pmc base
+    $P0 = get_class 'Integer'
+    base = subclass $P0, 'Foo40'      # create subclass 'Foo40'
+    addattribute base, '@!capt'
+
+    $P0 = subclass 'Foo40', 'Bar40'   # create subclass 'Bar40'
+    $P1 = new 'Bar40'                 # create an instance of 'Bar40'
+
+    $S1 = $P1                         # get its string representation
+    is( $S1, 'ok bar', 'get_string overridden' )
+.end
+
+.namespace [ 'Bar40' ]
+
+.sub 'get_string' :vtable :method
+    $S0 = 'ok bar'
+    .return ($S0)
+.end
+
+.namespace []   # revert to root for next test
+
+.sub vtable_fails_for_subclasses_of_core_classes
+    $P0 = subclass 'Hash', 'Foo41'
+    $P0 = subclass 'Hash', 'Bar41'
+
+    $P1 = new 'Foo41'
+    $S1 = $P1
+    is( $S1, 'Hello world', 'get_string :vtable :method' )
+
+    $P1 = new 'Bar41'
+    $S1 = $P1
+    is( $S1, 'Hello world', 'get_string :method :vtable' )
+.end
+
+.namespace [ 'Foo41' ]
+
+.sub 'get_string' :vtable :method
+    .return('Hello world')
+.end
+
+.namespace [ 'Bar41' ]
+
+.sub 'get_string' :method :vtable
+    .return('Hello world')
+.end
+
+.namespace []   # revert to root for next test
+
+.sub super___init_called_twice
+    $P0 = newclass 'Foo42'
+    $P1 = subclass $P0, 'Bar42'
+    addattribute $P1, 'i'
+
+    $P2 = $P1.'new'()
+.end
+
+.namespace [ 'Foo42' ]
+
+.sub 'init' :vtable :method
+    $P0 = getattribute self, 'i'
+    isnull $I1, $P0
+    ok( $I1, 'should be null' )
+
+    $P1 = new ['Integer']
+    setattribute self, "i", $P1  # i won't be null if init called again
+    .return ()
+.end
+
+.namespace []   # revert to root for next test
+
+.sub using_class_object_from_typeof_op_with_new
+    $P0 = newclass [ "Monkey" ; "Banana" ]
+    $P0 = $P0.'new'()
+    $S0 = $P0."ook"()
+    is( $S0, "Ook!", 'obj created from .new() class method' )
+
+    $P2 = typeof $P0
+    $P3 = new $P2
+    $S0 = $P3."ook"()
+    is( $S0, "Ook!", 'obj created from "new" called on result of typeof' )
+.end
+
+.namespace [ "Monkey" ; "Banana" ]
+.sub ook :method
+    $S1 = "Ook!"
+    .return ($S1)
+.end
+
+.namespace []   # revert to root for next test
+
+.macro exception_is ( M )
+    .local pmc exception
+    .local string message
+    .get_results (exception)
+
+    message = exception['message']
+    is( message, .M, .M )
+.endm
+
+.sub setting_non_existent_attribute
+    newclass $P1, "Foo45"
+    new $P2, $P1
+
+    new $P3, ['Integer']
+    push_eh handler
+        setattribute $P2, "bar", $P3
+    pop_eh
+    ok(0, "'No such attribute' exception not thrown")
+    goto end
+handler:
+    .exception_is( "No such attribute 'bar'" )
+end:
+.end
+
+.sub setting_non_existent_attribute_by_name
+    newclass $P1, "Foo47"
+    new $P2, $P1
+
+    new $P3, ['Integer']
+    push_eh handler
+        setattribute $P2, ["Foo47"], "no_such", $P3
+    pop_eh
+    ok(0, "'No such attribute' exception not thrown")
+    goto end
+handler:
+    .exception_is( "No such attribute 'no_such' in class 'Foo47'" )
+end:
+.end
+
+.sub getting_null_attribute
+    newclass $P1, "Foo51"
+    addattribute $P1, "i"
+    new $P2, "Foo51"
+
+    getattribute $P3, $P2, "i"
+    isnull $I0, $P3
+    is($I0, 1, "null attribute is null")
+.end
+
+.sub getting_non_existent_attribute
+    newclass $P1, "Foo52"
+    $P2 = $P1.'new'()
+
+    push_eh handler
+        getattribute $P3, $P2, "bar"
+    pop_eh
+    ok(0, "'No such attribute' exception not thrown")
+    goto end
+handler:
+    .exception_is( "No such attribute 'bar'" )
+end:
+.end
+
+.sub addparent_exceptions_1
+    newclass $P0, "Astronomical Object 2"
+    new $P1, ['String']
+    set $P1, "Not a class"
+    push_eh handler
+        addparent $P0, $P1
+    pop_eh
+    ok(0, "'Parent isn\'t a Class' exception not thrown")
+    goto end
+handler:
+    .exception_is( "Parent isn't a Class." )
+end:
+.end
+
+.sub addparent_exceptions_2
+    new $P0, ['Hash']
+    newclass $P1, "Trashcan"
+    push_eh handler
+        addparent $P0, $P1
+    pop_eh
+    ok(0, "'Only classes can be subclassed' exception not thrown")
+    goto end
+handler:
+    .exception_is( "Only classes can be subclassed" )
+end:
+.end
+
+.sub subclassing_a_non_existent_class
+    push_eh handler
+        subclass $P1, "Character", "Nemo"
+    pop_eh
+    ok(0, "nonexistent class exception not thrown")
+    goto end
+handler:
+    .exception_is( "Class 'Character' doesn't exist" )
+end:
+.end
+
+.sub anon_subclass_of_non_existent_class
+    push_eh handler
+        subclass $P1, "Character"
+    pop_eh
+    ok(0, "nonexistent class exception not thrown")
+    goto end
+handler:
+    .exception_is( "Class 'Character' doesn't exist" )
+end:
+.end
+
+.sub addattribute_duplicate
+    newclass $P1, "Foo53"
+    addattribute $P1, "i"
+    addattribute $P1, "j"
+    push_eh handler
+        addattribute $P1, "i"
+    pop_eh
+    ok(0, "attribute already exists exception not thrown")
+    goto end
+handler:
+    .exception_is( "Attribute 'i' already exists in 'Foo53'." )
+end:
+.end
+
+.sub wrong_way_to_create_new_objects
+    push_eh handler
+        new $P0, ['Object']
+    pop_eh
+    ok(0, "object instantiation exception not thrown")
+    goto end
+handler:
+    .exception_is( "Object must be created by a class." )
+end:
+.end
+
+.sub attribute_values__subclassing_access_meths
+    newclass $P1, "Foo54"
+    # must add attributes before object instantiation
+    addattribute $P1, "i"
+    addattribute $P1, "j"
+    # define attrib access functions in Foo54 namespace
+    get_global $P5, "Foo54__set"
+    addmethod $P1, "Foo54__set", $P5
+    get_global $P5, "Foo54__get"
+    addmethod $P1, "Foo54__get", $P5
+
+    subclass $P2, $P1, "Bar54"
+    addattribute $P2, "k"
+    addattribute $P2, "l"
+    get_global $P5, "Bar54__set"
+    addmethod $P2, "Bar54__set", $P5
+    get_global $P5, "Bar54__get"
+    addmethod $P2, "Bar54__get", $P5
+
+    # instantiate a Bar54 object
+    new $P13, "Bar54"
+
+    # Foo54 and Bar54 have attribute accessor methods
+    new $P5, ['String']        # set attribute values
+    set $P5, "i"       # attribute slots have reference semantics
+    set_args "0,0", $P5, "i"
+    callmethodcc $P13, "Foo54__set"
+    get_results ""
+
+    new $P5, ['String']
+    set $P5, "j"
+    set_args "0,0", $P5, "j"
+    callmethodcc  $P13,"Foo54__set"
+    get_results ""
+
+    new $P5, ['String']
+    set $P5, "k"
+    set_args "0,0", $P5, "k"
+    callmethodcc  $P13,"Bar54__set"
+    get_results ""
+
+    new $P5, ['String']
+    set $P5, "l"
+    set_args "0,0", $P5, "l"
+    callmethodcc  $P13,"Bar54__set"
+    get_results ""
+
+    # now retrieve attributes
+    set_args "0",  "i"
+    callmethodcc  $P13,"Foo54__get"
+    get_results "0", $P5
+    is( $P5, "i", 'got attrib i from Bar54->Foo54__get' )
+
+    set_args "0",  "j"
+    callmethodcc  $P13,"Foo54__get"
+    get_results "0", $P5
+    is( $P5, "j", 'got attrib j from Bar54->Foo54__get' )
+
+    set_args "0",  "k"
+    callmethodcc  $P13,"Bar54__get"
+    get_results "0", $P5
+    is( $P5, "k", 'got attrib k from Bar54->Bar54__get' )
+
+    set_args "0",  "l"
+    callmethodcc  $P13,"Bar54__get"
+    get_results "0", $P5
+    is( $P5, "l", 'got attrib l from Bar54->Bar54__get' )
+.end
+
+# set(obj: Pvalue, Iattr_idx)
+.sub Foo54__set
+    get_params "0,0", $P5, $S4
+    ok( 1, "in Foo54__set" )
+    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
+    setattribute $P2, $S4, $P5
+    set_returns ""
+    returncc
+.end
+
+# Pattr = get(obj: Iattr_idx)
+.sub Foo54__get
+    get_params "0", $S4
+    ok( 1, "in Foo54__get" )
+    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
+    getattribute $P5, $P2, $S4
+    set_returns "0", $P5
+    returncc
+.end
+
+.sub Bar54__set
+    get_params "0,0", $P5, $S4
+    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
+    ok( 1, "in Bar54__set" )
+    setattribute $P2, $S4, $P5
+    set_returns ""
+    returncc
+.end
+
+.sub Bar54__get
+    get_params "0", $S4
+    ok( 1, "in Bar54__get" )
+    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
+    getattribute $P5, $P2, $S4
+    set_returns "0", $P5
+    returncc
+.end
+
+.sub attribute_values__inherited_access_meths
+    newclass $P1, "Foo56"
+    # must add attributes before object instantiation
+    addattribute $P1, "i"
+    addattribute $P1, "j"
+    # define attrib access functions
+    get_global $P5, "set"
+    addmethod $P1, "set", $P5
+    get_global $P5, "get"
+    addmethod $P1, "get", $P5
+
+    subclass $P2, $P1, "Bar56"
+    addattribute $P2, "k"
+    addattribute $P2, "l"
+    addattribute $P2, "m"
+
+    # subclass is preferred for the SI case over
+    #   newclass $P2, "Bar56"
+    #   addattrib ...
+    #   addparent $P2, $P1
+    # which is suitable for adding multiple parents to one class
+
+    # instantiate a Bar56 object
+    new $P2, "Bar56"
+
+    # Foo56 and Bar56 have attribute accessor methods
+    new $P5, ['String']        # set attribute values
+    set $P5, "i"       # attribute slots have reference semantics
+    set_args "0,0,0", $P5, "Foo56", "i"
+    callmethodcc $P2, "set"
+
+    new $P5, ['String']
+    set $P5, "j"
+    set_args "0,0,0", $P5, "Foo56", "j"
+    callmethodcc $P2, "set"
+
+    new $P5, ['String']
+    set $P5, "k"
+    set_args "0,0,0", $P5, "Bar56", "k"
+    callmethodcc $P2, "set"
+
+    new $P5, ['String']
+    set $P5, "l"
+    set_args "0,0,0", $P5, "Bar56", "l"
+    callmethodcc $P2, "set"
+
+    new $P5, ['String']
+    set $P5, "m"
+    set_args "0,0,0", $P5, "Bar56", "m"
+    callmethodcc $P2, "set"
+
+    # now retrieve attributes
+    set_args "0,0", "Foo56", "i"
+    callmethodcc $P2, "get"
+    get_results "0", $P5
+    is( $P5, 'i', 'got attrib i from subclass through parent method' )
+
+    set_args "0,0", "Foo56", "j"
+    callmethodcc $P2, "get"
+    get_results "0", $P5
+    is( $P5, "j", 'got attrib i from subclass through parent method' )
+
+    set_args "0,0", "Bar56", "k"
+    callmethodcc $P2, "get"
+    get_results "0", $P5
+    is( $P5, "k", 'got attrib i from subclass through parent method' )
+
+    set_args "0,0", "Bar56", "l"
+    callmethodcc $P2, "get"
+    get_results "0", $P5
+    is( $P5, "l", 'got attrib i from subclass through parent method' )
+
+    set_args "0,0", "Bar56", "m"
+    callmethodcc $P2, "get"
+    get_results "0", $P5
+    is( $P5, "m", 'got attrib i from subclass through parent method' )
+.end
+
+# Foo56 provides accessor functions which Bar56 inherits
+# they take an additional classname argument SClass
+
+# set(obj: Pvalue, SClass, Sattr)
+.sub set
+    get_params "0,0,0", $P5, $S4, $S5
+    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
+    setattribute $P2, $S5, $P5
+    set_returns ""
+    returncc
+.end
+
+# Pattr = get(obj: SClass, Sattr)
+.sub get
+    get_params "0,0", $S4, $S5
+    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
+    getattribute $P5, $P2, $S5
+    set_returns "0", $P5
+    returncc
+.end
+
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/dynop_mapping/t/oo/vtableoverride.t
==============================================================================
--- branches/dynop_mapping/t/oo/vtableoverride.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/oo/vtableoverride.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -120,7 +120,7 @@
     $P1 = new $P0
     $P2 = $P1[0]
     $I0 = isnull $P2
-    ok($I0, "Override get_pmc_keyed_int without .return")
+    ok($I0, "Override get_pmc_keyed_int without .return - TT #1593")
 .end
 
 .namespace [ 'MyObject' ]

Modified: branches/dynop_mapping/t/op/annotate-old.t
==============================================================================
--- branches/dynop_mapping/t/op/annotate-old.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/op/annotate-old.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 #!perl
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 
 use strict;
@@ -23,10 +23,6 @@
 
 =cut
 
-TODO: {
-    local $TODO = q|fails in fast runcore - TT #1135|
-        if ($ENV{TEST_PROG_ARGS} || '') =~ /--runcore=fast/;
-
 pir_error_output_like( <<CODE, <<OUTPUT, 'unhandled exception from loaded function');
 .sub main :main
     # Not using test more, just a quick way to pick a function
@@ -40,7 +36,6 @@
 /\(foobar:42\)/
 OUTPUT
 
-}
 
 # Local Variables:
 #   mode: cperl

Modified: branches/dynop_mapping/t/op/sprintf2.t
==============================================================================
--- branches/dynop_mapping/t/op/sprintf2.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/op/sprintf2.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -12,7 +12,7 @@
 
 =head1 DESCRIPTION
 
-Executes sprintf tests that were generated by tools/dev/sprintf2.pl
+Executes sprintf tests.
 
 =cut
 

Modified: branches/dynop_mapping/t/pir/macro.t
==============================================================================
--- branches/dynop_mapping/t/pir/macro.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pir/macro.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -21,14 +21,13 @@
 .endm
 
 .macro bar(x)
-    ok(x, 'basic macro with argument')
+    ok(.x, 'basic macro with argument')
 .endm
 
 .macro_const PI_APPROX 4
 
 .sub main :main
     .include 'test_more.pir'
-    .local int x
     plan(3)
     .foo()
     .bar(42)

Copied: branches/dynop_mapping/t/pir/timer_exit.t (from r47980, trunk/t/pir/timer_exit.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/t/pir/timer_exit.t	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/t/pir/timer_exit.t)
@@ -0,0 +1,36 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+.include 'timer.pasm'
+
+.sub main :main
+   say "1..1"
+
+   $P0 = new 'FixedPMCArray', 8
+   $P0[0] = .PARROT_TIMER_NSEC
+   $P0[1] = 0.1
+   $P0[2] = .PARROT_TIMER_HANDLER
+   $P1 = get_global 'got_timer'
+   $P0[3] = $P1
+   $P0[4] = .PARROT_TIMER_REPEAT
+   $P0[5] = 0
+   $P0[6] = .PARROT_TIMER_RUNNING
+   $P0[7] = 1
+
+   $P2 = new 'Timer', $P0
+   sleep 1
+   say "not ok 3"
+.end
+
+.sub got_timer
+   say "ok 1"
+   exit 0
+   say "not ok 2"
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/dynop_mapping/t/pmc/arrayiterator.t
==============================================================================
--- branches/dynop_mapping/t/pmc/arrayiterator.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/arrayiterator.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -19,15 +19,17 @@
 .namespace []
 
 .include 'iterator.pasm'
+.include 'except_types.pasm'
 
 .sub main :main
     .include 'test_more.pir'
 
-    plan(21)
+    plan(28)
 
     iterate_forward() # 8 tests
     iterate_backward() # 6 tests
     iterate_backward_string() # 6 test
+    iterate_wrong() # 1 test
     iterator_init() # 1 test
 .end
 
@@ -50,17 +52,62 @@
     $P0 = shift it
     ok(it, "Can shift 1st element")
     is($P0, 1, "With expected value")
+
+    $P1 = new ['Integer'], 0
+    $I0 = exists it[$P1]
+    is($I0, 1, "exists_keyed gives expected value")
+
+    $I0 = defined it[$P1]
+    is($I0, 1, "defined_keyed gives expected value")
+
+    $P2 = it[$P1]
+    is($P2, 42, "get_pmc_keyed gives expected value")
+
+    $I0 = it[$P1]
+    is($I0, 42, "get_integer_keyed gives expected value")
+
+    $N0 = it[$P1]
+    is($N0, 42.0, "get_number_keyed gives expected value")
+
+    $S0 = it[$P1]
+    is($S0, '42', "get_string_keyed gives expected value")
+
     $P0 = shift it
     nok(it, "Iterator is finished after second shift")
     is($P0, 42, "2nd element has correct value")
 
-    $I0 = 1
-    push_eh fail
+    .local int result
+    .local pmc ehandler
+    result = 0
+    ehandler = new ['ExceptionHandler']
+    ehandler.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+    push_eh ehandler
+
+    set_addr ehandler, handlep
     $P0 = shift it
-    $I0 = 0
+    goto fail
+handlep:
+    finalize ehandler
+    set_addr ehandler, handlei
+    $I0 = shift it
+    goto fail
+handlei:
+    finalize ehandler
+    set_addr ehandler, handlen
+    $N0 = shift it
+    goto fail
+handlen:
+    finalize ehandler
+    set_addr ehandler, handles
+    $S0 = shift it
+    goto fail
+handles:
+    finalize ehandler
+
+    result = 1
   fail:
     pop_eh
-    ok($I0, "Shifting from finished iterator throws exception")
+    ok(result, "Shifting from finished iterator throws out of bounds exception")
 
 .end
 
@@ -81,13 +128,39 @@
     nok(it, "Iterator is finished after second shift")
     is($P0, 1, "2nd element has correct value")
 
-    $I0 = 1
-    push_eh fail
-    $P0 = shift it
-    $I0 = 0
+    .local int result
+    .local pmc ehandler
+    result = 0
+    ehandler = new ['ExceptionHandler']
+    ehandler.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+    push_eh ehandler
+
+    set_addr ehandler, handlep
+    $P0 = pop it
+    goto fail
+handlep:
+    finalize ehandler
+    set_addr ehandler, handlei
+    $I0 = pop it
+    goto fail
+handlei:
+    finalize ehandler
+    set_addr ehandler, handlen
+    $N0 = pop it
+    goto fail
+handlen:
+    finalize ehandler
+    set_addr ehandler, handles
+    $S0 = pop it
+    goto fail
+handles:
+    finalize ehandler
+
+    result = 1
   fail:
     pop_eh
-    ok($I0, "Shifting from finished iterator throws exception")
+    ok(result, "pop from finished iterator throws out of bounds exception")
+
 .end
 
 .sub 'iterate_backward_string'
@@ -116,6 +189,26 @@
     ok($I0, "Shifting from finished iterator throws exception - string")
 .end
 
+.sub 'iterate_wrong'
+    .local pmc foo, it, ex
+    .local int r
+
+    foo = new ['FixedIntegerArray'], 1
+
+    it = iter foo
+    push_eh catch_wrong
+    it = 42 # Let's hope we'll never have such direction
+    r = 0
+    goto dotest
+catch_wrong:
+    .get_results(ex)
+    finalize ex
+    r = 1
+dotest:
+    pop_eh
+    ok(r, "Caught wrong direction")
+.end
+
 .sub 'iterator_init'
     .local pmc it, e
     .local string msg

Modified: branches/dynop_mapping/t/pmc/bytebuffer.t
==============================================================================
--- branches/dynop_mapping/t/pmc/bytebuffer.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/bytebuffer.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -16,15 +16,44 @@
 
 =cut
 
+.include 'iglobals.pasm'
+.include 'iterator.pasm'
+.include 'except_types.pasm'
+
 .sub 'main' :main
     .include 'test_more.pir'
-    plan(12)
+    plan(37)
 
     test_init()
     test_set_string()
     test_set_byte()
+    test_get_string()
+    test_push()
+    test_resize()
+    test_alloc()
+    test_iterate()
+    test_invalid()
 .end
 
+################################################################
+# Helper subs
+
+.sub hasicu
+    $P0 = getinterp
+    $P1 = $P0[.IGLOBALS_CONFIG_HASH]
+    $I0 = $P1['has_icu']
+    .return($I0)
+.end
+
+.sub isbigendian
+    $P0 = getinterp
+    $P1 = $P0[.IGLOBALS_CONFIG_HASH]
+    $I0 = $P1['bigendian']
+    .return($I0)
+.end
+
+################################################################
+
 .sub test_init
     .local pmc bb
     .local int n
@@ -45,6 +74,10 @@
     bb = new ['ByteBuffer']
     s = 'Hi'
     bb = s
+
+    # Exercise mark vtable
+    sweep 1
+
     n = elements bb
     is(n, 2, "size is the same as the source string bytelength")
     n = bb[0]
@@ -83,6 +116,273 @@
     is(n, 43, "setting a byte resize buffer with initial size")
     n = bb[41]
     is(n, 9, "resized buffer preserve old value")
+
+    push_eh catch
+    bb[-1] = 0
+    ok(0, "setting a byte with negative index should throw")
+    goto end
+catch:
+    pop_eh
+    ok(1, "setting a byte with negative index throws")
+end:
+.end
+
+.sub test_get_string
+    .local pmc bb
+    .local string s
+    .local int n
+    .local int big
+
+    bb = new ['ByteBuffer']
+    bb = binary:"abcd"
+    s = bb.'get_string'('ascii', 'fixed_8')
+    n = length s
+    is(n, 4, "getting ascii from buffer gives correct length")
+    is(s, "abcd", "getting ascii from buffer gives correct content")
+
+    $I0 = hasicu()
+    unless $I0 goto skip_it
+
+    bb = new ['ByteBuffer']
+
+    # Upper case n tilde: codepoint 0xD1, utf8 encoding 0xC3, 0x91
+    #bb = utf16:unicode:"\x{D1}"
+    # Can't do that, or the program can't be compiled without ICU.
+    # Fill the buffer with bytes instead.
+
+    # Get endianess to set the bytes in the appropiate order.
+    # *** XXX *** Need report from big endian platforms.
+    big = isbigendian()
+    if big goto isbig
+    bb[0] = 0xD1
+    bb[1] = 0x00
+    goto doit
+isbig:
+    bb[0] = 0x00
+    bb[1] = 0xD1
+doit:
+    s = bb.'get_string'('unicode', 'utf16')
+    n = length s
+    is(n, 1, "getting utf16 from buffer gives correct length")
+    n = ord s
+    is(n, 0xD1, "getting utf16 from buffer gives correct codepoint")
+    bb = new ['ByteBuffer']
+    bb[0] = 0xC3
+    bb[1] = 0x91
+    s = bb.'get_string_as'(utf8:unicode:"")
+    n = length s
+    is(n, 1, "getting utf8 from buffer gives correct length")
+    n = ord s
+    is(n, 0xD1, "getting utf8 from buffer gives correct codepoint")
+    goto end
+skip_it:
+    skip(4, "this test needs ICU")
+end:
+.end
+
+.sub test_push
+    .local pmc bb
+    .local int c, n, m
+    bb = new ['ByteBuffer']
+    bb = 'hell'
+    n = elements bb
+    inc n
+    c = ord 'o'
+    push bb, c
+    m = elements bb
+    is(n, m, "push increments size")
+    .local string s
+    s = bb.'get_string_as'(ascii:"")
+    is(s, 'hello', "push gives expected string result")
+.end
+
+.sub test_resize
+    .local pmc bb
+    .local int n
+    .local string s
+    bb = new ['ByteBuffer']
+
+    bb = 723
+    n = elements bb
+    is(n, 723, 'resize from empty')
+
+    bb = 42
+    n = elements bb
+    is(n, 42, 'reduce size')
+
+    bb = 999
+    n = elements bb
+    is(n, 999, 'increase size')
+
+    bb = 0
+    n = elements bb
+    is(n, 0, 'resize to 0')
+
+    bb = 'foobar'
+    bb = 3
+    n = elements bb
+    is(n, 3, 'reduce size from string content')
+
+    s = bb.'get_string_as'(ascii:"")
+    is(s, 'foo', 'resized string content has correct value')
+
+    bb = 'foobar'
+    bb = 7
+    n = elements bb
+    is(n, 7, 'increase size from string content')
+
+    # This test is for code coverage, zero filling is not a feature
+    # you should expect, it can be changed for performance reasons.
+    s = bb.'get_string_as'(binary:"")
+    is(s, binary:"foobar\x{0}", 'resized from string content is zero filled')
+
+    bb = 'barfoo'
+    bb = 0
+    n = elements bb
+    is(n, 0, 'resize to zero from string content')
+
+    bb = 42
+    bb = 0
+    n = elements bb
+    is(n, 0, 'resize to zero from allocated content')
+
+    .local pmc eh
+    eh = new ['ExceptionHandler']
+    eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+    set_addr eh, catch_negative
+    n = 1
+    push_eh eh
+    bb = -1
+    n = 0
+    goto test_negative
+catch_negative:
+    finalize eh
+test_negative:
+    pop_eh
+    ok(n, 'negative size throws')
+.end
+
+.sub test_alloc
+    # Exercise buffer reallocation building a utf16 string with the
+    # codepoints 32-8192
+    .local pmc bb
+    .local int i, big, pos, b0, b1, c
+
+    $I0 = hasicu()
+    unless $I0 goto skip_it
+
+    # Get endianess to set the bytes in the appropiate order.
+    # *** XXX *** Need report from big endian platforms.
+    big = isbigendian()
+
+    bb = new ['ByteBuffer']
+    pos = 0
+    i = 32
+loopset:
+    b0 = div i, 256
+    b1 = mod i, 256
+    if big goto setbig
+    bb[pos] = b1
+    inc pos
+    bb[pos] = b0
+    inc pos
+    goto setdone
+setbig:
+    bb[pos] = b0
+    inc pos
+    bb[pos] = b1
+    inc pos
+setdone:
+    inc i
+    if i < 8192 goto loopset
+
+    .local string s
+    s = bb.'get_string'('unicode', 'utf16')
+
+    # Check string size
+    i = length s
+    if i != 8160 goto failed
+
+    # Check string content
+    i = 32
+    pos = 0
+loopcheck:
+    c = ord s, pos
+    if c != i goto failed
+    inc pos
+    inc i
+    if i < 8192 goto loopcheck
+    ok(1, "reallocation")
+    goto end
+failed:
+    say i
+    ok(0, "reallocation")
+    goto end
+skip_it:
+    skip(1, "this test needs ICU")
+end:
+.end
+
+.sub test_iterate
+    .local pmc bb, it, arr
+    .local string s
+    s = 'abcd'
+    bb = new ['ByteBuffer']
+    bb = s
+    it = iter bb
+    it = .ITERATE_FROM_START
+    arr = new ['ResizableStringArray']
+loop:
+    unless it goto donearray
+    $I0 = shift it
+    $S0 = chr $I0
+    push arr, $S0
+    goto loop
+donearray:
+    .local string r
+    r = join '', arr
+    is(r, s, 'iterate buffer content')
+.end
+
+.sub test_invalid
+    .local pmc bb, ex
+    .local string s
+    bb = new ['ByteBuffer']
+    bb = 'something'
+    push_eh catch_charset
+    s = bb.'get_string'('***INVALID cHARsET%%%%', 'fixed_8')
+    pop_eh
+    ok(0, "get_string with invalid charset should throw")
+    goto check_encoding
+catch_charset:
+    .get_results(ex)
+    finalize ex
+    pop_eh
+    ok(1, "get_string with invalid charset throws")
+check_encoding:
+    push_eh catch_encoding
+    s = bb.'get_string'('ascii', '???INVALID eNCODING===')
+    pop_eh
+    ok(0, "get_string with invalid encoding should throw")
+    goto check_content
+catch_encoding:
+    .get_results(ex)
+    finalize ex
+    pop_eh
+    ok(1, "get_string with invalid encoding throws")
+check_content:
+    bb[0] = 128 # Out of ascii range
+    push_eh catch_content
+    s = bb.'get_string'('ascii', 'fixed_8')
+    pop_eh
+    ok(0, "get_string with invalid content should throw")
+    goto end
+catch_content:
+    .get_results(ex)
+    finalize ex
+    pop_eh
+    ok(1, "get_string with invalid content throws")
+end:
 .end
 
 # Local Variables:

Modified: branches/dynop_mapping/t/pmc/eval.t
==============================================================================
--- branches/dynop_mapping/t/pmc/eval.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/eval.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -46,11 +46,15 @@
     compreg P1, "PASM"
     set_args "0", S5
     invokecc P1
+    get_results "0", P2
+    elements I0, P2
+    say I0
     get_global P0, "_foo"
     invokecc P0
     print "back\n"
     end
 CODE
+1
 foo
 back
 OUTPUT

Modified: branches/dynop_mapping/t/pmc/exception.t
==============================================================================
--- branches/dynop_mapping/t/pmc/exception.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/exception.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -18,7 +18,7 @@
 
 .sub main :main
     .include 'test_more.pir'
-    plan( 19 )
+    plan(20)
     test_bool()
     test_int()
     test_attrs()
@@ -30,66 +30,12 @@
     test_throw_obj()
 .end
 
-.sub test_throw_obj
-    new $P20, ['ExceptionHandler']
-    set_addr $P20, _handler
-    push_eh $P20
-    new $P30, ['Exception']
-    throw $P30
-    say "not reached"
-_handler:
-    ok(1,'caught exception object thrown')
-.end
-
-.sub test_die
-    push_eh handler
-    die 3, 100
-    say "not reached"
-    .return()
-  handler:
-    ok(1,'die works')
-.end
-
-.sub test_push_pop_eh
-    push_eh handler
-    ok(1,'push_eh works')
-
-    pop_eh
-    ok(1,'pop_eh works')
-    .return()
-
-  handler:
-    say "i am the decider"
-.end
-
-.sub test_push_eh_throw
-    push_eh handler
-    $P0 = new ['Exception']
-    throw $P0
-    ok(0,'throw does not throw')
-
-  handler:
-    ok(1,'throw can throw')
-.end
-
-.sub test_push_pop_eh_long
-    $P0 = new ['ExceptionHandler']
-    set_addr $P0, handler
-    push_eh $P0
-    ok(1,'push_eh works (long)')
-
-    pop_eh
-    ok(1,'pop_eh works (long)')
-    .return()
-
-  handler:
-    say "i am the decider"
-.end
-
 .sub test_bool
     $P0 = new 'ExceptionHandler'
     set_addr $P0, _handler
-    ok($P0,'ExceptionHandler objects return true')
+    ok($P0,'ExceptionHandler object return true')
+    $P1 = new 'Exception'
+    ok($P1,'Exception object return true')
     .return()
   _handler:
     say "howdy bool!"
@@ -155,20 +101,76 @@
     .get_results($P0)
 
     $P16 = getattribute $P0, 'message'
-    is($P16, "just pining")
+    is($P16, "just pining", 'got message')
 
     $P17 = getattribute $P0, 'severity'
-    is($P17, 5)
+    is($P17, 5, 'got severity')
 
     $P18 = getattribute $P0, 'payload'
-    is($P18, "additional payload")
+    is($P18, "additional payload", 'got payload')
 
     $P19 = getattribute $P0, 'backtrace'
     $P20 = $P19[0]
-    is($P20, "backtrace line 1")
+    is($P20, "backtrace line 1", 'got backtrace data')
 
     $P20 = $P19[1]
-    is($P20, "backtrace line 2")
+    is($P20, "backtrace line 2", 'more backtrace data')
+.end
+
+.sub test_push_pop_eh
+    push_eh handler
+    ok(1,'push_eh works')
+
+    pop_eh
+    ok(1,'pop_eh works')
+    .return()
+
+  handler:
+    say "i am the decider"
+.end
+
+.sub test_push_eh_throw
+    push_eh handler
+    $P0 = new ['Exception']
+    throw $P0
+    ok(0,'throw does not throw')
+
+  handler:
+    ok(1,'throw can throw')
+.end
+
+.sub test_push_pop_eh_long
+    $P0 = new ['ExceptionHandler']
+    set_addr $P0, handler
+    push_eh $P0
+    ok(1,'push_eh works (long)')
+
+    pop_eh
+    ok(1,'pop_eh works (long)')
+    .return()
+
+  handler:
+    say "i am the decider"
+.end
+
+.sub test_die
+    push_eh handler
+    die 3, 100
+    say "not reached"
+    .return()
+  handler:
+    ok(1,'die works')
+.end
+
+.sub test_throw_obj
+    new $P20, ['ExceptionHandler']
+    set_addr $P20, _handler
+    push_eh $P20
+    new $P30, ['Exception']
+    throw $P30
+    say "not reached"
+_handler:
+    ok(1,'caught exception object thrown')
 .end
 
 # Local Variables:

Modified: branches/dynop_mapping/t/pmc/exceptionhandler.t
==============================================================================
--- branches/dynop_mapping/t/pmc/exceptionhandler.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/exceptionhandler.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -23,7 +23,7 @@
     .include 'test_more.pir'
 
     # If test exited with "bad plan" MyHandlerCan.can_handle wasn't invoked.
-    plan(9)
+    plan(11)
 
     .local pmc eh
     eh = new ['ExceptionHandler']
@@ -90,6 +90,8 @@
     pop_eh
     pop_eh
 
+    test_handle_types_except()
+
     goto subclass_handler
 
   typed_handler_one:
@@ -218,6 +220,54 @@
     .return(1)
 .end
 
+.namespace [ ]
+
+.sub 'test_handle_types_except'
+    .local pmc badeh, eh, ex
+    .local int i
+    .const int TYPEUSED = .EXCEPTION_UNEXPECTED_NULL
+    .const int TYPEOTHER = .EXCEPTION_SYNTAX_ERROR
+
+    i = 0
+    eh = new ['ExceptionHandler']
+    badeh = new ['ExceptionHandler']
+    eh.'handle_types_except'(TYPEUSED)
+    set_addr eh, catch
+    set_addr badeh, badcatch
+    push_eh badeh
+    push_eh eh
+    ex = new ['Exception']
+    ex['type'] = TYPEOTHER
+    throw ex
+    goto report1
+  badcatch:
+    finalize eh
+    goto report1
+  catch:
+    finalize eh
+    i = 1
+  report1:
+    ok(i, 'type not in except is list is caught')
+
+    i = 0
+    set_addr badeh, catchall
+    set_addr eh, dontcatch
+    ex = new ['Exception']
+    ex['type'] = TYPEUSED
+    throw ex
+    goto report2
+  catchall:
+    finalize eh
+    i = 1
+    goto report2
+  dontcatch:
+    finalize eh
+  report2:
+    pop_eh
+    pop_eh
+    ok(i, 'type in except is list is not caught')
+.end
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/dynop_mapping/t/pmc/exporter.t
==============================================================================
--- branches/dynop_mapping/t/pmc/exporter.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/exporter.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 #!perl
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
 use strict;
@@ -28,6 +28,10 @@
     $P0 = new ['Exporter']
     say "ok 1 - $P0 = new ['Exporter']"
 
+    # Most uses of export are short-lived, so use a explicit sweep
+    # here to ensure coverage of the mark vtable.
+    sweep 1
+
     $I0 = isa $P0, 'Exporter'
     if $I0 goto ok_2
     print 'not '

Modified: branches/dynop_mapping/t/pmc/filehandle.t
==============================================================================
--- branches/dynop_mapping/t/pmc/filehandle.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/filehandle.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -7,7 +7,7 @@
 use lib qw( . lib ../lib ../../lib );
 
 use Test::More;
-use Parrot::Test tests => 20;
+use Parrot::Test tests => 23;
 use Parrot::Test::Util 'create_tempfile';
 use Parrot::Test::Util 'create_tempfile';
 
@@ -40,6 +40,7 @@
 # L<PDD22/I\/O PMC API/=item open.*=item close>
 pir_output_is( <<"CODE", <<'OUT', 'open and close - synchronous' );
 .sub 'test' :main
+    .local int i
     \$P1 = new ['FileHandle']
     \$P1.'open'('README')
     say 'ok 1 - \$P1.open(\$S1)'
@@ -73,6 +74,14 @@
     \$P7.'open'('$temp_file', 'w')
     say 'ok 7 - \$P7.open(\$S1, \$S2) # new file, write mode succeeds'
 
+    i = \$P7.'is_closed'()
+    print 'is_closed: '
+    say i
+    \$P7.'close'()
+    i = \$P7.'is_closed'()
+    print 'is_closed after close: '
+    say i
+
     goto end
 
   eh_bad_file_1:
@@ -93,6 +102,66 @@
 ok 5 - $P5.open($S1)      # with bad file
 ok 6 - $P6.open($S1, $S2) # with bad file
 ok 7 - $P7.open($S1, $S2) # new file, write mode succeeds
+is_closed: 0
+is_closed after close: 1
+OUT
+
+pir_output_is( <<'CODE', <<'OUT', 'wrong open' );
+.include 'except_types.pasm'
+
+.sub main :main
+    .local pmc fh, eh
+    .local int i
+    i = 1
+    eh = new['ExceptionHandler']
+    eh = .EXCEPTION_PIO_ERROR
+    set_addr eh, catchnoname
+    push_eh eh
+    fh = new['FileHandle']
+    # Open without filename
+    fh.'open'()
+    i = 0
+    goto reportnoname
+  catchnoname:
+    finalize eh
+  reportnoname:
+    say i
+
+    i = 0
+    set_addr eh, catchreopen
+    fh.'open'('README')
+    i = 1
+    # Open already opened
+    fh.'open'('README')
+    i = 0
+    goto reportreopen
+  catchreopen:
+    finalize eh
+  reportreopen:
+    say i
+    pop_eh
+.end
+CODE
+1
+1
+OUT
+
+pir_output_is( <<'CODE', <<'OUT', 'isatty' );
+.sub 'test' :main
+    .local pmc fh
+    .local int i
+    fh = new ['FileHandle']
+    i = fh.'isatty'()
+    print i
+    say ' unopened FileHandle is not a tty'
+    fh.'open'('README')
+    i = fh.'isatty'()
+    print i
+    say ' regular file is not a tty'
+.end
+CODE
+0 unopened FileHandle is not a tty
+0 regular file is not a tty
 OUT
 
 SKIP: {
@@ -566,6 +635,39 @@
 ok
 OUTPUT
 
+pir_output_is( <<'CODE', <<'OUTPUT', "readall - failure conditions" );
+.include 'except_types.pasm'
+.sub main :main
+    .local pmc fh, eh
+    fh = new ['FileHandle']
+    eh = new ['ExceptionHandler']
+    eh.'handle_types'(.EXCEPTION_PIO_ERROR)
+    set_addr eh, catch1
+    push_eh eh
+    # Using unopened FileHandle
+    fh.'readall'()
+    say 'should never happen'
+    goto test2
+  catch1:
+    finalize eh
+    say 'caught unopened'
+  test2:
+    set_addr eh, catch2
+    fh.'open'('README')
+    # Using opened FileHandle with the filepath option
+    fh.'readall'('README')
+    say 'should never happen'
+    goto end
+  catch2:
+    finalize eh
+    say 'caught reopen'
+  end:
+.end
+CODE
+caught unopened
+caught reopen
+OUTPUT
+
 pir_output_is( <<"CODE", <<"OUTPUT", "readall() - utf8 on closed filehandle" );
 .sub 'main'
     .local pmc ifh

Modified: branches/dynop_mapping/t/pmc/fixedintegerarray.t
==============================================================================
--- branches/dynop_mapping/t/pmc/fixedintegerarray.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/fixedintegerarray.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -19,7 +19,7 @@
 
 .sub 'main' :main
     .include 'test_more.pir'
-    plan(35)
+    plan(36)
 
     test_set_size()
     test_reset_size()
@@ -32,6 +32,7 @@
     test_get_iter()
     test_equality()
     test_repr()
+    test_sort()
     test_new_style_init()
     test_invalid_init_tt1509()
 .end
@@ -271,6 +272,23 @@
     is($I0, 10, "New style init creates the correct # of elements")
 .end
 
+.sub 'test_sort'
+    .local pmc a1, a2
+    a1 = new ['FixedIntegerArray'], 3
+    a1[0] = 7
+    a1[1] = 1
+    a1[2] = 5
+
+    a2 = new ['FixedIntegerArray'], 3
+    a2[0] = 1
+    a2[1] = 5
+    a2[2] = 7
+
+    a1.'sort'()
+    $I0 = iseq a1, a2
+    is($I0, 1, 'default sort')
+.end
+
 .sub test_invalid_init_tt1509
     throws_substring(<<'CODE', 'FixedIntegerArray: Cannot set array size to a negative number (-10)', 'New style init does not dump core for negative array lengths')
     .sub main
@@ -285,6 +303,8 @@
 CODE
 .end
 
+
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/dynop_mapping/t/pmc/float.t
==============================================================================
--- branches/dynop_mapping/t/pmc/float.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/float.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 #!./parrot
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -16,7 +16,7 @@
 
 =cut
 
-.const int TESTS = 159
+.const int TESTS = 162
 .const num PRECISION = 0.000001
 
 .sub 'test' :main
@@ -89,32 +89,47 @@
 .include 'fp_equality.pasm'
 
 .sub 'basic_assignment'
-    $P0 = new ['Float']
+    # Assignments can morph to other PMC type,
+    # use a new Float for each test to be sure we are testing
+    # the intended code.
 
+    $P0 = new ['Float']
     $P0 = 0.001
     is($P0, 0.001, 'basic float assignment 1', PRECISION)
 
+    $P0 = new ['Float']
     $P0 = 12.5
     is($P0, 12.5, 'basic assignment 2', PRECISION)
 
+    $P0 = new ['Float']
     $P0 = 1000
     is($P0, 1000.0, 'basic integer assignment', PRECISION)
 
+    $P0 = new ['Float']
     $P0 = 'Twelve point five'
     is($P0, 0.0, 'basic string assignment', PRECISION)
 
+    $P0 = new ['Float']
     $P0 = 123.45
     $I0 = $P0
     is($I0, 123, 'rounding to integer')
 
+    $P0 = new ['Float']
     $P0 = 123.45
     $N0 = $P0
     is($N0, 123.45, 'get_float_value', PRECISION)
 
+    $P0 = new ['Float']
     $P0 = 123.45
     $S0 = $P0
     is($S0, '123.45', 'get string')
 
+    $P0 = new ['Float']
+    $P0 = 123.45
+    $S0 = get_repr $P0
+    is($S0, '123.45', 'get_repr')
+
+    $P0 = new ['Float']
     $P0 = "12.49"
     is($P0, 12.49, 'setting value from String', PRECISION)
 .end
@@ -436,6 +451,11 @@
     $P0 = -5.0
     abs $P0
     is($P0, 5.0, 'abs of -5.0', PRECISION)
+
+    $P0 = -6.0
+    $P1 = abs $P0
+    is($P1, 6.0, 'abs two operands from -6.0', PRECISION)
+    is($P0, -6.0, 'abs two operands source unchanged', PRECISION)
 .end
 
 .sub 'lt'

Modified: branches/dynop_mapping/t/pmc/handle.t
==============================================================================
--- branches/dynop_mapping/t/pmc/handle.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/handle.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -20,7 +20,7 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(2)
+    plan(3)
     'test_create'()
     'test_does_tt_1473'()
 .end
@@ -35,6 +35,17 @@
     ok(1, "Cannot instantiate an abstract type")
     pop_eh
   create_end:
+
+    $P1 = new ['String']
+    push_eh cant_instantiate_arg
+    $P0 = new ['Handle'], $P1
+    ok(0, "Can instantiate an abstract type with arg")
+    pop_eh
+    goto create_end_arg
+  cant_instantiate_arg:
+    ok(1, "Cannot instantiate an abstract type with arg")
+    pop_eh
+  create_end_arg:
 .end
 
 .sub 'test_does_tt_1473'

Modified: branches/dynop_mapping/t/pmc/hash.t
==============================================================================
--- branches/dynop_mapping/t/pmc/hash.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/hash.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -18,15 +18,18 @@
 
 =cut
 
+.include 'except_types.pasm'
+.include 'datatypes.pasm'
+.include 'hash_key_type.pasm'
+
 .sub main :main
     .include 'test_more.pir'
-    .include 'except_types.pasm'
-    .include 'datatypes.pasm'
 
-    plan(168)
+    plan(172)
 
     initial_hash_tests()
     more_than_one_hash()
+    hash_key_type()
     null_key()
     hash_keys_with_nulls_in_them()
     nearly_the_same_hash_keys()
@@ -125,6 +128,34 @@
     is( $I1, 2, 'two hashes: lookup Int from hash via Str in second' )
 .end
 
+.sub hash_key_type
+    .local pmc h
+    .local int i
+    h = new ['Hash']
+    h = .Hash_key_type_int
+    h['01'] = 42
+    i = h[1]
+    is(i, 42, 'key type int')
+
+    # Use the method here to check it at the same time.
+    h.'set_key_type'(.Hash_key_type_STRING)
+    h[1] = 42
+    i = h['01']
+    isnt(i, 42, 'key type STRING')
+    i = h.'get_key_type'()
+    is(i, .Hash_key_type_STRING, 'method get_key_type return type STRING')
+
+    push_eh invalid_type
+    h = -973 # Let's hope it will never become a valid type
+    pop_eh
+    ok(0, "Setting invalid type should throw")
+    goto end
+invalid_type:
+    pop_eh
+    ok(1, 'Setting invalid type throws')
+end:
+.end
+
 .sub null_key
     new $P0, ['Hash']
     $P0['yum'] = 5

Modified: branches/dynop_mapping/t/pmc/hashiterator.t
==============================================================================
--- branches/dynop_mapping/t/pmc/hashiterator.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/hashiterator.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -18,16 +18,17 @@
 
 =cut
 
+.include 'except_types.pasm'
+
 .sub main :main
     .include 'test_more.pir'
-    .include 'except_types.pasm'
 
-    plan(6)
+    plan(8)
 
     iter_over_empty_hash()
     iter_over_single_element()
     iter_over_single_element_with_checks()
-
+    iter_invalid_type()
 .end
 
 .sub 'iter_over_empty_hash'
@@ -36,6 +37,21 @@
     it   = new 'HashIterator', hash
     $I0  = isfalse it
     ok($I0, "Iterator for empty Hash is empty")
+    .local pmc eh
+    .local int i
+    i = 1
+    eh = new 'ExceptionHandler'
+    eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+    set_addr eh, catch
+    push_eh catch
+    $P0 = shift it
+    i = 0
+    goto report
+  catch:
+    finalize eh
+  report:
+    pop_eh
+    ok(i, 'shift for empty hash throws')
 .end
 
 .sub 'iter_over_single_element'
@@ -67,6 +83,27 @@
 
 .end
 
+.sub 'iter_invalid_type'
+    .local pmc hash, it
+    hash = new 'Hash'
+    it   = new 'HashIterator', hash
+    .local pmc eh
+    .local int i
+    i = 1
+    eh = new 'ExceptionHandler'
+    eh.'handle_types'(.EXCEPTION_INVALID_OPERATION)
+    set_addr eh, catch
+    push_eh catch
+    it = 987 # Arbitrary value, let's hope we never use
+    i = 0
+    goto report
+  catch:
+    finalize eh
+  report:
+    pop_eh
+    ok(i, 'setting invalid type throws')
+.end
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/dynop_mapping/t/pmc/io.t
==============================================================================
--- branches/dynop_mapping/t/pmc/io.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/io.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -7,8 +7,7 @@
 use lib qw( . lib ../lib ../../lib );
 
 use Test::More;
-use Parrot::Test tests => 36;
-use Parrot::Test::Util 'create_tempfile';
+use Parrot::Test tests => 32;
 use Parrot::Test::Util 'create_tempfile';
 
 =head1 NAME
@@ -41,7 +40,7 @@
 
 my (undef, $temp_file) = create_tempfile( UNLINK => 1 );
 
-pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction", todo => 'TT #1659');
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction" );
 .const string temp_file = '%s'
 .sub main :main
     interpinfo $I0, 2    # GC mark runs
@@ -51,7 +50,8 @@
     print $P0, "a line\n"
     null $P0            # kill it
     sweep 0            # a lazy GC has to close the PIO
-    $P0 = open temp_file, 'r'
+    $P0 = new ['FileHandle']
+    $P0.'open'(temp_file, 'r')
     $S0 = $P0.'read'(20)
     print $S0
 .end
@@ -506,16 +506,6 @@
 /seek failed/
 OUTPUT
 
-pasm_error_output_like( <<"CODE", <<'OUTPUT', '32bit seek: exception (ops)' );
-.loadlib 'io_ops'
-   open P0, "$temp_file", 'w'
-   seek P0, -1, 0
-   say "error!"
-   end
-CODE
-/seek failed \(32bit\)/
-OUTPUT
-
 pir_error_output_like( sprintf(<<'CODE', $temp_file), <<'OUTPUT', '64bit seek: exception' );
 .const string temp_file = '%s'
 .sub main :main
@@ -528,16 +518,6 @@
 /seek failed/
 OUTPUT
 
-pasm_error_output_like( <<"CODE", <<'OUTPUT', '64bit seek: exception (ops)' );
-.loadlib 'io_ops'
-   open P0, "$temp_file", 'w'
-   seek P0, -1, -1, 0
-   say "error!"
-   end
-CODE
-/seek failed \(64bit\)/
-OUTPUT
-
 pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "peek" );
 .const string temp_file = '%s'
 .sub main :main
@@ -563,27 +543,6 @@
 l
 OUTPUT
 
-pasm_output_is( <<"CODE", <<'OUTPUT', "peek (ops)" );
-.loadlib 'io_ops'
-    open P0, "$temp_file", 'w'
-    print P0, "a line\\n"
-    close P0
-    open P0, "$temp_file", 'r'
-    peek S0, P0
-    print S0
-    peek S1, P0
-    print S1
-    print "\\n"
-    read S2, P0, 2
-    peek S3, P0
-    print S3
-    print "\\n"
-    end
-CODE
-aa
-l
-OUTPUT
-
 pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "peek on an empty file" );
 .const string temp_file = '%s'
 .sub main :main
@@ -603,21 +562,6 @@
 ok 1
 OUTPUT
 
-pasm_output_is( <<"CODE", <<'OUTPUT', "peek on an empty file (ops)" );
-.loadlib 'io_ops'
-    open P0, "$temp_file", 'w'
-    close P0
-    open P0, "$temp_file", 'r'
-    peek S0, P0
-    eq S0, "", OK1
-    print "not "
-OK1:
-    say "ok 1"
-    end
-CODE
-ok 1
-OUTPUT
-
 pir_output_is( <<"CODE", <<'OUTPUT', "substr after reading from file" );
 .sub _main
     # Write something into a file

Deleted: branches/dynop_mapping/t/pmc/objects.t
==============================================================================
--- branches/dynop_mapping/t/pmc/objects.t	Sun Jul  4 06:24:50 2010	(r47980)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,1791 +0,0 @@
-#!./parrot
-# Copyright (C) 2001-2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/pmc/objects.t - Objects
-
-=head1 SYNOPSIS
-
-    % prove t/pmc/objects.t
-
-=head1 DESCRIPTION
-
-Tests the object/class subsystem.
-
-=cut
-
-.sub main :main
-    .include 'test_more.pir'
-    .include "iglobals.pasm"
-    .include "interpinfo.pasm"
-
-    plan(194)
-
-    get_classname_from_class()
-    test_get_class()
-    test_isa()
-    does_scalar()
-    does_array()
-    new_object()
-    new_object__isa_test()
-    new_object__classname()
-    isa_subclass()
-    isa_subclass__objects()
-    test_addmethod()
-    test_addattribute()
-    addattribute_subclass()
-    addattribute_subclass__same_name()
-    set_and_get_object_attribs()
-    set_and_get_multiple_object_attribs()
-    attribute_values_are_specific_to_objects()
-    attribute_values_and_subclassing()
-    attribute_values_and_subclassing_2()
-    PMC_as_classes__overridden_mmd_methods()
-    typeof_class()
-    typeof_objects()
-    multiple_inheritance__with_attributes()
-    attributes_two_levels_of_inheritance()
-    class_op_test()
-    anon_subclass_has_no_name()
-    get_attrib_by_name()
-    get_attrib_by_name_subclass()
-    set_attrib_by_name_subclass()
-    PMC_as_classes()
-    PMC_as_classes__subclass()
-    PMC_as_classes__instantiate()
-    PMC_as_classes__methods()
-    PMC_as_classes__mmd_methods()
-    PMC_as_classes__derived_1()
-    PMC_as_classes__derived_2()
-    PMC_as_classes__derived_3()
-    subclassing_Class()
-    namespace_vs_name()
-    multiple_anon_classes()
-    subclassed_Integer_bug()
-    equality_of_subclassed_Integer()
-    short_name_attributes()
-    init_with_and_without_arg()
-    newclass_bracket_parsing()
-    verify_namespace_types()
-    verify_data_type()
-    new_keyed()
-    new_keyed_2()
-    new_keyed_3()
-    subclass_keyed()
-    test_class_name_multipart_name()
-    test_get_class_multipart_name()
-    isa_bug()
-    new_nested_ordering()
-    vtable_override_once_removed()
-    vtable_fails_for_subclasses_of_core_classes()
-    super___init_called_twice()
-    using_class_object_from_typeof_op_with_new()
-    setting_non_existent_attribute()
-    setting_non_existent_attribute_by_name()
-    getting_null_attribute()
-    getting_non_existent_attribute()
-    addparent_exceptions_1()
-    addparent_exceptions_2()
-    subclassing_a_non_existent_class()
-    anon_subclass_of_non_existent_class()
-    addattribute_duplicate()
-    wrong_way_to_create_new_objects()
-    attribute_values__subclassing_access_meths()
-    attribute_values__inherited_access_meths()
-
-    # END_OF_TESTS
-.end
-
-.sub get_classname_from_class
-    newclass $P1, "Foo5"
-    set $S0, $P1
-    is( $S0, "Foo5", "got classname Foo5" )
-
-    subclass $P2, $P1, "Bar5"
-    set $S1, $P2
-    is( $S1, "Bar5", "got subclass Bar5" )
-
-    subclass $P3, "Foo5", "Baz5"
-    set $S2, $P3
-    is( $S2, "Baz5", "got subclass Baz5" )
-.end
-
-.sub test_get_class
-    newclass $P1, "Foo6"
-    get_class $P2, "Foo6"
-    set $S2, $P2
-    is( $S2, "Foo6", 'get_class for Foo6' )
-
-    subclass $P3, $P1, "FooBar6"
-    get_class $P4, "FooBar6"
-    set $S4, $P4
-    is( $S4, 'FooBar6', 'get_class for FooBar6' )
-
-    get_class $P3, "NoSuch6"
-    isnull $I0, $P3
-    ok( $I0, "no class for 'NoSuch6'" )
-.end
-
-.sub test_isa
-    new $P1, ['Boolean']
-
-    isa $I0, $P1, "Boolean"
-    is( $I0, 1, 'Boolean isa Boolean' )
-
-    isa $I0, $P1, "Bool"
-    is( $I0, 0, 'Boolean !isa Bool' )
-
-    isa $I0, $P1, "scalar"
-    is( $I0, 1, 'Boolean isa scalar' )
-
-    isa $I0, $P1, "calar"
-    is( $I0, 0, 'Boolean !isa calar' )
-
-    isa $I0, $P1, "Integer"
-    is( $I0, 1, 'Boolean isa Integer' )
-
-    isa $I0, $P1, "Integ"
-    is( $I0, 0, 'Boolean !isa Integ' )
-
-    isa $I0, $P1, "eger"
-    is( $I0, 0, 'Boolean !isa eger' )
-
-    isa $I0, $P1, " "
-    is( $I0, 0, 'Boolean !isa " "' )
-
-    isa $I0, $P1, ""
-    is( $I0, 0, 'Boolean !isa ""' )
-
-    null $S0
-    isa $I0, $P1, $S0
-    is( $I0, 0, 'Boolean !isa null $S0' )
-
-    set $S0, "scalar"
-    isa $I0, $P1, $S0
-    is( $I0, 1, 'Boolean isa scalar $S0' )
-.end
-
-.sub does_scalar
-    new $P1, ['Boolean']
-
-    does $I0, $P1, "Boolean"
-    is( $I0, 0, 'Boolean !does Boolean' )
-
-    does $I0, $P1, "Bool"
-    is( $I0, 0, 'Boolean !does Bool' )
-
-    does $I0, $P1, "scalar"
-    is( $I0, 1, 'Boolean does scalar' )
-.end
-
-.sub does_array
-    new $P1, ['OrderedHash']
-
-    does $I0, $P1, "Boolean"
-    is( $I0, 0, 'OrderedHash !does Boolean' )
-
-    does $I0, $P1, "Bool"
-    is( $I0, 0, 'OrderedHash !does Bool' )
-
-    does $I0, $P1, "hash"
-    is( $I0, 1, 'OrderedHash does hash' )
-
-    does $I0, $P1, "array"
-    is( $I0, 1, 'OrderedHash does array' )
-.end
-
-.sub new_object
-    newclass $P1, "Foo7"
-    new $P2, "Foo7"
-    ok( 1, 'created new object from Foo7 class' )
-.end
-
-.sub new_object__isa_test
-    newclass $P1, "Foo8"
-    new $P2, $P1
-    ok( 1, 'created new object from Foo8 class' )
-
-    isa $I0, $P2, "Foo8"
-    ok( $I0, 'new object isa Foo8' )
-.end
-
-.sub new_object__classname
-    newclass $P1, "Foo9"
-    new $P2, $P1
-    set $S0, $P1    # class
-    is( $S0, "Foo9", 'new object from Foo9 class as a string is Foo9' )
-
-    typeof $S0, $P2 # object
-    is( $S0, 'Foo9', 'typeof obj is Foo9' )
-
-    class $P3, $P1
-    set $S0, $P1    # class
-    is( $S0, 'Foo9', 'class of obj is Foo9' )
-
-    typeof $S0, $P2 # object
-    is( $S0, 'Foo9', 'typeof obj is Foo9' )
-
-.end
-
-.sub isa_subclass
-    newclass $P1, "Foo10"
-    subclass $P2, $P1, "Bar10"
-
-    isa_ok( $P2, "Foo10", 'newclass isa Foo10' )
-    isa_ok( $P2, "Bar10", 'new subclass isa Bar10' )
-    isa_ok( $P2, "Foo10", 'new subclass isa parent' )
-    isa_ok( $P2, "Class", 'new subclass isa Class' )
-
-    isa $I0, $P2, "Object"
-    is( $I0, 0, 'new subclass !isa Object' )
-.end
-
-.sub isa_subclass__objects
-    newclass $P3, "Foo30"
-    subclass $P4, $P3, "Bar30"
-    $P1 = $P3.'new'()
-    $P2 = $P4.'new'()
-
-    isa_ok( $P1, "Foo30",  'obj isa its class' )
-    isa_ok( $P2, "Bar30",  'obj isa its class' )
-    isa_ok( $P2, "Foo30",  'obj isa its parent class' )
-    isa_ok( $P2, "Object", 'obj isa Object' )
-    isa_ok( $P2, "Class",  'obj isa Class' )
-.end
-
-.sub test_addmethod
-    newclass $P0, 'Foo31'
-    $P2 = get_hll_global 'sayFoo31'
-
-    # add a method BEFORE creating a Foo object
-    addmethod $P0, 'foo31', $P2
-    $P1 = new 'Foo31'
-    $P1.'foo31'()
-
-    # get a method from some other namespace
-    $P2 = get_hll_global ['Bar31'], 'sayBar31'
-
-    # add a method AFTER creating the object
-    addmethod $P0, 'bar31', $P2
-    $P1.'bar31'()
-.end
-
-.sub sayFoo31
-    ok( 1, 'called method added before creating obj' )
-.end
-
-.namespace ['Bar31']
-.sub sayBar31
-    ok( 1, 'called method added after created obj' )
-.end
-
-.namespace [] # Reset to root namespace for next test
-
-.sub test_addattribute
-    newclass $P1, "Foo11"
-
-    addattribute $P1, "foo_i"
-    ok( 1, 'addattribute did not blow up' )
-
-    set $S0, $P1
-    is( $S0, "Foo11", '$P1 is still the same class as PMC' )
-
-    # Check that we can add multiple attributes
-    set $I0, 0
-l1:
-    set $S0, $I0
-    addattribute $P1, $S0
-    inc $I0
-    lt $I0, 1000, l1
-    ok( 1, 'addattribute 1000x without blow up' )
-.end
-
-.sub addattribute_subclass
-    newclass $P1, "Foo12"
-    addattribute $P1, "foo_i"
-    ok( 1, 'addattribute to Foo12' )
-
-    subclass $P2, $P1, "Bar12"
-    addattribute $P2, "bar_i"
-    ok( 1, 'addattribute to subclass of Foo12' )
-.end
-
-.sub addattribute_subclass__same_name
-    newclass $P1, "Foo32"
-    addattribute $P1, "i"
-    addattribute $P1, "j"
-
-    subclass $P2, $P1, "Bar32"
-    addattribute $P2, "j"
-    addattribute $P2, "k"
-
-    ok( 1, 'created class and subclass and added attributes' )
-
-    .local pmc o
-    o = $P2.'new'()
-    $P0 = getattribute o, 'i'
-    is( $P0, 'Foo32.i', 'parent attrib initialized in init' )
-    $P0 = getattribute o, ['Foo32'], 'j'
-    is( $P0, 'Foo32.j', 'parent attrib initialized in init' )
-    $P0 = getattribute o, ['Bar32'], 'j'
-    is( $P0, 'Bar32.j', 'subclass attrib initialized in init' )
-    $P0 = getattribute o, 'k'
-    is( $P0, 'Bar32.k', 'subclass attrib initialized in init' )
-
-    $P0 = getattribute o, 'i'
-    is( $P0, 'Foo32.i', 'parent attrib init-ed' )
-    $P0 = getattribute o, ['Foo32'], "j"
-    is( $P0, 'Foo32.j', 'parent attrib init-ed' )
-    $P0 = getattribute o, 'j'
-    is( $P0, 'Bar32.j', 'subclass attrib returned over parent' )
-    $P0 = getattribute o, 'k'
-    is( $P0, 'Bar32.k', 'subclass attrib init-ed' )
-.end
-
-.namespace ['Bar32']
-
-.sub init :vtable :method
-    $P0 = new ['String']
-    $P0 = 'Foo32.i'
-    setattribute self, ['Foo32'], "i", $P0
-    $P0 = new ['String']
-    $P0 = 'Foo32.j'
-    setattribute self, ["Foo32"], "j", $P0
-    $P0 = new ['String']
-    $P0 = 'Bar32.j'
-    setattribute self, ["Bar32"], "j", $P0
-    $P0 = new ['String']
-    $P0 = 'Bar32.k'
-    setattribute self, ["Bar32"], "k", $P0
-.end
-
-.namespace []       # Reset to root namespace for next test
-
-.sub set_and_get_object_attribs
-    newclass $P1, "Foo13"
-    addattribute $P1, "i"
-    new $P2, $P1
-
-    new $P3, ['Integer']
-    set $P3, 1024
-    setattribute $P2, "i", $P3
-
-    new $P4, ['Integer']
-    getattribute $P4, $P2, "i"
-
-    is( $P4, 1024, 'set/get Integer attribute' )
-.end
-
-.sub set_and_get_multiple_object_attribs
-    newclass $P1, "Foo14"
-    addattribute $P1, "i"
-    addattribute $P1, "j"
-    new $P2, "Foo14"
-
-    new $P3, ['Integer']
-    set $P3, 4201
-    new $P4, ['Hash']
-    set $P4["Key"], "Value"
-
-    setattribute $P2, "i", $P3
-    setattribute $P2, "j", $P4
-
-    getattribute $P5, $P2, "i"
-    is( $P5, '4201', 'set/get Integer attribute' )
-
-    getattribute $P6, $P2, "j"
-    set $S0, $P6["Key"]
-    is( $S0, 'Value', 'set/get Hash attribute on same obj' )
-.end
-
-.sub attribute_values_are_specific_to_objects
-    newclass $P1, "Foo15"
-    addattribute $P1, "i"
-    new $P2, $P1
-    new $P3, $P1
-
-    new $P4, ['Integer']
-    set $P4, 100
-    setattribute $P2, "i", $P4
-    new $P5, ['String']
-    set $P5, "One hundred"
-    setattribute $P3, "i", $P5
-
-    getattribute $P6, $P2, "i"
-    is( $P6, 100, 'attribute value on 1st object is specific to obj' )
-
-    getattribute $P6, $P3, "i"
-    is( $P6, 'One hundred', 'attribute value on 2nd obj is specific to obj' )
-.end
-
-.sub attribute_values_and_subclassing
-    newclass $P1, "Foo16"
-    addattribute $P1, "i"
-    addattribute $P1, "j"
-    subclass $P2, $P1, "Bar16"
-    addattribute $P2, "k"
-    addattribute $P2, "l"
-
-    new $P2, "Bar16"
-    new $P3, "Bar16"
-
-    # Note that setattribute holds the actual PMC, not a copy, so
-    # in this test both attributes get the PMC from $P4, and should
-    # both have the same value, despite the C<inc>.
-    new $P4, ['Integer']
-    set $P4, 10
-    setattribute $P2, "i", $P4
-    inc $P4
-    setattribute $P2, "j", $P4
-
-    new $P5, ['Integer']
-    set $P5, 100
-    setattribute $P3, "i", $P5
-    inc $P5
-    setattribute $P3, "j", $P5
-
-    getattribute $P6, $P2, "i"
-    is( $P6, 11, 'setattrib with a PMC holds actual PMC not copy' )
-
-    getattribute $P6, $P2, "j"
-    is( $P6, 11, '...so changes to the PMC appear through the attrib' )
-
-    getattribute $P6, $P3, "i"
-    is( $P6, 101, '...and second test on new objects' )
-
-    getattribute $P6, $P3, "j"
-    is( $P6, 101, '...should have same result' )
-.end
-
-.sub attribute_values_and_subclassing_2
-    newclass $P1, "Foo17"
-    # must add attributes before object instantiation
-    addattribute $P1, ".i"
-    addattribute $P1, ".j"
-
-    subclass $P2, $P1, "Bar17"
-    addattribute $P2, ".k"
-    addattribute $P2, ".l"
-
-    # subclass is preferred for the SI case over
-    #   newclass $P2, "Bar"
-    #   addattrib ...
-    #   addparent $P2, $P1
-    # which is suitable for adding multiple parents to one class
-
-    # instantiate a Bar object
-    new $P3, "Bar17"
-
-    # Set the attribute values
-    new $P10, ['String']           # set attribute values
-    set $P10, "i"                # attribute slots have reference semantics
-    setattribute $P3, ".i", $P10  # so always put new PMCs in
-                                # if you have unique values
-    new $P10, ['String']
-    set $P10, "j"
-    setattribute $P3, ".j", $P10
-
-    new $P10, ['String']
-    set $P10, "k"
-    setattribute $P3, ".k", $P10
-
-    new $P10, ['String']
-    set $P10, "l"
-    setattribute $P3, ".l", $P10
-
-    # retrieve attribs
-    getattribute $P11, $P3, ".i"
-    is( $P11, "i", 'string attribute get/set on parent' )
-
-    getattribute $P11, $P3, ".j"
-    is( $P11, "j", 'string attribute get/set on parent' )
-
-    getattribute $P11, $P3, ".k"
-    is( $P11, "k", 'string attribute get/set on subclass' )
-
-    getattribute $P11, $P3, ".l"
-    is( $P11, "l", 'string attribute get/set on subclass' )
-.end
-
-.sub PMC_as_classes__overridden_mmd_methods
-    .local pmc myint, i, j, k
-
-    get_class $P0, "Integer"
-    subclass myint, $P0, "MyInt1"
-
-    i = new 'MyInt1'
-    j = new 'MyInt1'
-    k = new 'MyInt1'
-    i = 6
-    j = 7
-    k = i + j
-
-    is( k, 13, 'added two MyInt1' )
-
-    j = new ['Integer']
-    j = 100
-    k = i + j
-
-    is( k, 106, 'added MyInt1 and an Integer' )
-.end
-
-.namespace ["MyInt1"]
-
-.sub add :multi(MyInt1, MyInt1, MyInt1)
-    .param pmc self
-    .param pmc right
-    .param pmc dest
-    ok( 1, 'in the add method' )
-    $P0 = getattribute self, ['Integer'], "proxy"
-    $I0 = $P0
-    $I1 = right
-    $I2 = $I0 + $I1
-    dest = $I2
-    .return(dest)
-.end
-
-.namespace []       # Reset to root namespace for next test
-
-.sub typeof_class
-    newclass $P0, "Foo21"
-    typeof $S0, $P0
-    is( $S0, "Class", 'typeof for a Class PMC is "Class"' )
-.end
-
-.sub typeof_objects
-    newclass $P0, "A"
-    newclass $P1, "B"
-
-    new $P0, ['A']
-    new $P1, ['B']
-
-    typeof $S0, $P0
-    typeof $S1, $P1
-
-    is( $S0, 'A', 'typeof object of class A is "A"' )
-    is( $S1, 'B', 'typeof object of class B is "B"' )
-.end
-
-.sub multiple_inheritance__with_attributes
-    newclass $P1, "Star"
-    addattribute $P1, "Spectral Type"
-
-    newclass $P2, "Company"
-    addattribute $P2, "Annual Profit"
-
-    subclass $P3, $P1, "Sun"
-    addparent $P3, $P2
-
-    new $P4, ['Sun']
-
-    new $P5, ['String']
-    set $P5, "G"
-    setattribute $P4, "Spectral Type", $P5
-
-    new $P6, ['String']
-    set $P6, "$100,000,000"
-    setattribute $P4, "Annual Profit", $P6
-
-    getattribute $P7, $P4, "Spectral Type"
-    is( $P7, 'G', 'direct parents attribute' )
-
-    getattribute $P8, $P4, "Annual Profit"
-    is( $P8, '$100,000,000', "addparent's attribute" )
-.end
-
-.sub attributes_two_levels_of_inheritance
-    newclass $P0, "Astronomical Object"
-    addattribute $P0, "Location"
-
-    subclass $P1, $P0, "Star2"
-    addattribute $P1, "Spectral Type"
-
-    newclass $P2, "Sun2"
-    addparent $P2, $P1
-    addparent $P2, $P0
-
-    new $P4, "Sun2"
-
-    new $P5, ['String']
-    set $P5, "Taurus"
-    setattribute $P4, "Location", $P5
-    getattribute $P6, $P4, "Location"
-    is( $P6, 'Taurus', 'attributes with two levels of inheritance' )
-.end
-
-.sub class_op_test
-    newclass $P0, "City1"
-    new $P1, "City1"
-
-    class $P2, $P1
-    set $S0, $P2
-    is( $S0, 'City1', 'class op works' )
-.end
-
-.sub anon_subclass_has_no_name
-    newclass $P0, "City2"
-    subclass $P1, $P0
-    set $S0, $P1
-    is( $S0, '', 'anonymous subclass has no name' )
-.end
-
-.sub get_attrib_by_name
-    newclass $P1, "Foo18"
-    addattribute $P1, "i"
-    new $P2, "Foo18"
-    new $P3, ['String']
-    set $P3, "ok"
-    setattribute $P2, "i", $P3
-
-    getattribute $P4, $P2, ["Foo18"], "i"
-    is( $P4, 'ok', 'get attrib by name' )
-.end
-
-.sub get_attrib_by_name_subclass
-    newclass $P0, "Bar19"
-    addattribute $P0, "j"
-
-    subclass $P1, $P0, "Foo19"
-    addattribute $P1, "i"
-
-    new $P2, "Foo19"
-
-    new $P3, ['String']
-    set $P3, "foo i"
-    setattribute $P2, "i", $P3
-
-    new $P3, ['String']
-    set $P3, "bar j"
-    setattribute $P2, "j", $P3
-
-    getattribute $P4, $P2, ["Foo19"], "i"
-    is( $P4, 'foo i', 'attribute from subclass get by name' )
-
-    getattribute $P4, $P2, ["Bar19"], "j"
-    is( $P4, 'bar j', 'attribute from parent class get by name' )
-.end
-
-.sub set_attrib_by_name_subclass
-    newclass $P0, "Bar20"
-    addattribute $P0, "j"
-
-    subclass $P1, $P0, "Foo20"
-    addattribute $P1, "i"
-
-    new $P2, "Foo20"
-
-    new $P3, ['String']
-    set $P3, "foo i"
-    setattribute $P2, ["Foo20"], "i", $P3
-
-    new $P3, ['String']
-    set $P3, "bar j"
-    setattribute $P2, ["Bar20"], "j", $P3
-
-    getattribute $P4, $P2, "i"
-    is( $P4, 'foo i', 'attribute from subclass set by name' )
-
-    getattribute $P4, $P2, "j"
-    is( $P4, 'bar j', 'attribute from parent class set by name' )
-.end
-
-.sub PMC_as_classes
-    get_class $P0, "Integer"
-    ok( 1, "get_class of Integer did't croak" )
-
-    get_class $P0, "Integer"
-    ok( 1, "get_class of Integer did't croak second time" )
-
-    typeof $S0, $P0
-    is( $S0, 'PMCProxy', 'typeof PMCProxy' )
-.end
-
-.sub PMC_as_classes__subclass
-    .local pmc MyInt3
-    get_class $P0, "Integer"
-    ok( 1, "get_class on Integer didn't blow up" )
-
-    subclass MyInt3, $P0, "MyInt3"
-    ok( 1, "subclassing didn't blow up" )
-
-    $S0 = typeof MyInt3
-    is( $S0, 'Class', 'new subclass is typeof Class' )
-
-    $I0 = isa MyInt3, "MyInt3"
-    ok( $I0, 'new subclass isa MyInt' )
-
-    $I0 = isa MyInt3, "Integer"
-    ok( $I0, 'new subclass isa parent class' )
-.end
-
-.sub PMC_as_classes__instantiate
-    .local pmc MyInt4
-    get_class $P0, "Integer"
-    ok( 1, 'able to get_class of Integer' )
-
-    subclass MyInt4, $P0, "MyInt4"
-    addattribute MyInt4, ".i"
-    ok( 1, 'able to addattribute to subclass' )
-
-    .local pmc i
-    i = new "MyInt4"
-    ok( 1, 'able to instantiate obj of subclass w/ attribute' )
-.end
-
-.sub PMC_as_classes__methods
-    .local pmc MyInt5
-    get_class $P0, "Integer"
-
-    subclass MyInt5, $P0, "MyInt5"
-    addattribute MyInt5, "intval"
-
-    .local pmc i, i2
-    i = new "MyInt5"
-    i2 = new ['Integer']
-    i2 = 43
-
-    i = 42    # set_integer is inherited from Integer
-    ok( 1, 'able to assign int to MyInt' )
-
-    $I0 = i   # get_integer is overridden below
-    is( $I0, 42, 'get_integer is overridden for MyInt5' )
-
-    $S0 = i   # get_string is overridden below
-    is( $S0, 'MyInt5(42)', 'get_string is overridden for MyInt5' )
-.end
-
-.namespace ["MyInt5"]
-
-.sub set_integer_native :vtable :method
-   .param int new_value
-   $P1 = new ['Integer']
-   $P1 = new_value
-   setattribute self, "intval", $P1
-.end
-
-.sub get_integer :vtable :method
-   $P0 = getattribute self, "intval"
-   $I0 = $P0
-   .return ($I0)
-.end
-
-.sub get_string :vtable :method
-   $P0 = getattribute self, "intval"
-   $I0 = $P0
-   $S1 = $I0
-   $S0 = "MyInt5("
-   $S0 .= $S1
-   $S0 .= ")"
-   .return ($S0)
-.end
-
-.namespace []       # Reset to root namespace for next test
-
-.sub PMC_as_classes__mmd_methods
-  .local pmc MyInt6
-  get_class $P0, "Integer"
-  subclass MyInt6, $P0, "MyInt6"
-  .local pmc i
-  .local pmc j
-  .local pmc k
-  i = new "MyInt6"
-  j = new "MyInt6"
-  k = new "MyInt6"
-  i = 6
-  j = 7
-  k = i * j
-  $I0 = k
-  is( $I0, 42, 'MyInt6 defaults to Integer class for mult' )
-
-  $S0 = k   # get_string is overridden below
-  is( $S0, 'MyInt6(42)', 'get_string is overridden for MyInt6' )
-.end
-
-.namespace ["MyInt6"]
-
-.sub get_string :vtable :method
-   $I0 = self   # get_integer is not overridden
-   $S1 = $I0
-   $S0 = "MyInt6("
-   $S0 .= $S1
-   $S0 .= ")"
-   .return ($S0)
-.end
-
-.namespace []       # Reset to root namespace for next test
-
-.sub PMC_as_classes__derived_1
-  .local pmc MyInt8
-  .local pmc MyInt8_2
-  get_class $P0, "Integer"
-
-  subclass MyInt8, $P0, "MyInt8"
-  addattribute MyInt8, 'intval'
-  get_class $P1, "MyInt8"
-  subclass MyInt8_2, $P1, "MyInt8_2"
-
-  .local pmc i
-  i = new "MyInt8_2"
-  $I0 = isa i, "Integer"
-  ok( $I0, 'obj isa grandparent (Integer)' )
-
-  $I0 = isa i, "MyInt8"
-  ok( $I0, 'obj isa parent (MyInt8)' )
-
-  $I0 = isa i, "MyInt8_2"
-  ok( $I0, 'obj isa its class (MyInt8_2)' )
-
-  i = 42    # set_integer is overridden below
-  $I0 = i   # get_integer is overridden below
-  is( $I0, 42, 'set/get_integer overridden' )
-
-  $S0 = i   # get_string is overridden below
-  is( $S0, 'MyInt8_2(42)', 'set/get_string overridden' )
-.end
-
-.namespace ["MyInt8"]
-.sub 'set_integer_native' :vtable :method
-    .param int val
-    $P1 = new ['Integer']
-    $P1 = val
-    setattribute self, "intval", $P1
-    .return ()
-.end
-.sub get_integer :vtable :method
-   $P0 = getattribute self, 'intval'
-   $I0 = $P0
-   .return ($I0)
-.end
-.sub get_string :vtable :method
-   $P0 = getattribute self, 'intval'
-   $I0 = $P0
-   $S1 = $I0
-   $S0 = typeof self
-   $S0 .= "("
-   $S0 .= $S1
-   $S0 .= ")"
-   .return ($S0)
-.end
-
-.namespace []       # Reset to root namespace for next test
-
-.sub PMC_as_classes__derived_2
-  .local pmc MyInt9
-  .local pmc MyInt9_2
-  get_class $P0, "Integer"
-
-  subclass MyInt9, $P0, "MyInt9"
-  addattribute MyInt9, 'intval'
-  get_class $P1, "MyInt9"
-  subclass MyInt9_2, $P1, "MyInt9_2"
-
-  .local pmc i
-  i = new "MyInt9_2"
-  $I0 = isa i, "Integer"
-  ok( $I0, 'obj isa grandparent (Integer)' )
-  $I0 = isa i, "MyInt9"
-  ok( $I0, 'obj isa parent (MyInt9)' )
-  $I0 = isa i, "MyInt9_2"
-  ok( $I0, 'obj isa its class (MyInt9_2)' )
-
-  i = 42    # set_integer is overridden below
-  $I0 = i   # get_integer is overridden below
-  is( $I0, 43, 'set/get_integer overridden' )
-
-  $S0 = i   # get_string is overridden below
-  is( $S0, 'MyInt9_2(42)', 'set/get_string overridden' )
-.end
-
-.namespace ["MyInt9_2"]
-# subclassing methods from MyInt9 is ok
-# this one changes the value a bit
-.sub get_integer :vtable :method
-   $P0 = getattribute self, 'intval'
-   $I0 = $P0
-   inc $I0            # <<<<<
-   .return ($I0)
-.end
-.namespace ["MyInt9"]
-.sub 'set_integer_native' :vtable :method
-    .param int val
-    $P1 = new ['Integer']
-    $P1 = val
-    setattribute self, "intval", $P1
-    .return ()
-.end
-.sub get_integer :vtable :method
-   $P0 = getattribute self, 'intval'
-   $I0 = $P0
-   .return ($I0)
-.end
-.sub get_string :vtable :method
-   $P0 = getattribute self, 'intval'
-   $I0 = $P0
-   $S1 = $I0
-   $S0 = typeof self
-   $S0 .= "("
-   $S0 .= $S1
-   $S0 .= ")"
-   .return ($S0)
-.end
-
-.namespace []       # Reset to root namespace for next test
-
-.sub PMC_as_classes__derived_3
-    .local pmc MyInt10
-    .local pmc MyInt10_2
-    get_class $P0, "Integer"
-
-    subclass MyInt10, $P0, "MyInt10"
-    addattribute MyInt10, 'intval'
-    get_class $P1, "MyInt10"
-    subclass MyInt10_2, $P1, "MyInt10_2"
-
-    .local pmc i
-    i = new "MyInt10_2"
-    $I0 = isa i, "Integer"
-    ok( $I0, 'obj isa grandparent (Integer)' )
-    $I0 = isa i, "MyInt10"
-    ok( $I0, 'obj isa parent (MyInt10)' )
-    $I0 = isa i, "MyInt10_2"
-    ok( $I0, 'obj isa its class (MyInt102)' )
-
-    i = 42    # set_integer is overridden below
-    $I0 = i   # get_integer is overridden below
-    is( $I0, 42, 'set/get_integer overridden' )
-
-    $S0 = i   # get_string is overridden below
-    is( $S0, 'MyInt10_2(42)', 'set/get_string overridden' )
-.end
-
-.namespace ["MyInt10_2"]
-.sub get_integer :vtable :method
-    $P0 = getattribute self, 'intval'
-    $I0 = $P0
-    .return ($I0)
-.end
-.sub get_string :vtable :method
-    $P0 = getattribute self, 'intval'
-    $I0 = $P0
-    $S1 = $I0
-    $S0 = typeof self
-    $S0 .= "("
-    $S0 .= $S1
-    $S0 .= ")"
-    .return ($S0)
-.end
-.namespace ['MyInt10']
-.sub 'set_integer_native' :vtable :method
-    .param int val
-    $P1 = new ['Integer']
-    $P1 = val
-    setattribute self, "intval", $P1
-    .return ()
-.end
-
-.namespace []       # Reset to root namespace for next test
-
-.sub subclassing_Class
-    .local pmc cl
-    .local pmc parent
-    parent = get_class "Class"
-    cl = subclass parent, "Foo33"
-    ok( 1, 'able to subclass Class' )
-
-    .local pmc o
-    o = new "Foo33"
-    ok( 1, 'able to instantiate subclass of Class' )
-
-    $S0 = typeof o
-    is( $S0, 'Foo33', 'object returns correct class' )
-.end
-
-.sub namespace_vs_name
-    .local pmc o, cl, f
-    newclass cl, "Foo34"
-    o = new "Foo34"
-    is( o, 'Foo34::get_string', 'found Foo34 namespace' )
-
-    o = Foo34()
-    is( o, 'Foo34', 'found global Foo34' )
-
-    f = get_global "Foo34"
-    o = f()
-    is( o, 'Foo34', 'found global Foo34 explicitly' )
-
-    f = get_global ["Foo34"], "Foo34"
-    o = f()
-    is( o, 'Foo34::Foo34', 'found method in Foo34 namespace' )
-.end
-
-.sub Foo34
-    .return("Foo34")
-.end
-
-.namespace [ "Foo34" ]
-
-.sub get_string :vtable :method
-    .return("Foo34::get_string")
-.end
-
-.sub Foo34
-    .return("Foo34::Foo34")
-.end
-
-.namespace []       # Reset to root namespace for next test
-
-.sub multiple_anon_classes
-     newclass $P0, "City3"
-     subclass $P1, $P0
-     newclass $P2, "State3"
-     subclass $P3, $P2
-     ok( 1,  "multiple anon classes didn't croak (bug #33103)" )
-.end
-
-.sub subclassed_Integer_bug
-   .local pmc class
-   .local pmc a
-   .local pmc b
-
-    subclass class, "Integer", "LispInteger1"
-
-    a = new "LispInteger1"
-    b = new "LispInteger1"
-
-    a = 1
-    b = 1
-
-    set $S0, a
-    is( $S0, '1', 'subclassed Integer is 1' )
-    set $S0, b
-    is( $S0, '1', 'subclassed Integer is 1' )
-
-    a = a * b
-    set $S0, a
-    is( $S0, '1', 'multip and reasign to subclassed Integer is 1' )
-.end
-
-.sub equality_of_subclassed_Integer
-  .local pmc class
-  class = subclass "Integer", "LispInteger2"
-
-  .local pmc a
-  a = new 'LispInteger2'
-  a = 123
-
-  .local pmc b
-  b = new 'LispInteger2'
-  b = 123
-
-  $I0 = a == b
-  ok( $I0, '123 is equal to 123' )
-
-.end
-
-.sub short_name_attributes
-    newclass $P1, "Foo22"
-    addattribute $P1, "i"
-    addattribute $P1, "j"
-
-    subclass $P2, $P1, "Bar22"
-    addattribute $P2, "k"
-    addattribute $P2, "l"
-
-    new $P2, "Bar22"
-
-    # set a bunch of attribs
-    new $P4, ['Integer']
-    set $P4, 10
-    setattribute $P2, "i", $P4
-
-    new $P4, ['Integer']
-    set $P4, 11
-    setattribute $P2, "j", $P4
-
-    new $P4, ['Integer']
-    set $P4, 20
-    setattribute $P2, "k", $P4
-
-    new $P4, ['Integer']
-    set $P4, 21
-    setattribute $P2, "l", $P4
-
-    getattribute $P6, $P2, "i"
-    is( $P6, 10, '"i" getattribute on parent class attrib' )
-    getattribute $P6, $P2, "j"
-    is( $P6, 11, '"j" getattribute on parent class attrib' )
-
-    getattribute $P6, $P2, "k"
-    is( $P6, 20, '"k" getattribute on subclass attrib' )
-    getattribute $P6, $P2, "l"
-    is( $P6, 21, '"l" getattribute on subclass attrib' )
-
-    getattribute $P6, $P2, ["Foo22"], "i"
-    is( $P6, 10, '["Foo22"], "i" getattribute on parent class attrib' )
-    getattribute $P6, $P2, ["Bar22"], "k"
-    is( $P6, 20, '["Bar22"], "k" getattribute on subclass attrib' )
-.end
-
-.sub init_with_and_without_arg
-    .local pmc cl, o, h, a
-    cl = newclass "Foo35"
-    addattribute cl, "a"
-    o = cl.'new'()
-    a = getattribute o, "a"
-    is( a, 'ok 1', 'init without an arg' )
-
-    h = new ['Hash']
-    $P0 = new ['String']
-    $P0 = "ok 2"
-    h['a'] = $P0
-    o  = new cl, h
-    a = getattribute o, "a"
-    is( a, 'ok 2', 'init with an arg' )
-.end
-
-.namespace ["Foo35"]
-.sub init_pmc :vtable :method
-    .param pmc args
-    $P0 = args['a']
-    setattribute self, 'a', $P0
-    .return()
-.end
-.sub init :vtable :method
-    $P0 = new ['String']
-    $P0 = "ok 1"
-    setattribute self, 'a', $P0
-.end
-
-.namespace []       # Reset to root namespace for next test
-
-.sub newclass_bracket_parsing
-    newclass $P0, ['Foo23';'Bar23']
-    ok( 1, 'newclass  created with brackets' )
-.end
-
-.sub verify_namespace_types
-    newclass $P0, ['Foo24';'Bar24']
-    getinterp $P0
-    set $P1, $P0[.IGLOBALS_CLASSNAME_HASH]
-    typeof $S0, $P1
-    is( $S0, 'NameSpace', 'namespace verified' )
-
-    set $P2, $P1['Foo24']
-    typeof $S0, $P2
-    is( $S0, 'NameSpace', 'namespace verified' )
-.end
-
-.sub verify_data_type
-    newclass $P0, ['Foo25';'Bar25']
-    getinterp $P0
-    set $P1, $P0[.IGLOBALS_CLASSNAME_HASH]
-    set $P2, $P1['Foo25']
-    set $P3, $P2['Bar25']
-
-    set $I0, $P3
-    isgt $I0, $I0, 0
-    ok( $I0, 'verified datatype > 0' )
-.end
-
-# Puts init in a namespace
-.sub new_keyed
-    .local pmc cl, o, p
-    cl = newclass ['Foo36';'Bar36']
-    addattribute cl, "init_check"
-    o = cl.'new'()
-    ok( 1, 'obj successfully created' )
-
-    p = getattribute o, "init_check"
-    is( p, 999, "overridden init called")
-.end
-
-.namespace ['Foo36';'Bar36']
-
-.sub init :vtable :method
-    .local pmc p
-    p = new ['Integer']
-    p = 999
-    setattribute self, "init_check", p
-.end
-
-.namespace []   # revert to root for next test
-
-.sub new_keyed_2
-    .local pmc c1, c2, o1, o2
-    c1 = newclass ['Foo37';'Bar37']
-    c2 = newclass ['Foo37';'Fuz37']
-    o1 = c1.'new'()
-    o2 = c2.'new'()
-    ok( 1, 'objects created successfully' )
-.end
-
-.namespace ['Foo37';'Bar37']
-
-.sub init :vtable :method
-    ok( 1, '__init Bar37' )
-.end
-
-.namespace ['Foo37';'Fuz37']
-
-.sub init :vtable :method
-    ok( 1, '__init Fuz37' )
-.end
-
-.namespace []   # revert to root for next test
-
-.sub new_keyed_3
-    .local pmc c1, c2, c3, o1, o2, o3
-    c1 = newclass ['Foo38';'Bar38']
-    c2 = newclass ['Foo38';'Buz38']
-    c3 = newclass 'Foo38'
-    o1 = new      ['Foo38';'Bar38']
-    o2 = new      ['Foo38';'Buz38']
-    o3 = new      'Foo38'
-    ok( 1, 'objects created successfully' )
-.end
-
-.namespace ['Foo38';'Bar38']
-
-.sub init :vtable :method
-    ok( 1, '__init Bar38' )
-.end
-
-.namespace ['Foo38';'Buz38']
-
-.sub init :vtable :method
-    ok( 1, '__init Buz38' )
-.end
-
-.namespace ['Foo38']
-
-.sub init :vtable :method
-    ok( 1, '__init Foo38' )
-.end
-
-.namespace []   # revert to root for next test
-
-.sub subclass_keyed
-    .local pmc base, o1, o2
-    base = subclass 'Hash', ['Perl6-3'; 'PAST'; 'Node']
-    addattribute base, '$.source'                  # original source
-    addattribute base, '$.pos'                     # offset position
-
-    $P0 = subclass base, ['Perl6-3'; 'PAST'; 'Sub']
-    $P0 = subclass base, ['Perl6-3'; 'PAST'; 'Stmt']
-    ok( 1, 'ok 1\n' )
-
-    o1 = new   ['Perl6-3'; 'PAST'; 'Sub']
-    o2 = new   ['Perl6-3'; 'PAST'; 'Stmt']
-    ok( 1, 'objects created successfully' )
-.end
-
-.namespace ['Perl6-3'; 'PAST'; 'Stmt']
-
-.sub init :vtable :method
-    ok( 1, '__init Stmt' )
-.end
-
-.namespace ['Perl6-3'; 'PAST'; 'Sub']
-
-.sub init :vtable :method
-    ok( 1, '__init Sub' )
-.end
-
-.namespace []   # revert to root for next test
-
-.sub test_class_name_multipart_name
-    .local pmc base, o1
-    base = subclass 'Hash', ['Perl6'; 'PAST'; 'Node']
-    o1 = new base
-    $S0 = typeof o1
-    is( $S0, "Perl6;PAST;Node", "typeof returns object's class name" )
-.end
-
-.sub test_get_class_multipart_name
-    .local pmc base, o1
-    base = subclass 'Hash', ['Perl6a'; 'PAST'; 'Node']
-    $P0 = get_class ['Perl6a'; 'PAST'; 'Node']
-    o1 = new $P0
-    $S0 = typeof o1
-    is( $S0, 'Perl6a;PAST;Node', 'typeof returns objects created from get_class' )
-.end
-
-.sub isa_bug
-    .local pmc base, o1, o2
-    base = subclass 'Hash', ['Perl6b'; 'PAST'; 'Node']
-    $P0 = new [ 'Perl6b'; 'PAST'; 'Node' ]
-
-    $I0 = isa $P0, [ 'Perl6b'; 'PAST'; 'Node']
-    is( $I0, 1, 'obj isa the full class name' )
-
-    $I0 = isa $P0, 'Hash'
-    is( $I0, 1, 'obj isa the parent class' )
-
-    $I0 = isa $P0, 'Perl6b'
-    is( $I0, 0, 'obj !isa the first part of the class name' )
-.end
-
-.sub new_nested_ordering
-    .local pmc c1, c2, o
-    c1 = newclass ['Foo39']
-    c2 = newclass ['Foo39';'Bar39']
-    o = c2.'new'()
-    ok( 1, 'objects created successfully' )
-.end
-
-.namespace ['Foo39']
-
-.sub init :vtable :method
-    ok( 0, '__init Foo39' )     # shouldn't be called
-.end
-
-.namespace ['Foo39';'Bar39']
-
-.sub init :vtable :method
-    ok( 1, '__init Bar39' )     # should be called
-.end
-
-.namespace []   # revert to root for next test
-
-.sub vtable_override_once_removed
-    .local pmc base
-    $P0 = get_class 'Integer'
-    base = subclass $P0, 'Foo40'      # create subclass 'Foo40'
-    addattribute base, '@!capt'
-
-    $P0 = subclass 'Foo40', 'Bar40'   # create subclass 'Bar40'
-    $P1 = new 'Bar40'                 # create an instance of 'Bar40'
-
-    $S1 = $P1                         # get its string representation
-    is( $S1, 'ok bar', 'get_string overridden' )
-.end
-
-.namespace [ 'Bar40' ]
-
-.sub 'get_string' :vtable :method
-    $S0 = 'ok bar'
-    .return ($S0)
-.end
-
-.namespace []   # revert to root for next test
-
-.sub vtable_fails_for_subclasses_of_core_classes
-    $P0 = subclass 'Hash', 'Foo41'
-    $P0 = subclass 'Hash', 'Bar41'
-
-    $P1 = new 'Foo41'
-    $S1 = $P1
-    is( $S1, 'Hello world', 'get_string :vtable :method' )
-
-    $P1 = new 'Bar41'
-    $S1 = $P1
-    is( $S1, 'Hello world', 'get_string :method :vtable' )
-.end
-
-.namespace [ 'Foo41' ]
-
-.sub 'get_string' :vtable :method
-    .return('Hello world')
-.end
-
-.namespace [ 'Bar41' ]
-
-.sub 'get_string' :method :vtable
-    .return('Hello world')
-.end
-
-.namespace []   # revert to root for next test
-
-.sub super___init_called_twice
-    $P0 = newclass 'Foo42'
-    $P1 = subclass $P0, 'Bar42'
-    addattribute $P1, 'i'
-
-    $P2 = $P1.'new'()
-.end
-
-.namespace [ 'Foo42' ]
-
-.sub 'init' :vtable :method
-    $P0 = getattribute self, 'i'
-    isnull $I1, $P0
-    ok( $I1, 'should be null' )
-
-    $P1 = new ['Integer']
-    setattribute self, "i", $P1  # i won't be null if init called again
-    .return ()
-.end
-
-.namespace []   # revert to root for next test
-
-.sub using_class_object_from_typeof_op_with_new
-    $P0 = newclass [ "Monkey" ; "Banana" ]
-    $P0 = $P0.'new'()
-    $S0 = $P0."ook"()
-    is( $S0, "Ook!", 'obj created from .new() class method' )
-
-    $P2 = typeof $P0
-    $P3 = new $P2
-    $S0 = $P3."ook"()
-    is( $S0, "Ook!", 'obj created from "new" called on result of typeof' )
-.end
-
-.namespace [ "Monkey" ; "Banana" ]
-.sub ook :method
-    $S1 = "Ook!"
-    .return ($S1)
-.end
-
-.namespace []   # revert to root for next test
-
-.macro exception_is ( M )
-    .local pmc exception
-    .local string message
-    .get_results (exception)
-
-    message = exception['message']
-    is( message, .M, .M )
-.endm
-
-.sub setting_non_existent_attribute
-    newclass $P1, "Foo45"
-    new $P2, $P1
-
-    new $P3, ['Integer']
-    push_eh handler
-        setattribute $P2, "bar", $P3
-    pop_eh
-    ok(0, "'No such attribute' exception not thrown")
-    goto end
-handler:
-    .exception_is( "No such attribute 'bar'" )
-end:
-.end
-
-.sub setting_non_existent_attribute_by_name
-    newclass $P1, "Foo47"
-    new $P2, $P1
-
-    new $P3, ['Integer']
-    push_eh handler
-        setattribute $P2, ["Foo47"], "no_such", $P3
-    pop_eh
-    ok(0, "'No such attribute' exception not thrown")
-    goto end
-handler:
-    .exception_is( "No such attribute 'no_such' in class 'Foo47'" )
-end:
-.end
-
-.sub getting_null_attribute
-    newclass $P1, "Foo51"
-    addattribute $P1, "i"
-    new $P2, "Foo51"
-
-    getattribute $P3, $P2, "i"
-    isnull $I0, $P3
-    is($I0, 1, "null attribute is null")
-.end
-
-.sub getting_non_existent_attribute
-    newclass $P1, "Foo52"
-    $P2 = $P1.'new'()
-
-    push_eh handler
-        getattribute $P3, $P2, "bar"
-    pop_eh
-    ok(0, "'No such attribute' exception not thrown")
-    goto end
-handler:
-    .exception_is( "No such attribute 'bar'" )
-end:
-.end
-
-.sub addparent_exceptions_1
-    newclass $P0, "Astronomical Object 2"
-    new $P1, ['String']
-    set $P1, "Not a class"
-    push_eh handler
-        addparent $P0, $P1
-    pop_eh
-    ok(0, "'Parent isn\'t a Class' exception not thrown")
-    goto end
-handler:
-    .exception_is( "Parent isn't a Class." )
-end:
-.end
-
-.sub addparent_exceptions_2
-    new $P0, ['Hash']
-    newclass $P1, "Trashcan"
-    push_eh handler
-        addparent $P0, $P1
-    pop_eh
-    ok(0, "'Only classes can be subclassed' exception not thrown")
-    goto end
-handler:
-    .exception_is( "Only classes can be subclassed" )
-end:
-.end
-
-.sub subclassing_a_non_existent_class
-    push_eh handler
-        subclass $P1, "Character", "Nemo"
-    pop_eh
-    ok(0, "nonexistent class exception not thrown")
-    goto end
-handler:
-    .exception_is( "Class 'Character' doesn't exist" )
-end:
-.end
-
-.sub anon_subclass_of_non_existent_class
-    push_eh handler
-        subclass $P1, "Character"
-    pop_eh
-    ok(0, "nonexistent class exception not thrown")
-    goto end
-handler:
-    .exception_is( "Class 'Character' doesn't exist" )
-end:
-.end
-
-.sub addattribute_duplicate
-    newclass $P1, "Foo53"
-    addattribute $P1, "i"
-    addattribute $P1, "j"
-    push_eh handler
-        addattribute $P1, "i"
-    pop_eh
-    ok(0, "attribute already exists exception not thrown")
-    goto end
-handler:
-    .exception_is( "Attribute 'i' already exists in 'Foo53'." )
-end:
-.end
-
-.sub wrong_way_to_create_new_objects
-    push_eh handler
-        new $P0, ['Object']
-    pop_eh
-    ok(0, "object instantiation exception not thrown")
-    goto end
-handler:
-    .exception_is( "Object must be created by a class." )
-end:
-.end
-
-.sub attribute_values__subclassing_access_meths
-    newclass $P1, "Foo54"
-    # must add attributes before object instantiation
-    addattribute $P1, "i"
-    addattribute $P1, "j"
-    # define attrib access functions in Foo54 namespace
-    get_global $P5, "Foo54__set"
-    addmethod $P1, "Foo54__set", $P5
-    get_global $P5, "Foo54__get"
-    addmethod $P1, "Foo54__get", $P5
-
-    subclass $P2, $P1, "Bar54"
-    addattribute $P2, "k"
-    addattribute $P2, "l"
-    get_global $P5, "Bar54__set"
-    addmethod $P2, "Bar54__set", $P5
-    get_global $P5, "Bar54__get"
-    addmethod $P2, "Bar54__get", $P5
-
-    # instantiate a Bar54 object
-    new $P13, "Bar54"
-
-    # Foo54 and Bar54 have attribute accessor methods
-    new $P5, ['String']        # set attribute values
-    set $P5, "i"       # attribute slots have reference semantics
-    set_args "0,0", $P5, "i"
-    callmethodcc $P13, "Foo54__set"
-    get_results ""
-
-    new $P5, ['String']
-    set $P5, "j"
-    set_args "0,0", $P5, "j"
-    callmethodcc  $P13,"Foo54__set"
-    get_results ""
-
-    new $P5, ['String']
-    set $P5, "k"
-    set_args "0,0", $P5, "k"
-    callmethodcc  $P13,"Bar54__set"
-    get_results ""
-
-    new $P5, ['String']
-    set $P5, "l"
-    set_args "0,0", $P5, "l"
-    callmethodcc  $P13,"Bar54__set"
-    get_results ""
-
-    # now retrieve attributes
-    set_args "0",  "i"
-    callmethodcc  $P13,"Foo54__get"
-    get_results "0", $P5
-    is( $P5, "i", 'got attrib i from Bar54->Foo54__get' )
-
-    set_args "0",  "j"
-    callmethodcc  $P13,"Foo54__get"
-    get_results "0", $P5
-    is( $P5, "j", 'got attrib j from Bar54->Foo54__get' )
-
-    set_args "0",  "k"
-    callmethodcc  $P13,"Bar54__get"
-    get_results "0", $P5
-    is( $P5, "k", 'got attrib k from Bar54->Bar54__get' )
-
-    set_args "0",  "l"
-    callmethodcc  $P13,"Bar54__get"
-    get_results "0", $P5
-    is( $P5, "l", 'got attrib l from Bar54->Bar54__get' )
-.end
-
-# set(obj: Pvalue, Iattr_idx)
-.sub Foo54__set
-    get_params "0,0", $P5, $S4
-    ok( 1, "in Foo54__set" )
-    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
-    setattribute $P2, $S4, $P5
-    set_returns ""
-    returncc
-.end
-
-# Pattr = get(obj: Iattr_idx)
-.sub Foo54__get
-    get_params "0", $S4
-    ok( 1, "in Foo54__get" )
-    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
-    getattribute $P5, $P2, $S4
-    set_returns "0", $P5
-    returncc
-.end
-
-.sub Bar54__set
-    get_params "0,0", $P5, $S4
-    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
-    ok( 1, "in Bar54__set" )
-    setattribute $P2, $S4, $P5
-    set_returns ""
-    returncc
-.end
-
-.sub Bar54__get
-    get_params "0", $S4
-    ok( 1, "in Bar54__get" )
-    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
-    getattribute $P5, $P2, $S4
-    set_returns "0", $P5
-    returncc
-.end
-
-.sub attribute_values__inherited_access_meths
-    newclass $P1, "Foo56"
-    # must add attributes before object instantiation
-    addattribute $P1, "i"
-    addattribute $P1, "j"
-    # define attrib access functions
-    get_global $P5, "set"
-    addmethod $P1, "set", $P5
-    get_global $P5, "get"
-    addmethod $P1, "get", $P5
-
-    subclass $P2, $P1, "Bar56"
-    addattribute $P2, "k"
-    addattribute $P2, "l"
-    addattribute $P2, "m"
-
-    # subclass is preferred for the SI case over
-    #   newclass $P2, "Bar56"
-    #   addattrib ...
-    #   addparent $P2, $P1
-    # which is suitable for adding multiple parents to one class
-
-    # instantiate a Bar56 object
-    new $P2, "Bar56"
-
-    # Foo56 and Bar56 have attribute accessor methods
-    new $P5, ['String']        # set attribute values
-    set $P5, "i"       # attribute slots have reference semantics
-    set_args "0,0,0", $P5, "Foo56", "i"
-    callmethodcc $P2, "set"
-
-    new $P5, ['String']
-    set $P5, "j"
-    set_args "0,0,0", $P5, "Foo56", "j"
-    callmethodcc $P2, "set"
-
-    new $P5, ['String']
-    set $P5, "k"
-    set_args "0,0,0", $P5, "Bar56", "k"
-    callmethodcc $P2, "set"
-
-    new $P5, ['String']
-    set $P5, "l"
-    set_args "0,0,0", $P5, "Bar56", "l"
-    callmethodcc $P2, "set"
-
-    new $P5, ['String']
-    set $P5, "m"
-    set_args "0,0,0", $P5, "Bar56", "m"
-    callmethodcc $P2, "set"
-
-    # now retrieve attributes
-    set_args "0,0", "Foo56", "i"
-    callmethodcc $P2, "get"
-    get_results "0", $P5
-    is( $P5, 'i', 'got attrib i from subclass through parent method' )
-
-    set_args "0,0", "Foo56", "j"
-    callmethodcc $P2, "get"
-    get_results "0", $P5
-    is( $P5, "j", 'got attrib i from subclass through parent method' )
-
-    set_args "0,0", "Bar56", "k"
-    callmethodcc $P2, "get"
-    get_results "0", $P5
-    is( $P5, "k", 'got attrib i from subclass through parent method' )
-
-    set_args "0,0", "Bar56", "l"
-    callmethodcc $P2, "get"
-    get_results "0", $P5
-    is( $P5, "l", 'got attrib i from subclass through parent method' )
-
-    set_args "0,0", "Bar56", "m"
-    callmethodcc $P2, "get"
-    get_results "0", $P5
-    is( $P5, "m", 'got attrib i from subclass through parent method' )
-.end
-
-# Foo56 provides accessor functions which Bar56 inherits
-# they take an additional classname argument SClass
-
-# set(obj: Pvalue, SClass, Sattr)
-.sub set
-    get_params "0,0,0", $P5, $S4, $S5
-    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
-    setattribute $P2, $S5, $P5
-    set_returns ""
-    returncc
-.end
-
-# Pattr = get(obj: SClass, Sattr)
-.sub get
-    get_params "0,0", $S4, $S5
-    interpinfo $P2, .INTERPINFO_CURRENT_OBJECT
-    getattribute $P5, $P2, $S5
-    set_returns "0", $P5
-    returncc
-.end
-
-
-# Local Variables:
-#   mode: pir
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/dynop_mapping/t/pmc/orderedhashiterator.t
==============================================================================
--- branches/dynop_mapping/t/pmc/orderedhashiterator.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/orderedhashiterator.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -17,28 +17,101 @@
 
 =cut
 
+.include 'iterator.pasm'
+.include 'except_types.pasm'
+
 .sub 'main'
     .include 'test_more.pir'
 
-    plan(2)
+    plan(6)
+
+    'test_init'()
+    'test_bad_type'()
+    'test_shift'()
+    'test_pop'()
+.end
 
-    # Just test that we can't create OrderedHashIterator directly
-    $I0 = 1
+.sub 'test_init'
+    .local pmc oh, it
+    .local int i, i2
+    # We can't create OrderedHashIterator directly
+    i = 1
     push_eh fail
-    $P0 = new ['OrderedHashIterator']
-    $I0 = 0
+    oh = new ['OrderedHashIterator']
+    i = 0
   fail:
     pop_eh
-    ok($I0, "Can't create OrderedHashIterator directly")
+    ok(i, "Can't create OrderedHashIterator directly")
 
-    $P0 = new ['OrderedHash']
-    $P1 = iter $P0
-    $I0 = isa $P1, 'Iterator'
-    ok($I0, 'OrderedHashIterator has proper type')
+    oh = new ['OrderedHash']
+    it = iter oh
+    sweep 1 # Make sure the mark vtable is covered
+    i = isa it, 'Iterator'
+    i2 = isa it, 'OrderedHashIterator'
+    add i, i2
+    is(i, 2, 'OrderedHashIterator has proper type')
+
+    # elements and get_integer should both return 0
+    i = elements it
+    i2 = it
+    add i, i2
+    is(i, 0, 'iterator for empty OrderedHash has size 0')
+.end
 
+.sub 'test_bad_type'
+    .local pmc oh, it, eh
+    .local int i
+    oh = new ['OrderedHash']
+    it = iter oh
+    i = 1
+    eh = new ['ExceptionHandler']
+    eh.'handle_types'(.EXCEPTION_INVALID_OPERATION)
+    set_addr eh, catch
+    push_eh eh
+    it = 9999 # Let's hope it will never be a valid iteration type
+    i = 0
+  catch:
+    finalize eh
+    pop_eh
+    ok(i, 'invalid iteration type throws')
+.end
 
+.sub 'test_shift'
+    .local pmc oh, it, eh, p
+    .local int i
+    oh = new ['OrderedHash']
+    it = iter oh
+    i = 1
+    eh = new ['ExceptionHandler']
+    eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+    set_addr eh, catch
+    push_eh eh
+    p = shift it
+    i = 0
+  catch:
+    finalize eh
+    pop_eh
+    ok(i, 'shift_pmc in empty OH throws')
 .end
 
+.sub 'test_pop'
+    .local pmc oh, it, eh, p
+    .local int i
+    oh = new ['OrderedHash']
+    it = iter oh
+    it = .ITERATE_FROM_END
+    i = 1
+    eh = new ['ExceptionHandler']
+    eh.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+    set_addr eh, catch
+    push_eh eh
+    p = pop it
+    i = 0
+  catch:
+    finalize eh
+    pop_eh
+    ok(i, 'pop_pmc in empty OH throws')
+.end
 
 # Local Variables:
 #   mode: pir

Modified: branches/dynop_mapping/t/pmc/resizableintegerarray.t
==============================================================================
--- branches/dynop_mapping/t/pmc/resizableintegerarray.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/resizableintegerarray.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -43,7 +43,7 @@
 
 .sub main :main
     .include 'test_more.pir'
-    plan(46)
+    plan(47)
 
     test_does_interfaces()
 
@@ -74,6 +74,7 @@
     test_cant_shift_empty()
     test_iterator()
     test_clone()
+    test_freeze()
 .end
 
 .sub test_does_interfaces
@@ -596,6 +597,17 @@
     is( $I0, 1, 'cloned is equal to original')
 .end
 
+.sub test_freeze
+    .local pmc ria, th
+    .local string s
+    ria = new ['ResizableIntegerArray']
+    push ria, 1
+    push ria, 0x1FFFF
+    s = freeze ria
+    th = thaw s
+    is( ria, th, 'freeze/thaw copy is equal to original' )
+.end
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/dynop_mapping/t/pmc/schedulermessage.t
==============================================================================
--- branches/dynop_mapping/t/pmc/schedulermessage.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/schedulermessage.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 #!./parrot
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -16,10 +16,12 @@
 
 =cut
 
+.include 'except_types.pasm'
+
 .sub main :main
     .include 'test_more.pir'
 
-    plan(7)
+    plan(8)
 
     init_check()
     type_and_id_tests()
@@ -30,6 +32,22 @@
 .sub init_check
     new $P0, ['SchedulerMessage']
     ok(1, 'Instantiated SchedulerMessage PMC')
+
+    .local pmc eh
+    eh = new ['ExceptionHandler']
+    eh.'handle_types'(.EXCEPTION_INVALID_OPERATION)
+    set_addr eh, catch
+    push_eh eh
+    $I0 = 1
+    $P1 = new ['Integer']
+    $P0 = new ['SchedulerMessage'], $P1
+    $I0 = 0
+    goto check
+catch:
+    finalize eh
+check:
+    pop_eh
+    ok($I0, 'initializing with invalid type throws')
 .end
 
 .sub type_and_id_tests
@@ -69,6 +87,10 @@
 
     $P1 = new ['SchedulerMessage'], $P0
 
+    # Make sure the mark vtable function is exercised.
+    null $P0
+    sweep 1
+
     $S0 = $P1
     is($S0, "nine", "hash-initialized message has correct type")
 

Modified: branches/dynop_mapping/t/pmc/sockaddr.t
==============================================================================
--- branches/dynop_mapping/t/pmc/sockaddr.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/sockaddr.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 #!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -19,7 +19,7 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(4)
+    plan(5)
 
     new $P0, ['Socket']
     ok(1, 'Instantiated a Socket PMC')
@@ -30,8 +30,13 @@
     $I0 = isnull $P0
     $I0 = not $I0
     ok($I0, 'Sockaddr PMC created')
+
     $S0 = typeof $P1
     is($S0, 'Sockaddr', 'PMC has correct type')
+
+    $P2 = clone $P1
+    $S2 = typeof $P2
+    is($S2, 'Sockaddr', 'PMC clone has correct type')
 .end
 
 # Local Variables:

Modified: branches/dynop_mapping/t/pmc/stringbuilder.t
==============================================================================
--- branches/dynop_mapping/t/pmc/stringbuilder.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/stringbuilder.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -25,7 +25,7 @@
     test_push_pmc()             # 4 tests
     test_push_string_unicode()  # 1 test
     test_i_concatenate()        # 1 test
-    test_set_string_native()    # 3 tests
+    test_set_string_native()    # 4 tests
     test_set_string_native_with_hash()    # 2 tests
     test_set_pmc()
     test_substr()
@@ -176,6 +176,14 @@
     is( $S0, "foobar", "... with appending string after")
     is( $S99, "foo", "... without touching of original string")
 
+    # Assumed that the previous operations does not reach initial
+    # capacity of the buffer, the next test should cause a
+    # reallocation, ensuring full coverage of the set_string_native
+    # vtable function.
+    $S1 = repeat 'x', 4096
+    sb = $S1
+    $I0 = sb.'get_string_length'()
+    is( $I0, 4096, "... with a big size change")
 .end
 
 .sub 'test_set_string_native_with_hash'

Modified: branches/dynop_mapping/t/pmc/stringhandle.t
==============================================================================
--- branches/dynop_mapping/t/pmc/stringhandle.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/stringhandle.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -7,7 +7,7 @@
 use lib qw( . lib ../lib ../../lib );
 
 use Test::More;
-use Parrot::Test tests => 19;
+use Parrot::Test tests => 25;
 
 =head1 NAME
 
@@ -69,6 +69,48 @@
 ok 7 - $P7.open($S1, $S2) # new file, write mode succeeds
 OUT
 
+pir_output_is( <<'CODE', <<'OUT', 'get_bool' );
+.sub test :main
+    .local pmc sh
+    .local int b
+    sh = new ['StringHandle']
+    b = 0
+    unless sh goto b_false
+    b = 1
+  b_false:
+    say b
+    sh.'open'('mockname', 'w')
+    sh.'print'('Some content')
+    sh.'close'()
+    sh.'open'()
+    b = 0
+    unless sh goto b_true
+    b = 1
+  b_true:
+    say b
+.end
+CODE
+0
+1
+OUT
+
+# StringHandle doesn't use file descriptor, get_fd always return -1
+pir_output_is( <<'CODE', <<'OUT', 'get_fd method' );
+.sub test :main
+    .local pmc sh
+    .local int fd
+    sh = new ['StringHandle']
+    fd = sh.'get_fd'()
+    say fd
+    sh.'open'('mockname', 'r')
+    fd = sh.'get_fd'()
+    say fd
+.end
+CODE
+-1
+-1
+OUT
+
 SKIP: {
     skip 'no asynch calls yet' => 1;
 
@@ -206,6 +248,44 @@
 ok 6 - read string back from file
 OUT
 
+pir_output_is( <<'CODE', <<'OUT', 'puts' );
+.include 'except_types.pasm'
+.sub 'test' :main
+    .local pmc sh, eh
+    .local int result
+    sh = new ['StringHandle']
+    eh = new ['ExceptionHandler']
+    eh.'handle_types'(.EXCEPTION_PIO_ERROR)
+    push_eh eh
+
+    # puts to SH not opened
+    result = 0
+    set_addr eh, handle1
+    sh.'puts'('something')
+    result = 1
+    goto done1
+handle1:
+    finalize eh
+done1:
+    say result
+
+    # puts to SH opened for reading
+    result = 0
+    set_addr eh, handle2
+    sh.'open'('mockname', 'r')
+    sh.'puts'('something')
+    result = 1
+    goto done2
+handle2:
+    finalize eh
+done2:
+    say result
+.end
+CODE
+0
+0
+OUT
+
 # L<PDD22/I\/O PMC API/=item print.*=item readline>
 pir_output_is( <<"CODE", <<'OUT', 'readline - synchronous' );
 .sub 'test' :main
@@ -520,6 +600,25 @@
 ok
 OUTPUT
 
+pir_output_is( <<"CODE", <<"OUTPUT", "readall - stringhandle with null content" );
+.sub main :main
+    .local pmc sh
+    .local string s
+    sh = new ['StringHandle']
+    sh.'open'('mockname', 'r')
+    # Open sets content to an empty string, flush resets is to null
+    # and that is the case we are testing here.
+    # Also, ensures coverage of the flush method.
+    sh.'flush'()
+    s = sh.'readall'()
+    print '['
+    print s
+    say ']'
+.end
+CODE
+[]
+OUTPUT
+
 pir_output_is( <<"CODE", <<"OUTPUT", "readall() - opened stringhandle" );
 .sub main :main
     \$S0 = <<"EOS"
@@ -544,6 +643,39 @@
 ok
 OUTPUT
 
+pir_output_is( <<'CODE', <<"OUTPUT", "is_closed" );
+.sub main
+    .local pmc sh
+    .local int i
+    sh = new ['StringHandle']
+    i = sh.'is_closed'()
+    say i
+    sh.'open'("foo", "w")
+    i = sh.'is_closed'()
+    say i
+.end
+CODE
+1
+0
+OUTPUT
+
+pir_output_is( <<'CODE', <<'OUTPUT', 'StringHandle is not a tty' );
+.sub main
+    .local pmc sh
+    .local int i
+    sh = new ['StringHandle']
+
+    # See TT #1689
+    i = sh.'is_tty'()
+    say i
+    i = sh.'isatty'()
+    say i
+.end
+CODE
+0
+0
+OUTPUT
+
 pir_output_is( <<"CODE", <<"OUTPUT", "readall() - utf8 on closed stringhandle" );
 .sub 'main'
     .local pmc ifh

Modified: branches/dynop_mapping/t/pmc/stringiterator.t
==============================================================================
--- branches/dynop_mapping/t/pmc/stringiterator.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/pmc/stringiterator.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -21,13 +21,50 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(18)
+    plan(24)
 
-    iterate_forward() # 10 tests
+    test_clone()
+    test_elements()
+    iterate_forward() # 11 tests
     iterate_backward() # 8 tests
+    iterate_wrong() # 1 test
+    iterate_out() # 1 test
 
 .end
 
+.sub 'test_clone'
+    .local pmc s, it, itc
+    .local int nit, nitc
+
+    s = new ['String']
+    s = 'somestring'
+    it = iter s
+    # Get a clone and make sure both the original and the clone
+    # gets marked.
+    sweep 1
+    nit = elements it
+    itc = clone it
+    sweep 1
+    nitc = elements itc
+    is(nit, nitc, "clone has same length as original")
+.end
+
+.sub test_elements
+    .local string s
+    .local pmc ps, it
+    .local int ns, nit
+
+    s = 'someotherstring'
+    ps = new ['String']
+    ps = s
+    it = iter ps
+    ns = length s
+    nit = elements it
+    is(ns, nit, "iter elements is equal to string length")
+    nit = it
+    is(ns, nit, "iter get_integer is equal to string length")
+.end
+
 .sub 'iterate_forward'
     .local pmc s, it
 
@@ -47,6 +84,9 @@
     ok(it, "Can shift 1st character")
     is($S0, 'b', "With correct value")
 
+    $S0 = it[0]
+    is($S0, 'a', "can get string keyed int correct value")
+
     $S0 = shift it
     ok(it, "Can shift 2nd character")
     is($S0, 'a', "With correct value")
@@ -96,6 +136,78 @@
     ok($I0, "Shifting from finished iterator throws exception")
 .end
 
+.sub 'iterate_wrong'
+    .local pmc s, it, ex
+    .local int r
+
+    s = new ['String']
+    s = 'BAZ'
+
+    it = iter s
+    push_eh catch_wrong
+    it = 42 # Let's hope we'll never have such direction
+    r = 0
+    goto dotest
+catch_wrong:
+    .get_results(ex)
+    finalize ex
+    pop_eh
+    r = 1
+dotest:
+    ok(r, "Caught wrong direction")
+.end
+
+# out of bounds conditions not covered by previous tests
+.sub 'iterate_out'
+    .local pmc s, it, eh
+    s = new ['String']
+    s = 'hi'
+    it = iter s
+    .local string rs
+    rs = shift it
+    rs = shift it
+    eh = new ['ExceptionHandler']
+    push_eh eh
+
+    # shift string
+    set_addr eh, catch1
+    rs = shift it
+    goto fail
+catch1:
+    finalize eh
+
+    # shift integer
+    set_addr eh, catch2
+    .local int ri
+    ri = shift it
+    goto fail
+catch2:
+    finalize eh
+
+t3:
+    # pop string
+    set_addr eh, catch3
+    .local int ri
+    rs = pop it
+    goto fail
+catch3:
+    finalize eh
+
+    # pop integer
+    set_addr eh, catch4
+    .local int ri
+    ri = pop it
+    goto fail
+catch4:
+    finalize eh
+
+    ok(1, "Caught out of bounds iterations")
+    goto end
+fail:
+    ok(0, "Out of bounds iteration should throw")
+end:
+.end
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/dynop_mapping/t/src/embed.t
==============================================================================
--- branches/dynop_mapping/t/src/embed.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/src/embed.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -8,7 +8,7 @@
 use Test::More;
 use Parrot::Test;
 
-plan tests => 9;
+plan tests => 10;
 
 =head1 NAME
 
@@ -62,21 +62,30 @@
 Done
 OUTPUT
 
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when an opcode is given improper arguments');
-
+my $common = linedirective(__LINE__) . <<'CODE';
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include "parrot/embed.h"
 #include "parrot/extend.h"
 
-void fail(const char *msg);
+static void fail(const char *msg);
+static Parrot_String createstring(Parrot_Interp interp, const char * value);
 
-void fail(const char *msg)
+static void fail(const char *msg)
 {
     fprintf(stderr, "failed: %s\n", msg);
     exit(EXIT_FAILURE);
 }
 
+static Parrot_String createstring(Parrot_Interp interp, const char * value)
+{
+    return Parrot_new_string(interp, value, strlen(value), (const char*)NULL, 0);
+}
+
+CODE
+
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when an opcode is given improper arguments');
 
 int main(int argc, const char **argv)
 {
@@ -88,7 +97,7 @@
     interp = Parrot_new(NULL);
     if (! interp)
         fail("Cannot create parrot interpreter");
-    lang = Parrot_new_string(interp, "PIR", 3, (const char*)NULL, 0);
+    lang = createstring(interp, "PIR");
 
     func_pmc = Parrot_compile_string(interp, lang, ".sub foo\n copy\n.end", &err);
     Parrot_printf(interp, "%Ss\n", err);
@@ -99,21 +108,7 @@
 The opcode 'copy' (copy<0>) was not found. Check the type and number of the arguments
 OUTPUT
 
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when given invalid language string');
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
-    fprintf(stderr, "failed: %s\n", msg);
-    exit(EXIT_FAILURE);
-}
-
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when given invalid language string');
 
 int main(int argc, const char **argv)
 {
@@ -125,7 +120,7 @@
     interp = Parrot_new(NULL);
     if (! interp)
         fail("Cannot create parrot interpreter");
-    lang = Parrot_new_string(interp, "Foo", 3, (const char*)NULL, 0);
+    lang = createstring(interp, "Foo");
 
     func_pmc = Parrot_compile_string(interp, lang, "This doesn't matter", &err);
     Parrot_printf(interp, "%Ss\n", err);
@@ -137,21 +132,7 @@
 OUTPUT
 
 
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when there is an IMCC syntax error', 'todo' => 'TT #1610 : does not properly catch IMCC errors');
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
-    fprintf(stderr, "failed: %s\n", msg);
-    exit(EXIT_FAILURE);
-}
-
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when there is an IMCC syntax error', 'todo' => 'TT #1610 : does not properly catch IMCC errors');
 
 int main(int argc, const char **argv)
 {
@@ -163,7 +144,7 @@
     interp = Parrot_new(NULL);
     if (! interp)
         fail("Cannot create parrot interpreter");
-    lang = Parrot_new_string(interp, "PIR", 3, (const char*)NULL, 0);
+    lang = createstring(interp, "PIR");
 
     func_pmc = Parrot_compile_string(interp, lang, "The sleeper must awake", &err);
     Parrot_printf(interp,"Caught exception\n");
@@ -177,21 +158,7 @@
 OUTPUT
 
 
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from main" );
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
-    fprintf(stderr, "failed: %s\n", msg);
-    exit(EXIT_FAILURE);
-}
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from main" );
 
 int main(void)
 {
@@ -207,7 +174,7 @@
     Parrot_printf(interp, "Hello, parrot\n");
 
     /* Compile and execute a pir sub */
-    compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+    compiler = createstring(interp, "PIR");
     code = Parrot_compile_string(interp, compiler,
 ".sub main :main\n"
 "  say 'Hello, pir'\n"
@@ -226,21 +193,7 @@
 Hello, pir
 OUTPUT
 
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from a sub" );
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
-    fprintf(stderr, "failed: %s\n", msg);
-    exit(EXIT_FAILURE);
-}
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from a sub" );
 
 int main(void)
 {
@@ -260,7 +213,7 @@
         fail("Cannot create parrot interpreter");
 
     /* Compile pir code */
-    compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+    compiler = createstring(interp, "PIR");
     code = Parrot_compile_string(interp, compiler,
 ".sub main :main\n"
 "  say 'Must not be seen!'\n"
@@ -277,10 +230,10 @@
 
     /* Get parrot namespace */
     rootns = Parrot_get_root_namespace(interp);
-    parrotname = Parrot_new_string(interp, "parrot", 6, (const char *)NULL, 0);
+    parrotname = createstring(interp, "parrot");
     parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns,  parrotname);
     /* Get the sub */
-    subname = Parrot_new_string(interp, "hello", 5, (const char *)NULL, 0);
+    subname = createstring(interp, "hello");
     sub = Parrot_PMC_get_pmc_keyed_str(interp, parrotns,  subname);
     /* Execute it */
     Parrot_ext_call(interp, sub, "->");
@@ -292,22 +245,68 @@
 Hello, sub
 OUTPUT
 
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "External sub" );
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "calling a sub with argument and return" );
 
-#include <stdio.h>
-#include <stdlib.h>
+int main(void)
+{
+    Parrot_Interp interp;
+    Parrot_String compiler;
+    Parrot_String errstr;
+    Parrot_PMC code;
+    Parrot_PMC rootns;
+    Parrot_String parrotname;
+    Parrot_PMC parrotns;
+    Parrot_String subname;
+    Parrot_PMC sub;
+    Parrot_String msg;
+    Parrot_String retstr;
 
-#include "parrot/embed.h"
-#include "parrot/extend.h"
+    /* Create the interpreter */
+    interp = Parrot_new(NULL);
+    if (! interp)
+        fail("Cannot create parrot interpreter");
 
-void fail(const char *msg);
-void hello(Parrot_Interp interp);
+    /* Compile pir code */
+    compiler = createstring(interp, "PIR");
+    code = Parrot_compile_string(interp, compiler,
+".sub main :main\n"
+"  say 'Must not be seen!'\n"
+"\n"
+".end\n"
+"\n"
+".sub hello\n"
+"  .param string s\n"
+"  print s\n"
+"  .return('world!')\n"
+"\n"
+".end\n"
+"\n",
+        &errstr
+    );
 
-void fail(const char *msg)
-{
-    fprintf(stderr, "failed: %s\n", msg);
-    exit(EXIT_FAILURE);
+    /* Get parrot namespace */
+    rootns = Parrot_get_root_namespace(interp);
+    parrotname = createstring(interp, "parrot");
+    parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns,  parrotname);
+    /* Get the sub */
+    subname = createstring(interp, "hello");
+    sub = Parrot_PMC_get_pmc_keyed_str(interp, parrotns,  subname);
+
+    /* Execute it */
+    msg = createstring(interp, "Hello, ");
+    Parrot_ext_call(interp, sub, "S->S", msg, &retstr);
+    Parrot_printf(interp, "%Ss\n", retstr);
+
+    Parrot_destroy(interp);
+    return 0;
 }
+CODE
+Hello, world!
+OUTPUT
+
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "External sub" );
+
+void hello(Parrot_Interp interp);
 
 void hello(Parrot_Interp interp)
 {
@@ -328,7 +327,7 @@
         fail("Cannot create parrot interpreter");
 
     /* Compile pir */
-    compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+    compiler = createstring(interp, "PIR");
     code = Parrot_compile_string(interp, compiler,
 ".sub externcall\n"
 "  .param pmc ec\n"
@@ -348,23 +347,10 @@
 Hello from C
 OUTPUT
 
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Insert external sub in namespace" );
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "parrot/embed.h"
-#include "parrot/extend.h"
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Insert external sub in namespace" );
 
-void fail(const char *msg);
 void hello(Parrot_Interp interp);
 
-void fail(const char *msg)
-{
-    fprintf(stderr, "failed: %s\n", msg);
-    exit(EXIT_FAILURE);
-}
-
 void hello(Parrot_Interp interp)
 {
     Parrot_printf(interp, "Hello from C\n");
@@ -389,7 +375,7 @@
         fail("Cannot create parrot interpreter");
 
     /* Compile pir */
-    compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+    compiler = createstring(interp, "PIR");
     code = Parrot_compile_string(interp, compiler,
 ".sub externcall\n"
 "  hello()\n"
@@ -401,10 +387,10 @@
 
     /* Create extern sub and insert in parrot namespace */
     rootns = Parrot_get_root_namespace(interp);
-    parrotname = Parrot_new_string(interp, "parrot", 6, (const char *)NULL, 0);
+    parrotname = createstring(interp, "parrot");
     parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns, parrotname);
     hellosub = Parrot_sub_new_from_c_func(interp, (void (*)())& hello, "vJ");
-    helloname = Parrot_new_string(interp, "hello", 5, (const char *)NULL, 0);
+    helloname = createstring(interp, "hello");
     Parrot_PMC_set_pmc_keyed_str(interp, parrotns, helloname, hellosub);
 
     /* Call it */
@@ -465,7 +451,7 @@
 
     /* locate function to run */
     smain = Parrot_str_new_constant(interp, "main");
-    entry = Parrot_find_global_cur(interp, smain);
+    entry = Parrot_ns_find_current_namespace_global(interp, smain);
 
     /* location of the entry */
     interp->current_cont = new_ret_continuation_pmc(interp, NULL);
@@ -530,7 +516,7 @@
 
     /* locate function to run */
     smain = Parrot_str_new_constant(interp, "main");
-    entry = Parrot_find_global_cur(interp, smain);
+    entry = Parrot_ns_find_current_namespace_global(interp, smain);
 
     /* location of the entry */
     interp->current_cont = new_ret_continuation_pmc(interp, NULL);
@@ -621,7 +607,7 @@
 
     /* locate function to run */
     smain = Parrot_str_new_constant(interp, "main");
-    entry = Parrot_find_global_cur(interp, smain);
+    entry = Parrot_ns_find_current_namespace_global(interp, smain);
 
     /* location of the entry */
     interp->current_cont = new_ret_continuation_pmc(interp, NULL);
@@ -712,7 +698,7 @@
 
     /* locate function to run */
     smain = Parrot_str_new_constant(interp, "main");
-    entry = Parrot_find_global_cur(interp, smain);
+    entry = Parrot_ns_find_current_namespace_global(interp, smain);
 
     /* location of the entry */
     interp->current_cont = new_ret_continuation_pmc(interp, NULL);
@@ -802,7 +788,7 @@
 
     /* locate function to run */
     smain = Parrot_str_new_constant(interp, "main");
-    entry = Parrot_find_global_cur(interp, smain);
+    entry = Parrot_ns_find_current_namespace_global(interp, smain);
 
     /* location of the entry */
     interp->current_cont = new_ret_continuation_pmc(interp, NULL);

Modified: branches/dynop_mapping/t/src/extend.t
==============================================================================
--- branches/dynop_mapping/t/src/extend.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/src/extend.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -382,7 +382,7 @@
     PMC           *sub, *arg;
 
     Parrot_pbc_load(interp, pf);
-    sub = Parrot_find_global_cur(interp, name);
+    sub = Parrot_ns_find_current_namespace_global(interp, name);
     Parrot_ext_call(interp, sub, "->");
     Parrot_eprintf(interp, "back\\n");
 
@@ -390,7 +390,7 @@
     Parrot_io_flush(interp, Parrot_io_STDERR(interp));
 
     name = Parrot_str_new_constant(interp, "_sub2");
-    sub  = Parrot_find_global_cur(interp, name);
+    sub  = Parrot_ns_find_current_namespace_global(interp, name);
     arg  = Parrot_pmc_new(interp, enum_class_String);
 
     Parrot_PMC_set_string_native(interp, arg,
@@ -440,7 +440,7 @@
     PMC           *sub, *arg;
 
     Parrot_pbc_load(interp, pf);
-    sub = Parrot_find_global_cur(interp, name);
+    sub = Parrot_ns_find_current_namespace_global(interp, name);
     Parrot_ext_call(interp, sub, "->");
     Parrot_eprintf(interp, "back\\n");
 
@@ -448,7 +448,7 @@
     Parrot_io_flush(interp, Parrot_io_STDERR(interp));
 
     name = Parrot_str_new_constant(interp, "_sub2");
-    sub  = Parrot_find_global_cur(interp, name);
+    sub  = Parrot_ns_find_current_namespace_global(interp, name);
     arg  = Parrot_pmc_new(interp, enum_class_String);
 
     Parrot_PMC_set_string_native(interp, arg,
@@ -517,7 +517,7 @@
     Parrot_Int     result;
 
     Parrot_pbc_load(interp, pf);
-    sub  = Parrot_find_global_cur(interp, name);
+    sub  = Parrot_ns_find_current_namespace_global(interp, name);
     arg  = Parrot_pmc_new(interp, enum_class_String);
 
     Parrot_PMC_set_string_native(interp, arg,
@@ -584,7 +584,7 @@
     Parrot_runloop jump_point;
 
     Parrot_pbc_load(interp, pf);
-    sub = Parrot_find_global_cur(interp, name);
+    sub = Parrot_ns_find_current_namespace_global(interp, name);
 
     if (setjmp(jump_point.resume)) {
         Parrot_eprintf(interp, "caught\\n");
@@ -714,7 +714,7 @@
     }
 
     foo_name = Parrot_str_new_constant( interp, "foo" );
-    sub      = Parrot_find_global_cur( interp, foo_name );
+    sub      = Parrot_ns_find_current_namespace_global( interp, foo_name );
 
     Parrot_ext_call(interp, sub, "->");
 
@@ -746,7 +746,7 @@
     pf = Parrot_pbc_read( interp, "$temp_pbc", 0 );
     Parrot_pbc_load( interp, pf );
 
-    sub      = Parrot_find_global_cur( interp, Parrot_str_new_constant( interp, "add" ) );
+    sub      = Parrot_ns_find_current_namespace_global( interp, Parrot_str_new_constant( interp, "add" ) );
     Parrot_ext_call(interp, sub, "II->I", 100, 200, &result);
     printf( "Result is %d.\\n", result );
 
@@ -778,7 +778,7 @@
     pf = Parrot_pbc_read( interp, "$temp_pbc", 0 );
     Parrot_pbc_load( interp, pf );
 
-    sub      = Parrot_find_global_cur( interp, Parrot_str_new_constant( interp, "add" ) );
+    sub      = Parrot_ns_find_current_namespace_global( interp, Parrot_str_new_constant( interp, "add" ) );
     Parrot_ext_call( interp, sub, "II->I", 100, 200, &result );
     printf( "Result is %d.\\n", result );
 

Modified: branches/dynop_mapping/t/steps/auto/warnings-01.t
==============================================================================
--- branches/dynop_mapping/t/steps/auto/warnings-01.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/steps/auto/warnings-01.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -5,7 +5,7 @@
 
 use strict;
 use warnings;
-use Test::More qw(no_plan); # tests =>  26;
+use Test::More tests =>  18;
 use Carp;
 use lib qw( lib t/configure/testlib );
 use_ok('config::auto::warnings');

Modified: branches/dynop_mapping/t/steps/gen/opengl-01.t
==============================================================================
--- branches/dynop_mapping/t/steps/gen/opengl-01.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/steps/gen/opengl-01.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -28,6 +28,8 @@
 my $conf = Parrot::Configure::Step::Test->new;
 $conf->include_config_results( $args );
 
+my $real_opengl_status = $conf->data->get('has_opengl');
+
 my ($pkg, $step, $result);
 my $serialized = $conf->pcfreeze();
 
@@ -42,68 +44,78 @@
 ok($result, "runstep() returned true value");
 is($step->result(), q{skipped}, "Got expected result when no 'has_opengl'" );
 
-$conf->replenish($serialized);
-
-########### verbose ###########
-
-($args, $step_list_ref) = process_options( {
-    argv => [ q{--verbose} ],
-    mode => q{configure},
-} );
-
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-{
-    my ($stdout, $stderr);
-    capture(
-        sub { $result = $step->runstep($conf); },
-        \$stdout,
-        \$stderr,
-    );
-    ok($result, "runstep() returned true value");
-    like( $stdout,
-        qr/Checking for OpenGL headers using the following globs/s,
-        "Got expected verbose output"
-    );
-    like( $stdout,
-        qr/Found the following OpenGL headers/s,
-        "Got expected verbose output"
-    );
-    like( $stdout,
-        qr/PASS\s+FAIL\s+IGNORE\s+HEADER/s,
-        "Got expected verbose output"
-    );
-    like( $stdout,
-        qr/unique signatures successfully translated/s,
-        "Got expected verbose output"
-    );
-}
-
-$conf->replenish($serialized);
-
-########### extra verbose ###########
-
-($args, $step_list_ref) = process_options( {
-    argv => [ q{--verbose=3} ],
-    mode => q{configure},
-} );
-
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-{
-    my ($stdout, $stderr);
-    capture(
-        sub { $result = $step->runstep($conf); },
-        \$stdout,
-        \$stderr,
-    );
-    ok($result, "runstep() returned true value");
-    like( $stdout,
-        qr/COUNT\s+NCI SIGNATURE/s,
-        "Got expected verbose output"
-    );
+SKIP: {
+    skip 'opengl not detected',
+    13 unless $real_opengl_status;
+
+    # The complex nature of gen::opengl::runstep() makes it difficult to write
+    # tests that will DTRT when OpenGL is not really present on this machine.
+    # In particular, tests for verbose output will fail when
+    # $real_opengl_status is false.  So we'll SKIP.
+
+    $conf->replenish($serialized);
+
+    ########### verbose ###########
+
+    ($args, $step_list_ref) = process_options( {
+        argv => [ q{--verbose} ],
+        mode => q{configure},
+    } );
+
+    $conf->add_steps($pkg);
+    $conf->options->set( %{$args} );
+    $step = test_step_constructor_and_description($conf);
+    {
+        my ($stdout, $stderr);
+        capture(
+            sub { $result = $step->runstep($conf); },
+            \$stdout,
+            \$stderr,
+        );
+        ok($result, "runstep() returned true value");
+        like( $stdout,
+            qr/Checking for OpenGL headers using the following globs/s,
+            "Got expected verbose output"
+        );
+        like( $stdout,
+            qr/Found the following OpenGL headers/s,
+            "Got expected verbose output"
+        );
+        like( $stdout,
+            qr/PASS\s+FAIL\s+IGNORE\s+HEADER/s,
+            "Got expected verbose output"
+        );
+        like( $stdout,
+            qr/unique signatures successfully translated/s,
+            "Got expected verbose output"
+        );
+    }
+
+    $conf->replenish($serialized);
+
+    ########### extra verbose ###########
+
+    ($args, $step_list_ref) = process_options( {
+        argv => [ q{--verbose=3} ],
+        mode => q{configure},
+    } );
+
+    $conf->add_steps($pkg);
+    $conf->options->set( %{$args} );
+    $step = test_step_constructor_and_description($conf);
+    {
+        my ($stdout, $stderr);
+        capture(
+            sub { $result = $step->runstep($conf); },
+            \$stdout,
+            \$stderr,
+        );
+        ok($result, "runstep() returned true value");
+        like( $stdout,
+            qr/COUNT\s+NCI SIGNATURE/s,
+            "Got expected verbose output"
+        );
+    }
 }
 
 pass("Completed all tests in $0");

Copied: branches/dynop_mapping/t/tools/parrot_config.t (from r47980, trunk/t/tools/parrot_config.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/dynop_mapping/t/tools/parrot_config.t	Sun Jul  4 06:24:50 2010	(r47981, copy of r47980, trunk/t/tools/parrot_config.t)
@@ -0,0 +1,84 @@
+#! perl
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/tools/parrot_config.t - test parrot_config
+
+=head1 SYNOPSIS
+
+    % prove t/tools/parrot_config.t - test parrot_config
+
+=head1 DESCRIPTION
+
+Tests the C<parrot_config> tool.
+
+=cut
+
+use strict;
+use warnings;
+use lib qw(lib);
+
+use Test::More;
+use IO::File ();
+use Parrot::Config;
+use Parrot::Test;
+use File::Spec;
+
+my ($path, $exefile);
+
+BEGIN {
+    $path = File::Spec->catfile( ".", "parrot_config" );
+    $exefile = $path . $PConfig{exe};
+    unless ( -f $exefile ) {
+        plan skip_all => "$exefile hasn't been built yet.";
+        exit(0);
+    }
+    plan tests => 3;
+}
+
+config_output_like(
+    'pmc_names',
+     qr/\bHash\b/,
+     'parrot_config basic sanity'
+);
+
+config_output_like(
+    'non_existant_key',
+     qr/no such key: 'non_existant_key'/,
+     'missing keys'
+);
+
+config_output_like(
+    'slash has_icu',
+    qr/slash \s+ => \s+ '.' \n has_icu \s+ => \s+ '.'/x,
+    'multiple keys'
+);
+
+=head1 HELPER SUBROUTINES
+
+=head2 dump_output_like
+
+    config_output_like($keys, /regexp/, $description);
+
+Runs parrot_config with $keys as the argument and verifies the output.
+
+=cut
+
+sub config_output_like {
+    my ($options, $snippet, $desc)  = @_;
+
+    my $out = `$exefile $options`;
+
+    like( $out, $snippet, $desc );
+
+    return;
+}
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Modified: branches/dynop_mapping/t/tools/pbc_disassemble.t
==============================================================================
--- branches/dynop_mapping/t/tools/pbc_disassemble.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/tools/pbc_disassemble.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -32,7 +32,6 @@
 use lib qw(lib);
 
 use Test::More;
-use IO::File ();
 use Parrot::Config;
 use File::Spec;
 use Parrot::Test;

Modified: branches/dynop_mapping/t/tools/pbc_dump.t
==============================================================================
--- branches/dynop_mapping/t/tools/pbc_dump.t	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/t/tools/pbc_dump.t	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -32,7 +32,6 @@
 use lib qw(lib);
 
 use Test::More;
-use IO::File ();
 use Parrot::Config;
 use Parrot::Test;
 use File::Spec;

Modified: branches/dynop_mapping/tools/dev/fetch_languages.pl
==============================================================================
--- branches/dynop_mapping/tools/dev/fetch_languages.pl	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/tools/dev/fetch_languages.pl	Sun Jul  4 06:24:50 2010	(r47981)
@@ -229,8 +229,8 @@
 
     {
         name       => 'pir',
-        scm        => 'SVN',
-        repository => 'https://svn.parrot.org/languages/pir/trunk'
+        scm        => 'GIT',
+        repository => 'http://github.com/bacek/pir.git'
     },
 
     {

Modified: branches/dynop_mapping/tools/dev/mk_inno.pl
==============================================================================
--- branches/dynop_mapping/tools/dev/mk_inno.pl	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/tools/dev/mk_inno.pl	Sun Jul  4 06:24:50 2010	(r47981)
@@ -34,6 +34,7 @@
 } if ($PConfig{has_icu});
 
 my %dll = (
+    gccversion   => [ 'libgcc_s_sjlj-1.dll' ],
     HAS_GETTEXT  => [ 'libintl3.dll', 'libiconv2.dll' ],
     HAS_PCRE     => [ 'pcre3.dll' ],
     HAS_READLINE => [ 'readline5.dll' ],

Modified: branches/dynop_mapping/tools/dev/mk_manifest_and_skip.pl
==============================================================================
--- branches/dynop_mapping/tools/dev/mk_manifest_and_skip.pl	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/tools/dev/mk_manifest_and_skip.pl	Sun Jul  4 06:24:50 2010	(r47981)
@@ -12,7 +12,6 @@
 
 if (-e '.git') {
     print "Sorry, this script is not compatible with git-svn\n";
-    print "Patches Welcome!\n";
     exit 1;
 }
 

Modified: branches/dynop_mapping/tools/dev/nci_thunk_gen.pir
==============================================================================
--- branches/dynop_mapping/tools/dev/nci_thunk_gen.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/tools/dev/nci_thunk_gen.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -639,7 +639,7 @@
     typedef %s(* func_t)(%s);
     func_t fn_pointer;
     void *orig_func;
-    PMC *       ctx         = CURRENT_CONTEXT(interp);
+    PMC * const ctx         = CURRENT_CONTEXT(interp);
     PMC * const call_object = Parrot_pcc_get_signature(interp, ctx);
     PMC *       ret_object  = PMCNULL;
     %s
@@ -859,7 +859,7 @@
            "sig_char": "S",
            "temp_tmpl": "char *t_%i; STRING *ts_%i",
            "fill_params_tmpl": ", &ts_%i",
-           "preamble_tmpl": "t_%i = ts_%i ? Parrot_str_to_cstring(interp, ts_%i) : (char *)NULL;",
+           "preamble_tmpl": "t_%i = STRING_IS_NULL(ts_%i) ? (char *)NULL : Parrot_str_to_cstring(interp, ts_%i);",
            "postamble_tmpl": "if (t_%i) Parrot_str_free_cstring(t_%i);" },
     "v": { "as_proto": "void",
            "return_type": "void *",
@@ -887,7 +887,7 @@
            "sig_char": "S",
            "fill_params_tmpl": ", &ts_%i",
            "temp_tmpl": "char *t_%i; STRING *ts_%i",
-           "preamble_tmpl": "t_%i = ts_%i ? Parrot_str_to_cstring(interp, ts_%i) : (char *) NULL;",
+           "preamble_tmpl": "t_%i = STRING_IS_NULL(ts_%i) ? (char *) NULL : Parrot_str_to_cstring(interp, ts_%i);",
            "call_param_tmpl": "&t_%i",
            "postamble_tmpl": "if (t_%i) Parrot_str_free_cstring(t_%i);" },
     "2": { "as_proto": "short *",

Modified: branches/dynop_mapping/tools/dev/pprof2cg.pl
==============================================================================
--- branches/dynop_mapping/tools/dev/pprof2cg.pl	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/tools/dev/pprof2cg.pl	Sun Jul  4 06:24:50 2010	(r47981)
@@ -43,7 +43,7 @@
 
 =cut
 
-main(\@ARGV);
+main(@ARGV);
 
 =head1 INTERNAL DATA STRUCTURES
 
@@ -117,9 +117,11 @@
 =cut
 
 sub main {
-    my $argv      = shift;
+    my $filename  = shift;
     my $stats     = {};
-    my $filename  = $argv->[0];
+
+    die "Usage: $0 filename\n"
+        unless defined $filename;
 
     $stats->{global_stats}{total_time} = 0;
 
@@ -129,8 +131,6 @@
 
     close($in_fh) or die "couldn't close $filename: $!";
 
-    #print_stats($stats);
-
     unless ($filename =~ s/pprof/out/) {
         $filename = "$filename.out";
     }

Modified: branches/dynop_mapping/tools/dev/vgp
==============================================================================
--- branches/dynop_mapping/tools/dev/vgp	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/tools/dev/vgp	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,2 +1,2 @@
 #! /bin/sh
-valgrind --suppressions=tools/dev/parrot.supp --num-callers=500 --leak-check=full --leak-resolution=high --show-reachable=yes ./parrot --leak-test $@
+valgrind --suppressions=tools/dev/parrot.supp --num-callers=50 --leak-check=full --leak-resolution=high --show-reachable=yes ./parrot --leak-test $@

Modified: branches/dynop_mapping/tools/util/parrot-config.pir
==============================================================================
--- branches/dynop_mapping/tools/util/parrot-config.pir	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/tools/util/parrot-config.pir	Sun Jul  4 06:24:50 2010	(r47981)
@@ -92,7 +92,7 @@
     .include 'stdio.pasm'
     $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
     $P1.'print'($S0)
-    $P1.'print'(" [ <config-key> | --dump | --help ]\n")
+    $P1.'print'(" [ <config-key> [ <config-key> ... ] | --dump | --help ]\n")
     exit 1
 .end
 

Modified: branches/dynop_mapping/tools/util/release.json
==============================================================================
--- branches/dynop_mapping/tools/util/release.json	Sun Jul  4 04:57:08 2010	(r47980)
+++ branches/dynop_mapping/tools/util/release.json	Sun Jul  4 06:24:50 2010	(r47981)
@@ -1,9 +1,9 @@
 {
-    "release.version"  : "2.4.0",
-    "release.name"     : "Sulfur Crest",
+    "release.version"  : "2.5.0",
+    "release.name"     : "Cheops",
     "release.day"      : "Tuesday",
-    "release.date"     : "18 May 2010",
-    "release.nextdate" : "15 June 2010",
+    "release.date"     : "15 June 2010",
+    "release.nextdate" : "20 July 2010",
 
     "web.root"         : "http://parrot.org/",
     "web.source"       : "download",
@@ -11,13 +11,12 @@
     "web.repository"   : "https://svn.parrot.org/parrot/trunk/",
 
     "bugday.day"       : "Saturday",
-    "bugday.date"      : "12 June 2010",
+    "bugday.date"      : "17 July 2010",
 
     "wiki.root"        : "https://trac.parrot.org/parrot/wiki/",
-    "wiki.bugday"      : "bug_day_2010_06_12",
+    "wiki.bugday"      : "bug_day_2010_07_17",
 
-    "cpan.search"      : "http://search.cpan.org/dist/parrot",
-    "ftp.path"         : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.4.0/",
+    "ftp.path"         : "ftp://ftp.parrot.org/pub/parrot/releases/devel/2.5.0/",
     "subversion.root"  : "http://subversion.apache.org/",
     "svk.root"         : "http://svk.bestpractical.com/"
 }


More information about the parrot-commits mailing list