[svn:parrot] r48719 - in branches/unshared_buffers: . compilers/data_json compilers/imcc compilers/opsc/src/Ops compilers/pct compilers/pct/src/PCT compilers/pge compilers/tge config/auto config/auto/sizes config/auto/zlib config/gen config/gen/makefiles config/gen/platform/ansi config/gen/platform/generic config/gen/platform/win32 docs docs/book/draft docs/book/pct docs/dev docs/pdds docs/project examples/embed examples/languages/abc examples/languages/squaak examples/languages/squaak/doc examples/languages/squaak/src examples/pge examples/tools ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib lib/Parrot lib/Parrot/Configure lib/Parrot/Configure/Step lib/Parrot/Docs/Section ports/cygwin ports/debian runtime/parrot/languages runtime/parrot/library runtime/parrot/library/Math src src/call src/dynoplibs src/gc src/interp src/io src/ops src/packfile src/pmc src/runcore src/string src/string/charset src/string/encoding t/codingstd t/compilers/tge t/dy noplibs t/examples t/native_pbc t/native_pbc/testdata t/oo t/op t/pmc t/pmc/testlib t/src t/steps/auto t/steps/init/hints t/tools tools/build tools/dev tools/release tools/util

darbelo at svn.parrot.org darbelo at svn.parrot.org
Sun Aug 29 17:09:16 UTC 2010


Author: darbelo
Date: Sun Aug 29 17:09:11 2010
New Revision: 48719
URL: https://trac.parrot.org/parrot/changeset/48719

Log:
Sync with trunk.

Added:
   branches/unshared_buffers/config/gen/platform/ansi/pid.c
      - copied unchanged from r48712, trunk/config/gen/platform/ansi/pid.c
   branches/unshared_buffers/config/gen/platform/generic/pid.c
      - copied unchanged from r48712, trunk/config/gen/platform/generic/pid.c
   branches/unshared_buffers/config/gen/platform/win32/pid.c
      - copied unchanged from r48712, trunk/config/gen/platform/win32/pid.c
   branches/unshared_buffers/examples/tools/pgegrep
      - copied unchanged from r48712, trunk/examples/tools/pgegrep
   branches/unshared_buffers/src/packfile/byteorder.h
      - copied unchanged from r48712, trunk/src/packfile/byteorder.h
   branches/unshared_buffers/t/examples/pgegrep.t
      - copied unchanged from r48712, trunk/t/examples/pgegrep.t
   branches/unshared_buffers/t/op/gc-active-buffers.t
      - copied unchanged from r48712, trunk/t/op/gc-active-buffers.t
   branches/unshared_buffers/t/op/gc-leaky-box.t
      - copied unchanged from r48712, trunk/t/op/gc-leaky-box.t
   branches/unshared_buffers/t/op/gc-leaky-call.t
      - copied unchanged from r48712, trunk/t/op/gc-leaky-call.t
   branches/unshared_buffers/t/pmc/testlib/annotations.pir
      - copied unchanged from r48712, trunk/t/pmc/testlib/annotations.pir
   branches/unshared_buffers/t/pmc/testlib/number.pasm
      - copied unchanged from r48712, trunk/t/pmc/testlib/number.pasm
   branches/unshared_buffers/tools/build/README
      - copied unchanged from r48712, trunk/tools/build/README
   branches/unshared_buffers/tools/dev/README
      - copied unchanged from r48712, trunk/tools/dev/README
   branches/unshared_buffers/tools/dev/addopstags.pl
      - copied unchanged from r48712, trunk/tools/dev/addopstags.pl
   branches/unshared_buffers/tools/dev/dump_pbc.pl
      - copied unchanged from r48712, trunk/tools/dev/dump_pbc.pl
   branches/unshared_buffers/tools/dev/headerizer.pl
      - copied unchanged from r48712, trunk/tools/dev/headerizer.pl
   branches/unshared_buffers/tools/dev/mk_language_shell.in
      - copied unchanged from r48712, trunk/tools/dev/mk_language_shell.in
   branches/unshared_buffers/tools/dev/ncidef2pasm.pl
      - copied unchanged from r48712, trunk/tools/dev/ncidef2pasm.pl
   branches/unshared_buffers/tools/dev/parrot-config.pir
      - copied unchanged from r48712, trunk/tools/dev/parrot-config.pir
   branches/unshared_buffers/tools/dev/perlcritic-cage.conf
      - copied unchanged from r48712, trunk/tools/dev/perlcritic-cage.conf
   branches/unshared_buffers/tools/dev/perlcritic.conf
      - copied unchanged from r48712, trunk/tools/dev/perlcritic.conf
   branches/unshared_buffers/tools/dev/perltidy.conf
      - copied unchanged from r48712, trunk/tools/dev/perltidy.conf
   branches/unshared_buffers/tools/dev/update_copyright.pl
      - copied unchanged from r48712, trunk/tools/dev/update_copyright.pl
   branches/unshared_buffers/tools/release/
      - copied from r48712, trunk/tools/release/
Replaced:
   branches/unshared_buffers/tools/release/README
      - copied unchanged from r48712, trunk/tools/release/README
   branches/unshared_buffers/tools/release/crow.pir
      - copied unchanged from r48712, trunk/tools/release/crow.pir
   branches/unshared_buffers/tools/release/gen_release_info.pl
      - copied unchanged from r48712, trunk/tools/release/gen_release_info.pl
   branches/unshared_buffers/tools/release/inc_ver.pir
      - copied unchanged from r48712, trunk/tools/release/inc_ver.pir
   branches/unshared_buffers/tools/release/release.json
      - copied unchanged from r48712, trunk/tools/release/release.json
   branches/unshared_buffers/tools/release/templates.json
      - copied unchanged from r48712, trunk/tools/release/templates.json
Deleted:
   branches/unshared_buffers/src/byteorder.c
   branches/unshared_buffers/src/frame_builder.c
   branches/unshared_buffers/src/frame_builder.h
   branches/unshared_buffers/t/native_pbc/annotations.pbc
   branches/unshared_buffers/t/native_pbc/testdata/annotations.pir
   branches/unshared_buffers/t/op/gc-leaky.t
   branches/unshared_buffers/t/tools/pgegrep.t
   branches/unshared_buffers/tools/build/addopstags.pl
   branches/unshared_buffers/tools/build/headerizer.pl
   branches/unshared_buffers/tools/dev/mk_language_shell.pl
   branches/unshared_buffers/tools/util/
Modified:
   branches/unshared_buffers/   (props changed)
   branches/unshared_buffers/CREDITS
   branches/unshared_buffers/ChangeLog
   branches/unshared_buffers/DEPRECATED.pod
   branches/unshared_buffers/MANIFEST
   branches/unshared_buffers/MANIFEST.SKIP
   branches/unshared_buffers/MANIFEST.generated
   branches/unshared_buffers/NEWS
   branches/unshared_buffers/PBC_COMPAT
   branches/unshared_buffers/README
   branches/unshared_buffers/RESPONSIBLE_PARTIES
   branches/unshared_buffers/VERSION
   branches/unshared_buffers/compilers/data_json/Rules.mak   (props changed)
   branches/unshared_buffers/compilers/imcc/Rules.in   (props changed)
   branches/unshared_buffers/compilers/imcc/imcparser.c
   branches/unshared_buffers/compilers/imcc/imcparser.h
   branches/unshared_buffers/compilers/imcc/parser_util.c
   branches/unshared_buffers/compilers/imcc/pbc.c
   branches/unshared_buffers/compilers/imcc/sets.c
   branches/unshared_buffers/compilers/imcc/sets.h
   branches/unshared_buffers/compilers/opsc/src/Ops/File.pm
   branches/unshared_buffers/compilers/pct/Rules.mak   (props changed)
   branches/unshared_buffers/compilers/pct/src/PCT/HLLCompiler.pir
   branches/unshared_buffers/compilers/pge/Rules.mak   (props changed)
   branches/unshared_buffers/compilers/tge/Rules.mak   (props changed)
   branches/unshared_buffers/config/auto/pmc.pm
   branches/unshared_buffers/config/auto/sizes/intval_maxmin_c.in   (props changed)
   branches/unshared_buffers/config/auto/zlib/   (props changed)
   branches/unshared_buffers/config/gen/makefiles.pm
   branches/unshared_buffers/config/gen/makefiles/root.in
   branches/unshared_buffers/config/gen/platform.pm
   branches/unshared_buffers/docs/book/draft/README   (props changed)
   branches/unshared_buffers/docs/book/draft/appa_glossary.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/appb_patch_submission.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/appc_command_line_options.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/appd_build_options.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/appe_source_code.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/ch01_introduction.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/ch02_getting_started.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/ch07_dynpmcs.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/ch08_dynops.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/ch10_opcode_reference.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/ch11_directive_reference.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/ch12_operator_reference.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/chXX_hlls.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/chXX_library.pod   (props changed)
   branches/unshared_buffers/docs/book/draft/chXX_testing_and_debugging.pod   (props changed)
   branches/unshared_buffers/docs/book/pct/ch01_introduction.pod   (props changed)
   branches/unshared_buffers/docs/book/pct/ch02_getting_started.pod   (props changed)
   branches/unshared_buffers/docs/book/pct/ch03_compiler_tools.pod   (props changed)
   branches/unshared_buffers/docs/book/pct/ch04_pge.pod   (props changed)
   branches/unshared_buffers/docs/book/pct/ch05_nqp.pod   (props changed)
   branches/unshared_buffers/docs/dev/c_functions.pod   (props changed)
   branches/unshared_buffers/docs/embed.pod
   branches/unshared_buffers/docs/parrothist.pod
   branches/unshared_buffers/docs/pdds/pdd30_install.pod   (props changed)
   branches/unshared_buffers/docs/project/release_manager_guide.pod
   branches/unshared_buffers/examples/embed/cotorra.c   (props changed)
   branches/unshared_buffers/examples/languages/abc/   (props changed)
   branches/unshared_buffers/examples/languages/squaak/   (props changed)
   branches/unshared_buffers/examples/languages/squaak/doc/tutorial_episode_1.pod
   branches/unshared_buffers/examples/languages/squaak/src/squaak.pir
   branches/unshared_buffers/examples/pge/demo.pir   (props changed)
   branches/unshared_buffers/ext/nqp-rx/Rules.mak   (props changed)
   branches/unshared_buffers/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/unshared_buffers/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/unshared_buffers/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/unshared_buffers/ext/nqp-rx/src/stage0/Regex-s0.pir
   branches/unshared_buffers/include/parrot/call.h   (contents, props changed)
   branches/unshared_buffers/include/parrot/encoding.h
   branches/unshared_buffers/include/parrot/gc_api.h   (props changed)
   branches/unshared_buffers/include/parrot/hash.h
   branches/unshared_buffers/include/parrot/io.h
   branches/unshared_buffers/include/parrot/oplib/core_ops.h
   branches/unshared_buffers/include/parrot/packfile.h
   branches/unshared_buffers/include/parrot/platform_interface.h
   branches/unshared_buffers/include/parrot/pobj.h
   branches/unshared_buffers/include/parrot/runcore_api.h   (props changed)
   branches/unshared_buffers/include/parrot/runcore_profiling.h   (props changed)
   branches/unshared_buffers/include/parrot/runcore_trace.h   (props changed)
   branches/unshared_buffers/include/parrot/scheduler_private.h
   branches/unshared_buffers/include/parrot/string.h
   branches/unshared_buffers/include/parrot/string_funcs.h
   branches/unshared_buffers/lib/Parrot/Configure/Compiler.pm
   branches/unshared_buffers/lib/Parrot/Configure/Step/Test.pm   (props changed)
   branches/unshared_buffers/lib/Parrot/Docs/Section/Tools.pm
   branches/unshared_buffers/lib/Parrot/H2inc.pm   (props changed)
   branches/unshared_buffers/ports/cygwin/parrot-1.0.0-1.cygport   (props changed)
   branches/unshared_buffers/ports/debian/libparrot-dev.install.in   (props changed)
   branches/unshared_buffers/ports/debian/libparrot.install.in   (props changed)
   branches/unshared_buffers/ports/debian/parrot-doc.install.in   (props changed)
   branches/unshared_buffers/ports/debian/parrot.install.in   (props changed)
   branches/unshared_buffers/ports/debian/rules
   branches/unshared_buffers/runtime/parrot/languages/   (props changed)
   branches/unshared_buffers/runtime/parrot/library/Math/Rand.pir   (props changed)
   branches/unshared_buffers/runtime/parrot/library/Rules.mak   (props changed)
   branches/unshared_buffers/runtime/parrot/library/distutils.pir
   branches/unshared_buffers/src/call/args.c
   branches/unshared_buffers/src/call/context.c
   branches/unshared_buffers/src/call/ops.c   (props changed)
   branches/unshared_buffers/src/call/pcc.c   (props changed)
   branches/unshared_buffers/src/dynext.c
   branches/unshared_buffers/src/dynoplibs/math.ops
   branches/unshared_buffers/src/dynoplibs/trans.ops
   branches/unshared_buffers/src/gc/alloc_memory.c   (props changed)
   branches/unshared_buffers/src/gc/alloc_resources.c   (contents, props changed)
   branches/unshared_buffers/src/gc/api.c   (contents, props changed)
   branches/unshared_buffers/src/gc/gc_ms.c
   branches/unshared_buffers/src/gc/gc_private.h
   branches/unshared_buffers/src/gc/malloc.c   (props changed)
   branches/unshared_buffers/src/gc/malloc_trace.c   (props changed)
   branches/unshared_buffers/src/gc/mark_sweep.c   (contents, props changed)
   branches/unshared_buffers/src/gc/system.c   (props changed)
   branches/unshared_buffers/src/hash.c
   branches/unshared_buffers/src/interp/inter_cb.c   (props changed)
   branches/unshared_buffers/src/interp/inter_create.c   (props changed)
   branches/unshared_buffers/src/interp/inter_misc.c   (props changed)
   branches/unshared_buffers/src/io/socket_api.c
   branches/unshared_buffers/src/io/utf8.c
   branches/unshared_buffers/src/ops/core_ops.c
   branches/unshared_buffers/src/ops/set.ops
   branches/unshared_buffers/src/ops/var.ops
   branches/unshared_buffers/src/packfile.c
   branches/unshared_buffers/src/packfile/pf_items.c
   branches/unshared_buffers/src/packout.c
   branches/unshared_buffers/src/pmc.c
   branches/unshared_buffers/src/pmc/addrregistry.pmc
   branches/unshared_buffers/src/pmc/bigint.pmc
   branches/unshared_buffers/src/pmc/callcontext.pmc
   branches/unshared_buffers/src/pmc/capture.pmc
   branches/unshared_buffers/src/pmc/class.pmc
   branches/unshared_buffers/src/pmc/eval.pmc
   branches/unshared_buffers/src/pmc/exception.pmc
   branches/unshared_buffers/src/pmc/filehandle.pmc
   branches/unshared_buffers/src/pmc/float.pmc
   branches/unshared_buffers/src/pmc/hash.pmc
   branches/unshared_buffers/src/pmc/hashiterator.pmc
   branches/unshared_buffers/src/pmc/imageio.pmc
   branches/unshared_buffers/src/pmc/imageiosize.pmc
   branches/unshared_buffers/src/pmc/imageiostrings.pmc
   branches/unshared_buffers/src/pmc/integer.pmc
   branches/unshared_buffers/src/pmc/lexinfo.pmc
   branches/unshared_buffers/src/pmc/namespace.pmc
   branches/unshared_buffers/src/pmc/nci.pmc
   branches/unshared_buffers/src/pmc/null.pmc
   branches/unshared_buffers/src/pmc/object.pmc
   branches/unshared_buffers/src/pmc/parrotinterpreter.pmc
   branches/unshared_buffers/src/pmc/parrotlibrary.pmc
   branches/unshared_buffers/src/pmc/stringbuilder.pmc
   branches/unshared_buffers/src/pmc/stringiterator.pmc
   branches/unshared_buffers/src/runcore/cores.c   (contents, props changed)
   branches/unshared_buffers/src/runcore/main.c   (contents, props changed)
   branches/unshared_buffers/src/runcore/profiling.c   (props changed)
   branches/unshared_buffers/src/runcore/trace.c   (contents, props changed)
   branches/unshared_buffers/src/scheduler.c
   branches/unshared_buffers/src/string/api.c
   branches/unshared_buffers/src/string/charset/ascii.c
   branches/unshared_buffers/src/string/charset/iso-8859-1.c
   branches/unshared_buffers/src/string/charset/unicode.c
   branches/unshared_buffers/src/string/encoding/fixed_8.c
   branches/unshared_buffers/src/string/encoding/ucs2.c
   branches/unshared_buffers/src/string/encoding/ucs4.c
   branches/unshared_buffers/src/string/encoding/utf16.c
   branches/unshared_buffers/src/string/encoding/utf8.c
   branches/unshared_buffers/src/string/primitives.c
   branches/unshared_buffers/t/codingstd/c_macro_args.t
   branches/unshared_buffers/t/codingstd/c_operator.t
   branches/unshared_buffers/t/codingstd/perlcritic.t
   branches/unshared_buffers/t/codingstd/pir_code_coda.t
   branches/unshared_buffers/t/codingstd/pmc_docs.t   (contents, props changed)
   branches/unshared_buffers/t/compilers/tge/NoneGrammar.tg   (props changed)
   branches/unshared_buffers/t/dynoplibs/trans-infnan.t
   branches/unshared_buffers/t/dynoplibs/trans.t
   branches/unshared_buffers/t/native_pbc/integer.pbc
   branches/unshared_buffers/t/native_pbc/number.pbc
   branches/unshared_buffers/t/native_pbc/string.pbc
   branches/unshared_buffers/t/oo/isa.t
   branches/unshared_buffers/t/oo/objects.t   (props changed)
   branches/unshared_buffers/t/oo/root_new.t   (props changed)
   branches/unshared_buffers/t/op/string.t
   branches/unshared_buffers/t/pmc/exception.t
   branches/unshared_buffers/t/pmc/exceptionhandler.t
   branches/unshared_buffers/t/pmc/float.t
   branches/unshared_buffers/t/pmc/hash.t
   branches/unshared_buffers/t/pmc/lexinfo.t
   branches/unshared_buffers/t/pmc/namespace-old.t   (props changed)
   branches/unshared_buffers/t/pmc/packfile.t
   branches/unshared_buffers/t/pmc/packfileannotations.t
   branches/unshared_buffers/t/pmc/packfileconstanttable.t
   branches/unshared_buffers/t/pmc/packfiledirectory.t
   branches/unshared_buffers/t/pmc/packfilefixupentry.t
   branches/unshared_buffers/t/pmc/packfilefixuptable.t
   branches/unshared_buffers/t/pmc/packfilerawsegment.t
   branches/unshared_buffers/t/pmc/testlib/   (props changed)
   branches/unshared_buffers/t/pmc/testlib/packfile_common.pir
   branches/unshared_buffers/t/pmc/timer.t
   branches/unshared_buffers/t/src/embed.t   (props changed)
   branches/unshared_buffers/t/steps/auto/pmc-01.t
   branches/unshared_buffers/t/steps/init/hints/linux-01.t   (props changed)
   branches/unshared_buffers/t/tools/dump_pbc.t
   branches/unshared_buffers/tools/build/h2inc.pl   (props changed)
   branches/unshared_buffers/tools/dev/   (props changed)
   branches/unshared_buffers/tools/dev/as2c.pl   (contents, props changed)
   branches/unshared_buffers/tools/dev/faces.pl
   branches/unshared_buffers/tools/dev/fetch_languages.pl   (contents, props changed)
   branches/unshared_buffers/tools/dev/mk_gitignore.pl   (props changed)
   branches/unshared_buffers/tools/dev/mk_native_pbc
   branches/unshared_buffers/tools/dev/pbc_to_exe.pir

Modified: branches/unshared_buffers/CREDITS
==============================================================================
--- branches/unshared_buffers/CREDITS	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/CREDITS	Sun Aug 29 17:09:11 2010	(r48719)
@@ -773,6 +773,11 @@
 N: Nick Kostirya
 D: Win32, FreeBSD build fixes
 
+N: Nick Wellnhofer
+D: String iterator rewrite, GC fixes
+E: wellnhofer at aevum.de
+U: nwellnhof
+
 N: Nikolay Ananiev
 D: Win32 build fix
 

Modified: branches/unshared_buffers/ChangeLog
==============================================================================
--- branches/unshared_buffers/ChangeLog	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/ChangeLog	Sun Aug 29 17:09:11 2010	(r48719)
@@ -1,5 +1,9 @@
 #1 $Id$
 
+2010.08.17     mikehh
+    * Released 2.7.0
+    See NEWS for more.
+
 2010.07.10     coke
 	* Released 2.6.0
 	See NEWS for more.

Modified: branches/unshared_buffers/DEPRECATED.pod
==============================================================================
--- branches/unshared_buffers/DEPRECATED.pod	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/DEPRECATED.pod	Sun Aug 29 17:09:11 2010	(r48719)
@@ -147,6 +147,12 @@
 
 L<https://trac.parrot.org/parrot/ticket/1689>
 
+=item Method getpid on ParrotInterpreter [experimental]
+
+Used to test the experimental function Parrot_getpid
+
+L<https://trac.parrot.org/parrot/ticket/1564>
+
 =back
 
 =head1 Opcodes
@@ -383,6 +389,12 @@
 
 L<https://trac.parrot.org/parrot/ticket/1191>
 
+=item Parrot_getpid [experimental]
+
+Get process id, experimental.
+
+L<https://trac.parrot.org/parrot/ticket/1564>
+
 =back
 
 =head1 Compiler tools

Modified: branches/unshared_buffers/MANIFEST
==============================================================================
--- branches/unshared_buffers/MANIFEST	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/MANIFEST	Sun Aug 29 17:09:11 2010	(r48719)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Sun Aug  8 16:31:42 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sat Aug 28 02:23:15 2010 UT
 #
 # See below for documentation on the format of this file.
 #
@@ -275,6 +275,7 @@
 config/gen/platform/ansi/dl.c                               []
 config/gen/platform/ansi/exec.c                             []
 config/gen/platform/ansi/io.h                               []
+config/gen/platform/ansi/pid.c                              []
 config/gen/platform/ansi/time.c                             []
 config/gen/platform/cygwin/math.c                           []
 config/gen/platform/darwin/begin.c                          []
@@ -289,6 +290,7 @@
 config/gen/platform/generic/math.c                          []
 config/gen/platform/generic/math.h                          []
 config/gen/platform/generic/memexec.c                       []
+config/gen/platform/generic/pid.c                           []
 config/gen/platform/generic/platform_limits.h               []
 config/gen/platform/generic/signal.c                        []
 config/gen/platform/generic/signal.h                        []
@@ -313,6 +315,7 @@
 config/gen/platform/win32/io.h                              []
 config/gen/platform/win32/misc.c                            []
 config/gen/platform/win32/misc.h                            []
+config/gen/platform/win32/pid.c                             []
 config/gen/platform/win32/signal.c                          []
 config/gen/platform/win32/signal.h                          []
 config/gen/platform/win32/stat.c                            []
@@ -821,6 +824,7 @@
 examples/tge/branch/transform.pir                           [examples]
 examples/tools/Makefile                                     [examples]
 examples/tools/pbc_checker.cpp                              [examples]
+examples/tools/pgegrep                                      [examples]
 examples/tutorial/00_README.pod                             [examples]
 examples/tutorial/01_temp_var.pir                           [examples]
 examples/tutorial/02_local_var.pir                          [examples]
@@ -1242,7 +1246,6 @@
 runtime/parrot/library/yaml_dumper.pir                      [library]
 src/atomic/gcc_x86.c                                        []
 src/atomic/sparc_v9.s                                       []
-src/byteorder.c                                             []
 src/call/args.c                                             []
 src/call/context.c                                          []
 src/call/context_accessors.c                                []
@@ -1281,8 +1284,6 @@
 src/exceptions.c                                            []
 src/exit.c                                                  []
 src/extend.c                                                []
-src/frame_builder.c                                         []
-src/frame_builder.h                                         []
 src/gc/alloc_memory.c                                       []
 src/gc/alloc_resources.c                                    []
 src/gc/api.c                                                []
@@ -1342,6 +1343,7 @@
 src/ops/var.ops                                             []
 src/packdump.c                                              []
 src/packfile.c                                              []
+src/packfile/byteorder.h                                    []
 src/packfile/pf_items.c                                     []
 src/packout.c                                               []
 src/parrot_debugger.c                                       []
@@ -1687,6 +1689,7 @@
 t/examples/namespace.t                                      [test]
 t/examples/pasm.t                                           [test]
 t/examples/past.t                                           [test]
+t/examples/pgegrep.t                                        [test]
 t/examples/pir.t                                            [test]
 t/examples/pod.t                                            [test]
 t/examples/shootout.t                                       [test]
@@ -1737,7 +1740,6 @@
 t/manifest/04-alt_file.t                                    [test]
 t/manifest/05-alt_skip.t                                    [test]
 t/manifest/README                                           []doc
-t/native_pbc/annotations.pbc                                [test]
 t/native_pbc/header.t                                       [test]
 t/native_pbc/integer.pbc                                    [test]
 t/native_pbc/integer.t                                      [test]
@@ -1766,7 +1768,6 @@
 t/native_pbc/string_6.pbc                                   [test]
 t/native_pbc/string_7.pbc                                   [test]
 t/native_pbc/testdata/README                                []doc
-t/native_pbc/testdata/annotations.pir                       [test]
 t/native_pbc/testdata/number.pasm                           [test]
 t/native_pbc/testdata/string.pasm                           [test]
 t/oo/attributes.t                                           [test]
@@ -1805,7 +1806,9 @@
 t/op/exceptions.t                                           [test]
 t/op/exit.t                                                 [test]
 t/op/fetch.t                                                [test]
-t/op/gc-leaky.t                                             [test]
+t/op/gc-active-buffers.t                                    [test]
+t/op/gc-leaky-box.t                                         [test]
+t/op/gc-leaky-call.t                                        [test]
 t/op/gc.t                                                   [test]
 t/op/globals.t                                              [test]
 t/op/ifunless.t                                             [test]
@@ -1948,6 +1951,8 @@
 t/pmc/sub.t                                                 [test]
 t/pmc/sys.t                                                 [test]
 t/pmc/task.t                                                [test]
+t/pmc/testlib/annotations.pir                               [test]
+t/pmc/testlib/number.pasm                                   [test]
 t/pmc/testlib/packfile_common.pir                           [test]
 t/pmc/threads.t                                             [test]
 t/pmc/timer.t                                               [test]
@@ -2078,7 +2083,6 @@
 t/tools/pbc_disassemble.t                                   [test]
 t/tools/pbc_dump.t                                          [test]
 t/tools/pbc_merge.t                                         [test]
-t/tools/pgegrep.t                                           [test]
 t/tools/pmc2cutils/01-pmc2cutils.t                          [test]
 t/tools/pmc2cutils/02-find_file.t                           [test]
 t/tools/pmc2cutils/03-dump_vtable.t                         [test]
@@ -2087,11 +2091,10 @@
 t/tools/pmc2cutils/08-pmc-pm.t                              [test]
 t/tools/pmc2cutils/README                                   []doc
 t/tools/testdata                                            [test]
-tools/build/addopstags.pl                                   []
+tools/build/README                                          []doc
 tools/build/c2str.pl                                        []
 tools/build/fixup_gen_file.pl                               []
 tools/build/h2inc.pl                                        []
-tools/build/headerizer.pl                                   []
 tools/build/ops2c.pl                                        [devel]
 tools/build/parrot_config_c.pl                              []
 tools/build/pbcversion_h.pl                                 []
@@ -2099,18 +2102,22 @@
 tools/build/vtable_extend.pl                                []
 tools/build/vtable_h.pl                                     []
 tools/dev/.gdbinit                                          []
+tools/dev/README                                            []doc
+tools/dev/addopstags.pl                                     []
 tools/dev/as2c.pl                                           []
 tools/dev/bench_op.pir                                      []
 tools/dev/branch_status.pl                                  []
 tools/dev/checkdepend.pl                                    []
 tools/dev/create_language.pl                                [devel]
 tools/dev/debian_docs.sh                                    []
+tools/dev/dump_pbc.pl                                       []
 tools/dev/faces.pl                                          []
 tools/dev/fetch_languages.pl                                []
 tools/dev/gen_charset_tables.pl                             []
 tools/dev/gen_class.pl                                      []
 tools/dev/gen_makefile.pl                                   [devel]
 tools/dev/gen_valgrind_suppressions.pl                      []
+tools/dev/headerizer.pl                                     []
 tools/dev/install_dev_files.pl                              []
 tools/dev/install_doc_files.pl                              []
 tools/dev/install_files.pl                                  []
@@ -2120,7 +2127,7 @@
 tools/dev/mk_gitignore.pl                                   []
 tools/dev/mk_inno.pl                                        []
 tools/dev/mk_inno_language.pl                               []
-tools/dev/mk_language_shell.pl                              [devel]
+tools/dev/mk_language_shell.in                              []
 tools/dev/mk_manifest_and_skip.pl                           []
 tools/dev/mk_native_pbc                                     []
 tools/dev/mk_nci_thunks.pl                                  []
@@ -2128,9 +2135,11 @@
 tools/dev/mk_rpm_manifests.pl                               []
 tools/dev/nci_test_gen.pl                                   []
 tools/dev/nci_thunk_gen.pir                                 []
+tools/dev/ncidef2pasm.pl                                    []
 tools/dev/nm.pl                                             []
 tools/dev/nopaste.pl                                        []
 tools/dev/ops_not_tested.pl                                 []
+tools/dev/parrot-config.pir                                 []
 tools/dev/parrot-fuzzer                                     []
 tools/dev/parrot.supp                                       []
 tools/dev/parrot_api.pl                                     []
@@ -2139,6 +2148,9 @@
 tools/dev/parrotbench.pl                                    []
 tools/dev/pbc_header.pl                                     []
 tools/dev/pbc_to_exe.pir                                    [devel]
+tools/dev/perlcritic-cage.conf                              []
+tools/dev/perlcritic.conf                                   []
+tools/dev/perltidy.conf                                     []
 tools/dev/pmcrenumber.pl                                    []
 tools/dev/pmctree.pl                                        []
 tools/dev/pprof2cg.pl                                       [devel]
@@ -2146,6 +2158,7 @@
 tools/dev/search-ops.pl                                     []
 tools/dev/svnclobber.pl                                     []
 tools/dev/symlink.pl                                        []
+tools/dev/update_copyright.pl                               []
 tools/dev/vgp                                               []
 tools/dev/vgp_darwin                                        []
 tools/dev/vms-patch                                         []
@@ -2156,19 +2169,12 @@
 tools/docs/write_docs.pl                                    []
 tools/install/smoke.pl                                      []
 tools/install/smoke_languages.pl                            []
-tools/util/crow.pir                                         []
-tools/util/dump_pbc.pl                                      []
-tools/util/gen_release_info.pl                              []
-tools/util/inc_ver.pir                                      []
-tools/util/ncidef2pasm.pl                                   []
-tools/util/parrot-config.pir                                []
-tools/util/perlcritic-cage.conf                             []
-tools/util/perlcritic.conf                                  []
-tools/util/perltidy.conf                                    []
-tools/util/pgegrep                                          []
-tools/util/release.json                                     []
-tools/util/templates.json                                   []
-tools/util/update_copyright.pl                              []
+tools/release/README                                        []doc
+tools/release/crow.pir                                      []
+tools/release/gen_release_info.pl                           []
+tools/release/inc_ver.pir                                   []
+tools/release/release.json                                  []
+tools/release/templates.json                                []
 # Local variables:
 #   mode: text
 #   buffer-read-only: t

Modified: branches/unshared_buffers/MANIFEST.SKIP
==============================================================================
--- branches/unshared_buffers/MANIFEST.SKIP	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/MANIFEST.SKIP	Sun Aug 29 17:09:11 2010	(r48719)
@@ -1,6 +1,6 @@
 # ex: set ro:
 # $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Thu Jun 24 14:06:33 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu Aug 26 10:22:02 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -1046,6 +1046,9 @@
 ^t/pmc/.*\.pir/
 ^t/pmc/.*_pbcexe.*$
 ^t/pmc/.*_pbcexe.*/
+# generated from svn:ignore of 't/pmc/testlib/'
+^t/pmc/testlib/.*\.pbc$
+^t/pmc/testlib/.*\.pbc/
 # generated from svn:ignore of 't/src/'
 ^t/src/.*_.*$
 ^t/src/.*_.*/
@@ -1077,6 +1080,9 @@
 ^t/tools/pmc2c\..*\.h/
 ^t/tools/pmc2c\..*\.pmc$
 ^t/tools/pmc2c\..*\.pmc/
+# generated from svn:ignore of 'tools/dev/'
+^tools/dev/mk_language_shell\.pl$
+^tools/dev/mk_language_shell\.pl/
 # Local variables:
 #   mode: text
 #   buffer-read-only: t

Modified: branches/unshared_buffers/MANIFEST.generated
==============================================================================
--- branches/unshared_buffers/MANIFEST.generated	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/MANIFEST.generated	Sun Aug 29 17:09:11 2010	(r48719)
@@ -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.6.0.dylib                   [main]lib
+blib/lib/libparrot.2.7.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.6.0                      [main]lib
+blib/lib/libparrot.so.2.7.0                      [main]lib
 compilers/data_json/data_json.pbc                [data_json]
 config/gen/call_list/opengl.in                   []
 docs/ops/bit.pod                                 [doc]
@@ -419,4 +419,5 @@
 src/pmc/unmanagedstruct.dump                     [devel]src
 src/string_private_cstring.h                     []
 tools/build/dynpmc.pl                            []
+tools/dev/mk_language_shell.pl                   [devel]
 vtable.dump                                      [devel]src

Modified: branches/unshared_buffers/NEWS
==============================================================================
--- branches/unshared_buffers/NEWS	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/NEWS	Sun Aug 29 17:09:11 2010	(r48719)
@@ -1,11 +1,28 @@
 # $Id$
 
+New in 2.7.0
+- Core
+  + cleanups in packfile and freeze/thaw handling
+  + Hash optimizations that improve HLL startup and run time
+  + As always, many bug fixes and other optimizations
+- Runtime
+  + some runtime library cleanups
+- Testing
+  + added more tests to improve coverage
+  + new codingstd test for documentation in .pmc files
+- Documentation
+  + added documentation to .pmc files (some still missing but headers in place)
+  + general documentation improvements and bringing up-to-date
+- NQP-rx
+  + Updated version included from http://github.com/perl6/nqp-rx includes
+    speed improvements
+
 New in 2.6.0
 - Core
   + Plug some memory leaks
   + As always, bug fixes and some optimizations
 - Runtime
-  + added (experimental) URI::Escape 
+  + added (experimental) URI::Escape
 - Testing
   + Improved test coverage of core parrot
 - Documentation
@@ -13,7 +30,7 @@
 - Platforms
   + The Fedora package 'parrot-devel' install the files for syntax-highlighting
     and automatic indenting for the vim editor
-- NQP-rx 
+- NQP-rx
   + Updated version included from http://github.com/perl6/nqp-rx includes
     new or improved: regex backtracking, named assertions, interactive mode,
     and setting (a minimal but useful runtime library)

Modified: branches/unshared_buffers/PBC_COMPAT
==============================================================================
--- branches/unshared_buffers/PBC_COMPAT	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/PBC_COMPAT	Sun Aug 29 17:09:11 2010	(r48719)
@@ -28,6 +28,7 @@
 
 # please insert tab separated entries at the top of the list
 
+8.2	2010.08.19	cotto	minor version bump for 2.7.0
 8.1	2010.08.10	plobsing	merge dynop_mapping branch
 8.0	2010.07.20	coke	released 2.6.0
 7.0	2010.04.20	gerd	released 2.3.0 (version # added ex post facto, as all previous version #s were published)

Modified: branches/unshared_buffers/README
==============================================================================
--- branches/unshared_buffers/README	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/README	Sun Aug 29 17:09:11 2010	(r48719)
@@ -1,4 +1,4 @@
-This is Parrot, version 2.6.0
+This is Parrot, version 2.7.0
 ------------------------------
 
 Parrot is Copyright (C) 2001-2010, Parrot Foundation.
@@ -11,6 +11,11 @@
 This code is distributed under the terms of the Artistic License 2.0.
 For more details, see the full text of the license in the file LICENSE.
 
+OVERVIEW
+--------
+Parrot is a virtual machine designed to efficiently compile and execute
+bytecode for dynamic languages.
+
 PREREQUISITES
 -------------
 

Modified: branches/unshared_buffers/RESPONSIBLE_PARTIES
==============================================================================
--- branches/unshared_buffers/RESPONSIBLE_PARTIES	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/RESPONSIBLE_PARTIES	Sun Aug 29 17:09:11 2010	(r48719)
@@ -28,6 +28,7 @@
                                 Christoph Otto
                                 Jonathan Leto
                                 Gerd Pokorra
+                                Michael Hind
 
 Metacommitter                   Allison Randal
                                 Jerry Gay
@@ -87,5 +88,6 @@
                                 Francois Perrad
                                 Mark Glines
                                 Bruce Gray
+                                Michael Hind
 
 General Contributor             See CREDITS

Modified: branches/unshared_buffers/VERSION
==============================================================================
--- branches/unshared_buffers/VERSION	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/VERSION	Sun Aug 29 17:09:11 2010	(r48719)
@@ -1 +1 @@
-2.6.0
+2.7.0

Modified: branches/unshared_buffers/compilers/imcc/imcparser.c
==============================================================================
--- branches/unshared_buffers/compilers/imcc/imcparser.c	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/compilers/imcc/imcparser.c	Sun Aug 29 17:09:11 2010	(r48719)
@@ -9,13 +9,12 @@
  */
 /* HEADERIZER HFILE: none */
 /* HEADERIZER STOP */
-
-/* A Bison parser, made by GNU Bison 2.4.1.  */
+/* A Bison parser, made by GNU Bison 2.4.2.  */
 
 /* Skeleton implementation for Bison's Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
+   Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -57,7 +56,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.4.1"
+#define YYBISON_VERSION "2.4.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -1151,7 +1150,7 @@
 
 
 /* Line 189 of yacc.c  */
-#line 1144 "compilers/imcc/imcparser.c"
+#line 1143 "compilers/imcc/imcparser.c"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -1435,7 +1434,7 @@
 
 
 /* Line 214 of yacc.c  */
-#line 1428 "compilers/imcc/imcparser.c"
+#line 1427 "compilers/imcc/imcparser.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1447,7 +1446,7 @@
 
 
 /* Line 264 of yacc.c  */
-#line 1440 "compilers/imcc/imcparser.c"
+#line 1439 "compilers/imcc/imcparser.c"
 
 #ifdef short
 # undef short
@@ -1497,7 +1496,7 @@
 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -2444,9 +2443,18 @@
 
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
+   Once GCC version 2 has supplanted version 1, this can go.  However,
+   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
+   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+   discussed.  */
 
 #define YYFAIL		goto yyerrlab
+#if defined YYFAIL
+  /* This is here to suppress warnings from the GCC cpp's
+     -Wunused-macros.  Normally we don't worry about that warning, but
+     some users do, and we want to make it easy for users to remove
+     YYFAIL uses, which will produce warnings from Bison 2.5.  */
+#endif
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
@@ -2503,7 +2511,7 @@
    we won't break user code: when these are the locations we know.  */
 
 #ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
 #  define YY_LOCATION_PRINT(File, Loc)			\
      fprintf (File, "%d.%d-%d.%d",			\
 	      (Loc).first_line, (Loc).first_column,	\
@@ -3254,28 +3262,28 @@
     {
         case 2:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1166 "compilers/imcc/imcc.y"
     { if (yynerrs) YYABORT; (yyval.i) = 0; }
     break;
 
   case 5:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1175 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 6:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1176 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 7:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1178 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
@@ -3286,7 +3294,7 @@
 
   case 8:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1184 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
@@ -3297,42 +3305,42 @@
 
   case 9:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1189 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 10:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1190 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 11:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1191 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 12:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1192 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 13:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1196 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 14:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1198 "compilers/imcc/imcc.y"
     {
            (yyval.i) = 0;
@@ -3343,7 +3351,7 @@
 
   case 15:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1207 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
@@ -3354,7 +3362,7 @@
 
   case 16:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1213 "compilers/imcc/imcc.y"
     {
            /* set_filename() frees the STRINGC */
@@ -3364,7 +3372,7 @@
 
   case 17:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1221 "compilers/imcc/imcc.y"
     {
           /* We'll want to store an entry while emitting instructions, so just
@@ -3377,7 +3385,7 @@
 
   case 18:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1233 "compilers/imcc/imcc.y"
     {
             STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
@@ -3392,14 +3400,14 @@
 
   case 19:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1245 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 20:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1246 "compilers/imcc/imcc.y"
     {
              mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
@@ -3410,14 +3418,14 @@
 
   case 21:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1254 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 22:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1255 "compilers/imcc/imcc.y"
     {
            (yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
@@ -3428,14 +3436,14 @@
 
   case 23:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1261 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 24:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1262 "compilers/imcc/imcc.y"
     {
            (yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
@@ -3447,49 +3455,49 @@
 
   case 29:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1280 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 30:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1281 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 31:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1282 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 32:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1283 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 33:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1284 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 36:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1289 "compilers/imcc/imcc.y"
     { clear_state(interp); }
     break;
 
   case 37:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1291 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
@@ -3501,7 +3509,7 @@
 
   case 38:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1298 "compilers/imcc/imcc.y"
     {
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3511,7 +3519,7 @@
 
   case 39:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1303 "compilers/imcc/imcc.y"
     {
            (yyval.i) = iSUBROUTINE(interp,
@@ -3524,7 +3532,7 @@
 
   case 40:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1311 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
@@ -3533,7 +3541,7 @@
 
   case 41:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1315 "compilers/imcc/imcc.y"
     {
            char   *name = mem_sys_strdup((yyvsp[(2) - (4)].s) + 1);
@@ -3551,21 +3559,21 @@
 
   case 42:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1327 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;}
     break;
 
   case 44:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1335 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
     break;
 
   case 45:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1338 "compilers/imcc/imcc.y"
     {
            /* if (optimizer_level & OPT_PASM)
@@ -3578,7 +3586,7 @@
 
   case 48:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1354 "compilers/imcc/imcc.y"
     {
            int re_open = 0;
@@ -3595,21 +3603,21 @@
 
   case 49:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1368 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 50:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1369 "compilers/imcc/imcc.y"
     { (yyval.sr) = NULL; }
     break;
 
   case 51:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1373 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys    = 0;
@@ -3618,7 +3626,7 @@
 
   case 52:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1377 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
@@ -3629,14 +3637,14 @@
 
   case 53:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1385 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 54:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1387 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
@@ -3646,7 +3654,7 @@
 
   case 55:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1395 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
@@ -3655,7 +3663,7 @@
 
   case 56:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1399 "compilers/imcc/imcc.y"
     {
            iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
@@ -3664,7 +3672,7 @@
 
   case 57:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1403 "compilers/imcc/imcc.y"
     {
           IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t);
@@ -3677,28 +3685,28 @@
 
   case 58:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1411 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 59:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1415 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 60:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1416 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 61:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1418 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -3713,21 +3721,21 @@
 
   case 62:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1430 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 63:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1430 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; }
     break;
 
   case 64:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1435 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(3) - (3)].t) & VT_OPT_FLAG && (yyvsp[(1) - (3)].t) != 'I') {
@@ -3752,14 +3760,14 @@
 
   case 65:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1459 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 66:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1464 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
@@ -3770,7 +3778,7 @@
 
   case 67:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1470 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
@@ -3781,7 +3789,7 @@
 
   case 68:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1479 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_VTABLE;
@@ -3792,7 +3800,7 @@
 
   case 69:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1485 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_VTABLE;
@@ -3803,7 +3811,7 @@
 
   case 70:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1494 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
@@ -3814,7 +3822,7 @@
 
   case 71:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1500 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
@@ -3825,7 +3833,7 @@
 
   case 72:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1509 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_NSENTRY;
@@ -3836,7 +3844,7 @@
 
   case 73:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1515 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_NSENTRY;
@@ -3847,7 +3855,7 @@
 
   case 74:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1524 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
@@ -3857,7 +3865,7 @@
 
   case 75:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1532 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
@@ -3867,7 +3875,7 @@
 
   case 76:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1537 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
@@ -3879,7 +3887,7 @@
 
   case 77:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1547 "compilers/imcc/imcc.y"
     {
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL);
@@ -3888,7 +3896,7 @@
 
   case 78:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1551 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
@@ -3898,7 +3906,7 @@
 
   case 79:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1556 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
@@ -3908,35 +3916,35 @@
 
   case 80:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1563 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); }
     break;
 
   case 81:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1564 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
     break;
 
   case 82:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1565 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "PMC",      'S'); }
     break;
 
   case 83:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1566 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "STRING",   'S'); }
     break;
 
   case 84:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1568 "compilers/imcc/imcc.y"
     {
            SymReg *r;
@@ -3952,7 +3960,7 @@
 
   case 85:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1579 "compilers/imcc/imcc.y"
     {
            SymReg *r;
@@ -3968,14 +3976,14 @@
 
   case 86:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1589 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 89:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1599 "compilers/imcc/imcc.y"
     {
            char name[128];
@@ -4002,112 +4010,112 @@
 
   case 90:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1625 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 91:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1629 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
     break;
 
   case 92:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1630 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
     break;
 
   case 93:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1634 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; }
     break;
 
   case 94:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1635 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 95:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1639 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 97:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1644 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (1)].t); }
     break;
 
   case 98:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1645 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 99:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1649 "compilers/imcc/imcc.y"
     { (yyval.t) = P_LOAD; }
     break;
 
   case 100:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1650 "compilers/imcc/imcc.y"
     { (yyval.t) = P_INIT; }
     break;
 
   case 101:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1651 "compilers/imcc/imcc.y"
     { (yyval.t) = P_MAIN; }
     break;
 
   case 102:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1652 "compilers/imcc/imcc.y"
     { (yyval.t) = P_IMMEDIATE; }
     break;
 
   case 103:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1653 "compilers/imcc/imcc.y"
     { (yyval.t) = P_POSTCOMP; }
     break;
 
   case 104:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1654 "compilers/imcc/imcc.y"
     { (yyval.t) = P_ANON; }
     break;
 
   case 105:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1655 "compilers/imcc/imcc.y"
     { (yyval.t) = P_NEED_LEX; }
     break;
 
   case 113:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1667 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
@@ -4117,7 +4125,7 @@
 
   case 114:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1672 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4126,7 +4134,7 @@
 
   case 115:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1676 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4135,7 +4143,7 @@
 
   case 116:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1680 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4144,7 +4152,7 @@
 
   case 117:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1684 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
@@ -4153,7 +4161,7 @@
 
   case 118:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1688 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
@@ -4163,7 +4171,7 @@
 
   case 119:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1693 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
@@ -4173,14 +4181,14 @@
 
   case 120:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1701 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 121:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1702 "compilers/imcc/imcc.y"
     {
                                  if (IMCC_INFO(interp)->adv_named_id) {
@@ -4195,21 +4203,21 @@
 
   case 122:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1714 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (2)].sr); }
     break;
 
   case 123:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1719 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 124:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1721 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
@@ -4219,21 +4227,21 @@
 
   case 125:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1728 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 126:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1729 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 127:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1730 "compilers/imcc/imcc.y"
     {
            IdList * const l = (yyvsp[(4) - (4)].idlist);
@@ -4247,91 +4255,91 @@
 
   case 128:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1741 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 129:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1742 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 130:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1746 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_FLAT;   }
     break;
 
   case 131:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1747 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_OPTIONAL; }
     break;
 
   case 132:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1748 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_OPT_FLAG; }
     break;
 
   case 133:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1749 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_NAMED; }
     break;
 
   case 134:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1750 "compilers/imcc/imcc.y"
     { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = VT_NAMED; mem_sys_free((yyvsp[(3) - (4)].s)); }
     break;
 
   case 135:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1751 "compilers/imcc/imcc.y"
     { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = VT_NAMED; mem_sys_free((yyvsp[(3) - (4)].s)); }
     break;
 
   case 136:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1752 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 137:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1753 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_CALL_SIG; }
     break;
 
   case 138:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1758 "compilers/imcc/imcc.y"
     { begin_return_or_yield(interp, 0); }
     break;
 
   case 139:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1760 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 140:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1762 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->asm_state = AsmDefault;
@@ -4341,28 +4349,28 @@
 
   case 141:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1769 "compilers/imcc/imcc.y"
     { begin_return_or_yield(interp, 1); }
     break;
 
   case 142:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1771 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 143:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1775 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 144:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1777 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
@@ -4372,7 +4380,7 @@
 
   case 145:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1782 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
@@ -4382,14 +4390,14 @@
 
   case 146:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1789 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 147:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1791 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
@@ -4399,7 +4407,7 @@
 
   case 148:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1796 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
@@ -4409,21 +4417,21 @@
 
   case 149:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1803 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 150:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1807 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 151:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1812 "compilers/imcc/imcc.y"
     {
           if (IMCC_INFO(interp)->asm_state == AsmDefault)
@@ -4433,7 +4441,7 @@
 
   case 152:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1817 "compilers/imcc/imcc.y"
     {
           IMCC_INFO(interp)->asm_state = AsmDefault;
@@ -4443,28 +4451,28 @@
 
   case 153:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1824 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 154:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1825 "compilers/imcc/imcc.y"
     { (yyval.t) = 1; }
     break;
 
   case 155:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1829 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 156:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1831 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4479,7 +4487,7 @@
 
   case 157:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1841 "compilers/imcc/imcc.y"
     {
             SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
@@ -4489,7 +4497,7 @@
 
   case 158:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1846 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4504,7 +4512,7 @@
 
   case 159:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1856 "compilers/imcc/imcc.y"
     {
            SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
@@ -4514,63 +4522,63 @@
 
   case 162:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1877 "compilers/imcc/imcc.y"
     { clear_state(interp); }
     break;
 
   case 163:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1882 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (2)].i); }
     break;
 
   case 164:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1883 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 165:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1884 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 166:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1885 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 167:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1886 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 168:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1887 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 169:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1891 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; }
     break;
 
   case 173:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1902 "compilers/imcc/imcc.y"
     {
              Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
@@ -4581,14 +4589,14 @@
 
   case 174:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1912 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (3)].i); }
     break;
 
   case 175:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1914 "compilers/imcc/imcc.y"
     {
            if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
@@ -4601,7 +4609,7 @@
 
   case 176:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1925 "compilers/imcc/imcc.y"
     {
            IdList* const l = (yyvsp[(1) - (1)].idlist);
@@ -4612,7 +4620,7 @@
 
   case 177:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1932 "compilers/imcc/imcc.y"
     {
            IdList* const l = (yyvsp[(3) - (3)].idlist);
@@ -4623,7 +4631,7 @@
 
   case 178:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1941 "compilers/imcc/imcc.y"
     {
            IdList* const l = mem_gc_allocate_n_zeroed_typed(interp, 1, IdList);
@@ -4634,14 +4642,14 @@
 
   case 183:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1957 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 184:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1958 "compilers/imcc/imcc.y"
     {
            IdList *l = (yyvsp[(4) - (4)].idlist);
@@ -4659,7 +4667,7 @@
 
   case 185:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1971 "compilers/imcc/imcc.y"
     {
             if ((yyvsp[(4) - (4)].sr)->set != 'P') {
@@ -4681,7 +4689,7 @@
 
   case 186:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 1988 "compilers/imcc/imcc.y"
     {
             if ((yyvsp[(4) - (4)].sr)->set != 'P') {
@@ -4699,14 +4707,14 @@
 
   case 187:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2000 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 188:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2001 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
@@ -4717,14 +4725,14 @@
 
   case 190:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2008 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->is_def = 1; }
     break;
 
   case 191:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2009 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
@@ -4735,7 +4743,7 @@
 
   case 192:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2015 "compilers/imcc/imcc.y"
     {
            (yyval.i) = NULL;
@@ -4746,7 +4754,7 @@
 
   case 193:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2021 "compilers/imcc/imcc.y"
     {
             (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
@@ -4755,7 +4763,7 @@
 
   case 194:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2025 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp,
@@ -4772,98 +4780,98 @@
 
   case 195:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2036 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
     break;
 
   case 196:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2037 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 197:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2038 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 200:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2041 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;}
     break;
 
   case 201:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2045 "compilers/imcc/imcc.y"
     { (yyval.t) = 'I'; }
     break;
 
   case 202:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2046 "compilers/imcc/imcc.y"
     { (yyval.t) = 'N'; }
     break;
 
   case 203:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2047 "compilers/imcc/imcc.y"
     { (yyval.t) = 'S'; }
     break;
 
   case 204:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2048 "compilers/imcc/imcc.y"
     { (yyval.t) = 'P'; }
     break;
 
   case 205:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2053 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  }
     break;
 
   case 206:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2055 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));  }
     break;
 
   case 207:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2057 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); }
     break;
 
   case 208:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2059 "compilers/imcc/imcc.y"
     { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
     break;
 
   case 209:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2061 "compilers/imcc/imcc.y"
     { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 210:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2064 "compilers/imcc/imcc.y"
     {
            add_pcc_result(interp, (yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
@@ -4874,7 +4882,7 @@
 
   case 211:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2070 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
@@ -4883,7 +4891,7 @@
 
   case 212:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2074 "compilers/imcc/imcc.y"
     {
            IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
@@ -4893,7 +4901,7 @@
 
   case 216:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2082 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
@@ -4902,189 +4910,189 @@
 
   case 217:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2089 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"not"; }
     break;
 
   case 218:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2090 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bnot"; }
     break;
 
   case 219:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2091 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"neg"; }
     break;
 
   case 220:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2095 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"sub"; }
     break;
 
   case 221:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2096 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"add"; }
     break;
 
   case 222:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2097 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mul"; }
     break;
 
   case 223:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2098 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"div"; }
     break;
 
   case 224:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2099 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mod"; }
     break;
 
   case 225:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2100 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 226:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2101 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"pow"; }
     break;
 
   case 227:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2102 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"concat"; }
     break;
 
   case 228:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2103 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"iseq"; }
     break;
 
   case 229:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2104 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isne"; }
     break;
 
   case 230:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2105 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isgt"; }
     break;
 
   case 231:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2106 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isge"; }
     break;
 
   case 232:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2107 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"islt"; }
     break;
 
   case 233:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2108 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isle"; }
     break;
 
   case 234:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2109 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shl"; }
     break;
 
   case 235:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2110 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shr"; }
     break;
 
   case 236:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2111 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 237:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2112 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"and"; }
     break;
 
   case 238:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2113 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"or"; }
     break;
 
   case 239:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2114 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"xor"; }
     break;
 
   case 240:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2115 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"band"; }
     break;
 
   case 241:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2116 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bor"; }
     break;
 
   case 242:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2117 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 243:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2123 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
@@ -5095,112 +5103,112 @@
 
   case 244:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2128 "compilers/imcc/imcc.y"
     {  (yyval.i) = 0; }
     break;
 
   case 245:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2135 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
     break;
 
   case 246:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2139 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"add"; }
     break;
 
   case 247:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2140 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"sub"; }
     break;
 
   case 248:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2141 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mul"; }
     break;
 
   case 249:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2142 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"div"; }
     break;
 
   case 250:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2143 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mod"; }
     break;
 
   case 251:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2144 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 252:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2145 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"concat"; }
     break;
 
   case 253:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2146 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"band"; }
     break;
 
   case 254:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2147 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bor"; }
     break;
 
   case 255:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2148 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 256:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2149 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shr"; }
     break;
 
   case 257:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2150 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shl"; }
     break;
 
   case 258:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2151 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 259:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2157 "compilers/imcc/imcc.y"
     {
         (yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s),
@@ -5213,28 +5221,28 @@
 
   case 260:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2167 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));       mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 261:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2168 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 262:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2169 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));     mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 263:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2171 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
@@ -5245,7 +5253,7 @@
 
   case 264:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2177 "compilers/imcc/imcc.y"
     {
             /* disallow bareword method names; SREG name constants are fine */
@@ -5264,7 +5272,7 @@
 
   case 265:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2191 "compilers/imcc/imcc.y"
     {
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
@@ -5275,7 +5283,7 @@
 
   case 266:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2197 "compilers/imcc/imcc.y"
     {
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
@@ -5286,14 +5294,14 @@
 
   case 267:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2202 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
     break;
 
   case 268:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2208 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
@@ -5303,21 +5311,21 @@
 
   case 269:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2212 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (5)].i); }
     break;
 
   case 270:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2216 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 271:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2218 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
@@ -5332,7 +5340,7 @@
 
   case 272:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2228 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
@@ -5347,7 +5355,7 @@
 
   case 273:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2238 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
@@ -5359,7 +5367,7 @@
 
   case 274:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2245 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
@@ -5369,7 +5377,7 @@
 
   case 275:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2250 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
@@ -5381,70 +5389,70 @@
 
   case 276:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2259 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 277:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2263 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 278:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2264 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 279:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2268 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_FLAT;     }
     break;
 
   case 280:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2269 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_NAMED;    }
     break;
 
   case 281:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2270 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_CALL_SIG; }
     break;
 
   case 282:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2273 "compilers/imcc/imcc.y"
     { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
     break;
 
   case 283:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2274 "compilers/imcc/imcc.y"
     { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; }
     break;
 
   case 284:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2278 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 285:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2283 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
@@ -5459,7 +5467,7 @@
 
   case 286:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2293 "compilers/imcc/imcc.y"
     {
             add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
@@ -5470,7 +5478,7 @@
 
   case 287:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2299 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
@@ -5485,7 +5493,7 @@
 
   case 288:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2309 "compilers/imcc/imcc.y"
     {
            add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
@@ -5495,28 +5503,28 @@
 
   case 289:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2313 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 290:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2317 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 291:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2318 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 292:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2323 "compilers/imcc/imcc.y"
     {
            (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
@@ -5525,7 +5533,7 @@
 
   case 293:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2327 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
@@ -5534,7 +5542,7 @@
 
   case 294:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2331 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
@@ -5543,7 +5551,7 @@
 
   case 295:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2338 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
@@ -5552,7 +5560,7 @@
 
   case 296:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2342 "compilers/imcc/imcc.y"
     {
            (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
@@ -5561,7 +5569,7 @@
 
   case 297:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2346 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
@@ -5570,91 +5578,91 @@
 
   case 298:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2352 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 299:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2353 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 300:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2357 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"eq"; }
     break;
 
   case 301:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2358 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"ne"; }
     break;
 
   case 302:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2359 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"gt"; }
     break;
 
   case 303:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2360 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"ge"; }
     break;
 
   case 304:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2361 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lt"; }
     break;
 
   case 305:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2362 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"le"; }
     break;
 
   case 308:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2371 "compilers/imcc/imcc.y"
     { (yyval.sr) = NULL; }
     break;
 
   case 309:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2372 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 310:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2376 "compilers/imcc/imcc.y"
     { (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
     break;
 
   case 312:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2381 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 313:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2383 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr);
@@ -5666,7 +5674,7 @@
 
   case 314:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2390 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
@@ -5676,49 +5684,49 @@
 
   case 316:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2397 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 317:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2398 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 318:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2402 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 319:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2403 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 320:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2407 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 321:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2408 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 326:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2422 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys    = 0;
@@ -5727,7 +5735,7 @@
 
   case 327:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2426 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
@@ -5738,7 +5746,7 @@
 
   case 328:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2434 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys = 0;
@@ -5747,7 +5755,7 @@
 
   case 329:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2438 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
@@ -5758,14 +5766,14 @@
 
   case 330:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2446 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 331:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2448 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
@@ -5775,7 +5783,7 @@
 
   case 332:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2456 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
@@ -5784,78 +5792,78 @@
 
   case 333:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2462 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
     break;
 
   case 334:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2463 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
     break;
 
   case 335:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2464 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
     break;
 
   case 336:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2465 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
     break;
 
   case 337:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2466 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 338:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2470 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 339:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2471 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 340:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2475 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 341:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2476 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 342:
 
-/* Line 1455 of yacc.c  */
+/* Line 1464 of yacc.c  */
 #line 2477 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
     break;
 
 
 
-/* Line 1455 of yacc.c  */
-#line 5848 "compilers/imcc/imcparser.c"
+/* Line 1464 of yacc.c  */
+#line 5856 "compilers/imcc/imcparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -6066,7 +6074,7 @@
 
 
 
-/* Line 1675 of yacc.c  */
+/* Line 1684 of yacc.c  */
 #line 2483 "compilers/imcc/imcc.y"
 
 

Modified: branches/unshared_buffers/compilers/imcc/imcparser.h
==============================================================================
--- branches/unshared_buffers/compilers/imcc/imcparser.h	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/compilers/imcc/imcparser.h	Sun Aug 29 17:09:11 2010	(r48719)
@@ -9,13 +9,12 @@
  */
 /* HEADERIZER HFILE: none */
 /* HEADERIZER STOP */
-
-/* A Bison parser, made by GNU Bison 2.4.1.  */
+/* A Bison parser, made by GNU Bison 2.4.2.  */
 
 /* Skeleton interface for Bison's Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
+   Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -295,7 +294,7 @@
 typedef union YYSTYPE
 {
 
-/* Line 1676 of yacc.c  */
+/* Line 1685 of yacc.c  */
 #line 1071 "compilers/imcc/imcc.y"
 
     IdList * idlist;
@@ -306,8 +305,8 @@
 
 
 
-/* Line 1676 of yacc.c  */
-#line 300 "compilers/imcc/imcparser.h"
+/* Line 1685 of yacc.c  */
+#line 299 "compilers/imcc/imcparser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */

Modified: branches/unshared_buffers/compilers/imcc/parser_util.c
==============================================================================
--- branches/unshared_buffers/compilers/imcc/parser_util.c	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/compilers/imcc/parser_util.c	Sun Aug 29 17:09:11 2010	(r48719)
@@ -791,7 +791,7 @@
     const char                *ext;
     FILE                      *fp;
     STRING                    *fs;
-    PMC                       *ignored;
+    PMC                       *newcontext;
 
     /* need at least 3 regs for compilation of constant math e.g.
      * add_i_ic_ic - see also IMCC_subst_constants() */
@@ -816,9 +816,6 @@
         IMCC_fatal(interp, EXCEPTION_EXTERNAL_ERROR,
                 "imcc_compile_file: couldn't open '%s'\n", fullname);
 
-    IMCC_INFO(interp)->cur_namespace = NULL;
-    interp->code                     = NULL;
-
     IMCC_push_parser_state(interp);
     {
         /* Store a copy, in order to know how to free it later */
@@ -835,8 +832,13 @@
      * which can destroy packfiles under construction
      */
     Parrot_block_GC_mark(interp);
-    ignored = Parrot_push_context(interp, regs_used);
-    UNUSED(ignored);
+
+    /* Activate a new context and reset it to initial values */
+    newcontext = Parrot_push_context(interp, regs_used);
+    Parrot_pcc_set_HLL(interp, newcontext, 0);
+    Parrot_pcc_set_sub(interp, newcontext, 0);
+    IMCC_INFO(interp)->cur_namespace = NULL;
+    interp->code                     = NULL;
 
     if (ext && STREQ(ext, ".pasm")) {
         void *yyscanner;

Modified: branches/unshared_buffers/compilers/imcc/pbc.c
==============================================================================
--- branches/unshared_buffers/compilers/imcc/pbc.c	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/compilers/imcc/pbc.c	Sun Aug 29 17:09:11 2010	(r48719)
@@ -363,7 +363,7 @@
         interp->code->const_table->string_hash =
             Parrot_pmc_new_init_int(interp, enum_class_Hash, enum_type_INTVAL);
         ((Hash *)VTABLE_get_pointer(interp, interp->code->const_table->string_hash))->compare =
-            (hash_comp_fn)STRING_compare_distinct_cs_enc;
+            (hash_comp_fn)hash_compare_string_distinct_enc;
 
         interp->code->const_table->constants =
             mem_gc_allocate_n_zeroed_typed(interp, newcount, PackFile_Constant);

Modified: branches/unshared_buffers/compilers/imcc/sets.c
==============================================================================
--- branches/unshared_buffers/compilers/imcc/sets.c	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/compilers/imcc/sets.c	Sun Aug 29 17:09:11 2010	(r48719)
@@ -154,6 +154,7 @@
 
 */
 
+PARROT_PURE_FUNCTION
 int
 set_equal(ARGIN(const Set *s1), ARGIN(const Set *s2))
 {

Modified: branches/unshared_buffers/compilers/imcc/sets.h
==============================================================================
--- branches/unshared_buffers/compilers/imcc/sets.h	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/compilers/imcc/sets.h	Sun Aug 29 17:09:11 2010	(r48719)
@@ -33,6 +33,7 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
+PARROT_PURE_FUNCTION
 int set_equal(ARGIN(const Set *s1), ARGIN(const Set *s2))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);

Modified: branches/unshared_buffers/compilers/opsc/src/Ops/File.pm
==============================================================================
--- branches/unshared_buffers/compilers/opsc/src/Ops/File.pm	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/compilers/opsc/src/Ops/File.pm	Sun Aug 29 17:09:11 2010	(r48719)
@@ -296,7 +296,22 @@
 
 method _set_version() {
     my $config := _config();
-    my $version := $config<VERSION>;
+    my $version_filename;
+    if $config<installed> {
+        $version_filename :=
+            $config<libdir> ~
+            $config<versiondir> ~
+            $config<slash> ~
+            'VERSION';
+    }
+    else {
+        $version_filename :=
+            $config<prefix> ~
+            $config<slash> ~
+            'VERSION';
+    }
+
+    my $version := pir::chopn__ssi(slurp($version_filename), 1);
     #say("# $version");
     my @bits := split('.', $version);
     self<version_major> := @bits[0];

Modified: branches/unshared_buffers/compilers/pct/src/PCT/HLLCompiler.pir
==============================================================================
--- branches/unshared_buffers/compilers/pct/src/PCT/HLLCompiler.pir	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/compilers/pct/src/PCT/HLLCompiler.pir	Sun Aug 29 17:09:11 2010	(r48719)
@@ -26,10 +26,9 @@
 
 .include 'cclass.pasm'
 .include 'stdio.pasm'
+.include 'iglobals.pasm'
 
 .sub 'init' :vtable :method
-    load_bytecode 'config.pir'
-
     $P0 = split ' ', 'parse past post pir evalpmc'
     setattribute self, '@stages', $P0
 
@@ -56,7 +55,8 @@
 
     $S0  = '???'
     push_eh _handler
-    $P0  = _config()
+    $P0 = getinterp
+    $P0 = $P0[.IGLOBALS_CONFIG_HASH]
     $S0  = $P0['revision']   # also $I0 = P0['installed'] could be used
   _handler:
     pop_eh

Modified: branches/unshared_buffers/config/auto/pmc.pm
==============================================================================
--- branches/unshared_buffers/config/auto/pmc.pm	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/config/auto/pmc.pm	Sun Aug 29 17:09:11 2010	(r48719)
@@ -36,9 +36,12 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
-    my @pmc = sort_pmcs( @{ $self->{srcpmc} } );
-
-    my $pmc_list = join( ' ', grep { defined $_ } @pmc );
+    # $pmc_list is a string holding a space-delimited list of currently active
+    # PMCs, sorted (largely) on the basis of src/pmc/pmc.num.
+    # (By 'current', we take into account the fact that there are PMCs listed
+    # in src/pmc/pmc.num that no longer exist but whose index numbers are
+    # never deleted.)
+    my $pmc_list = get_sorted_pmc_str( @{ $self->{srcpmc} } );
 
     # names of class files for src/pmc/Makefile
     ( my $TEMP_pmc_o   = $pmc_list ) =~ s/\.pmc/\$(O)/g;
@@ -216,23 +219,20 @@
     return @parents;
 }
 
+# Internal sub get_pmc_order parses src/pmc/pmc.num.  The hash it builds
+# includes both active and deactivated PMCs.
 sub get_pmc_order {
     open my $IN, '<', 'src/pmc/pmc.num' or die "Can't read src/pmc/pmc.num";
     my %order;
     while (<$IN>) {
-        next if /^#/;
-
-        if (/(\w+\.\w+)\s+(\d+)/) {
-            $order{$1} = $2;
-        }
+        next unless (/^(\w+\.\w+)\s+(\d+)$/);
+        $order{$1} = $2;
     }
-
     close $IN;
-
     return \%order;
 }
 
-sub sort_pmcs {
+sub get_sorted_pmc_str {
     my @pmcs      = @_;
     my $pmc_order = get_pmc_order();
     my $n         = keys %$pmc_order;
@@ -247,7 +247,41 @@
         }
     }
 
-    return @sorted_pmcs;
+    # With the test for definedness below, we account for PMCs which have been
+    # deactivated but whose index numbers remain in src/pmc/pmc.num.
+    my $active_pmcs = [ grep { defined $_ } @sorted_pmcs ];
+
+    # At this point we check to see whether any active_pmcs are missing from
+    # the MANIFEST.  We warn about any such missing PMCs but (for the time
+    # being at least) we proceed to compose $pmc_str.
+    my $seen_manifest = pmcs_in_manifest();
+    check_pmcs_against_manifest( $active_pmcs, $seen_manifest );
+    return join(' ' => @{ $active_pmcs });
+}
+
+sub pmcs_in_manifest {
+    my $manifest = shift || 'MANIFEST';
+    my %seen_manifest = ();
+    open my $MAN, '<', $manifest
+        or die "Unable to open MANIFEST: $!";
+    while (my $f = <$MAN>) {
+        chomp $f;
+        if ($f =~ m{^src/pmc/(.*\.pmc)}) {
+            my $pmc = $1;
+            $seen_manifest{$pmc}++;
+        }
+    }
+    close $MAN or die "Unable to close MANIFEST: $!";
+    return \%seen_manifest;
+}
+
+sub check_pmcs_against_manifest {
+    my ($active_pmcs, $seen_manifest) = @_;
+    my @missing_from_manifest = grep { ! exists $seen_manifest->{$_} }
+        @{ $active_pmcs };
+    if (@missing_from_manifest) {
+        warn "PMCs found in /src/pmc not found in MANIFEST: @missing_from_manifest";
+    }
 }
 
 sub contains_pccmethod {

Modified: branches/unshared_buffers/config/gen/makefiles.pm
==============================================================================
--- branches/unshared_buffers/config/gen/makefiles.pm	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/config/gen/makefiles.pm	Sun Aug 29 17:09:11 2010	(r48719)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -68,6 +68,9 @@
 
     $self->makefiles($conf);
 
+    $conf->shebang_mod( 'tools/dev/mk_language_shell.in'
+                         => 'tools/dev/mk_language_shell.pl', );
+
     return 1;
 }
 

Modified: branches/unshared_buffers/config/gen/makefiles/root.in
==============================================================================
--- branches/unshared_buffers/config/gen/makefiles/root.in	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/config/gen/makefiles/root.in	Sun Aug 29 17:09:11 2010	(r48719)
@@ -47,8 +47,13 @@
 # where we're building parrot from (needed for pbc_to_exe)
 BUILD_DIR = @build_dir@
 
-# directory for build tools
+# directory for build tools:
+# programs, templates, configuration files invoked by 'make all'
+# (with or without command-line options)
 BUILD_TOOLS_DIR = tools/build
+# directory for developers' tools
+# programs, templates, configuration files NOT invoked by 'make all'
+DEV_TOOLS_DIR = tools/dev
 
 # directory for header files
 INC_DIR         = @inc@
@@ -116,7 +121,7 @@
 NONGEN_HEADERS   = @TEMP_nongen_headers@
 
 # The headerizer
-HEADERIZER       = $(PERL) $(BUILD_TOOLS_DIR)/headerizer.pl
+HEADERIZER       = $(PERL) $(DEV_TOOLS_DIR)/headerizer.pl
 
 include src/dynpmc/Defines.mak
 include src/dynoplibs/Defines.mak
@@ -220,7 +225,8 @@
     .parrot_current_rev \
 #IF(has_opengl):    runtime/parrot/include/opengl_defines.pasm \
 #IF(has_opengl):    runtime/parrot/library/OpenGL_funcs.pir \
-    runtime/parrot/include/signal.pasm
+    runtime/parrot/include/signal.pasm \
+    tools/dev/mk_language_shell.pl
 
 
 ###############################################################################
@@ -434,7 +440,6 @@
     src/string/api$(O) \
     src/ops/core_ops$(O) \
 #IF(i386_has_gcc_cmpxchg):    src/atomic/gcc_x86$(O) \
-    src/byteorder$(O) \
     src/string/charset$(O) \
     src/core_pmcs$(O) \
     src/datatypes$(O) \
@@ -469,7 +474,6 @@
     src/misc$(O) \
     src/multidispatch$(O) \
     src/namespace$(O) \
-    src/frame_builder$(O) \
     src/nci/api$(O) \
     src/nci/core_thunks$(O) \
 #IF(has_extra_nci_thunks): src/nci/extra_thunks$(O) \
@@ -675,7 +679,6 @@
     src/library.str \
     src/multidispatch.str \
     src/namespace.str \
-    src/frame_builder.str \
     src/nci/api.str \
     src/nci/core_thunks.str \
 #IF(has_extra_nci_thunks): src/nci/extra_thunks.str \
@@ -844,12 +847,12 @@
 	@rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
-$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT)
-	$(PARROT) -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir
+$(PBC_TO_EXE) : $(DEV_TOOLS_DIR)/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT)
+	$(PARROT) -o pbc_to_exe.pbc $(DEV_TOOLS_DIR)/pbc_to_exe.pir
 	$(PARROT) pbc_to_exe.pbc pbc_to_exe.pbc
 
-parrot_nci_thunk_gen.pbc : tools/dev/nci_thunk_gen.pir $(DATA_JSON_LIB_PBCS) $(PARROT)
-	$(PARROT) -o parrot_nci_thunk_gen.pbc tools/dev/nci_thunk_gen.pir
+parrot_nci_thunk_gen.pbc : $(DEV_TOOLS_DIR)/nci_thunk_gen.pir $(DATA_JSON_LIB_PBCS) $(PARROT)
+	$(PARROT) -o parrot_nci_thunk_gen.pbc $(DEV_TOOLS_DIR)/nci_thunk_gen.pir
 
 $(NCI_THUNK_GEN) : parrot_nci_thunk_gen.pbc $(PBC_TO_EXE)
 	$(PBC_TO_EXE) parrot_nci_thunk_gen.pbc
@@ -860,8 +863,8 @@
 $(PROVE) : parrot-prove.pbc $(PARROT) $(PBC_TO_EXE)
 	$(PBC_TO_EXE) parrot-prove.pbc
 
-$(PARROT_CONFIG) : tools/util/parrot-config.pir $(PARROT) $(PBC_TO_EXE)
-	$(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
+$(PARROT_CONFIG) : $(DEV_TOOLS_DIR)/parrot-config.pir $(PARROT) $(PBC_TO_EXE)
+	$(PARROT) -o parrot_config.pbc $(DEV_TOOLS_DIR)/parrot-config.pir
 	$(PARROT) pbc_to_exe.pbc parrot_config.pbc
 
 $(MINIPARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
@@ -938,10 +941,10 @@
     $(IMCC_O_FILES)
 
 lib_deps_object : $(O_FILES)
-	$(PERL) tools/dev/lib_deps.pl object $(O_FILES)
+	$(PERL) $(DEV_TOOLS_DIR)/lib_deps.pl object $(O_FILES)
 
 lib_deps_source : $(GENERAL_H_FILES)
-	$(PERL) tools/dev/lib_deps.pl source all_source
+	$(PERL) $(DEV_TOOLS_DIR)/lib_deps.pl source all_source
 
 lib_deps : lib_deps_object lib_deps_source
 
@@ -971,7 +974,7 @@
 
 
 $(INSTALLABLECONFIG) : src/install_config$(O) $(PARROT_CONFIG) $(PBC_TO_EXE)
-	$(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
+	$(PARROT) -o parrot_config.pbc $(DEV_TOOLS_DIR)/parrot-config.pir
 	$(PBC_TO_EXE) parrot_config.pbc --install
 
 $(INSTALLABLEPBCTOEXE) : $(PBC_TO_EXE) src/install_config$(O)
@@ -1238,8 +1241,6 @@
 #
 ###############################################################################
 
-src/byteorder$(O) : $(PARROT_H_HEADERS) src/byteorder.c
-
 src/datatypes$(O) : $(PARROT_H_HEADERS) src/datatypes.c
 
 src/extend_vtable$(O) : $(PARROT_H_HEADERS) \
@@ -1255,7 +1256,7 @@
 
 src/pmc_freeze$(O) : $(PARROT_H_HEADERS) src/pmc_freeze.str src/pmc_freeze.c
 
-src/hash$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h src/hash.c
+src/hash$(O) : $(PARROT_H_HEADERS) src/hash.c
 
 src/library$(O) : $(PARROT_H_HEADERS) src/library.str src/library.c\
 	$(INC_DIR)/dynext.h
@@ -1488,13 +1489,6 @@
     src/nci/extra_thunks.c
 	$(CC) $(CFLAGS) @optimize::src/nci/extra_thunks.c@ @ccwarn::src/nci/extra_thunks.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/nci/extra_thunks.c
 
-src/frame_builder$(O) : $(PARROT_H_HEADERS) src/frame_builder.h \
-	src/frame_builder.c \
-	include/pmc/pmc_fixedintegerarray.h \
-	include/pmc/pmc_unmanagedstruct.h \
-	include/pmc/pmc_managedstruct.h \
-	$(INC_DIR)/oplib/ops.h
-
 src/vtables$(O) : $(PARROT_H_HEADERS) src/vtables.c
 
 ## SUFFIX OVERRIDE
@@ -1676,10 +1670,22 @@
 CONFIGURE_TEST_FILES = \
     t/configure/*.t \
     t/steps/*.t
+PBC_TEST_FILES = \
+    t/pmc/testlib/annotations.pbc \
+    t/pmc/testlib/number.pbc
+
+# pbc files used for several tests
+pbctestfiles: $(PARROT) $(PBC_TEST_FILES)
+
+t/pmc/testlib/number.pbc: t/pmc/testlib/number.pasm
+	$(PARROT) -o t/pmc/testlib/number.pbc t/pmc/testlib/number.pasm
+
+t/pmc/testlib/annotations.pbc: t/pmc/testlib/annotations.pir
+	$(PARROT) -o t/pmc/testlib/annotations.pbc t/pmc/testlib/annotations.pir
 
 # Common prep for all test targets.
 # We probably need a complete build before running the tests.
-test_prep : all
+test_prep : all pbctestfiles
 
 # Run test cases with a single call of t/harness. Users have to look at only
 # one report. The default set of tests to run is contained in t/harness,
@@ -1703,7 +1709,7 @@
 smoke : smolder_test
 
 # "core tests" -- test basic functionality but not ancillaries
-coretest : corevm
+coretest : corevm pbctestfiles
 	$(PERL) t/harness $(EXTRA_TEST_ARGS) --core-tests
 
 # automake compatibility
@@ -1953,6 +1959,7 @@
 	$(RM_F) t/compilers/pge/*.pir
 	$(RM_F) t/compilers/tge/*.pir
 	$(RM_F) \
+    $(PBC_TEST_FILES) \
     "t/*/*$(O)" \
     "t/*/*.out" \
     "t/*/*.pasm" \
@@ -1995,19 +2002,19 @@
 # Require .svn to exist first
 # Otherwise it'll remove every last file
 svnclobber : .svn
-	$(PERL) tools/dev/svnclobber.pl
+	$(PERL) $(DEV_TOOLS_DIR)/svnclobber.pl
 
 reconfig : realclean
 	$(PERL) Configure.pl $(CONFIG_ARGS)
 
 manitest :
-	$(PERL) tools/dev/manicheck.pl
+	$(PERL) $(DEV_TOOLS_DIR)/manicheck.pl
 
 opsrenumber :
-	$(PERL) tools/dev/opsrenumber.pl $(OPS_FILES)
+	$(PERL) $(DEV_TOOLS_DIR)/opsrenumber.pl $(OPS_FILES)
 
 pmcrenumber :
-	$(PERL) tools/dev/pmcrenumber.pl src/pmc/pmc.num
+	$(PERL) $(DEV_TOOLS_DIR)/pmcrenumber.pl src/pmc/pmc.num
 
 ###############################################################################
 #
@@ -2359,7 +2366,7 @@
 install-dev: install
 
 install-bin: installable
-	$(PERL) tools/dev/install_files.pl \
+	$(PERL) $(DEV_TOOLS_DIR)/install_files.pl \
     --buildprefix=$(BUILDPREFIX) \
     --prefix=$(PREFIX) \
     --exec-prefix=$(EXEC_PREFIX) \
@@ -2373,7 +2380,7 @@
     MANIFEST MANIFEST.generated
 
 install-dev-only: installable
-	$(PERL) tools/dev/install_dev_files.pl \
+	$(PERL) $(DEV_TOOLS_DIR)/install_dev_files.pl \
     --buildprefix=$(BUILDPREFIX) \
     --prefix=$(PREFIX) \
     --exec-prefix=$(EXEC_PREFIX) \
@@ -2388,7 +2395,7 @@
     MANIFEST MANIFEST.generated
 
 install-doc:
-	$(PERL) tools/dev/install_doc_files.pl \
+	$(PERL) $(DEV_TOOLS_DIR)/install_doc_files.pl \
     --buildprefix=$(BUILDPREFIX) \
     --prefix=$(PREFIX) \
     --docdir=$(DOC_DIR) \
@@ -2417,7 +2424,7 @@
 	rm parrot-$(VERSION)
 
 win32-inno-installer : world installable
-	$(PERL) tools/dev/mk_inno.pl
+	$(PERL) $(DEV_TOOLS_DIR)/mk_inno.pl
 	$(INNO_SETUP) parrot.iss
 
 ###############################################################################
@@ -2511,7 +2518,7 @@
 	--languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
 	-I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
 	.
-	$(PERL) $(BUILD_TOOLS_DIR)/addopstags.pl $(OPS_FILES)
+	$(PERL) $(DEV_TOOLS_DIR)/addopstags.pl $(OPS_FILES)
 
 tags.vi.dummy:
 
@@ -2523,12 +2530,12 @@
 CRITIC_FILES = 'lib/Parrot'
 
 perlcritic:
-	perlcritic --profile tools/util/perlcritic.conf $(CRITIC_FILES)
+	perlcritic --profile $(DEV_TOOLS_DIR)/perlcritic.conf $(CRITIC_FILES)
 
 # Andy's extra-cranky Perl::Critic checking for cage cleaners
 cagecritic:
 	@perl -MPerl::Critic::Bangs -e'$$min=q{1.04};die qq{You need Bangs $$min} unless $$Perl::Critic::Bangs::VERSION ge $$min'
-	perlcritic -1 --profile tools/util/perlcritic-cage.conf $(CRITIC_FILES)
+	perlcritic -1 --profile $(DEV_TOOLS_DIR)/perlcritic-cage.conf $(CRITIC_FILES)
 
 # This target will eventually create all the headers automatically.  If you
 # are having problems with linkage in Win32 (or elsewhere), because something

Modified: branches/unshared_buffers/config/gen/platform.pm
==============================================================================
--- branches/unshared_buffers/config/gen/platform.pm	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/config/gen/platform.pm	Sun Aug 29 17:09:11 2010	(r48719)
@@ -197,6 +197,7 @@
         exec.c
         misc.c
         hires_timer.c
+        pid.c
         /;
 
     my $plat_c = q{src/platform.c};

Copied: branches/unshared_buffers/config/gen/platform/ansi/pid.c (from r48712, trunk/config/gen/platform/ansi/pid.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/unshared_buffers/config/gen/platform/ansi/pid.c	Sun Aug 29 17:09:11 2010	(r48719, copy of r48712, trunk/config/gen/platform/ansi/pid.c)
@@ -0,0 +1,50 @@
+/* $Id$
+ * Copyright (C) 2010, Parrot Foundation.
+ */
+
+/*
+
+=head1 NAME
+
+config/gen/platform/ansi/pid.c
+
+=head1 DESCRIPTION
+
+Parrot process id functions.
+
+=head2 Functions
+
+=over 4
+
+=cut
+
+=item C<UINTVAL Parrot_getpid(void)>
+
+Parrot wrapper around standard library C<getpid()> function, returning an UINTVAL.
+
+=cut
+
+*/
+
+UINTVAL
+Parrot_getpid(void)
+{
+    Parrot_warn(NULL, PARROT_WARNINGS_PLATFORM_FLAG, "Parrot_getpid unuseful in this platform");
+    return 0;
+}
+
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Copied: branches/unshared_buffers/config/gen/platform/generic/pid.c (from r48712, trunk/config/gen/platform/generic/pid.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/unshared_buffers/config/gen/platform/generic/pid.c	Sun Aug 29 17:09:11 2010	(r48719, copy of r48712, trunk/config/gen/platform/generic/pid.c)
@@ -0,0 +1,56 @@
+/* $Id$
+ * Copyright (C) 2010, Parrot Foundation.
+ */
+
+/*
+
+=head1 NAME
+
+config/gen/platform/generic/pid.c
+
+=head1 DESCRIPTION
+
+Parrot process id functions.
+
+=head2 Functions
+
+=over 4
+
+=cut
+
+*/
+
+#include <sys/types.h>
+#include <unistd.h>
+
+/*
+
+=item C<UINTVAL Parrot_getpid(void)>
+
+Parrot wrapper around standard library C<getpid()> function, returning an UINTVAL.
+
+=cut
+
+*/
+
+UINTVAL
+Parrot_getpid(void)
+{
+    return getpid();
+}
+
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Copied: branches/unshared_buffers/config/gen/platform/win32/pid.c (from r48712, trunk/config/gen/platform/win32/pid.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/unshared_buffers/config/gen/platform/win32/pid.c	Sun Aug 29 17:09:11 2010	(r48719, copy of r48712, trunk/config/gen/platform/win32/pid.c)
@@ -0,0 +1,50 @@
+/* $Id$
+ * Copyright (C) 2010, Parrot Foundation.
+ */
+
+/*
+
+=head1 NAME
+
+config/gen/platform/win32/pid.c
+
+=head1 DESCRIPTION
+
+Parrot process id functions.
+
+=head2 Functions
+
+=over 4
+
+=cut
+
+=item C<UINTVAL Parrot_getpid(void)>
+
+Parrot wrapper around standard library C<getpid()> function, returning an UINTVAL.
+
+=cut
+
+*/
+
+UINTVAL
+Parrot_getpid(void)
+{
+    Parrot_warn(NULL, PARROT_WARNINGS_PLATFORM_FLAG, "Parrot_getpid unuseful in this platform");
+    return 0;
+}
+
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: branches/unshared_buffers/docs/embed.pod
==============================================================================
--- branches/unshared_buffers/docs/embed.pod	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/docs/embed.pod	Sun Aug 29 17:09:11 2010	(r48719)
@@ -298,20 +298,10 @@
 Search the namespace PMC C<namespace> for an object with name C<globalname>.
 Return the object, or NULL if not found.
 
-=item C<Parrot_PMC Parrot_find_global_s(PARROT_INTERP, Parrot_String namespace, Parrot_String name)>
-
-Find and return a global called C<name> in the namespace C<namespace>.  Returns
-C<PMCNULL> if not found.
-
 =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>.
 
-=item C<void Parrot_store_global_s(PARROT_INTERP, Parrot_String namespace, Parrot_String name, Parrot_PMC val)>
-
-Sets the value of a global called C<name> in the namespace C<namespace>.  Does
-nothing if the global is not found.
-
 =back
 
 =head3 Lexicals
@@ -717,8 +707,6 @@
 
 =item C<Parrot_ns_find_global_from_op>
 
-=item C<Parrot_find_global_s>
-
 =item C<Parrot_find_language>
 
 =item C<Parrot_find_method_direct>
@@ -1529,8 +1517,6 @@
 
 =item C<Parrot_ns_store_global>
 
-=item C<Parrot_store_global_s>
-
 =item C<Parrot_ns_store_sub>
 
 =item C<Parrot_str_boolean>

Modified: branches/unshared_buffers/docs/parrothist.pod
==============================================================================
--- branches/unshared_buffers/docs/parrothist.pod	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/docs/parrothist.pod	Sun Aug 29 17:09:11 2010	(r48719)
@@ -11,7 +11,7 @@
 Simon Cozens, Jeff Goff, Steve Fink, Leo Toetsch, Chip Salzenberg, Jerry Gay,
 Patrick Michaud, Will "coke" Coleda, Matt Diephouse, chromatic, Allison Randal,
 Jonathan Worthington, Bob Rogers, Bernhard Schmalhofer, Andrew Whitworth,
-Francois Perrad, Jonathan Leto.
+Francois Perrad, Jonathan Leto, Michael Hind.
 
 
 =head1 THE RECORDS
@@ -112,5 +112,6 @@
  Gerd        2.5.0          2010-Jun-15     "Cheops"
 
  coke        2.6.0 *        2010-Jul-20     "Red-rumped"
+ mikehh      2.7.0          2010-Aug-17     "Australian King"
 
 =cut

Modified: branches/unshared_buffers/docs/project/release_manager_guide.pod
==============================================================================
--- branches/unshared_buffers/docs/project/release_manager_guide.pod	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/docs/project/release_manager_guide.pod	Sun Aug 29 17:09:11 2010	(r48719)
@@ -84,7 +84,7 @@
 
 =item c
 
-Update release-related information in F<tools/util/release.json>. This will be
+Update release-related information in F<tools/release/release.json>. This will be
 used later when making release announcements.  There are a few essential
 fields that must be updated at each release:
 
@@ -118,16 +118,9 @@
 
 =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.
+Run C<./ops2c --core> (or C<make bootstrap-ops>, ignoring errors) followed by
+C<make reconfig> and C<make> to update the names of version-specific internal
+functions.
 
 =item g
 
@@ -251,11 +244,11 @@
 
 =item 9.
 
-Compose the release announcement.  Use F<tools/util/crow.pir> to make
+Compose the release announcement.  Use F<tools/release/crow.pir> to make
 this part easier.  You can specify the format of your announcements like so:
 
-  $ ./parrot tools/util/crow.pir --type=text
-  $ ./parrot tools/util/crow.pir --type=html
+  $ ./parrot tools/release/crow.pir --type=text
+  $ ./parrot tools/release/crow.pir --type=html
 
 Take the screen output and paste it into the application you need.  HTML
 works well for use Perl and PerlMonks, and text for the rest.  It is not a
@@ -413,7 +406,6 @@
 visible at
 L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.calendar.google.com>.
 
- - Aug 17, 2010 - 2.7   - mikehh
  - Sep 21, 2010 - 2.8   - gerd
  - Oct 19, 2010 - 2.9*  - gerd
  - Nov 16, 2010 - 2.10  - ??

Modified: branches/unshared_buffers/examples/languages/squaak/doc/tutorial_episode_1.pod
==============================================================================
--- branches/unshared_buffers/examples/languages/squaak/doc/tutorial_episode_1.pod	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/examples/languages/squaak/doc/tutorial_episode_1.pod	Sun Aug 29 17:09:11 2010	(r48719)
@@ -219,8 +219,9 @@
 
 The exercises are provided at the end of each episode of this tutorial. In
 order to keep the length of this tutorial somewhat acceptable, not everything
-can be discussed in full detail. The answers and/or solutions to these exercises
-will be posted several days after the episode.
+can be discussed in full detail. With episode 3 the answers and/or solutions
+to these exercises are at the end of each episode. The answer of the exercise
+from episode 1 is at the end of episode 2.
 
 =head3 Advanced interactive mode.
 

Modified: branches/unshared_buffers/examples/languages/squaak/src/squaak.pir
==============================================================================
--- branches/unshared_buffers/examples/languages/squaak/src/squaak.pir	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/examples/languages/squaak/src/squaak.pir	Sun Aug 29 17:09:11 2010	(r48719)
@@ -10,7 +10,7 @@
 This is the base file for the Squaak compiler.
 
 This file includes the parsing and grammar rules from
-the src/ directory, loads the relevant PGE libraries,
+the src/ directory, loads the relevant PCT libraries,
 and registers the compiler under the name 'Squaak'.
 
 =head2 Functions

Copied: branches/unshared_buffers/examples/tools/pgegrep (from r48712, trunk/examples/tools/pgegrep)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/unshared_buffers/examples/tools/pgegrep	Sun Aug 29 17:09:11 2010	(r48719, copy of r48712, trunk/examples/tools/pgegrep)
@@ -0,0 +1,308 @@
+#! parrot
+
+=head1 NAME
+
+pgegrep - A simple grep using PGE for matching
+
+=head1 SYNOPSIS
+
+B<pgegrep> [I<OPTIONS>] B<PATTERN> [I<FILE...>]
+
+=head1 DESCRIPTION
+
+pgegrep aims to be a small and easy to use program in replacement of the
+standard grep utility.  Regex support is whatever PGE will allow.  It
+searches through files line by line and tests if the given pattern matches.
+
+=head1 OPTIONS
+
+=over 4
+
+=item -v
+
+=item --invert-match
+
+print lines not matching PATTERN
+
+=item -V
+
+=item --version
+
+print the version and exit
+
+=item --help
+
+show this help and exit
+
+=item -r
+
+=item --recursive
+
+recursively descend into directories
+
+=item -L
+
+=item --files-without-matches
+
+print a list of files that do not match PATTERN
+
+=item -l
+
+=item --files-with-matches
+
+print a list of files that do match PATTERN
+
+=item -a
+
+=item --text
+
+treat binary files as text.
+
+This uses a basic heuristic to discover if a file is binary or not.  Files are
+read line by line, and it keeps processing "normally" until a control character
+is found, and then stops and goes onto the next file is that line matches.
+
+=item -n
+
+=item --line-number
+
+print the line number for each match
+
+=item -H
+
+=item --with-filename
+
+print the filename for each match
+
+=back
+
+=cut
+
+# Readability improved!
+.include 'hllmacros.pir'
+
+# for getstdin and friends
+.loadlib 'io_ops'
+
+.sub main :main
+	.param pmc argv # the script name, then our options.
+	.local string progname
+	progname = shift argv
+	load_bytecode 'Getopt/Obj.pbc'
+	load_bytecode 'PGE.pbc'
+	.local pmc getopts
+	getopts = new [ 'Getopt';'Obj' ]
+	getopts.'notOptStop'(1)
+	push getopts, 'with-filename|H'
+	push getopts, 'files-with-matches|l'
+	push getopts, 'files-without-matches|L'
+	push getopts, 'line-number|n'
+	push getopts, 'text|a'
+	push getopts, 'recursive|r'
+	push getopts, 'invert-match|v'
+	push getopts, 'version|V'
+	push getopts, 'help'
+	push_eh handler
+	.local pmc opts
+	opts = getopts.'get_options'(argv)
+	$I0 = defined opts['help']
+	.If($I0, {
+		showhelp()
+	})
+	$I0 = defined opts['version']
+	.If($I0, {
+		showversion()
+	})
+
+        .local int argc
+        argc = elements argv
+        .Unless(argc>1, { showhelp() }) # need rule and at least one file
+
+	.local string rule
+	.local pmc p6rule_compile, matchsub
+	rule = shift argv
+	p6rule_compile = compreg 'PGE::Perl6Regex'
+	matchsub = p6rule_compile(rule)
+	.If(null matchsub, { die 'Unable to compile regex' })
+
+	.local int i, filecount
+	.local string filename
+	.local pmc File, OS, files, handle
+	files = new 'ResizableStringArray'
+	files = argv
+	filecount = files
+	# define with-filename if there's more than one file
+	.If(filecount >= 2, { opts['with-filename'] = 1 })
+        $P0 = loadlib 'file'
+	File = new 'File'
+        $P0 = loadlib 'os'
+	OS = new 'OS'
+	# This must be here, or else it'll get filled with junk data we use stdin...
+	i = 0
+
+	.Unless(filecount, {
+		# no args, use stdin
+	stdindashhack:
+		handle = getstdin
+		filename = '(standard input)'
+		goto stdinhack
+	})
+	.For(, i < filecount, inc i, {
+		filename = files[i]
+		.If(filename == '-', {
+			goto stdindashhack
+		})
+		$I1 = File.'is_file'(filename)
+		.IfElse($I1, {
+			# Is a file
+			handle = open filename, 'r'
+		},{
+			# Not a file, hopefully a directory
+			$I1 = File.'is_dir'(filename)
+			$I0 = defined opts['recursive']
+			$I1 &= $I0
+			.Unless($I1, {
+				printerr "pgegrep: '"
+				printerr filename
+				printerr "': Operation not supported.\n"
+				goto nextfor_0
+			})
+			$P0 = OS.'readdir'(filename)
+			.Foreach($S0, $P0, {
+				.If($S0 != '.', {
+				.If($S0 != '..', {
+					$S1 = filename . '/'
+					$S0 = $S1 . $S0
+					$P1 = new 'ResizableStringArray'
+					$P1[0] = $S0
+					$I0 = i + 1
+					splice files, $P1, $I0, 0
+				}) })
+			})
+			filecount = files
+			goto nextfor_0
+		})
+	stdinhack:
+		checkfile(handle, filename, matchsub, opts)
+		close handle
+	nextfor_0:
+	})
+
+	end
+handler:
+	.local pmc exception, pmcmsg
+	.local string message
+	.get_results (exception)
+	pmcmsg = getattribute exception, 'message'
+	pop_eh
+        message = pmcmsg
+        message  = "pgegrep: " . message
+        die message
+.end
+
+.sub checkfile
+	.param pmc handle
+	.param string filename
+	.param pmc matchsub
+	.param pmc opts
+
+	.local pmc match
+	.local string line
+	.local int lineno, linelen, matched
+	lineno = 1
+	matched = 0 # Only used for --files-without-matches
+	line = readline handle
+	linelen = length line
+
+	.local pmc p6rule_compile, cntrlchar
+	$S0 = '<+cntrl-[\t\r\n]>'
+	p6rule_compile = compreg 'PGE::Perl6Regex'
+	cntrlchar = p6rule_compile($S0)
+
+	.For(, linelen, {
+                line = readline handle
+                linelen = length line
+                inc lineno
+        }, {
+		match = matchsub(line)
+                $I1 = istrue match
+		match = cntrlchar(line)
+
+                $I2 = istrue match
+		$I0 = defined opts['files-without-matches']
+		.If($I0, {
+			.If($I1, { matched = 1 })
+			goto next
+		})
+		$I0 = defined opts['files-with-matches']
+		$I0 = $I0 && $I1
+		.If($I0, {
+			say filename
+			.return()
+		})
+
+		$I0 = defined opts['invert-match']
+		not $I0
+		$I1 = xor $I1, $I0
+		.Unless($I1, {
+			$I0 = defined opts['text']
+			$I0 = xor $I0, $I2
+			.If($I0, {
+				print 'Binary file '
+				print filename
+				say   ' matches'
+				.return()
+			})
+			$I0 = defined opts['with-filename']
+			$I1 = defined opts['recursive']
+			$I0 = $I0 || $I1
+			.If($I0, {
+                                print filename
+                                print ':'
+                        })
+			$I0 = defined opts['line-number']
+			.If($I0, {
+                                print lineno
+                                print ':'
+                        })
+			print line
+		})
+		#---------
+	next:
+	})
+	$I0 = defined opts['files-without-matches']
+	.If($I0, { say filename })
+	.return()
+.end
+
+.sub showhelp
+	print <<'HELP'
+Usage: pgegrep [OPTIONS] PATTERN [FILE...]
+Search for the Perl 6 Rule PATTERN in each file.
+
+  -v --invert-match          print lines not matching PATTERN
+  -V --version               print the version and exit
+     --help                  show this help and exit
+  -r --recursive             recursively descend into directories
+  -L --files-without-matches print a list of files that do not match PATTERN
+  -l --files-with-matches    print a list of files that do match PATTERN
+  -a --text                  treat binary files as text
+  -n --line-number           print the line number for each match
+  -H --with-filename         print the filename for each match
+
+HELP
+	end
+.end
+
+.sub showversion
+	print <<'VERSION'
+pgegrep v0.0.1
+VERSION
+	end
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/unshared_buffers/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/unshared_buffers/ext/nqp-rx/src/stage0/HLL-s0.pir	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/ext/nqp-rx/src/stage0/HLL-s0.pir	Sun Aug 29 17:09:11 2010	(r48719)
@@ -438,6 +438,16 @@
 .sub 'quote_EXPR' :method
     .param pmc args            :slurpy
 
+    .local pmc cur, debug
+    .local string target
+    .local int pos
+
+    (cur, pos, target) = self.'!cursor_start'()
+    debug = getattribute cur, '$!debug'
+    if null debug goto debug_1
+    cur.'!cursor_debug'('START', 'quote_EXPR')
+  debug_1:
+
     .local pmc quotemod, true
     .lex '%*QUOTEMOD', quotemod
     quotemod = new ['Hash']
@@ -466,11 +476,6 @@
     goto args_loop
   args_done:
 
-    .local pmc cur
-    .local string target
-    .local int pos
-
-    (cur, pos, target) = self.'!cursor_start'()
 
     .local pmc start, stop
     (start, stop) = self.'peek_delimiters'(target, pos)
@@ -484,7 +489,13 @@
     $P10.'!cursor_names'('quote_delimited')
     pos = $P10.'pos'()
     cur.'!cursor_pass'(pos, 'quote_EXPR')
+    if null debug goto done
+    cur.'!cursor_debug'('PASS', 'quote_EXPR')
+    goto done
   fail:
+    if null debug goto done
+    cur.'!cursor_debug'('FAIL', 'quote_EXPR')
+  done:
     .return (cur)
 .end
 
@@ -574,6 +585,13 @@
     .param string preclim      :optional
     .param int has_preclim     :opt_flag
 
+    .local pmc here, pos, debug
+    (here, pos) = self.'!cursor_start'()
+    debug = getattribute here, '$!debug'
+    if null debug goto debug_1
+    here.'!cursor_debug'('START', 'EXPR')
+  debug_1:
+
     if has_preclim goto have_preclim
     preclim = ''
   have_preclim:
@@ -588,9 +606,6 @@
     termstack = new ['ResizablePMCArray']
     .lex '@termstack', termstack
 
-    .local pmc here, from, pos
-    (here, pos) = self.'!cursor_start'()
-
   term_loop:
     here = here.termishrx()
     unless here goto fail
@@ -718,7 +733,14 @@
     setattribute here, '$!pos', pos
     setattribute here, '$!match', term
     here.'!reduce'('EXPR')
+    if null debug goto done
+    here.'!cursor_debug'('PASS', 'EXPR')
+    goto done
+
   fail:
+    if null debug goto done
+    here.'!cursor_debug'('FAIL', 'EXPR')
+  done:
     .return (here)
 
   err_internal:
@@ -809,7 +831,7 @@
 
     .local pmc pos
     pos = self.'pos'()
-    self.'!cursor_debug'('START MARKER name=', markname, ', pos=', pos)
+    self.'!cursor_debug'('START', 'MARKER name=', markname, ', pos=', pos)
 
     .local pmc markhash
     markhash = get_global '%!MARKHASH'
@@ -818,7 +840,7 @@
     set_global '%!MARKHASH', markhash
   have_markhash:
     markhash[markname] = pos
-    self.'!cursor_debug'('PASS  MARKER')
+    self.'!cursor_debug'('PASS', 'MARKER')
     .return (1)
 .end
 
@@ -826,7 +848,7 @@
 .sub 'MARKED' :method
     .param pmc markname
 
-    self.'!cursor_debug'('START MARKED name=', markname)
+    self.'!cursor_debug'('START','MARKED name=', markname)
 
     .local pmc markhash
     markhash = get_global '%!MARKHASH'
@@ -835,10 +857,10 @@
     if null $P0 goto fail
     $P1 = self.'pos'()
     unless $P0 == $P1 goto fail
-    self.'!cursor_debug'('PASS  MARKED')
+    self.'!cursor_debug'('PASS','MARKED')
     .return (1)
   fail:
-    self.'!cursor_debug'('FAIL  MARKED')
+    self.'!cursor_debug'('FAIL','MARKED')
     .return (0)
 .end
 
@@ -902,7 +924,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467467.13603")
+.sub "_block11"  :anon :subid("10_1282323993.58127")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
@@ -919,15 +941,15 @@
     $P332 = $P14()
 .annotate 'line', 1
     .return ($P332)
-    .const 'Sub' $P334 = "106_1280467467.13603" 
+    .const 'Sub' $P334 = "106_1282323993.58127" 
     .return ($P334)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post107") :outer("10_1280467467.13603")
+.sub "" :load :init :subid("post107") :outer("10_1282323993.58127")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467467.13603" 
+    .const 'Sub' $P12 = "10_1282323993.58127" 
     .local pmc block
     set block, $P12
     $P337 = get_root_global ["parrot"], "P6metaclass"
@@ -936,83 +958,83 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1280467467.13603") :outer("10_1280467467.13603")
+.sub "_block13"  :subid("11_1282323993.58127") :outer("10_1282323993.58127")
 .annotate 'line', 5
-    .const 'Sub' $P319 = "103_1280467467.13603" 
+    .const 'Sub' $P319 = "103_1282323993.58127" 
     capture_lex $P319
-    .const 'Sub' $P313 = "101_1280467467.13603" 
+    .const 'Sub' $P313 = "101_1282323993.58127" 
     capture_lex $P313
-    .const 'Sub' $P300 = "98_1280467467.13603" 
+    .const 'Sub' $P300 = "98_1282323993.58127" 
     capture_lex $P300
-    .const 'Sub' $P268 = "93_1280467467.13603" 
+    .const 'Sub' $P268 = "93_1282323993.58127" 
     capture_lex $P268
-    .const 'Sub' $P262 = "91_1280467467.13603" 
+    .const 'Sub' $P262 = "91_1282323993.58127" 
     capture_lex $P262
-    .const 'Sub' $P257 = "89_1280467467.13603" 
+    .const 'Sub' $P257 = "89_1282323993.58127" 
     capture_lex $P257
-    .const 'Sub' $P251 = "87_1280467467.13603" 
+    .const 'Sub' $P251 = "87_1282323993.58127" 
     capture_lex $P251
-    .const 'Sub' $P245 = "85_1280467467.13603" 
+    .const 'Sub' $P245 = "85_1282323993.58127" 
     capture_lex $P245
-    .const 'Sub' $P240 = "83_1280467467.13603" 
+    .const 'Sub' $P240 = "83_1282323993.58127" 
     capture_lex $P240
-    .const 'Sub' $P235 = "81_1280467467.13603" 
+    .const 'Sub' $P235 = "81_1282323993.58127" 
     capture_lex $P235
-    .const 'Sub' $P230 = "79_1280467467.13603" 
+    .const 'Sub' $P230 = "79_1282323993.58127" 
     capture_lex $P230
-    .const 'Sub' $P225 = "77_1280467467.13603" 
+    .const 'Sub' $P225 = "77_1282323993.58127" 
     capture_lex $P225
-    .const 'Sub' $P220 = "75_1280467467.13603" 
+    .const 'Sub' $P220 = "75_1282323993.58127" 
     capture_lex $P220
-    .const 'Sub' $P215 = "73_1280467467.13603" 
+    .const 'Sub' $P215 = "73_1282323993.58127" 
     capture_lex $P215
-    .const 'Sub' $P210 = "71_1280467467.13603" 
+    .const 'Sub' $P210 = "71_1282323993.58127" 
     capture_lex $P210
-    .const 'Sub' $P205 = "69_1280467467.13603" 
+    .const 'Sub' $P205 = "69_1282323993.58127" 
     capture_lex $P205
-    .const 'Sub' $P195 = "65_1280467467.13603" 
+    .const 'Sub' $P195 = "65_1282323993.58127" 
     capture_lex $P195
-    .const 'Sub' $P182 = "63_1280467467.13603" 
+    .const 'Sub' $P182 = "63_1282323993.58127" 
     capture_lex $P182
-    .const 'Sub' $P170 = "61_1280467467.13603" 
+    .const 'Sub' $P170 = "61_1282323993.58127" 
     capture_lex $P170
-    .const 'Sub' $P164 = "59_1280467467.13603" 
+    .const 'Sub' $P164 = "59_1282323993.58127" 
     capture_lex $P164
-    .const 'Sub' $P157 = "57_1280467467.13603" 
+    .const 'Sub' $P157 = "57_1282323993.58127" 
     capture_lex $P157
-    .const 'Sub' $P151 = "55_1280467467.13603" 
+    .const 'Sub' $P151 = "55_1282323993.58127" 
     capture_lex $P151
-    .const 'Sub' $P144 = "53_1280467467.13603" 
+    .const 'Sub' $P144 = "53_1282323993.58127" 
     capture_lex $P144
-    .const 'Sub' $P138 = "51_1280467467.13603" 
+    .const 'Sub' $P138 = "51_1282323993.58127" 
     capture_lex $P138
-    .const 'Sub' $P131 = "49_1280467467.13603" 
+    .const 'Sub' $P131 = "49_1282323993.58127" 
     capture_lex $P131
-    .const 'Sub' $P125 = "47_1280467467.13603" 
+    .const 'Sub' $P125 = "47_1282323993.58127" 
     capture_lex $P125
-    .const 'Sub' $P119 = "45_1280467467.13603" 
+    .const 'Sub' $P119 = "45_1282323993.58127" 
     capture_lex $P119
-    .const 'Sub' $P110 = "43_1280467467.13603" 
+    .const 'Sub' $P110 = "43_1282323993.58127" 
     capture_lex $P110
-    .const 'Sub' $P102 = "41_1280467467.13603" 
+    .const 'Sub' $P102 = "41_1282323993.58127" 
     capture_lex $P102
-    .const 'Sub' $P92 = "40_1280467467.13603" 
+    .const 'Sub' $P92 = "40_1282323993.58127" 
     capture_lex $P92
-    .const 'Sub' $P86 = "38_1280467467.13603" 
+    .const 'Sub' $P86 = "38_1282323993.58127" 
     capture_lex $P86
-    .const 'Sub' $P81 = "36_1280467467.13603" 
+    .const 'Sub' $P81 = "36_1282323993.58127" 
     capture_lex $P81
-    .const 'Sub' $P73 = "34_1280467467.13603" 
+    .const 'Sub' $P73 = "34_1282323993.58127" 
     capture_lex $P73
-    .const 'Sub' $P67 = "32_1280467467.13603" 
+    .const 'Sub' $P67 = "32_1282323993.58127" 
     capture_lex $P67
-    .const 'Sub' $P61 = "30_1280467467.13603" 
+    .const 'Sub' $P61 = "30_1282323993.58127" 
     capture_lex $P61
-    .const 'Sub' $P55 = "28_1280467467.13603" 
+    .const 'Sub' $P55 = "28_1282323993.58127" 
     capture_lex $P55
-    .const 'Sub' $P22 = "14_1280467467.13603" 
+    .const 'Sub' $P22 = "14_1282323993.58127" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1280467467.13603" 
+    .const 'Sub' $P15 = "12_1282323993.58127" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -1021,17 +1043,17 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 33
-    .const 'Sub' $P319 = "103_1280467467.13603" 
+    .const 'Sub' $P319 = "103_1282323993.58127" 
     capture_lex $P319
 .annotate 'line', 5
     .return ($P319)
-    .const 'Sub' $P329 = "105_1280467467.13603" 
+    .const 'Sub' $P329 = "105_1282323993.58127" 
     .return ($P329)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "ws"  :subid("12_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1039,7 +1061,9 @@
     .local int rx16_eos
     .local int rx16_rep
     .local pmc rx16_cur
+    .local pmc rx16_debug
     (rx16_cur, rx16_pos, rx16_tgt, $I10) = self."!cursor_start"()
+    getattribute rx16_debug, rx16_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx16_cur
     .local pmc match
     .lex "$/", match
@@ -1051,7 +1075,9 @@
     substr rx16_tgt, rx16_tgt, rx16_off
   rx16_start:
     eq $I10, 1, rx16_restart
-    rx16_cur."!cursor_debug"("START ", "ws")
+    if_null rx16_debug, debug_108
+    rx16_cur."!cursor_debug"("START", "ws")
+  debug_108:
     $I10 = self.'from'()
     ne $I10, -1, rxscan19_done
     goto rxscan19_scan
@@ -1087,8 +1113,8 @@
     add $I11, rx16_pos, 1
     gt $I11, rx16_eos, rx16_fail
     sub $I11, rx16_pos, rx16_off
-    substr $S10, rx16_tgt, $I11, 1
-    ne $S10, "#", rx16_fail
+    ord $I11, rx16_tgt, $I11
+    ne $I11, 35, rx16_fail
     add rx16_pos, 1
   # rx charclass_q N r 0..-1
     sub $I10, rx16_pos, rx16_off
@@ -1103,10 +1129,14 @@
   rxquantr20_done:
   # rx pass
     rx16_cur."!cursor_pass"(rx16_pos, "ws")
-    rx16_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx16_pos)
+    if_null rx16_debug, debug_109
+    rx16_cur."!cursor_debug"("PASS", "ws", " at pos=", rx16_pos)
+  debug_109:
     .return (rx16_cur)
   rx16_restart:
-    rx16_cur."!cursor_debug"("NEXT ", "ws")
+    if_null rx16_debug, debug_110
+    rx16_cur."!cursor_debug"("NEXT", "ws")
+  debug_110:
   rx16_fail:
     (rx16_rep, rx16_pos, $I10, $P10) = rx16_cur."!mark_fail"(0)
     lt rx16_pos, -1, rx16_done
@@ -1114,14 +1144,16 @@
     jump $I10
   rx16_done:
     rx16_cur."!cursor_fail"()
-    rx16_cur."!cursor_debug"("FAIL  ", "ws")
+    if_null rx16_debug, debug_111
+    rx16_cur."!cursor_debug"("FAIL", "ws")
+  debug_111:
     .return (rx16_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1280467467.13603") :method
+.sub "!PREFIX__ws"  :subid("13_1282323993.58127") :method
 .annotate 'line', 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1130,7 +1162,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "termish"  :subid("14_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 5
     .local string rx23_tgt
     .local int rx23_pos
@@ -1138,8 +1170,10 @@
     .local int rx23_eos
     .local int rx23_rep
     .local pmc rx23_cur
+    .local pmc rx23_debug
     (rx23_cur, rx23_pos, rx23_tgt, $I10) = self."!cursor_start"()
-    rx23_cur."!cursor_caparray"("prefixish", "postfixish")
+    rx23_cur."!cursor_caparray"("postfixish", "prefixish")
+    getattribute rx23_debug, rx23_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx23_cur
     .local pmc match
     .lex "$/", match
@@ -1151,7 +1185,9 @@
     substr rx23_tgt, rx23_tgt, rx23_off
   rx23_start:
     eq $I10, 1, rx23_restart
-    rx23_cur."!cursor_debug"("START ", "termish")
+    if_null rx23_debug, debug_112
+    rx23_cur."!cursor_debug"("START", "termish")
+  debug_112:
     $I10 = self.'from'()
     ne $I10, -1, rxscan26_done
     goto rxscan26_scan
@@ -1223,11 +1259,15 @@
 .annotate 'line', 7
   # rx pass
     rx23_cur."!cursor_pass"(rx23_pos, "termish")
-    rx23_cur."!cursor_debug"("PASS  ", "termish", " at pos=", rx23_pos)
+    if_null rx23_debug, debug_113
+    rx23_cur."!cursor_debug"("PASS", "termish", " at pos=", rx23_pos)
+  debug_113:
     .return (rx23_cur)
   rx23_restart:
 .annotate 'line', 5
-    rx23_cur."!cursor_debug"("NEXT ", "termish")
+    if_null rx23_debug, debug_114
+    rx23_cur."!cursor_debug"("NEXT", "termish")
+  debug_114:
   rx23_fail:
     (rx23_rep, rx23_pos, $I10, $P10) = rx23_cur."!mark_fail"(0)
     lt rx23_pos, -1, rx23_done
@@ -1235,14 +1275,16 @@
     jump $I10
   rx23_done:
     rx23_cur."!cursor_fail"()
-    rx23_cur."!cursor_debug"("FAIL  ", "termish")
+    if_null rx23_debug, debug_115
+    rx23_cur."!cursor_debug"("FAIL", "termish")
+  debug_115:
     .return (rx23_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1280467467.13603") :method
+.sub "!PREFIX__termish"  :subid("15_1282323993.58127") :method
 .annotate 'line', 5
     new $P25, "ResizablePMCArray"
     push $P25, ""
@@ -1251,7 +1293,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1280467467.13603") :method
+.sub "term"  :subid("16_1282323993.58127") :method
 .annotate 'line', 13
     $P32 = self."!protoregex"("term")
     .return ($P32)
@@ -1259,7 +1301,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1280467467.13603") :method
+.sub "!PREFIX__term"  :subid("17_1282323993.58127") :method
 .annotate 'line', 13
     $P34 = self."!PREFIX__!protoregex"("term")
     .return ($P34)
@@ -1267,7 +1309,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1280467467.13603") :method
+.sub "infix"  :subid("18_1282323993.58127") :method
 .annotate 'line', 14
     $P36 = self."!protoregex"("infix")
     .return ($P36)
@@ -1275,7 +1317,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1280467467.13603") :method
+.sub "!PREFIX__infix"  :subid("19_1282323993.58127") :method
 .annotate 'line', 14
     $P38 = self."!PREFIX__!protoregex"("infix")
     .return ($P38)
@@ -1283,7 +1325,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1280467467.13603") :method
+.sub "prefix"  :subid("20_1282323993.58127") :method
 .annotate 'line', 15
     $P40 = self."!protoregex"("prefix")
     .return ($P40)
@@ -1291,7 +1333,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1280467467.13603") :method
+.sub "!PREFIX__prefix"  :subid("21_1282323993.58127") :method
 .annotate 'line', 15
     $P42 = self."!PREFIX__!protoregex"("prefix")
     .return ($P42)
@@ -1299,7 +1341,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1280467467.13603") :method
+.sub "postfix"  :subid("22_1282323993.58127") :method
 .annotate 'line', 16
     $P44 = self."!protoregex"("postfix")
     .return ($P44)
@@ -1307,7 +1349,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1280467467.13603") :method
+.sub "!PREFIX__postfix"  :subid("23_1282323993.58127") :method
 .annotate 'line', 16
     $P46 = self."!PREFIX__!protoregex"("postfix")
     .return ($P46)
@@ -1315,7 +1357,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1280467467.13603") :method
+.sub "circumfix"  :subid("24_1282323993.58127") :method
 .annotate 'line', 17
     $P48 = self."!protoregex"("circumfix")
     .return ($P48)
@@ -1323,7 +1365,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1280467467.13603") :method
+.sub "!PREFIX__circumfix"  :subid("25_1282323993.58127") :method
 .annotate 'line', 17
     $P50 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P50)
@@ -1331,7 +1373,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1280467467.13603") :method
+.sub "postcircumfix"  :subid("26_1282323993.58127") :method
 .annotate 'line', 18
     $P52 = self."!protoregex"("postcircumfix")
     .return ($P52)
@@ -1339,7 +1381,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1280467467.13603") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1282323993.58127") :method
 .annotate 'line', 18
     $P54 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P54)
@@ -1347,7 +1389,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "term:sym<circumfix>"  :subid("28_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 5
     .local string rx56_tgt
     .local int rx56_pos
@@ -1355,7 +1397,9 @@
     .local int rx56_eos
     .local int rx56_rep
     .local pmc rx56_cur
+    .local pmc rx56_debug
     (rx56_cur, rx56_pos, rx56_tgt, $I10) = self."!cursor_start"()
+    getattribute rx56_debug, rx56_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx56_cur
     .local pmc match
     .lex "$/", match
@@ -1367,7 +1411,9 @@
     substr rx56_tgt, rx56_tgt, rx56_off
   rx56_start:
     eq $I10, 1, rx56_restart
-    rx56_cur."!cursor_debug"("START ", "term:sym<circumfix>")
+    if_null rx56_debug, debug_116
+    rx56_cur."!cursor_debug"("START", "term:sym<circumfix>")
+  debug_116:
     $I10 = self.'from'()
     ne $I10, -1, rxscan60_done
     goto rxscan60_scan
@@ -1390,11 +1436,15 @@
     rx56_pos = $P10."pos"()
   # rx pass
     rx56_cur."!cursor_pass"(rx56_pos, "term:sym<circumfix>")
-    rx56_cur."!cursor_debug"("PASS  ", "term:sym<circumfix>", " at pos=", rx56_pos)
+    if_null rx56_debug, debug_117
+    rx56_cur."!cursor_debug"("PASS", "term:sym<circumfix>", " at pos=", rx56_pos)
+  debug_117:
     .return (rx56_cur)
   rx56_restart:
 .annotate 'line', 5
-    rx56_cur."!cursor_debug"("NEXT ", "term:sym<circumfix>")
+    if_null rx56_debug, debug_118
+    rx56_cur."!cursor_debug"("NEXT", "term:sym<circumfix>")
+  debug_118:
   rx56_fail:
     (rx56_rep, rx56_pos, $I10, $P10) = rx56_cur."!mark_fail"(0)
     lt rx56_pos, -1, rx56_done
@@ -1402,14 +1452,16 @@
     jump $I10
   rx56_done:
     rx56_cur."!cursor_fail"()
-    rx56_cur."!cursor_debug"("FAIL  ", "term:sym<circumfix>")
+    if_null rx56_debug, debug_119
+    rx56_cur."!cursor_debug"("FAIL", "term:sym<circumfix>")
+  debug_119:
     .return (rx56_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1280467467.13603") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1282323993.58127") :method
 .annotate 'line', 5
     $P58 = self."!PREFIX__!subrule"("circumfix", "")
     new $P59, "ResizablePMCArray"
@@ -1419,7 +1471,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "infixish"  :subid("30_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 5
     .local string rx62_tgt
     .local int rx62_pos
@@ -1427,7 +1479,9 @@
     .local int rx62_eos
     .local int rx62_rep
     .local pmc rx62_cur
+    .local pmc rx62_debug
     (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+    getattribute rx62_debug, rx62_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx62_cur
     .local pmc match
     .lex "$/", match
@@ -1439,7 +1493,9 @@
     substr rx62_tgt, rx62_tgt, rx62_off
   rx62_start:
     eq $I10, 1, rx62_restart
-    rx62_cur."!cursor_debug"("START ", "infixish")
+    if_null rx62_debug, debug_120
+    rx62_cur."!cursor_debug"("START", "infixish")
+  debug_120:
     $I10 = self.'from'()
     ne $I10, -1, rxscan66_done
     goto rxscan66_scan
@@ -1462,11 +1518,15 @@
     rx62_pos = $P10."pos"()
   # rx pass
     rx62_cur."!cursor_pass"(rx62_pos, "infixish")
-    rx62_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx62_pos)
+    if_null rx62_debug, debug_121
+    rx62_cur."!cursor_debug"("PASS", "infixish", " at pos=", rx62_pos)
+  debug_121:
     .return (rx62_cur)
   rx62_restart:
 .annotate 'line', 5
-    rx62_cur."!cursor_debug"("NEXT ", "infixish")
+    if_null rx62_debug, debug_122
+    rx62_cur."!cursor_debug"("NEXT", "infixish")
+  debug_122:
   rx62_fail:
     (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
     lt rx62_pos, -1, rx62_done
@@ -1474,14 +1534,16 @@
     jump $I10
   rx62_done:
     rx62_cur."!cursor_fail"()
-    rx62_cur."!cursor_debug"("FAIL  ", "infixish")
+    if_null rx62_debug, debug_123
+    rx62_cur."!cursor_debug"("FAIL", "infixish")
+  debug_123:
     .return (rx62_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1280467467.13603") :method
+.sub "!PREFIX__infixish"  :subid("31_1282323993.58127") :method
 .annotate 'line', 5
     $P64 = self."!PREFIX__!subrule"("infix", "")
     new $P65, "ResizablePMCArray"
@@ -1491,7 +1553,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "prefixish"  :subid("32_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 5
     .local string rx68_tgt
     .local int rx68_pos
@@ -1499,7 +1561,9 @@
     .local int rx68_eos
     .local int rx68_rep
     .local pmc rx68_cur
+    .local pmc rx68_debug
     (rx68_cur, rx68_pos, rx68_tgt, $I10) = self."!cursor_start"()
+    getattribute rx68_debug, rx68_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx68_cur
     .local pmc match
     .lex "$/", match
@@ -1511,7 +1575,9 @@
     substr rx68_tgt, rx68_tgt, rx68_off
   rx68_start:
     eq $I10, 1, rx68_restart
-    rx68_cur."!cursor_debug"("START ", "prefixish")
+    if_null rx68_debug, debug_124
+    rx68_cur."!cursor_debug"("START", "prefixish")
+  debug_124:
     $I10 = self.'from'()
     ne $I10, -1, rxscan72_done
     goto rxscan72_scan
@@ -1539,11 +1605,15 @@
     rx68_pos = $P10."pos"()
   # rx pass
     rx68_cur."!cursor_pass"(rx68_pos, "prefixish")
-    rx68_cur."!cursor_debug"("PASS  ", "prefixish", " at pos=", rx68_pos)
+    if_null rx68_debug, debug_125
+    rx68_cur."!cursor_debug"("PASS", "prefixish", " at pos=", rx68_pos)
+  debug_125:
     .return (rx68_cur)
   rx68_restart:
 .annotate 'line', 5
-    rx68_cur."!cursor_debug"("NEXT ", "prefixish")
+    if_null rx68_debug, debug_126
+    rx68_cur."!cursor_debug"("NEXT", "prefixish")
+  debug_126:
   rx68_fail:
     (rx68_rep, rx68_pos, $I10, $P10) = rx68_cur."!mark_fail"(0)
     lt rx68_pos, -1, rx68_done
@@ -1551,14 +1621,16 @@
     jump $I10
   rx68_done:
     rx68_cur."!cursor_fail"()
-    rx68_cur."!cursor_debug"("FAIL  ", "prefixish")
+    if_null rx68_debug, debug_127
+    rx68_cur."!cursor_debug"("FAIL", "prefixish")
+  debug_127:
     .return (rx68_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1280467467.13603") :method
+.sub "!PREFIX__prefixish"  :subid("33_1282323993.58127") :method
 .annotate 'line', 5
     $P70 = self."!PREFIX__!subrule"("prefix", "")
     new $P71, "ResizablePMCArray"
@@ -1568,7 +1640,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "postfixish"  :subid("34_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 5
     .local string rx74_tgt
     .local int rx74_pos
@@ -1576,7 +1648,9 @@
     .local int rx74_eos
     .local int rx74_rep
     .local pmc rx74_cur
+    .local pmc rx74_debug
     (rx74_cur, rx74_pos, rx74_tgt, $I10) = self."!cursor_start"()
+    getattribute rx74_debug, rx74_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx74_cur
     .local pmc match
     .lex "$/", match
@@ -1588,7 +1662,9 @@
     substr rx74_tgt, rx74_tgt, rx74_off
   rx74_start:
     eq $I10, 1, rx74_restart
-    rx74_cur."!cursor_debug"("START ", "postfixish")
+    if_null rx74_debug, debug_128
+    rx74_cur."!cursor_debug"("START", "postfixish")
+  debug_128:
     $I10 = self.'from'()
     ne $I10, -1, rxscan79_done
     goto rxscan79_scan
@@ -1627,11 +1703,15 @@
 .annotate 'line', 24
   # rx pass
     rx74_cur."!cursor_pass"(rx74_pos, "postfixish")
-    rx74_cur."!cursor_debug"("PASS  ", "postfixish", " at pos=", rx74_pos)
+    if_null rx74_debug, debug_129
+    rx74_cur."!cursor_debug"("PASS", "postfixish", " at pos=", rx74_pos)
+  debug_129:
     .return (rx74_cur)
   rx74_restart:
 .annotate 'line', 5
-    rx74_cur."!cursor_debug"("NEXT ", "postfixish")
+    if_null rx74_debug, debug_130
+    rx74_cur."!cursor_debug"("NEXT", "postfixish")
+  debug_130:
   rx74_fail:
     (rx74_rep, rx74_pos, $I10, $P10) = rx74_cur."!mark_fail"(0)
     lt rx74_pos, -1, rx74_done
@@ -1639,14 +1719,16 @@
     jump $I10
   rx74_done:
     rx74_cur."!cursor_fail"()
-    rx74_cur."!cursor_debug"("FAIL  ", "postfixish")
+    if_null rx74_debug, debug_131
+    rx74_cur."!cursor_debug"("FAIL", "postfixish")
+  debug_131:
     .return (rx74_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1280467467.13603") :method
+.sub "!PREFIX__postfixish"  :subid("35_1282323993.58127") :method
 .annotate 'line', 5
     $P76 = self."!PREFIX__!subrule"("postcircumfix", "")
     $P77 = self."!PREFIX__!subrule"("postfix", "")
@@ -1658,7 +1740,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nullterm"  :subid("36_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 5
     .local string rx82_tgt
     .local int rx82_pos
@@ -1666,7 +1748,9 @@
     .local int rx82_eos
     .local int rx82_rep
     .local pmc rx82_cur
+    .local pmc rx82_debug
     (rx82_cur, rx82_pos, rx82_tgt, $I10) = self."!cursor_start"()
+    getattribute rx82_debug, rx82_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx82_cur
     .local pmc match
     .lex "$/", match
@@ -1678,7 +1762,9 @@
     substr rx82_tgt, rx82_tgt, rx82_off
   rx82_start:
     eq $I10, 1, rx82_restart
-    rx82_cur."!cursor_debug"("START ", "nullterm")
+    if_null rx82_debug, debug_132
+    rx82_cur."!cursor_debug"("START", "nullterm")
+  debug_132:
     $I10 = self.'from'()
     ne $I10, -1, rxscan85_done
     goto rxscan85_scan
@@ -1694,11 +1780,15 @@
 .annotate 'line', 29
   # rx pass
     rx82_cur."!cursor_pass"(rx82_pos, "nullterm")
-    rx82_cur."!cursor_debug"("PASS  ", "nullterm", " at pos=", rx82_pos)
+    if_null rx82_debug, debug_133
+    rx82_cur."!cursor_debug"("PASS", "nullterm", " at pos=", rx82_pos)
+  debug_133:
     .return (rx82_cur)
   rx82_restart:
 .annotate 'line', 5
-    rx82_cur."!cursor_debug"("NEXT ", "nullterm")
+    if_null rx82_debug, debug_134
+    rx82_cur."!cursor_debug"("NEXT", "nullterm")
+  debug_134:
   rx82_fail:
     (rx82_rep, rx82_pos, $I10, $P10) = rx82_cur."!mark_fail"(0)
     lt rx82_pos, -1, rx82_done
@@ -1706,14 +1796,16 @@
     jump $I10
   rx82_done:
     rx82_cur."!cursor_fail"()
-    rx82_cur."!cursor_debug"("FAIL  ", "nullterm")
+    if_null rx82_debug, debug_135
+    rx82_cur."!cursor_debug"("FAIL", "nullterm")
+  debug_135:
     .return (rx82_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1280467467.13603") :method
+.sub "!PREFIX__nullterm"  :subid("37_1282323993.58127") :method
 .annotate 'line', 5
     new $P84, "ResizablePMCArray"
     push $P84, ""
@@ -1722,7 +1814,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nullterm_alt"  :subid("38_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 5
     .local string rx87_tgt
     .local int rx87_pos
@@ -1730,7 +1822,9 @@
     .local int rx87_eos
     .local int rx87_rep
     .local pmc rx87_cur
+    .local pmc rx87_debug
     (rx87_cur, rx87_pos, rx87_tgt, $I10) = self."!cursor_start"()
+    getattribute rx87_debug, rx87_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx87_cur
     .local pmc match
     .lex "$/", match
@@ -1742,7 +1836,9 @@
     substr rx87_tgt, rx87_tgt, rx87_off
   rx87_start:
     eq $I10, 1, rx87_restart
-    rx87_cur."!cursor_debug"("START ", "nullterm_alt")
+    if_null rx87_debug, debug_136
+    rx87_cur."!cursor_debug"("START", "nullterm_alt")
+  debug_136:
     $I10 = self.'from'()
     ne $I10, -1, rxscan91_done
     goto rxscan91_scan
@@ -1765,11 +1861,15 @@
     rx87_pos = $P10."pos"()
   # rx pass
     rx87_cur."!cursor_pass"(rx87_pos, "nullterm_alt")
-    rx87_cur."!cursor_debug"("PASS  ", "nullterm_alt", " at pos=", rx87_pos)
+    if_null rx87_debug, debug_137
+    rx87_cur."!cursor_debug"("PASS", "nullterm_alt", " at pos=", rx87_pos)
+  debug_137:
     .return (rx87_cur)
   rx87_restart:
 .annotate 'line', 5
-    rx87_cur."!cursor_debug"("NEXT ", "nullterm_alt")
+    if_null rx87_debug, debug_138
+    rx87_cur."!cursor_debug"("NEXT", "nullterm_alt")
+  debug_138:
   rx87_fail:
     (rx87_rep, rx87_pos, $I10, $P10) = rx87_cur."!mark_fail"(0)
     lt rx87_pos, -1, rx87_done
@@ -1777,14 +1877,16 @@
     jump $I10
   rx87_done:
     rx87_cur."!cursor_fail"()
-    rx87_cur."!cursor_debug"("FAIL  ", "nullterm_alt")
+    if_null rx87_debug, debug_139
+    rx87_cur."!cursor_debug"("FAIL", "nullterm_alt")
+  debug_139:
     .return (rx87_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1280467467.13603") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1282323993.58127") :method
 .annotate 'line', 5
     $P89 = self."!PREFIX__!subrule"("nullterm", "")
     new $P90, "ResizablePMCArray"
@@ -1795,7 +1897,7 @@
 
 .namespace ["HLL";"Grammar"]
 .include "except_types.pasm"
-.sub "nulltermish"  :subid("40_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "nulltermish"  :subid("40_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     new $P94, 'ExceptionHandler'
     set_addr $P94, control_93
@@ -1822,7 +1924,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_delimited"  :subid("41_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx103_tgt
     .local int rx103_pos
@@ -1830,8 +1932,10 @@
     .local int rx103_eos
     .local int rx103_rep
     .local pmc rx103_cur
+    .local pmc rx103_debug
     (rx103_cur, rx103_pos, rx103_tgt, $I10) = self."!cursor_start"()
     rx103_cur."!cursor_caparray"("quote_atom")
+    getattribute rx103_debug, rx103_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx103_cur
     .local pmc match
     .lex "$/", match
@@ -1843,7 +1947,9 @@
     substr rx103_tgt, rx103_tgt, rx103_off
   rx103_start:
     eq $I10, 1, rx103_restart
-    rx103_cur."!cursor_debug"("START ", "quote_delimited")
+    if_null rx103_debug, debug_140
+    rx103_cur."!cursor_debug"("START", "quote_delimited")
+  debug_140:
     $I10 = self.'from'()
     ne $I10, -1, rxscan107_done
     goto rxscan107_scan
@@ -1897,11 +2003,15 @@
 .annotate 'line', 36
   # rx pass
     rx103_cur."!cursor_pass"(rx103_pos, "quote_delimited")
-    rx103_cur."!cursor_debug"("PASS  ", "quote_delimited", " at pos=", rx103_pos)
+    if_null rx103_debug, debug_141
+    rx103_cur."!cursor_debug"("PASS", "quote_delimited", " at pos=", rx103_pos)
+  debug_141:
     .return (rx103_cur)
   rx103_restart:
 .annotate 'line', 33
-    rx103_cur."!cursor_debug"("NEXT ", "quote_delimited")
+    if_null rx103_debug, debug_142
+    rx103_cur."!cursor_debug"("NEXT", "quote_delimited")
+  debug_142:
   rx103_fail:
     (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
     lt rx103_pos, -1, rx103_done
@@ -1909,14 +2019,16 @@
     jump $I10
   rx103_done:
     rx103_cur."!cursor_fail"()
-    rx103_cur."!cursor_debug"("FAIL  ", "quote_delimited")
+    if_null rx103_debug, debug_143
+    rx103_cur."!cursor_debug"("FAIL", "quote_delimited")
+  debug_143:
     .return (rx103_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1280467467.13603") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1282323993.58127") :method
 .annotate 'line', 33
     $P105 = self."!PREFIX__!subrule"("starter", "")
     new $P106, "ResizablePMCArray"
@@ -1926,7 +2038,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_atom"  :subid("43_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx111_tgt
     .local int rx111_pos
@@ -1934,7 +2046,9 @@
     .local int rx111_eos
     .local int rx111_rep
     .local pmc rx111_cur
+    .local pmc rx111_debug
     (rx111_cur, rx111_pos, rx111_tgt, $I10) = self."!cursor_start"()
+    getattribute rx111_debug, rx111_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx111_cur
     .local pmc match
     .lex "$/", match
@@ -1946,7 +2060,9 @@
     substr rx111_tgt, rx111_tgt, rx111_off
   rx111_start:
     eq $I10, 1, rx111_restart
-    rx111_cur."!cursor_debug"("START ", "quote_atom")
+    if_null rx111_debug, debug_144
+    rx111_cur."!cursor_debug"("START", "quote_atom")
+  debug_144:
     $I10 = self.'from'()
     ne $I10, -1, rxscan114_done
     goto rxscan114_scan
@@ -2004,11 +2120,15 @@
 .annotate 'line', 40
   # rx pass
     rx111_cur."!cursor_pass"(rx111_pos, "quote_atom")
-    rx111_cur."!cursor_debug"("PASS  ", "quote_atom", " at pos=", rx111_pos)
+    if_null rx111_debug, debug_145
+    rx111_cur."!cursor_debug"("PASS", "quote_atom", " at pos=", rx111_pos)
+  debug_145:
     .return (rx111_cur)
   rx111_restart:
 .annotate 'line', 33
-    rx111_cur."!cursor_debug"("NEXT ", "quote_atom")
+    if_null rx111_debug, debug_146
+    rx111_cur."!cursor_debug"("NEXT", "quote_atom")
+  debug_146:
   rx111_fail:
     (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0)
     lt rx111_pos, -1, rx111_done
@@ -2016,14 +2136,16 @@
     jump $I10
   rx111_done:
     rx111_cur."!cursor_fail"()
-    rx111_cur."!cursor_debug"("FAIL  ", "quote_atom")
+    if_null rx111_debug, debug_147
+    rx111_cur."!cursor_debug"("FAIL", "quote_atom")
+  debug_147:
     .return (rx111_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1280467467.13603") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1282323993.58127") :method
 .annotate 'line', 33
     new $P113, "ResizablePMCArray"
     push $P113, ""
@@ -2032,7 +2154,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "decint"  :subid("45_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx120_tgt
     .local int rx120_pos
@@ -2040,7 +2162,9 @@
     .local int rx120_eos
     .local int rx120_rep
     .local pmc rx120_cur
+    .local pmc rx120_debug
     (rx120_cur, rx120_pos, rx120_tgt, $I10) = self."!cursor_start"()
+    getattribute rx120_debug, rx120_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx120_cur
     .local pmc match
     .lex "$/", match
@@ -2052,7 +2176,9 @@
     substr rx120_tgt, rx120_tgt, rx120_off
   rx120_start:
     eq $I10, 1, rx120_restart
-    rx120_cur."!cursor_debug"("START ", "decint")
+    if_null rx120_debug, debug_148
+    rx120_cur."!cursor_debug"("START", "decint")
+  debug_148:
     $I10 = self.'from'()
     ne $I10, -1, rxscan123_done
     goto rxscan123_scan
@@ -2084,18 +2210,22 @@
     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
+    ord $I11, rx120_tgt, $I11
+    ne $I11, 95, rx120_fail
     add rx120_pos, 1
     goto rxquantr124_loop
   rxquantr124_done:
   # rx pass
     rx120_cur."!cursor_pass"(rx120_pos, "decint")
-    rx120_cur."!cursor_debug"("PASS  ", "decint", " at pos=", rx120_pos)
+    if_null rx120_debug, debug_149
+    rx120_cur."!cursor_debug"("PASS", "decint", " at pos=", rx120_pos)
+  debug_149:
     .return (rx120_cur)
   rx120_restart:
 .annotate 'line', 33
-    rx120_cur."!cursor_debug"("NEXT ", "decint")
+    if_null rx120_debug, debug_150
+    rx120_cur."!cursor_debug"("NEXT", "decint")
+  debug_150:
   rx120_fail:
     (rx120_rep, rx120_pos, $I10, $P10) = rx120_cur."!mark_fail"(0)
     lt rx120_pos, -1, rx120_done
@@ -2103,14 +2233,16 @@
     jump $I10
   rx120_done:
     rx120_cur."!cursor_fail"()
-    rx120_cur."!cursor_debug"("FAIL  ", "decint")
+    if_null rx120_debug, debug_151
+    rx120_cur."!cursor_debug"("FAIL", "decint")
+  debug_151:
     .return (rx120_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1280467467.13603") :method
+.sub "!PREFIX__decint"  :subid("46_1282323993.58127") :method
 .annotate 'line', 33
     new $P122, "ResizablePMCArray"
     push $P122, ""
@@ -2119,7 +2251,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "decints"  :subid("47_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx126_tgt
     .local int rx126_pos
@@ -2127,8 +2259,10 @@
     .local int rx126_eos
     .local int rx126_rep
     .local pmc rx126_cur
+    .local pmc rx126_debug
     (rx126_cur, rx126_pos, rx126_tgt, $I10) = self."!cursor_start"()
     rx126_cur."!cursor_caparray"("decint")
+    getattribute rx126_debug, rx126_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx126_cur
     .local pmc match
     .lex "$/", match
@@ -2140,7 +2274,9 @@
     substr rx126_tgt, rx126_tgt, rx126_off
   rx126_start:
     eq $I10, 1, rx126_restart
-    rx126_cur."!cursor_debug"("START ", "decints")
+    if_null rx126_debug, debug_152
+    rx126_cur."!cursor_debug"("START", "decints")
+  debug_152:
     $I10 = self.'from'()
     ne $I10, -1, rxscan129_done
     goto rxscan129_scan
@@ -2183,18 +2319,22 @@
     add $I11, rx126_pos, 1
     gt $I11, rx126_eos, rx126_fail
     sub $I11, rx126_pos, rx126_off
-    substr $S10, rx126_tgt, $I11, 1
-    ne $S10, ",", rx126_fail
+    ord $I11, rx126_tgt, $I11
+    ne $I11, 44, rx126_fail
     add rx126_pos, 1
     goto rxquantr130_loop
   rxquantr130_done:
   # rx pass
     rx126_cur."!cursor_pass"(rx126_pos, "decints")
-    rx126_cur."!cursor_debug"("PASS  ", "decints", " at pos=", rx126_pos)
+    if_null rx126_debug, debug_153
+    rx126_cur."!cursor_debug"("PASS", "decints", " at pos=", rx126_pos)
+  debug_153:
     .return (rx126_cur)
   rx126_restart:
 .annotate 'line', 33
-    rx126_cur."!cursor_debug"("NEXT ", "decints")
+    if_null rx126_debug, debug_154
+    rx126_cur."!cursor_debug"("NEXT", "decints")
+  debug_154:
   rx126_fail:
     (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
     lt rx126_pos, -1, rx126_done
@@ -2202,14 +2342,16 @@
     jump $I10
   rx126_done:
     rx126_cur."!cursor_fail"()
-    rx126_cur."!cursor_debug"("FAIL  ", "decints")
+    if_null rx126_debug, debug_155
+    rx126_cur."!cursor_debug"("FAIL", "decints")
+  debug_155:
     .return (rx126_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1280467467.13603") :method
+.sub "!PREFIX__decints"  :subid("48_1282323993.58127") :method
 .annotate 'line', 33
     new $P128, "ResizablePMCArray"
     push $P128, ""
@@ -2218,7 +2360,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "hexint"  :subid("49_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx132_tgt
     .local int rx132_pos
@@ -2226,7 +2368,9 @@
     .local int rx132_eos
     .local int rx132_rep
     .local pmc rx132_cur
+    .local pmc rx132_debug
     (rx132_cur, rx132_pos, rx132_tgt, $I10) = self."!cursor_start"()
+    getattribute rx132_debug, rx132_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx132_cur
     .local pmc match
     .lex "$/", match
@@ -2238,7 +2382,9 @@
     substr rx132_tgt, rx132_tgt, rx132_off
   rx132_start:
     eq $I10, 1, rx132_restart
-    rx132_cur."!cursor_debug"("START ", "hexint")
+    if_null rx132_debug, debug_156
+    rx132_cur."!cursor_debug"("START", "hexint")
+  debug_156:
     $I10 = self.'from'()
     ne $I10, -1, rxscan135_done
     goto rxscan135_scan
@@ -2256,23 +2402,22 @@
     set_addr $I10, rxquantr136_done
     rx132_cur."!mark_push"(0, -1, $I10)
   rxquantr136_loop:
-  # rx rxquantr137 ** 1..*
-    set_addr $I10, rxquantr137_done
-    rx132_cur."!mark_push"(0, -1, $I10)
-  rxquantr137_loop:
-  # rx enumcharlist negate=0 
-    ge rx132_pos, rx132_eos, rx132_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx132_pos, rx132_off
+    set rx132_rep, 0
+    sub $I12, rx132_eos, rx132_pos
+  rxenumcharlistq137_loop:
+    le $I12, 0, rxenumcharlistq137_done
     substr $S10, rx132_tgt, $I10, 1
     index $I11, "0123456789abcdefABCDEF", $S10
-    lt $I11, 0, rx132_fail
-    inc rx132_pos
-    set_addr $I10, rxquantr137_done
-    (rx132_rep) = rx132_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr137_done
-    rx132_cur."!mark_push"(rx132_rep, rx132_pos, $I10)
-    goto rxquantr137_loop
-  rxquantr137_done:
+    lt $I11, 0, rxenumcharlistq137_done
+    inc rx132_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq137_loop
+  rxenumcharlistq137_done:
+    lt rx132_rep, 1, rx132_fail
+    add rx132_pos, rx132_pos, rx132_rep
     set_addr $I10, rxquantr136_done
     (rx132_rep) = rx132_cur."!mark_commit"($I10)
     set_addr $I10, rxquantr136_done
@@ -2281,18 +2426,22 @@
     add $I11, rx132_pos, 1
     gt $I11, rx132_eos, rx132_fail
     sub $I11, rx132_pos, rx132_off
-    substr $S10, rx132_tgt, $I11, 1
-    ne $S10, "_", rx132_fail
+    ord $I11, rx132_tgt, $I11
+    ne $I11, 95, rx132_fail
     add rx132_pos, 1
     goto rxquantr136_loop
   rxquantr136_done:
   # rx pass
     rx132_cur."!cursor_pass"(rx132_pos, "hexint")
-    rx132_cur."!cursor_debug"("PASS  ", "hexint", " at pos=", rx132_pos)
+    if_null rx132_debug, debug_157
+    rx132_cur."!cursor_debug"("PASS", "hexint", " at pos=", rx132_pos)
+  debug_157:
     .return (rx132_cur)
   rx132_restart:
 .annotate 'line', 33
-    rx132_cur."!cursor_debug"("NEXT ", "hexint")
+    if_null rx132_debug, debug_158
+    rx132_cur."!cursor_debug"("NEXT", "hexint")
+  debug_158:
   rx132_fail:
     (rx132_rep, rx132_pos, $I10, $P10) = rx132_cur."!mark_fail"(0)
     lt rx132_pos, -1, rx132_done
@@ -2300,14 +2449,16 @@
     jump $I10
   rx132_done:
     rx132_cur."!cursor_fail"()
-    rx132_cur."!cursor_debug"("FAIL  ", "hexint")
+    if_null rx132_debug, debug_159
+    rx132_cur."!cursor_debug"("FAIL", "hexint")
+  debug_159:
     .return (rx132_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1280467467.13603") :method
+.sub "!PREFIX__hexint"  :subid("50_1282323993.58127") :method
 .annotate 'line', 33
     new $P134, "ResizablePMCArray"
     push $P134, ""
@@ -2316,7 +2467,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "hexints"  :subid("51_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx139_tgt
     .local int rx139_pos
@@ -2324,8 +2475,10 @@
     .local int rx139_eos
     .local int rx139_rep
     .local pmc rx139_cur
+    .local pmc rx139_debug
     (rx139_cur, rx139_pos, rx139_tgt, $I10) = self."!cursor_start"()
     rx139_cur."!cursor_caparray"("hexint")
+    getattribute rx139_debug, rx139_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx139_cur
     .local pmc match
     .lex "$/", match
@@ -2337,7 +2490,9 @@
     substr rx139_tgt, rx139_tgt, rx139_off
   rx139_start:
     eq $I10, 1, rx139_restart
-    rx139_cur."!cursor_debug"("START ", "hexints")
+    if_null rx139_debug, debug_160
+    rx139_cur."!cursor_debug"("START", "hexints")
+  debug_160:
     $I10 = self.'from'()
     ne $I10, -1, rxscan142_done
     goto rxscan142_scan
@@ -2380,18 +2535,22 @@
     add $I11, rx139_pos, 1
     gt $I11, rx139_eos, rx139_fail
     sub $I11, rx139_pos, rx139_off
-    substr $S10, rx139_tgt, $I11, 1
-    ne $S10, ",", rx139_fail
+    ord $I11, rx139_tgt, $I11
+    ne $I11, 44, rx139_fail
     add rx139_pos, 1
     goto rxquantr143_loop
   rxquantr143_done:
   # rx pass
     rx139_cur."!cursor_pass"(rx139_pos, "hexints")
-    rx139_cur."!cursor_debug"("PASS  ", "hexints", " at pos=", rx139_pos)
+    if_null rx139_debug, debug_161
+    rx139_cur."!cursor_debug"("PASS", "hexints", " at pos=", rx139_pos)
+  debug_161:
     .return (rx139_cur)
   rx139_restart:
 .annotate 'line', 33
-    rx139_cur."!cursor_debug"("NEXT ", "hexints")
+    if_null rx139_debug, debug_162
+    rx139_cur."!cursor_debug"("NEXT", "hexints")
+  debug_162:
   rx139_fail:
     (rx139_rep, rx139_pos, $I10, $P10) = rx139_cur."!mark_fail"(0)
     lt rx139_pos, -1, rx139_done
@@ -2399,14 +2558,16 @@
     jump $I10
   rx139_done:
     rx139_cur."!cursor_fail"()
-    rx139_cur."!cursor_debug"("FAIL  ", "hexints")
+    if_null rx139_debug, debug_163
+    rx139_cur."!cursor_debug"("FAIL", "hexints")
+  debug_163:
     .return (rx139_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1280467467.13603") :method
+.sub "!PREFIX__hexints"  :subid("52_1282323993.58127") :method
 .annotate 'line', 33
     new $P141, "ResizablePMCArray"
     push $P141, ""
@@ -2415,7 +2576,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "octint"  :subid("53_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2423,7 +2584,9 @@
     .local int rx145_eos
     .local int rx145_rep
     .local pmc rx145_cur
+    .local pmc rx145_debug
     (rx145_cur, rx145_pos, rx145_tgt, $I10) = self."!cursor_start"()
+    getattribute rx145_debug, rx145_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx145_cur
     .local pmc match
     .lex "$/", match
@@ -2435,7 +2598,9 @@
     substr rx145_tgt, rx145_tgt, rx145_off
   rx145_start:
     eq $I10, 1, rx145_restart
-    rx145_cur."!cursor_debug"("START ", "octint")
+    if_null rx145_debug, debug_164
+    rx145_cur."!cursor_debug"("START", "octint")
+  debug_164:
     $I10 = self.'from'()
     ne $I10, -1, rxscan148_done
     goto rxscan148_scan
@@ -2453,23 +2618,22 @@
     set_addr $I10, rxquantr149_done
     rx145_cur."!mark_push"(0, -1, $I10)
   rxquantr149_loop:
-  # rx rxquantr150 ** 1..*
-    set_addr $I10, rxquantr150_done
-    rx145_cur."!mark_push"(0, -1, $I10)
-  rxquantr150_loop:
-  # rx enumcharlist negate=0 
-    ge rx145_pos, rx145_eos, rx145_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx145_pos, rx145_off
+    set rx145_rep, 0
+    sub $I12, rx145_eos, rx145_pos
+  rxenumcharlistq150_loop:
+    le $I12, 0, rxenumcharlistq150_done
     substr $S10, rx145_tgt, $I10, 1
     index $I11, "01234567", $S10
-    lt $I11, 0, rx145_fail
-    inc rx145_pos
-    set_addr $I10, rxquantr150_done
-    (rx145_rep) = rx145_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr150_done
-    rx145_cur."!mark_push"(rx145_rep, rx145_pos, $I10)
-    goto rxquantr150_loop
-  rxquantr150_done:
+    lt $I11, 0, rxenumcharlistq150_done
+    inc rx145_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq150_loop
+  rxenumcharlistq150_done:
+    lt rx145_rep, 1, rx145_fail
+    add rx145_pos, rx145_pos, rx145_rep
     set_addr $I10, rxquantr149_done
     (rx145_rep) = rx145_cur."!mark_commit"($I10)
     set_addr $I10, rxquantr149_done
@@ -2478,18 +2642,22 @@
     add $I11, rx145_pos, 1
     gt $I11, rx145_eos, rx145_fail
     sub $I11, rx145_pos, rx145_off
-    substr $S10, rx145_tgt, $I11, 1
-    ne $S10, "_", rx145_fail
+    ord $I11, rx145_tgt, $I11
+    ne $I11, 95, rx145_fail
     add rx145_pos, 1
     goto rxquantr149_loop
   rxquantr149_done:
   # rx pass
     rx145_cur."!cursor_pass"(rx145_pos, "octint")
-    rx145_cur."!cursor_debug"("PASS  ", "octint", " at pos=", rx145_pos)
+    if_null rx145_debug, debug_165
+    rx145_cur."!cursor_debug"("PASS", "octint", " at pos=", rx145_pos)
+  debug_165:
     .return (rx145_cur)
   rx145_restart:
 .annotate 'line', 33
-    rx145_cur."!cursor_debug"("NEXT ", "octint")
+    if_null rx145_debug, debug_166
+    rx145_cur."!cursor_debug"("NEXT", "octint")
+  debug_166:
   rx145_fail:
     (rx145_rep, rx145_pos, $I10, $P10) = rx145_cur."!mark_fail"(0)
     lt rx145_pos, -1, rx145_done
@@ -2497,14 +2665,16 @@
     jump $I10
   rx145_done:
     rx145_cur."!cursor_fail"()
-    rx145_cur."!cursor_debug"("FAIL  ", "octint")
+    if_null rx145_debug, debug_167
+    rx145_cur."!cursor_debug"("FAIL", "octint")
+  debug_167:
     .return (rx145_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1280467467.13603") :method
+.sub "!PREFIX__octint"  :subid("54_1282323993.58127") :method
 .annotate 'line', 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2513,7 +2683,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "octints"  :subid("55_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2521,8 +2691,10 @@
     .local int rx152_eos
     .local int rx152_rep
     .local pmc rx152_cur
+    .local pmc rx152_debug
     (rx152_cur, rx152_pos, rx152_tgt, $I10) = self."!cursor_start"()
     rx152_cur."!cursor_caparray"("octint")
+    getattribute rx152_debug, rx152_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx152_cur
     .local pmc match
     .lex "$/", match
@@ -2534,7 +2706,9 @@
     substr rx152_tgt, rx152_tgt, rx152_off
   rx152_start:
     eq $I10, 1, rx152_restart
-    rx152_cur."!cursor_debug"("START ", "octints")
+    if_null rx152_debug, debug_168
+    rx152_cur."!cursor_debug"("START", "octints")
+  debug_168:
     $I10 = self.'from'()
     ne $I10, -1, rxscan155_done
     goto rxscan155_scan
@@ -2577,18 +2751,22 @@
     add $I11, rx152_pos, 1
     gt $I11, rx152_eos, rx152_fail
     sub $I11, rx152_pos, rx152_off
-    substr $S10, rx152_tgt, $I11, 1
-    ne $S10, ",", rx152_fail
+    ord $I11, rx152_tgt, $I11
+    ne $I11, 44, rx152_fail
     add rx152_pos, 1
     goto rxquantr156_loop
   rxquantr156_done:
   # rx pass
     rx152_cur."!cursor_pass"(rx152_pos, "octints")
-    rx152_cur."!cursor_debug"("PASS  ", "octints", " at pos=", rx152_pos)
+    if_null rx152_debug, debug_169
+    rx152_cur."!cursor_debug"("PASS", "octints", " at pos=", rx152_pos)
+  debug_169:
     .return (rx152_cur)
   rx152_restart:
 .annotate 'line', 33
-    rx152_cur."!cursor_debug"("NEXT ", "octints")
+    if_null rx152_debug, debug_170
+    rx152_cur."!cursor_debug"("NEXT", "octints")
+  debug_170:
   rx152_fail:
     (rx152_rep, rx152_pos, $I10, $P10) = rx152_cur."!mark_fail"(0)
     lt rx152_pos, -1, rx152_done
@@ -2596,14 +2774,16 @@
     jump $I10
   rx152_done:
     rx152_cur."!cursor_fail"()
-    rx152_cur."!cursor_debug"("FAIL  ", "octints")
+    if_null rx152_debug, debug_171
+    rx152_cur."!cursor_debug"("FAIL", "octints")
+  debug_171:
     .return (rx152_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1280467467.13603") :method
+.sub "!PREFIX__octints"  :subid("56_1282323993.58127") :method
 .annotate 'line', 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2612,7 +2792,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "binint"  :subid("57_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx158_tgt
     .local int rx158_pos
@@ -2620,7 +2800,9 @@
     .local int rx158_eos
     .local int rx158_rep
     .local pmc rx158_cur
+    .local pmc rx158_debug
     (rx158_cur, rx158_pos, rx158_tgt, $I10) = self."!cursor_start"()
+    getattribute rx158_debug, rx158_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx158_cur
     .local pmc match
     .lex "$/", match
@@ -2632,7 +2814,9 @@
     substr rx158_tgt, rx158_tgt, rx158_off
   rx158_start:
     eq $I10, 1, rx158_restart
-    rx158_cur."!cursor_debug"("START ", "binint")
+    if_null rx158_debug, debug_172
+    rx158_cur."!cursor_debug"("START", "binint")
+  debug_172:
     $I10 = self.'from'()
     ne $I10, -1, rxscan161_done
     goto rxscan161_scan
@@ -2650,23 +2834,22 @@
     set_addr $I10, rxquantr162_done
     rx158_cur."!mark_push"(0, -1, $I10)
   rxquantr162_loop:
-  # rx rxquantr163 ** 1..*
-    set_addr $I10, rxquantr163_done
-    rx158_cur."!mark_push"(0, -1, $I10)
-  rxquantr163_loop:
-  # rx enumcharlist negate=0 
-    ge rx158_pos, rx158_eos, rx158_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx158_pos, rx158_off
+    set rx158_rep, 0
+    sub $I12, rx158_eos, rx158_pos
+  rxenumcharlistq163_loop:
+    le $I12, 0, rxenumcharlistq163_done
     substr $S10, rx158_tgt, $I10, 1
     index $I11, "01", $S10
-    lt $I11, 0, rx158_fail
-    inc rx158_pos
-    set_addr $I10, rxquantr163_done
-    (rx158_rep) = rx158_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr163_done
-    rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I10)
-    goto rxquantr163_loop
-  rxquantr163_done:
+    lt $I11, 0, rxenumcharlistq163_done
+    inc rx158_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq163_loop
+  rxenumcharlistq163_done:
+    lt rx158_rep, 1, rx158_fail
+    add rx158_pos, rx158_pos, rx158_rep
     set_addr $I10, rxquantr162_done
     (rx158_rep) = rx158_cur."!mark_commit"($I10)
     set_addr $I10, rxquantr162_done
@@ -2675,18 +2858,22 @@
     add $I11, rx158_pos, 1
     gt $I11, rx158_eos, rx158_fail
     sub $I11, rx158_pos, rx158_off
-    substr $S10, rx158_tgt, $I11, 1
-    ne $S10, "_", rx158_fail
+    ord $I11, rx158_tgt, $I11
+    ne $I11, 95, rx158_fail
     add rx158_pos, 1
     goto rxquantr162_loop
   rxquantr162_done:
   # rx pass
     rx158_cur."!cursor_pass"(rx158_pos, "binint")
-    rx158_cur."!cursor_debug"("PASS  ", "binint", " at pos=", rx158_pos)
+    if_null rx158_debug, debug_173
+    rx158_cur."!cursor_debug"("PASS", "binint", " at pos=", rx158_pos)
+  debug_173:
     .return (rx158_cur)
   rx158_restart:
 .annotate 'line', 33
-    rx158_cur."!cursor_debug"("NEXT ", "binint")
+    if_null rx158_debug, debug_174
+    rx158_cur."!cursor_debug"("NEXT", "binint")
+  debug_174:
   rx158_fail:
     (rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0)
     lt rx158_pos, -1, rx158_done
@@ -2694,14 +2881,16 @@
     jump $I10
   rx158_done:
     rx158_cur."!cursor_fail"()
-    rx158_cur."!cursor_debug"("FAIL  ", "binint")
+    if_null rx158_debug, debug_175
+    rx158_cur."!cursor_debug"("FAIL", "binint")
+  debug_175:
     .return (rx158_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1280467467.13603") :method
+.sub "!PREFIX__binint"  :subid("58_1282323993.58127") :method
 .annotate 'line', 33
     new $P160, "ResizablePMCArray"
     push $P160, ""
@@ -2710,7 +2899,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "binints"  :subid("59_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx165_tgt
     .local int rx165_pos
@@ -2718,8 +2907,10 @@
     .local int rx165_eos
     .local int rx165_rep
     .local pmc rx165_cur
+    .local pmc rx165_debug
     (rx165_cur, rx165_pos, rx165_tgt, $I10) = self."!cursor_start"()
     rx165_cur."!cursor_caparray"("binint")
+    getattribute rx165_debug, rx165_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx165_cur
     .local pmc match
     .lex "$/", match
@@ -2731,7 +2922,9 @@
     substr rx165_tgt, rx165_tgt, rx165_off
   rx165_start:
     eq $I10, 1, rx165_restart
-    rx165_cur."!cursor_debug"("START ", "binints")
+    if_null rx165_debug, debug_176
+    rx165_cur."!cursor_debug"("START", "binints")
+  debug_176:
     $I10 = self.'from'()
     ne $I10, -1, rxscan168_done
     goto rxscan168_scan
@@ -2774,18 +2967,22 @@
     add $I11, rx165_pos, 1
     gt $I11, rx165_eos, rx165_fail
     sub $I11, rx165_pos, rx165_off
-    substr $S10, rx165_tgt, $I11, 1
-    ne $S10, ",", rx165_fail
+    ord $I11, rx165_tgt, $I11
+    ne $I11, 44, rx165_fail
     add rx165_pos, 1
     goto rxquantr169_loop
   rxquantr169_done:
   # rx pass
     rx165_cur."!cursor_pass"(rx165_pos, "binints")
-    rx165_cur."!cursor_debug"("PASS  ", "binints", " at pos=", rx165_pos)
+    if_null rx165_debug, debug_177
+    rx165_cur."!cursor_debug"("PASS", "binints", " at pos=", rx165_pos)
+  debug_177:
     .return (rx165_cur)
   rx165_restart:
 .annotate 'line', 33
-    rx165_cur."!cursor_debug"("NEXT ", "binints")
+    if_null rx165_debug, debug_178
+    rx165_cur."!cursor_debug"("NEXT", "binints")
+  debug_178:
   rx165_fail:
     (rx165_rep, rx165_pos, $I10, $P10) = rx165_cur."!mark_fail"(0)
     lt rx165_pos, -1, rx165_done
@@ -2793,14 +2990,16 @@
     jump $I10
   rx165_done:
     rx165_cur."!cursor_fail"()
-    rx165_cur."!cursor_debug"("FAIL  ", "binints")
+    if_null rx165_debug, debug_179
+    rx165_cur."!cursor_debug"("FAIL", "binints")
+  debug_179:
     .return (rx165_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1280467467.13603") :method
+.sub "!PREFIX__binints"  :subid("60_1282323993.58127") :method
 .annotate 'line', 33
     new $P167, "ResizablePMCArray"
     push $P167, ""
@@ -2809,7 +3008,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "integer"  :subid("61_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx171_tgt
     .local int rx171_pos
@@ -2817,7 +3016,9 @@
     .local int rx171_eos
     .local int rx171_rep
     .local pmc rx171_cur
+    .local pmc rx171_debug
     (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+    getattribute rx171_debug, rx171_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx171_cur
     .local pmc match
     .lex "$/", match
@@ -2829,7 +3030,9 @@
     substr rx171_tgt, rx171_tgt, rx171_off
   rx171_start:
     eq $I10, 1, rx171_restart
-    rx171_cur."!cursor_debug"("START ", "integer")
+    if_null rx171_debug, debug_180
+    rx171_cur."!cursor_debug"("START", "integer")
+  debug_180:
     $I10 = self.'from'()
     ne $I10, -1, rxscan179_done
     goto rxscan179_scan
@@ -2851,8 +3054,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "0", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 48, rx171_fail
     add rx171_pos, 1
   alt181_0:
     set_addr $I10, alt181_1
@@ -2861,8 +3064,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "b", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 98, rx171_fail
     add rx171_pos, 1
   # rx subrule "binint" subtype=capture negate=
     rx171_cur."!cursor_pos"(rx171_pos)
@@ -2880,8 +3083,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "o", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 111, rx171_fail
     add rx171_pos, 1
   # rx subrule "octint" subtype=capture negate=
     rx171_cur."!cursor_pos"(rx171_pos)
@@ -2899,8 +3102,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "x", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 120, rx171_fail
     add rx171_pos, 1
   # rx subrule "hexint" subtype=capture negate=
     rx171_cur."!cursor_pos"(rx171_pos)
@@ -2916,8 +3119,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, "d", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 100, rx171_fail
     add rx171_pos, 1
   # rx subrule "decint" subtype=capture negate=
     rx171_cur."!cursor_pos"(rx171_pos)
@@ -2942,11 +3145,15 @@
 .annotate 'line', 60
   # rx pass
     rx171_cur."!cursor_pass"(rx171_pos, "integer")
-    rx171_cur."!cursor_debug"("PASS  ", "integer", " at pos=", rx171_pos)
+    if_null rx171_debug, debug_181
+    rx171_cur."!cursor_debug"("PASS", "integer", " at pos=", rx171_pos)
+  debug_181:
     .return (rx171_cur)
   rx171_restart:
 .annotate 'line', 33
-    rx171_cur."!cursor_debug"("NEXT ", "integer")
+    if_null rx171_debug, debug_182
+    rx171_cur."!cursor_debug"("NEXT", "integer")
+  debug_182:
   rx171_fail:
     (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
     lt rx171_pos, -1, rx171_done
@@ -2954,14 +3161,16 @@
     jump $I10
   rx171_done:
     rx171_cur."!cursor_fail"()
-    rx171_cur."!cursor_debug"("FAIL  ", "integer")
+    if_null rx171_debug, debug_183
+    rx171_cur."!cursor_debug"("FAIL", "integer")
+  debug_183:
     .return (rx171_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1280467467.13603") :method
+.sub "!PREFIX__integer"  :subid("62_1282323993.58127") :method
 .annotate 'line', 33
     $P173 = self."!PREFIX__!subrule"("decint", "")
     $P174 = self."!PREFIX__!subrule"("decint", "0d")
@@ -2979,7 +3188,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "dec_number"  :subid("63_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx183_tgt
     .local int rx183_pos
@@ -2987,8 +3196,10 @@
     .local int rx183_eos
     .local int rx183_rep
     .local pmc rx183_cur
+    .local pmc rx183_debug
     (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
     rx183_cur."!cursor_caparray"("escale")
+    getattribute rx183_debug, rx183_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx183_cur
     .local pmc match
     .lex "$/", match
@@ -3000,7 +3211,9 @@
     substr rx183_tgt, rx183_tgt, rx183_off
   rx183_start:
     eq $I10, 1, rx183_restart
-    rx183_cur."!cursor_debug"("START ", "dec_number")
+    if_null rx183_debug, debug_184
+    rx183_cur."!cursor_debug"("START", "dec_number")
+  debug_184:
     $I10 = self.'from'()
     ne $I10, -1, rxscan186_done
     goto rxscan186_scan
@@ -3025,8 +3238,8 @@
     add $I11, rx183_pos, 1
     gt $I11, rx183_eos, rx183_fail
     sub $I11, rx183_pos, rx183_off
-    substr $S10, rx183_tgt, $I11, 1
-    ne $S10, ".", rx183_fail
+    ord $I11, rx183_tgt, $I11
+    ne $I11, 46, rx183_fail
     add rx183_pos, 1
   # rx charclass_q d r 1..-1
     sub $I10, rx183_pos, rx183_off
@@ -3083,8 +3296,8 @@
     add $I11, rx183_pos, 1
     gt $I11, rx183_eos, rx183_fail
     sub $I11, rx183_pos, rx183_off
-    substr $S10, rx183_tgt, $I11, 1
-    ne $S10, ".", rx183_fail
+    ord $I11, rx183_tgt, $I11
+    ne $I11, 46, rx183_fail
     add rx183_pos, 1
   # rx charclass_q d r 1..-1
     sub $I10, rx183_pos, rx183_off
@@ -3157,11 +3370,15 @@
 .annotate 'line', 71
   # rx pass
     rx183_cur."!cursor_pass"(rx183_pos, "dec_number")
-    rx183_cur."!cursor_debug"("PASS  ", "dec_number", " at pos=", rx183_pos)
+    if_null rx183_debug, debug_185
+    rx183_cur."!cursor_debug"("PASS", "dec_number", " at pos=", rx183_pos)
+  debug_185:
     .return (rx183_cur)
   rx183_restart:
 .annotate 'line', 33
-    rx183_cur."!cursor_debug"("NEXT ", "dec_number")
+    if_null rx183_debug, debug_186
+    rx183_cur."!cursor_debug"("NEXT", "dec_number")
+  debug_186:
   rx183_fail:
     (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
     lt rx183_pos, -1, rx183_done
@@ -3169,14 +3386,16 @@
     jump $I10
   rx183_done:
     rx183_cur."!cursor_fail"()
-    rx183_cur."!cursor_debug"("FAIL  ", "dec_number")
+    if_null rx183_debug, debug_187
+    rx183_cur."!cursor_debug"("FAIL", "dec_number")
+  debug_187:
     .return (rx183_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1280467467.13603") :method
+.sub "!PREFIX__dec_number"  :subid("64_1282323993.58127") :method
 .annotate 'line', 33
     new $P185, "ResizablePMCArray"
     push $P185, ""
@@ -3187,7 +3406,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "escale"  :subid("65_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx196_tgt
     .local int rx196_pos
@@ -3195,7 +3414,9 @@
     .local int rx196_eos
     .local int rx196_rep
     .local pmc rx196_cur
+    .local pmc rx196_debug
     (rx196_cur, rx196_pos, rx196_tgt, $I10) = self."!cursor_start"()
+    getattribute rx196_debug, rx196_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx196_cur
     .local pmc match
     .lex "$/", match
@@ -3207,7 +3428,9 @@
     substr rx196_tgt, rx196_tgt, rx196_off
   rx196_start:
     eq $I10, 1, rx196_restart
-    rx196_cur."!cursor_debug"("START ", "escale")
+    if_null rx196_debug, debug_188
+    rx196_cur."!cursor_debug"("START", "escale")
+  debug_188:
     $I10 = self.'from'()
     ne $I10, -1, rxscan199_done
     goto rxscan199_scan
@@ -3228,20 +3451,20 @@
     index $I11, "Ee", $S10
     lt $I11, 0, rx196_fail
     inc rx196_pos
-  # rx rxquantr200 ** 0..1
-    set_addr $I10, rxquantr200_done
-    rx196_cur."!mark_push"(0, rx196_pos, $I10)
-  rxquantr200_loop:
-  # rx enumcharlist negate=0 
-    ge rx196_pos, rx196_eos, rx196_fail
+  # rx enumcharlist_q negate=0  r 0..1
     sub $I10, rx196_pos, rx196_off
+    set rx196_rep, 0
+    sub $I12, rx196_eos, rx196_pos
+    le $I12, 1, rxenumcharlistq200_loop
+    set $I12, 1
+  rxenumcharlistq200_loop:
+    le $I12, 0, rxenumcharlistq200_done
     substr $S10, rx196_tgt, $I10, 1
     index $I11, "+-", $S10
-    lt $I11, 0, rx196_fail
-    inc rx196_pos
-    set_addr $I10, rxquantr200_done
-    (rx196_rep) = rx196_cur."!mark_commit"($I10)
-  rxquantr200_done:
+    lt $I11, 0, rxenumcharlistq200_done
+    inc rx196_rep
+  rxenumcharlistq200_done:
+    add rx196_pos, rx196_pos, rx196_rep
   # rx charclass_q d r 1..-1
     sub $I10, rx196_pos, rx196_off
     find_not_cclass $I11, 8, rx196_tgt, $I10, rx196_eos
@@ -3250,11 +3473,15 @@
     add rx196_pos, rx196_off, $I11
   # rx pass
     rx196_cur."!cursor_pass"(rx196_pos, "escale")
-    rx196_cur."!cursor_debug"("PASS  ", "escale", " at pos=", rx196_pos)
+    if_null rx196_debug, debug_189
+    rx196_cur."!cursor_debug"("PASS", "escale", " at pos=", rx196_pos)
+  debug_189:
     .return (rx196_cur)
   rx196_restart:
 .annotate 'line', 33
-    rx196_cur."!cursor_debug"("NEXT ", "escale")
+    if_null rx196_debug, debug_190
+    rx196_cur."!cursor_debug"("NEXT", "escale")
+  debug_190:
   rx196_fail:
     (rx196_rep, rx196_pos, $I10, $P10) = rx196_cur."!mark_fail"(0)
     lt rx196_pos, -1, rx196_done
@@ -3262,14 +3489,16 @@
     jump $I10
   rx196_done:
     rx196_cur."!cursor_fail"()
-    rx196_cur."!cursor_debug"("FAIL  ", "escale")
+    if_null rx196_debug, debug_191
+    rx196_cur."!cursor_debug"("FAIL", "escale")
+  debug_191:
     .return (rx196_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1280467467.13603") :method
+.sub "!PREFIX__escale"  :subid("66_1282323993.58127") :method
 .annotate 'line', 33
     new $P198, "ResizablePMCArray"
     push $P198, "e"
@@ -3279,7 +3508,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1280467467.13603") :method
+.sub "quote_escape"  :subid("67_1282323993.58127") :method
 .annotate 'line', 79
     $P202 = self."!protoregex"("quote_escape")
     .return ($P202)
@@ -3287,7 +3516,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1280467467.13603") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1282323993.58127") :method
 .annotate 'line', 79
     $P204 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P204)
@@ -3295,7 +3524,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<backslash>"  :subid("69_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx206_tgt
     .local int rx206_pos
@@ -3303,7 +3532,9 @@
     .local int rx206_eos
     .local int rx206_rep
     .local pmc rx206_cur
+    .local pmc rx206_debug
     (rx206_cur, rx206_pos, rx206_tgt, $I10) = self."!cursor_start"()
+    getattribute rx206_debug, rx206_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx206_cur
     .local pmc match
     .lex "$/", match
@@ -3315,7 +3546,9 @@
     substr rx206_tgt, rx206_tgt, rx206_off
   rx206_start:
     eq $I10, 1, rx206_restart
-    rx206_cur."!cursor_debug"("START ", "quote_escape:sym<backslash>")
+    if_null rx206_debug, debug_192
+    rx206_cur."!cursor_debug"("START", "quote_escape:sym<backslash>")
+  debug_192:
     $I10 = self.'from'()
     ne $I10, -1, rxscan209_done
     goto rxscan209_scan
@@ -3342,11 +3575,15 @@
     unless $P10, rx206_fail
   # rx pass
     rx206_cur."!cursor_pass"(rx206_pos, "quote_escape:sym<backslash>")
-    rx206_cur."!cursor_debug"("PASS  ", "quote_escape:sym<backslash>", " at pos=", rx206_pos)
+    if_null rx206_debug, debug_193
+    rx206_cur."!cursor_debug"("PASS", "quote_escape:sym<backslash>", " at pos=", rx206_pos)
+  debug_193:
     .return (rx206_cur)
   rx206_restart:
 .annotate 'line', 33
-    rx206_cur."!cursor_debug"("NEXT ", "quote_escape:sym<backslash>")
+    if_null rx206_debug, debug_194
+    rx206_cur."!cursor_debug"("NEXT", "quote_escape:sym<backslash>")
+  debug_194:
   rx206_fail:
     (rx206_rep, rx206_pos, $I10, $P10) = rx206_cur."!mark_fail"(0)
     lt rx206_pos, -1, rx206_done
@@ -3354,14 +3591,16 @@
     jump $I10
   rx206_done:
     rx206_cur."!cursor_fail"()
-    rx206_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<backslash>")
+    if_null rx206_debug, debug_195
+    rx206_cur."!cursor_debug"("FAIL", "quote_escape:sym<backslash>")
+  debug_195:
     .return (rx206_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1282323993.58127") :method
 .annotate 'line', 33
     new $P208, "ResizablePMCArray"
     push $P208, "\\\\"
@@ -3370,7 +3609,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<stopper>"  :subid("71_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx211_tgt
     .local int rx211_pos
@@ -3378,7 +3617,9 @@
     .local int rx211_eos
     .local int rx211_rep
     .local pmc rx211_cur
+    .local pmc rx211_debug
     (rx211_cur, rx211_pos, rx211_tgt, $I10) = self."!cursor_start"()
+    getattribute rx211_debug, rx211_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx211_cur
     .local pmc match
     .lex "$/", match
@@ -3390,7 +3631,9 @@
     substr rx211_tgt, rx211_tgt, rx211_off
   rx211_start:
     eq $I10, 1, rx211_restart
-    rx211_cur."!cursor_debug"("START ", "quote_escape:sym<stopper>")
+    if_null rx211_debug, debug_196
+    rx211_cur."!cursor_debug"("START", "quote_escape:sym<stopper>")
+  debug_196:
     $I10 = self.'from'()
     ne $I10, -1, rxscan214_done
     goto rxscan214_scan
@@ -3408,8 +3651,8 @@
     add $I11, rx211_pos, 1
     gt $I11, rx211_eos, rx211_fail
     sub $I11, rx211_pos, rx211_off
-    substr $S10, rx211_tgt, $I11, 1
-    ne $S10, "\\", rx211_fail
+    ord $I11, rx211_tgt, $I11
+    ne $I11, 92, rx211_fail
     add rx211_pos, 1
   # rx subrule "quotemod_check" subtype=zerowidth negate=
     rx211_cur."!cursor_pos"(rx211_pos)
@@ -3424,11 +3667,15 @@
     rx211_pos = $P10."pos"()
   # rx pass
     rx211_cur."!cursor_pass"(rx211_pos, "quote_escape:sym<stopper>")
-    rx211_cur."!cursor_debug"("PASS  ", "quote_escape:sym<stopper>", " at pos=", rx211_pos)
+    if_null rx211_debug, debug_197
+    rx211_cur."!cursor_debug"("PASS", "quote_escape:sym<stopper>", " at pos=", rx211_pos)
+  debug_197:
     .return (rx211_cur)
   rx211_restart:
 .annotate 'line', 33
-    rx211_cur."!cursor_debug"("NEXT ", "quote_escape:sym<stopper>")
+    if_null rx211_debug, debug_198
+    rx211_cur."!cursor_debug"("NEXT", "quote_escape:sym<stopper>")
+  debug_198:
   rx211_fail:
     (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
     lt rx211_pos, -1, rx211_done
@@ -3436,14 +3683,16 @@
     jump $I10
   rx211_done:
     rx211_cur."!cursor_fail"()
-    rx211_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<stopper>")
+    if_null rx211_debug, debug_199
+    rx211_cur."!cursor_debug"("FAIL", "quote_escape:sym<stopper>")
+  debug_199:
     .return (rx211_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1282323993.58127") :method
 .annotate 'line', 33
     new $P213, "ResizablePMCArray"
     push $P213, "\\"
@@ -3452,7 +3701,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<bs>"  :subid("73_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx216_tgt
     .local int rx216_pos
@@ -3460,7 +3709,9 @@
     .local int rx216_eos
     .local int rx216_rep
     .local pmc rx216_cur
+    .local pmc rx216_debug
     (rx216_cur, rx216_pos, rx216_tgt, $I10) = self."!cursor_start"()
+    getattribute rx216_debug, rx216_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx216_cur
     .local pmc match
     .lex "$/", match
@@ -3472,7 +3723,9 @@
     substr rx216_tgt, rx216_tgt, rx216_off
   rx216_start:
     eq $I10, 1, rx216_restart
-    rx216_cur."!cursor_debug"("START ", "quote_escape:sym<bs>")
+    if_null rx216_debug, debug_200
+    rx216_cur."!cursor_debug"("START", "quote_escape:sym<bs>")
+  debug_200:
     $I10 = self.'from'()
     ne $I10, -1, rxscan219_done
     goto rxscan219_scan
@@ -3499,11 +3752,15 @@
     unless $P10, rx216_fail
   # rx pass
     rx216_cur."!cursor_pass"(rx216_pos, "quote_escape:sym<bs>")
-    rx216_cur."!cursor_debug"("PASS  ", "quote_escape:sym<bs>", " at pos=", rx216_pos)
+    if_null rx216_debug, debug_201
+    rx216_cur."!cursor_debug"("PASS", "quote_escape:sym<bs>", " at pos=", rx216_pos)
+  debug_201:
     .return (rx216_cur)
   rx216_restart:
 .annotate 'line', 33
-    rx216_cur."!cursor_debug"("NEXT ", "quote_escape:sym<bs>")
+    if_null rx216_debug, debug_202
+    rx216_cur."!cursor_debug"("NEXT", "quote_escape:sym<bs>")
+  debug_202:
   rx216_fail:
     (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
     lt rx216_pos, -1, rx216_done
@@ -3511,14 +3768,16 @@
     jump $I10
   rx216_done:
     rx216_cur."!cursor_fail"()
-    rx216_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<bs>")
+    if_null rx216_debug, debug_203
+    rx216_cur."!cursor_debug"("FAIL", "quote_escape:sym<bs>")
+  debug_203:
     .return (rx216_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1282323993.58127") :method
 .annotate 'line', 33
     new $P218, "ResizablePMCArray"
     push $P218, "\\b"
@@ -3527,7 +3786,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<nl>"  :subid("75_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx221_tgt
     .local int rx221_pos
@@ -3535,7 +3794,9 @@
     .local int rx221_eos
     .local int rx221_rep
     .local pmc rx221_cur
+    .local pmc rx221_debug
     (rx221_cur, rx221_pos, rx221_tgt, $I10) = self."!cursor_start"()
+    getattribute rx221_debug, rx221_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx221_cur
     .local pmc match
     .lex "$/", match
@@ -3547,7 +3808,9 @@
     substr rx221_tgt, rx221_tgt, rx221_off
   rx221_start:
     eq $I10, 1, rx221_restart
-    rx221_cur."!cursor_debug"("START ", "quote_escape:sym<nl>")
+    if_null rx221_debug, debug_204
+    rx221_cur."!cursor_debug"("START", "quote_escape:sym<nl>")
+  debug_204:
     $I10 = self.'from'()
     ne $I10, -1, rxscan224_done
     goto rxscan224_scan
@@ -3574,11 +3837,15 @@
     unless $P10, rx221_fail
   # rx pass
     rx221_cur."!cursor_pass"(rx221_pos, "quote_escape:sym<nl>")
-    rx221_cur."!cursor_debug"("PASS  ", "quote_escape:sym<nl>", " at pos=", rx221_pos)
+    if_null rx221_debug, debug_205
+    rx221_cur."!cursor_debug"("PASS", "quote_escape:sym<nl>", " at pos=", rx221_pos)
+  debug_205:
     .return (rx221_cur)
   rx221_restart:
 .annotate 'line', 33
-    rx221_cur."!cursor_debug"("NEXT ", "quote_escape:sym<nl>")
+    if_null rx221_debug, debug_206
+    rx221_cur."!cursor_debug"("NEXT", "quote_escape:sym<nl>")
+  debug_206:
   rx221_fail:
     (rx221_rep, rx221_pos, $I10, $P10) = rx221_cur."!mark_fail"(0)
     lt rx221_pos, -1, rx221_done
@@ -3586,14 +3853,16 @@
     jump $I10
   rx221_done:
     rx221_cur."!cursor_fail"()
-    rx221_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<nl>")
+    if_null rx221_debug, debug_207
+    rx221_cur."!cursor_debug"("FAIL", "quote_escape:sym<nl>")
+  debug_207:
     .return (rx221_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1282323993.58127") :method
 .annotate 'line', 33
     new $P223, "ResizablePMCArray"
     push $P223, "\\n"
@@ -3602,7 +3871,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<cr>"  :subid("77_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx226_tgt
     .local int rx226_pos
@@ -3610,7 +3879,9 @@
     .local int rx226_eos
     .local int rx226_rep
     .local pmc rx226_cur
+    .local pmc rx226_debug
     (rx226_cur, rx226_pos, rx226_tgt, $I10) = self."!cursor_start"()
+    getattribute rx226_debug, rx226_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx226_cur
     .local pmc match
     .lex "$/", match
@@ -3622,7 +3893,9 @@
     substr rx226_tgt, rx226_tgt, rx226_off
   rx226_start:
     eq $I10, 1, rx226_restart
-    rx226_cur."!cursor_debug"("START ", "quote_escape:sym<cr>")
+    if_null rx226_debug, debug_208
+    rx226_cur."!cursor_debug"("START", "quote_escape:sym<cr>")
+  debug_208:
     $I10 = self.'from'()
     ne $I10, -1, rxscan229_done
     goto rxscan229_scan
@@ -3649,11 +3922,15 @@
     unless $P10, rx226_fail
   # rx pass
     rx226_cur."!cursor_pass"(rx226_pos, "quote_escape:sym<cr>")
-    rx226_cur."!cursor_debug"("PASS  ", "quote_escape:sym<cr>", " at pos=", rx226_pos)
+    if_null rx226_debug, debug_209
+    rx226_cur."!cursor_debug"("PASS", "quote_escape:sym<cr>", " at pos=", rx226_pos)
+  debug_209:
     .return (rx226_cur)
   rx226_restart:
 .annotate 'line', 33
-    rx226_cur."!cursor_debug"("NEXT ", "quote_escape:sym<cr>")
+    if_null rx226_debug, debug_210
+    rx226_cur."!cursor_debug"("NEXT", "quote_escape:sym<cr>")
+  debug_210:
   rx226_fail:
     (rx226_rep, rx226_pos, $I10, $P10) = rx226_cur."!mark_fail"(0)
     lt rx226_pos, -1, rx226_done
@@ -3661,14 +3938,16 @@
     jump $I10
   rx226_done:
     rx226_cur."!cursor_fail"()
-    rx226_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<cr>")
+    if_null rx226_debug, debug_211
+    rx226_cur."!cursor_debug"("FAIL", "quote_escape:sym<cr>")
+  debug_211:
     .return (rx226_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1282323993.58127") :method
 .annotate 'line', 33
     new $P228, "ResizablePMCArray"
     push $P228, "\\r"
@@ -3677,7 +3956,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<tab>"  :subid("79_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx231_tgt
     .local int rx231_pos
@@ -3685,7 +3964,9 @@
     .local int rx231_eos
     .local int rx231_rep
     .local pmc rx231_cur
+    .local pmc rx231_debug
     (rx231_cur, rx231_pos, rx231_tgt, $I10) = self."!cursor_start"()
+    getattribute rx231_debug, rx231_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx231_cur
     .local pmc match
     .lex "$/", match
@@ -3697,7 +3978,9 @@
     substr rx231_tgt, rx231_tgt, rx231_off
   rx231_start:
     eq $I10, 1, rx231_restart
-    rx231_cur."!cursor_debug"("START ", "quote_escape:sym<tab>")
+    if_null rx231_debug, debug_212
+    rx231_cur."!cursor_debug"("START", "quote_escape:sym<tab>")
+  debug_212:
     $I10 = self.'from'()
     ne $I10, -1, rxscan234_done
     goto rxscan234_scan
@@ -3724,11 +4007,15 @@
     unless $P10, rx231_fail
   # rx pass
     rx231_cur."!cursor_pass"(rx231_pos, "quote_escape:sym<tab>")
-    rx231_cur."!cursor_debug"("PASS  ", "quote_escape:sym<tab>", " at pos=", rx231_pos)
+    if_null rx231_debug, debug_213
+    rx231_cur."!cursor_debug"("PASS", "quote_escape:sym<tab>", " at pos=", rx231_pos)
+  debug_213:
     .return (rx231_cur)
   rx231_restart:
 .annotate 'line', 33
-    rx231_cur."!cursor_debug"("NEXT ", "quote_escape:sym<tab>")
+    if_null rx231_debug, debug_214
+    rx231_cur."!cursor_debug"("NEXT", "quote_escape:sym<tab>")
+  debug_214:
   rx231_fail:
     (rx231_rep, rx231_pos, $I10, $P10) = rx231_cur."!mark_fail"(0)
     lt rx231_pos, -1, rx231_done
@@ -3736,14 +4023,16 @@
     jump $I10
   rx231_done:
     rx231_cur."!cursor_fail"()
-    rx231_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<tab>")
+    if_null rx231_debug, debug_215
+    rx231_cur."!cursor_debug"("FAIL", "quote_escape:sym<tab>")
+  debug_215:
     .return (rx231_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1282323993.58127") :method
 .annotate 'line', 33
     new $P233, "ResizablePMCArray"
     push $P233, "\\t"
@@ -3752,7 +4041,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<ff>"  :subid("81_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx236_tgt
     .local int rx236_pos
@@ -3760,7 +4049,9 @@
     .local int rx236_eos
     .local int rx236_rep
     .local pmc rx236_cur
+    .local pmc rx236_debug
     (rx236_cur, rx236_pos, rx236_tgt, $I10) = self."!cursor_start"()
+    getattribute rx236_debug, rx236_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx236_cur
     .local pmc match
     .lex "$/", match
@@ -3772,7 +4063,9 @@
     substr rx236_tgt, rx236_tgt, rx236_off
   rx236_start:
     eq $I10, 1, rx236_restart
-    rx236_cur."!cursor_debug"("START ", "quote_escape:sym<ff>")
+    if_null rx236_debug, debug_216
+    rx236_cur."!cursor_debug"("START", "quote_escape:sym<ff>")
+  debug_216:
     $I10 = self.'from'()
     ne $I10, -1, rxscan239_done
     goto rxscan239_scan
@@ -3799,11 +4092,15 @@
     unless $P10, rx236_fail
   # rx pass
     rx236_cur."!cursor_pass"(rx236_pos, "quote_escape:sym<ff>")
-    rx236_cur."!cursor_debug"("PASS  ", "quote_escape:sym<ff>", " at pos=", rx236_pos)
+    if_null rx236_debug, debug_217
+    rx236_cur."!cursor_debug"("PASS", "quote_escape:sym<ff>", " at pos=", rx236_pos)
+  debug_217:
     .return (rx236_cur)
   rx236_restart:
 .annotate 'line', 33
-    rx236_cur."!cursor_debug"("NEXT ", "quote_escape:sym<ff>")
+    if_null rx236_debug, debug_218
+    rx236_cur."!cursor_debug"("NEXT", "quote_escape:sym<ff>")
+  debug_218:
   rx236_fail:
     (rx236_rep, rx236_pos, $I10, $P10) = rx236_cur."!mark_fail"(0)
     lt rx236_pos, -1, rx236_done
@@ -3811,14 +4108,16 @@
     jump $I10
   rx236_done:
     rx236_cur."!cursor_fail"()
-    rx236_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<ff>")
+    if_null rx236_debug, debug_219
+    rx236_cur."!cursor_debug"("FAIL", "quote_escape:sym<ff>")
+  debug_219:
     .return (rx236_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1282323993.58127") :method
 .annotate 'line', 33
     new $P238, "ResizablePMCArray"
     push $P238, "\\f"
@@ -3827,7 +4126,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("83_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<esc>"  :subid("83_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx241_tgt
     .local int rx241_pos
@@ -3835,7 +4134,9 @@
     .local int rx241_eos
     .local int rx241_rep
     .local pmc rx241_cur
+    .local pmc rx241_debug
     (rx241_cur, rx241_pos, rx241_tgt, $I10) = self."!cursor_start"()
+    getattribute rx241_debug, rx241_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx241_cur
     .local pmc match
     .lex "$/", match
@@ -3847,7 +4148,9 @@
     substr rx241_tgt, rx241_tgt, rx241_off
   rx241_start:
     eq $I10, 1, rx241_restart
-    rx241_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
+    if_null rx241_debug, debug_220
+    rx241_cur."!cursor_debug"("START", "quote_escape:sym<esc>")
+  debug_220:
     $I10 = self.'from'()
     ne $I10, -1, rxscan244_done
     goto rxscan244_scan
@@ -3874,11 +4177,15 @@
     unless $P10, rx241_fail
   # rx pass
     rx241_cur."!cursor_pass"(rx241_pos, "quote_escape:sym<esc>")
-    rx241_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx241_pos)
+    if_null rx241_debug, debug_221
+    rx241_cur."!cursor_debug"("PASS", "quote_escape:sym<esc>", " at pos=", rx241_pos)
+  debug_221:
     .return (rx241_cur)
   rx241_restart:
 .annotate 'line', 33
-    rx241_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+    if_null rx241_debug, debug_222
+    rx241_cur."!cursor_debug"("NEXT", "quote_escape:sym<esc>")
+  debug_222:
   rx241_fail:
     (rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0)
     lt rx241_pos, -1, rx241_done
@@ -3886,14 +4193,16 @@
     jump $I10
   rx241_done:
     rx241_cur."!cursor_fail"()
-    rx241_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
+    if_null rx241_debug, debug_223
+    rx241_cur."!cursor_debug"("FAIL", "quote_escape:sym<esc>")
+  debug_223:
     .return (rx241_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("84_1282323993.58127") :method
 .annotate 'line', 33
     new $P243, "ResizablePMCArray"
     push $P243, "\\e"
@@ -3902,7 +4211,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("85_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<hex>"  :subid("85_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx246_tgt
     .local int rx246_pos
@@ -3910,7 +4219,9 @@
     .local int rx246_eos
     .local int rx246_rep
     .local pmc rx246_cur
+    .local pmc rx246_debug
     (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
+    getattribute rx246_debug, rx246_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx246_cur
     .local pmc match
     .lex "$/", match
@@ -3922,7 +4233,9 @@
     substr rx246_tgt, rx246_tgt, rx246_off
   rx246_start:
     eq $I10, 1, rx246_restart
-    rx246_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
+    if_null rx246_debug, debug_224
+    rx246_cur."!cursor_debug"("START", "quote_escape:sym<hex>")
+  debug_224:
     $I10 = self.'from'()
     ne $I10, -1, rxscan249_done
     goto rxscan249_scan
@@ -3964,8 +4277,8 @@
     add $I11, rx246_pos, 1
     gt $I11, rx246_eos, rx246_fail
     sub $I11, rx246_pos, rx246_off
-    substr $S10, rx246_tgt, $I11, 1
-    ne $S10, "[", rx246_fail
+    ord $I11, rx246_tgt, $I11
+    ne $I11, 91, rx246_fail
     add rx246_pos, 1
   # rx subrule "hexints" subtype=capture negate=
     rx246_cur."!cursor_pos"(rx246_pos)
@@ -3978,18 +4291,22 @@
     add $I11, rx246_pos, 1
     gt $I11, rx246_eos, rx246_fail
     sub $I11, rx246_pos, rx246_off
-    substr $S10, rx246_tgt, $I11, 1
-    ne $S10, "]", rx246_fail
+    ord $I11, rx246_tgt, $I11
+    ne $I11, 93, rx246_fail
     add rx246_pos, 1
   alt250_end:
 .annotate 'line', 89
   # rx pass
     rx246_cur."!cursor_pass"(rx246_pos, "quote_escape:sym<hex>")
-    rx246_cur."!cursor_debug"("PASS  ", "quote_escape:sym<hex>", " at pos=", rx246_pos)
+    if_null rx246_debug, debug_225
+    rx246_cur."!cursor_debug"("PASS", "quote_escape:sym<hex>", " at pos=", rx246_pos)
+  debug_225:
     .return (rx246_cur)
   rx246_restart:
 .annotate 'line', 33
-    rx246_cur."!cursor_debug"("NEXT ", "quote_escape:sym<hex>")
+    if_null rx246_debug, debug_226
+    rx246_cur."!cursor_debug"("NEXT", "quote_escape:sym<hex>")
+  debug_226:
   rx246_fail:
     (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
     lt rx246_pos, -1, rx246_done
@@ -3997,14 +4314,16 @@
     jump $I10
   rx246_done:
     rx246_cur."!cursor_fail"()
-    rx246_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<hex>")
+    if_null rx246_debug, debug_227
+    rx246_cur."!cursor_debug"("FAIL", "quote_escape:sym<hex>")
+  debug_227:
     .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("86_1282323993.58127") :method
 .annotate 'line', 33
     new $P248, "ResizablePMCArray"
     push $P248, unicode:"\\x"
@@ -4013,7 +4332,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("87_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<oct>"  :subid("87_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx252_tgt
     .local int rx252_pos
@@ -4021,7 +4340,9 @@
     .local int rx252_eos
     .local int rx252_rep
     .local pmc rx252_cur
+    .local pmc rx252_debug
     (rx252_cur, rx252_pos, rx252_tgt, $I10) = self."!cursor_start"()
+    getattribute rx252_debug, rx252_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx252_cur
     .local pmc match
     .lex "$/", match
@@ -4033,7 +4354,9 @@
     substr rx252_tgt, rx252_tgt, rx252_off
   rx252_start:
     eq $I10, 1, rx252_restart
-    rx252_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
+    if_null rx252_debug, debug_228
+    rx252_cur."!cursor_debug"("START", "quote_escape:sym<oct>")
+  debug_228:
     $I10 = self.'from'()
     ne $I10, -1, rxscan255_done
     goto rxscan255_scan
@@ -4075,8 +4398,8 @@
     add $I11, rx252_pos, 1
     gt $I11, rx252_eos, rx252_fail
     sub $I11, rx252_pos, rx252_off
-    substr $S10, rx252_tgt, $I11, 1
-    ne $S10, "[", rx252_fail
+    ord $I11, rx252_tgt, $I11
+    ne $I11, 91, rx252_fail
     add rx252_pos, 1
   # rx subrule "octints" subtype=capture negate=
     rx252_cur."!cursor_pos"(rx252_pos)
@@ -4089,18 +4412,22 @@
     add $I11, rx252_pos, 1
     gt $I11, rx252_eos, rx252_fail
     sub $I11, rx252_pos, rx252_off
-    substr $S10, rx252_tgt, $I11, 1
-    ne $S10, "]", rx252_fail
+    ord $I11, rx252_tgt, $I11
+    ne $I11, 93, rx252_fail
     add rx252_pos, 1
   alt256_end:
 .annotate 'line', 93
   # rx pass
     rx252_cur."!cursor_pass"(rx252_pos, "quote_escape:sym<oct>")
-    rx252_cur."!cursor_debug"("PASS  ", "quote_escape:sym<oct>", " at pos=", rx252_pos)
+    if_null rx252_debug, debug_229
+    rx252_cur."!cursor_debug"("PASS", "quote_escape:sym<oct>", " at pos=", rx252_pos)
+  debug_229:
     .return (rx252_cur)
   rx252_restart:
 .annotate 'line', 33
-    rx252_cur."!cursor_debug"("NEXT ", "quote_escape:sym<oct>")
+    if_null rx252_debug, debug_230
+    rx252_cur."!cursor_debug"("NEXT", "quote_escape:sym<oct>")
+  debug_230:
   rx252_fail:
     (rx252_rep, rx252_pos, $I10, $P10) = rx252_cur."!mark_fail"(0)
     lt rx252_pos, -1, rx252_done
@@ -4108,14 +4435,16 @@
     jump $I10
   rx252_done:
     rx252_cur."!cursor_fail"()
-    rx252_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<oct>")
+    if_null rx252_debug, debug_231
+    rx252_cur."!cursor_debug"("FAIL", "quote_escape:sym<oct>")
+  debug_231:
     .return (rx252_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("88_1282323993.58127") :method
 .annotate 'line', 33
     new $P254, "ResizablePMCArray"
     push $P254, "\\o"
@@ -4124,7 +4453,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("89_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<chr>"  :subid("89_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx258_tgt
     .local int rx258_pos
@@ -4132,7 +4461,9 @@
     .local int rx258_eos
     .local int rx258_rep
     .local pmc rx258_cur
+    .local pmc rx258_debug
     (rx258_cur, rx258_pos, rx258_tgt, $I10) = self."!cursor_start"()
+    getattribute rx258_debug, rx258_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx258_cur
     .local pmc match
     .lex "$/", match
@@ -4144,7 +4475,9 @@
     substr rx258_tgt, rx258_tgt, rx258_off
   rx258_start:
     eq $I10, 1, rx258_restart
-    rx258_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
+    if_null rx258_debug, debug_232
+    rx258_cur."!cursor_debug"("START", "quote_escape:sym<chr>")
+  debug_232:
     $I10 = self.'from'()
     ne $I10, -1, rxscan261_done
     goto rxscan261_scan
@@ -4178,11 +4511,15 @@
     rx258_pos = $P10."pos"()
   # rx pass
     rx258_cur."!cursor_pass"(rx258_pos, "quote_escape:sym<chr>")
-    rx258_cur."!cursor_debug"("PASS  ", "quote_escape:sym<chr>", " at pos=", rx258_pos)
+    if_null rx258_debug, debug_233
+    rx258_cur."!cursor_debug"("PASS", "quote_escape:sym<chr>", " at pos=", rx258_pos)
+  debug_233:
     .return (rx258_cur)
   rx258_restart:
 .annotate 'line', 33
-    rx258_cur."!cursor_debug"("NEXT ", "quote_escape:sym<chr>")
+    if_null rx258_debug, debug_234
+    rx258_cur."!cursor_debug"("NEXT", "quote_escape:sym<chr>")
+  debug_234:
   rx258_fail:
     (rx258_rep, rx258_pos, $I10, $P10) = rx258_cur."!mark_fail"(0)
     lt rx258_pos, -1, rx258_done
@@ -4190,14 +4527,16 @@
     jump $I10
   rx258_done:
     rx258_cur."!cursor_fail"()
-    rx258_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<chr>")
+    if_null rx258_debug, debug_235
+    rx258_cur."!cursor_debug"("FAIL", "quote_escape:sym<chr>")
+  debug_235:
     .return (rx258_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("90_1282323993.58127") :method
 .annotate 'line', 33
     new $P260, "ResizablePMCArray"
     push $P260, "\\c"
@@ -4206,7 +4545,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("91_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<0>"  :subid("91_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx263_tgt
     .local int rx263_pos
@@ -4214,7 +4553,9 @@
     .local int rx263_eos
     .local int rx263_rep
     .local pmc rx263_cur
+    .local pmc rx263_debug
     (rx263_cur, rx263_pos, rx263_tgt, $I10) = self."!cursor_start"()
+    getattribute rx263_debug, rx263_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx263_cur
     .local pmc match
     .lex "$/", match
@@ -4226,7 +4567,9 @@
     substr rx263_tgt, rx263_tgt, rx263_off
   rx263_start:
     eq $I10, 1, rx263_restart
-    rx263_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
+    if_null rx263_debug, debug_236
+    rx263_cur."!cursor_debug"("START", "quote_escape:sym<0>")
+  debug_236:
     $I10 = self.'from'()
     ne $I10, -1, rxscan266_done
     goto rxscan266_scan
@@ -4244,8 +4587,8 @@
     add $I11, rx263_pos, 1
     gt $I11, rx263_eos, rx263_fail
     sub $I11, rx263_pos, rx263_off
-    substr $S10, rx263_tgt, $I11, 1
-    ne $S10, "\\", rx263_fail
+    ord $I11, rx263_tgt, $I11
+    ne $I11, 92, rx263_fail
     add rx263_pos, 1
   # rx subcapture "sym"
     set_addr $I10, rxcap_267_fail
@@ -4254,8 +4597,8 @@
     add $I11, rx263_pos, 1
     gt $I11, rx263_eos, rx263_fail
     sub $I11, rx263_pos, rx263_off
-    substr $S10, rx263_tgt, $I11, 1
-    ne $S10, "0", rx263_fail
+    ord $I11, rx263_tgt, $I11
+    ne $I11, 48, rx263_fail
     add rx263_pos, 1
     set_addr $I10, rxcap_267_fail
     ($I12, $I11) = rx263_cur."!mark_peek"($I10)
@@ -4274,11 +4617,15 @@
     unless $P10, rx263_fail
   # rx pass
     rx263_cur."!cursor_pass"(rx263_pos, "quote_escape:sym<0>")
-    rx263_cur."!cursor_debug"("PASS  ", "quote_escape:sym<0>", " at pos=", rx263_pos)
+    if_null rx263_debug, debug_237
+    rx263_cur."!cursor_debug"("PASS", "quote_escape:sym<0>", " at pos=", rx263_pos)
+  debug_237:
     .return (rx263_cur)
   rx263_restart:
 .annotate 'line', 33
-    rx263_cur."!cursor_debug"("NEXT ", "quote_escape:sym<0>")
+    if_null rx263_debug, debug_238
+    rx263_cur."!cursor_debug"("NEXT", "quote_escape:sym<0>")
+  debug_238:
   rx263_fail:
     (rx263_rep, rx263_pos, $I10, $P10) = rx263_cur."!mark_fail"(0)
     lt rx263_pos, -1, rx263_done
@@ -4286,14 +4633,16 @@
     jump $I10
   rx263_done:
     rx263_cur."!cursor_fail"()
-    rx263_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<0>")
+    if_null rx263_debug, debug_239
+    rx263_cur."!cursor_debug"("FAIL", "quote_escape:sym<0>")
+  debug_239:
     .return (rx263_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("92_1282323993.58127") :method
 .annotate 'line', 33
     new $P265, "ResizablePMCArray"
     push $P265, "\\0"
@@ -4302,13 +4651,13 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("93_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "quote_escape:sym<misc>"  :subid("93_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
-    .const 'Sub' $P288 = "97_1280467467.13603" 
+    .const 'Sub' $P288 = "97_1282323993.58127" 
     capture_lex $P288
-    .const 'Sub' $P281 = "96_1280467467.13603" 
+    .const 'Sub' $P281 = "96_1282323993.58127" 
     capture_lex $P281
-    .const 'Sub' $P276 = "95_1280467467.13603" 
+    .const 'Sub' $P276 = "95_1282323993.58127" 
     capture_lex $P276
     .local string rx269_tgt
     .local int rx269_pos
@@ -4316,7 +4665,9 @@
     .local int rx269_eos
     .local int rx269_rep
     .local pmc rx269_cur
+    .local pmc rx269_debug
     (rx269_cur, rx269_pos, rx269_tgt, $I10) = self."!cursor_start"()
+    getattribute rx269_debug, rx269_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx269_cur
     .local pmc match
     .lex "$/", match
@@ -4328,7 +4679,9 @@
     substr rx269_tgt, rx269_tgt, rx269_off
   rx269_start:
     eq $I10, 1, rx269_restart
-    rx269_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
+    if_null rx269_debug, debug_240
+    rx269_cur."!cursor_debug"("START", "quote_escape:sym<misc>")
+  debug_240:
     $I10 = self.'from'()
     ne $I10, -1, rxscan272_done
     goto rxscan272_scan
@@ -4346,15 +4699,15 @@
     find_lex $P273, unicode:"$\x{a2}"
     $P274 = $P273."MATCH"()
     store_lex "$/", $P274
-    .const 'Sub' $P276 = "95_1280467467.13603" 
+    .const 'Sub' $P276 = "95_1282323993.58127" 
     capture_lex $P276
     $P277 = $P276()
   # rx literal  "\\"
     add $I11, rx269_pos, 1
     gt $I11, rx269_eos, rx269_fail
     sub $I11, rx269_pos, rx269_off
-    substr $S10, rx269_tgt, $I11, 1
-    ne $S10, "\\", rx269_fail
+    ord $I11, rx269_tgt, $I11
+    ne $I11, 92, rx269_fail
     add rx269_pos, 1
   alt278_0:
 .annotate 'line', 101
@@ -4372,7 +4725,7 @@
 .annotate 'line', 104
   # rx subrule $P281 subtype=capture negate=
     rx269_cur."!cursor_pos"(rx269_pos)
-    .const 'Sub' $P281 = "96_1280467467.13603" 
+    .const 'Sub' $P281 = "96_1282323993.58127" 
     capture_lex $P281
     $P10 = rx269_cur.$P281()
     unless $P10, rx269_fail
@@ -4406,7 +4759,7 @@
     find_lex $P285, unicode:"$\x{a2}"
     $P286 = $P285."MATCH"()
     store_lex "$/", $P286
-    .const 'Sub' $P288 = "97_1280467467.13603" 
+    .const 'Sub' $P288 = "97_1282323993.58127" 
     capture_lex $P288
     $P298 = $P288()
   alt279_end:
@@ -4435,11 +4788,15 @@
 .annotate 'line', 99
   # rx pass
     rx269_cur."!cursor_pass"(rx269_pos, "quote_escape:sym<misc>")
-    rx269_cur."!cursor_debug"("PASS  ", "quote_escape:sym<misc>", " at pos=", rx269_pos)
+    if_null rx269_debug, debug_247
+    rx269_cur."!cursor_debug"("PASS", "quote_escape:sym<misc>", " at pos=", rx269_pos)
+  debug_247:
     .return (rx269_cur)
   rx269_restart:
 .annotate 'line', 33
-    rx269_cur."!cursor_debug"("NEXT ", "quote_escape:sym<misc>")
+    if_null rx269_debug, debug_248
+    rx269_cur."!cursor_debug"("NEXT", "quote_escape:sym<misc>")
+  debug_248:
   rx269_fail:
     (rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0)
     lt rx269_pos, -1, rx269_done
@@ -4447,14 +4804,16 @@
     jump $I10
   rx269_done:
     rx269_cur."!cursor_fail"()
-    rx269_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<misc>")
+    if_null rx269_debug, debug_249
+    rx269_cur."!cursor_debug"("FAIL", "quote_escape:sym<misc>")
+  debug_249:
     .return (rx269_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1280467467.13603") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("94_1282323993.58127") :method
 .annotate 'line', 33
     new $P271, "ResizablePMCArray"
     push $P271, ""
@@ -4463,14 +4822,14 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block275"  :anon :subid("95_1280467467.13603") :outer("93_1280467467.13603")
+.sub "_block275"  :anon :subid("95_1282323993.58127") :outer("93_1282323993.58127")
 .annotate 'line', 100
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block280"  :anon :subid("96_1280467467.13603") :method :outer("93_1280467467.13603")
+.sub "_block280"  :anon :subid("96_1282323993.58127") :method :outer("93_1282323993.58127")
 .annotate 'line', 104
     .local string rx282_tgt
     .local int rx282_pos
@@ -4478,7 +4837,9 @@
     .local int rx282_eos
     .local int rx282_rep
     .local pmc rx282_cur
+    .local pmc rx282_debug
     (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+    getattribute rx282_debug, rx282_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx282_cur
     .local pmc match
     .lex "$/", match
@@ -4490,7 +4851,9 @@
     substr rx282_tgt, rx282_tgt, rx282_off
   rx282_start:
     eq $I10, 1, rx282_restart
-    rx282_cur."!cursor_debug"("START ", "")
+    if_null rx282_debug, debug_241
+    rx282_cur."!cursor_debug"("START", "")
+  debug_241:
     $I10 = self.'from'()
     ne $I10, -1, rxscan283_done
     goto rxscan283_scan
@@ -4511,10 +4874,14 @@
     inc rx282_pos
   # rx pass
     rx282_cur."!cursor_pass"(rx282_pos, "")
-    rx282_cur."!cursor_debug"("PASS  ", "", " at pos=", rx282_pos)
+    if_null rx282_debug, debug_242
+    rx282_cur."!cursor_debug"("PASS", "", " at pos=", rx282_pos)
+  debug_242:
     .return (rx282_cur)
   rx282_restart:
-    rx282_cur."!cursor_debug"("NEXT ", "")
+    if_null rx282_debug, debug_243
+    rx282_cur."!cursor_debug"("NEXT", "")
+  debug_243:
   rx282_fail:
     (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
     lt rx282_pos, -1, rx282_done
@@ -4522,27 +4889,29 @@
     jump $I10
   rx282_done:
     rx282_cur."!cursor_fail"()
-    rx282_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx282_debug, debug_244
+    rx282_cur."!cursor_debug"("FAIL", "")
+  debug_244:
     .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block287"  :anon :subid("97_1280467467.13603") :outer("93_1280467467.13603")
+.sub "_block287"  :anon :subid("97_1282323993.58127") :outer("93_1282323993.58127")
 .annotate 'line', 105
     find_lex $P289, "$/"
     $P290 = $P289."CURSOR"()
     new $P291, "String"
     assign $P291, "Unrecognized backslash sequence: '\\"
     find_lex $P292, "$/"
-    unless_null $P292, vivify_108
+    unless_null $P292, vivify_245
     $P292 = root_new ['parrot';'Hash']
-  vivify_108:
+  vivify_245:
     set $P293, $P292["x"]
-    unless_null $P293, vivify_109
+    unless_null $P293, vivify_246
     new $P293, "Undef"
-  vivify_109:
+  vivify_246:
     $S294 = $P293."Str"()
     concat $P295, $P291, $S294
     concat $P296, $P295, "'"
@@ -4552,9 +4921,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("98_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charname"  :subid("98_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
-    .const 'Sub' $P310 = "100_1280467467.13603" 
+    .const 'Sub' $P310 = "100_1282323993.58127" 
     capture_lex $P310
     .local string rx301_tgt
     .local int rx301_pos
@@ -4562,7 +4931,9 @@
     .local int rx301_eos
     .local int rx301_rep
     .local pmc rx301_cur
+    .local pmc rx301_debug
     (rx301_cur, rx301_pos, rx301_tgt, $I10) = self."!cursor_start"()
+    getattribute rx301_debug, rx301_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx301_cur
     .local pmc match
     .lex "$/", match
@@ -4574,7 +4945,9 @@
     substr rx301_tgt, rx301_tgt, rx301_off
   rx301_start:
     eq $I10, 1, rx301_restart
-    rx301_cur."!cursor_debug"("START ", "charname")
+    if_null rx301_debug, debug_250
+    rx301_cur."!cursor_debug"("START", "charname")
+  debug_250:
     $I10 = self.'from'()
     ne $I10, -1, rxscan305_done
     goto rxscan305_scan
@@ -4634,7 +5007,7 @@
 .annotate 'line', 114
   # rx subrule "before" subtype=zerowidth negate=
     rx301_cur."!cursor_pos"(rx301_pos)
-    .const 'Sub' $P310 = "100_1280467467.13603" 
+    .const 'Sub' $P310 = "100_1282323993.58127" 
     capture_lex $P310
     $P10 = rx301_cur."before"($P310)
     unless $P10, rx301_fail
@@ -4642,11 +5015,15 @@
 .annotate 'line', 111
   # rx pass
     rx301_cur."!cursor_pass"(rx301_pos, "charname")
-    rx301_cur."!cursor_debug"("PASS  ", "charname", " at pos=", rx301_pos)
+    if_null rx301_debug, debug_255
+    rx301_cur."!cursor_debug"("PASS", "charname", " at pos=", rx301_pos)
+  debug_255:
     .return (rx301_cur)
   rx301_restart:
 .annotate 'line', 33
-    rx301_cur."!cursor_debug"("NEXT ", "charname")
+    if_null rx301_debug, debug_256
+    rx301_cur."!cursor_debug"("NEXT", "charname")
+  debug_256:
   rx301_fail:
     (rx301_rep, rx301_pos, $I10, $P10) = rx301_cur."!mark_fail"(0)
     lt rx301_pos, -1, rx301_done
@@ -4654,14 +5031,16 @@
     jump $I10
   rx301_done:
     rx301_cur."!cursor_fail"()
-    rx301_cur."!cursor_debug"("FAIL  ", "charname")
+    if_null rx301_debug, debug_257
+    rx301_cur."!cursor_debug"("FAIL", "charname")
+  debug_257:
     .return (rx301_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("99_1280467467.13603") :method
+.sub "!PREFIX__charname"  :subid("99_1282323993.58127") :method
 .annotate 'line', 33
     $P303 = self."!PREFIX__!subrule"("integer", "")
     new $P304, "ResizablePMCArray"
@@ -4723,7 +5102,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block309"  :anon :subid("100_1280467467.13603") :method :outer("98_1280467467.13603")
+.sub "_block309"  :anon :subid("100_1282323993.58127") :method :outer("98_1282323993.58127")
 .annotate 'line', 114
     .local string rx311_tgt
     .local int rx311_pos
@@ -4731,7 +5110,9 @@
     .local int rx311_eos
     .local int rx311_rep
     .local pmc rx311_cur
+    .local pmc rx311_debug
     (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+    getattribute rx311_debug, rx311_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx311_cur
     .local pmc match
     .lex "$/", match
@@ -4743,7 +5124,9 @@
     substr rx311_tgt, rx311_tgt, rx311_off
   rx311_start:
     eq $I10, 1, rx311_restart
-    rx311_cur."!cursor_debug"("START ", "")
+    if_null rx311_debug, debug_251
+    rx311_cur."!cursor_debug"("START", "")
+  debug_251:
     $I10 = self.'from'()
     ne $I10, -1, rxscan312_done
     goto rxscan312_scan
@@ -4769,10 +5152,14 @@
     inc rx311_pos
   # rx pass
     rx311_cur."!cursor_pass"(rx311_pos, "")
-    rx311_cur."!cursor_debug"("PASS  ", "", " at pos=", rx311_pos)
+    if_null rx311_debug, debug_252
+    rx311_cur."!cursor_debug"("PASS", "", " at pos=", rx311_pos)
+  debug_252:
     .return (rx311_cur)
   rx311_restart:
-    rx311_cur."!cursor_debug"("NEXT ", "")
+    if_null rx311_debug, debug_253
+    rx311_cur."!cursor_debug"("NEXT", "")
+  debug_253:
   rx311_fail:
     (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
     lt rx311_pos, -1, rx311_done
@@ -4780,14 +5167,16 @@
     jump $I10
   rx311_done:
     rx311_cur."!cursor_fail"()
-    rx311_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx311_debug, debug_254
+    rx311_cur."!cursor_debug"("FAIL", "")
+  debug_254:
     .return (rx311_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("101_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charnames"  :subid("101_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx314_tgt
     .local int rx314_pos
@@ -4795,8 +5184,10 @@
     .local int rx314_eos
     .local int rx314_rep
     .local pmc rx314_cur
+    .local pmc rx314_debug
     (rx314_cur, rx314_pos, rx314_tgt, $I10) = self."!cursor_start"()
     rx314_cur."!cursor_caparray"("charname")
+    getattribute rx314_debug, rx314_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx314_cur
     .local pmc match
     .lex "$/", match
@@ -4808,7 +5199,9 @@
     substr rx314_tgt, rx314_tgt, rx314_off
   rx314_start:
     eq $I10, 1, rx314_restart
-    rx314_cur."!cursor_debug"("START ", "charnames")
+    if_null rx314_debug, debug_258
+    rx314_cur."!cursor_debug"("START", "charnames")
+  debug_258:
     $I10 = self.'from'()
     ne $I10, -1, rxscan317_done
     goto rxscan317_scan
@@ -4851,18 +5244,22 @@
     add $I11, rx314_pos, 1
     gt $I11, rx314_eos, rx314_fail
     sub $I11, rx314_pos, rx314_off
-    substr $S10, rx314_tgt, $I11, 1
-    ne $S10, ",", rx314_fail
+    ord $I11, rx314_tgt, $I11
+    ne $I11, 44, rx314_fail
     add rx314_pos, 1
     goto rxquantr318_loop
   rxquantr318_done:
   # rx pass
     rx314_cur."!cursor_pass"(rx314_pos, "charnames")
-    rx314_cur."!cursor_debug"("PASS  ", "charnames", " at pos=", rx314_pos)
+    if_null rx314_debug, debug_259
+    rx314_cur."!cursor_debug"("PASS", "charnames", " at pos=", rx314_pos)
+  debug_259:
     .return (rx314_cur)
   rx314_restart:
 .annotate 'line', 33
-    rx314_cur."!cursor_debug"("NEXT ", "charnames")
+    if_null rx314_debug, debug_260
+    rx314_cur."!cursor_debug"("NEXT", "charnames")
+  debug_260:
   rx314_fail:
     (rx314_rep, rx314_pos, $I10, $P10) = rx314_cur."!mark_fail"(0)
     lt rx314_pos, -1, rx314_done
@@ -4870,14 +5267,16 @@
     jump $I10
   rx314_done:
     rx314_cur."!cursor_fail"()
-    rx314_cur."!cursor_debug"("FAIL  ", "charnames")
+    if_null rx314_debug, debug_261
+    rx314_cur."!cursor_debug"("FAIL", "charnames")
+  debug_261:
     .return (rx314_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("102_1280467467.13603") :method
+.sub "!PREFIX__charnames"  :subid("102_1282323993.58127") :method
 .annotate 'line', 33
     new $P316, "ResizablePMCArray"
     push $P316, ""
@@ -4886,7 +5285,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("103_1280467467.13603") :method :outer("11_1280467467.13603")
+.sub "charspec"  :subid("103_1282323993.58127") :method :outer("11_1282323993.58127")
 .annotate 'line', 33
     .local string rx320_tgt
     .local int rx320_pos
@@ -4894,7 +5293,9 @@
     .local int rx320_eos
     .local int rx320_rep
     .local pmc rx320_cur
+    .local pmc rx320_debug
     (rx320_cur, rx320_pos, rx320_tgt, $I10) = self."!cursor_start"()
+    getattribute rx320_debug, rx320_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx320_cur
     .local pmc match
     .lex "$/", match
@@ -4906,7 +5307,9 @@
     substr rx320_tgt, rx320_tgt, rx320_off
   rx320_start:
     eq $I10, 1, rx320_restart
-    rx320_cur."!cursor_debug"("START ", "charspec")
+    if_null rx320_debug, debug_262
+    rx320_cur."!cursor_debug"("START", "charspec")
+  debug_262:
     $I10 = self.'from'()
     ne $I10, -1, rxscan325_done
     goto rxscan325_scan
@@ -4928,8 +5331,8 @@
     add $I11, rx320_pos, 1
     gt $I11, rx320_eos, rx320_fail
     sub $I11, rx320_pos, rx320_off
-    substr $S10, rx320_tgt, $I11, 1
-    ne $S10, "[", rx320_fail
+    ord $I11, rx320_tgt, $I11
+    ne $I11, 91, rx320_fail
     add rx320_pos, 1
   # rx subrule "charnames" subtype=capture negate=
     rx320_cur."!cursor_pos"(rx320_pos)
@@ -4942,8 +5345,8 @@
     add $I11, rx320_pos, 1
     gt $I11, rx320_eos, rx320_fail
     sub $I11, rx320_pos, rx320_off
-    substr $S10, rx320_tgt, $I11, 1
-    ne $S10, "]", rx320_fail
+    ord $I11, rx320_tgt, $I11
+    ne $I11, 93, rx320_fail
     add rx320_pos, 1
     goto alt326_end
   alt326_1:
@@ -4964,8 +5367,8 @@
     add $I11, rx320_pos, 1
     gt $I11, rx320_eos, rx320_fail
     sub $I11, rx320_pos, rx320_off
-    substr $S10, rx320_tgt, $I11, 1
-    ne $S10, "_", rx320_fail
+    ord $I11, rx320_tgt, $I11
+    ne $I11, 95, rx320_fail
     add rx320_pos, 1
   # rx charclass_q d r 1..-1
     sub $I10, rx320_pos, rx320_off
@@ -5003,11 +5406,15 @@
 .annotate 'line', 117
   # rx pass
     rx320_cur."!cursor_pass"(rx320_pos, "charspec")
-    rx320_cur."!cursor_debug"("PASS  ", "charspec", " at pos=", rx320_pos)
+    if_null rx320_debug, debug_263
+    rx320_cur."!cursor_debug"("PASS", "charspec", " at pos=", rx320_pos)
+  debug_263:
     .return (rx320_cur)
   rx320_restart:
 .annotate 'line', 33
-    rx320_cur."!cursor_debug"("NEXT ", "charspec")
+    if_null rx320_debug, debug_264
+    rx320_cur."!cursor_debug"("NEXT", "charspec")
+  debug_264:
   rx320_fail:
     (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
     lt rx320_pos, -1, rx320_done
@@ -5015,14 +5422,16 @@
     jump $I10
   rx320_done:
     rx320_cur."!cursor_fail"()
-    rx320_cur."!cursor_debug"("FAIL  ", "charspec")
+    if_null rx320_debug, debug_265
+    rx320_cur."!cursor_debug"("FAIL", "charspec")
+  debug_265:
     .return (rx320_cur)
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("104_1280467467.13603") :method
+.sub "!PREFIX__charspec"  :subid("104_1282323993.58127") :method
 .annotate 'line', 33
     $P322 = self."!PREFIX__!subrule"("panic", "")
     $P323 = self."!PREFIX__!subrule"("charnames", "[")
@@ -5063,18 +5472,18 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block328" :load :anon :subid("105_1280467467.13603")
+.sub "_block328" :load :anon :subid("105_1282323993.58127")
 .annotate 'line', 5
-    .const 'Sub' $P330 = "11_1280467467.13603" 
+    .const 'Sub' $P330 = "11_1282323993.58127" 
     $P331 = $P330()
     .return ($P331)
 .end
 
 
 .namespace []
-.sub "_block333" :load :anon :subid("106_1280467467.13603")
+.sub "_block333" :load :anon :subid("106_1282323993.58127")
 .annotate 'line', 1
-    .const 'Sub' $P335 = "10_1280467467.13603" 
+    .const 'Sub' $P335 = "10_1282323993.58127" 
     $P336 = $P335()
     .return ($P336)
 .end
@@ -5082,7 +5491,7 @@
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467468.44761")
+.sub "_block11"  :anon :subid("10_1282323994.69928")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -5099,15 +5508,15 @@
     $P627 = $P14()
 .annotate 'line', 1
     .return ($P627)
-    .const 'Sub' $P629 = "55_1280467468.44761" 
+    .const 'Sub' $P629 = "55_1282323994.69928" 
     .return ($P629)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post56") :outer("10_1280467468.44761")
+.sub "" :load :init :subid("post56") :outer("10_1282323994.69928")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467468.44761" 
+    .const 'Sub' $P12 = "10_1282323994.69928" 
     .local pmc block
     set block, $P12
     $P632 = get_root_global ["parrot"], "P6metaclass"
@@ -5116,75 +5525,75 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1280467468.44761") :outer("10_1280467468.44761")
+.sub "_block13"  :subid("11_1282323994.69928") :outer("10_1282323994.69928")
 .annotate 'line', 3
-    .const 'Sub' $P605 = "53_1280467468.44761" 
+    .const 'Sub' $P605 = "53_1282323994.69928" 
     capture_lex $P605
-    .const 'Sub' $P580 = "51_1280467468.44761" 
+    .const 'Sub' $P580 = "51_1282323994.69928" 
     capture_lex $P580
-    .const 'Sub' $P550 = "50_1280467468.44761" 
+    .const 'Sub' $P550 = "50_1282323994.69928" 
     capture_lex $P550
-    .const 'Sub' $P531 = "49_1280467468.44761" 
+    .const 'Sub' $P531 = "49_1282323994.69928" 
     capture_lex $P531
-    .const 'Sub' $P524 = "48_1280467468.44761" 
+    .const 'Sub' $P524 = "48_1282323994.69928" 
     capture_lex $P524
-    .const 'Sub' $P514 = "47_1280467468.44761" 
+    .const 'Sub' $P514 = "47_1282323994.69928" 
     capture_lex $P514
-    .const 'Sub' $P497 = "46_1280467468.44761" 
+    .const 'Sub' $P497 = "46_1282323994.69928" 
     capture_lex $P497
-    .const 'Sub' $P480 = "45_1280467468.44761" 
+    .const 'Sub' $P480 = "45_1282323994.69928" 
     capture_lex $P480
-    .const 'Sub' $P473 = "44_1280467468.44761" 
+    .const 'Sub' $P473 = "44_1282323994.69928" 
     capture_lex $P473
-    .const 'Sub' $P466 = "43_1280467468.44761" 
+    .const 'Sub' $P466 = "43_1282323994.69928" 
     capture_lex $P466
-    .const 'Sub' $P459 = "42_1280467468.44761" 
+    .const 'Sub' $P459 = "42_1282323994.69928" 
     capture_lex $P459
-    .const 'Sub' $P452 = "41_1280467468.44761" 
+    .const 'Sub' $P452 = "41_1282323994.69928" 
     capture_lex $P452
-    .const 'Sub' $P445 = "40_1280467468.44761" 
+    .const 'Sub' $P445 = "40_1282323994.69928" 
     capture_lex $P445
-    .const 'Sub' $P438 = "39_1280467468.44761" 
+    .const 'Sub' $P438 = "39_1282323994.69928" 
     capture_lex $P438
-    .const 'Sub' $P428 = "38_1280467468.44761" 
+    .const 'Sub' $P428 = "38_1282323994.69928" 
     capture_lex $P428
-    .const 'Sub' $P421 = "37_1280467468.44761" 
+    .const 'Sub' $P421 = "37_1282323994.69928" 
     capture_lex $P421
-    .const 'Sub' $P405 = "36_1280467468.44761" 
+    .const 'Sub' $P405 = "36_1282323994.69928" 
     capture_lex $P405
-    .const 'Sub' $P330 = "34_1280467468.44761" 
+    .const 'Sub' $P330 = "34_1282323994.69928" 
     capture_lex $P330
-    .const 'Sub' $P267 = "31_1280467468.44761" 
+    .const 'Sub' $P267 = "31_1282323994.69928" 
     capture_lex $P267
-    .const 'Sub' $P258 = "30_1280467468.44761" 
+    .const 'Sub' $P258 = "30_1282323994.69928" 
     capture_lex $P258
-    .const 'Sub' $P249 = "29_1280467468.44761" 
+    .const 'Sub' $P249 = "29_1282323994.69928" 
     capture_lex $P249
-    .const 'Sub' $P240 = "28_1280467468.44761" 
+    .const 'Sub' $P240 = "28_1282323994.69928" 
     capture_lex $P240
-    .const 'Sub' $P231 = "27_1280467468.44761" 
+    .const 'Sub' $P231 = "27_1282323994.69928" 
     capture_lex $P231
-    .const 'Sub' $P222 = "26_1280467468.44761" 
+    .const 'Sub' $P222 = "26_1282323994.69928" 
     capture_lex $P222
-    .const 'Sub' $P212 = "25_1280467468.44761" 
+    .const 'Sub' $P212 = "25_1282323994.69928" 
     capture_lex $P212
-    .const 'Sub' $P202 = "24_1280467468.44761" 
+    .const 'Sub' $P202 = "24_1282323994.69928" 
     capture_lex $P202
-    .const 'Sub' $P194 = "23_1280467468.44761" 
+    .const 'Sub' $P194 = "23_1282323994.69928" 
     capture_lex $P194
-    .const 'Sub' $P184 = "22_1280467468.44761" 
+    .const 'Sub' $P184 = "22_1282323994.69928" 
     capture_lex $P184
-    .const 'Sub' $P174 = "21_1280467468.44761" 
+    .const 'Sub' $P174 = "21_1282323994.69928" 
     capture_lex $P174
-    .const 'Sub' $P73 = "18_1280467468.44761" 
+    .const 'Sub' $P73 = "18_1282323994.69928" 
     capture_lex $P73
-    .const 'Sub' $P35 = "15_1280467468.44761" 
+    .const 'Sub' $P35 = "15_1282323994.69928" 
     capture_lex $P35
-    .const 'Sub' $P28 = "14_1280467468.44761" 
+    .const 'Sub' $P28 = "14_1282323994.69928" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1280467468.44761" 
+    .const 'Sub' $P22 = "13_1282323994.69928" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1280467468.44761" 
+    .const 'Sub' $P15 = "12_1282323994.69928" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -5193,18 +5602,18 @@
     $P0."ctxsave"()
   ctxsave_done:
 .annotate 'line', 225
-    .const 'Sub' $P605 = "53_1280467468.44761" 
+    .const 'Sub' $P605 = "53_1282323994.69928" 
     newclosure $P622, $P605
 .annotate 'line', 3
     .return ($P622)
-    .const 'Sub' $P624 = "54_1280467468.44761" 
+    .const 'Sub' $P624 = "54_1282323994.69928" 
     .return ($P624)
 .end
 
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "string_to_int"  :subid("12_1280467468.44761") :outer("11_1280467468.44761")
+.sub "string_to_int"  :subid("12_1282323994.69928") :outer("11_1282323994.69928")
     .param pmc param_18
     .param pmc param_19
 .annotate 'line', 3
@@ -5258,7 +5667,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "ints_to_string"  :subid("13_1280467468.44761") :outer("11_1280467468.44761")
+.sub "ints_to_string"  :subid("13_1282323994.69928") :outer("11_1282323994.69928")
     .param pmc param_25
 .annotate 'line', 37
     new $P24, 'ExceptionHandler'
@@ -5300,7 +5709,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "CTXSAVE"  :subid("14_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "CTXSAVE"  :subid("14_1282323994.69928") :method :outer("11_1282323994.69928")
 .annotate 'line', 62
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
@@ -5330,10 +5739,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "SET_BLOCK_OUTER_CTX"  :subid("15_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_38
 .annotate 'line', 76
-    .const 'Sub' $P48 = "16_1280467468.44761" 
+    .const 'Sub' $P48 = "16_1282323994.69928" 
     capture_lex $P48
     new $P37, 'ExceptionHandler'
     set_addr $P37, control_36
@@ -5368,7 +5777,7 @@
     set $P43, $I46
     goto if_44_end
   if_44:
-    .const 'Sub' $P48 = "16_1280467468.44761" 
+    .const 'Sub' $P48 = "16_1282323994.69928" 
     capture_lex $P48
     $P71 = $P48()
     set $P43, $P71
@@ -5385,9 +5794,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block47"  :anon :subid("16_1280467468.44761") :outer("15_1280467468.44761")
+.sub "_block47"  :anon :subid("16_1282323994.69928") :outer("15_1282323994.69928")
 .annotate 'line', 78
-    .const 'Sub' $P62 = "17_1280467468.44761" 
+    .const 'Sub' $P62 = "17_1282323994.69928" 
     capture_lex $P62
 .annotate 'line', 79
     $P49 = root_new ['parrot';'ResizablePMCArray']
@@ -5417,7 +5826,7 @@
     unless $P56, loop68_done
     shift $P60, $P56
   loop68_redo:
-    .const 'Sub' $P62 = "17_1280467468.44761" 
+    .const 'Sub' $P62 = "17_1282323994.69928" 
     capture_lex $P62
     $P62($P60)
   loop68_next:
@@ -5437,7 +5846,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block61"  :anon :subid("17_1280467468.44761") :outer("16_1280467468.44761")
+.sub "_block61"  :anon :subid("17_1282323994.69928") :outer("16_1282323994.69928")
     .param pmc param_63
 .annotate 'line', 82
     .lex "$_", param_63
@@ -5453,14 +5862,14 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "EXPR"  :subid("18_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "EXPR"  :subid("18_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_76
     .param pmc param_77 :optional
     .param int has_param_77 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P156 = "20_1280467468.44761" 
+    .const 'Sub' $P156 = "20_1282323994.69928" 
     capture_lex $P156
-    .const 'Sub' $P123 = "19_1280467468.44761" 
+    .const 'Sub' $P123 = "19_1282323994.69928" 
     capture_lex $P123
     new $P75, 'ExceptionHandler'
     set_addr $P75, control_74
@@ -5595,7 +6004,7 @@
     find_lex $P120, "$past"
     $P121 = $P120."name"()
     if $P121, unless_119_end
-    .const 'Sub' $P123 = "19_1280467468.44761" 
+    .const 'Sub' $P123 = "19_1282323994.69928" 
     capture_lex $P123
     $P123()
   unless_119_end:
@@ -5619,7 +6028,7 @@
     unless $P150, loop167_done
     shift $P154, $P150
   loop167_redo:
-    .const 'Sub' $P156 = "20_1280467468.44761" 
+    .const 'Sub' $P156 = "20_1282323994.69928" 
     capture_lex $P156
     $P156($P154)
   loop167_next:
@@ -5664,7 +6073,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block122"  :anon :subid("19_1280467468.44761") :outer("18_1280467468.44761")
+.sub "_block122"  :anon :subid("19_1282323994.69928") :outer("18_1282323994.69928")
 .annotate 'line', 98
     new $P124, "Undef"
     .lex "$name", $P124
@@ -5714,7 +6123,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block155"  :anon :subid("20_1280467468.44761") :outer("18_1280467468.44761")
+.sub "_block155"  :anon :subid("20_1282323994.69928") :outer("18_1282323994.69928")
     .param pmc param_157
 .annotate 'line', 109
     .lex "$_", param_157
@@ -5738,7 +6147,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<circumfix>"  :subid("21_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "term:sym<circumfix>"  :subid("21_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_177
 .annotate 'line', 114
     new $P176, 'ExceptionHandler'
@@ -5769,7 +6178,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "termish"  :subid("22_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "termish"  :subid("22_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_187
 .annotate 'line', 116
     new $P186, 'ExceptionHandler'
@@ -5800,7 +6209,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm"  :subid("23_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "nullterm"  :subid("23_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_197
 .annotate 'line', 117
     new $P196, 'ExceptionHandler'
@@ -5823,7 +6232,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "nullterm_alt"  :subid("24_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "nullterm_alt"  :subid("24_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_205
 .annotate 'line', 118
     new $P204, 'ExceptionHandler'
@@ -5854,7 +6263,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "integer"  :subid("25_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "integer"  :subid("25_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_215
 .annotate 'line', 120
     new $P214, 'ExceptionHandler'
@@ -5885,7 +6294,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "dec_number"  :subid("26_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "dec_number"  :subid("26_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_225
 .annotate 'line', 122
     new $P224, 'ExceptionHandler'
@@ -5909,7 +6318,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "decint"  :subid("27_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "decint"  :subid("27_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_234
 .annotate 'line', 124
     new $P233, 'ExceptionHandler'
@@ -5933,7 +6342,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "hexint"  :subid("28_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "hexint"  :subid("28_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_243
 .annotate 'line', 125
     new $P242, 'ExceptionHandler'
@@ -5957,7 +6366,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "octint"  :subid("29_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "octint"  :subid("29_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_252
 .annotate 'line', 126
     new $P251, 'ExceptionHandler'
@@ -5981,7 +6390,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "binint"  :subid("30_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "binint"  :subid("30_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_261
 .annotate 'line', 127
     new $P260, 'ExceptionHandler'
@@ -6005,10 +6414,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_EXPR"  :subid("31_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_EXPR"  :subid("31_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_270
 .annotate 'line', 129
-    .const 'Sub' $P286 = "32_1280467468.44761" 
+    .const 'Sub' $P286 = "32_1282323994.69928" 
     capture_lex $P286
     new $P269, 'ExceptionHandler'
     set_addr $P269, control_268
@@ -6040,7 +6449,7 @@
     $P282 = $P280."ACCEPTS"($P281)
     if $P282, if_279
 .annotate 'line', 135
-    .const 'Sub' $P286 = "32_1280467468.44761" 
+    .const 'Sub' $P286 = "32_1282323994.69928" 
     capture_lex $P286
     $P286()
     goto if_279_end
@@ -6080,9 +6489,9 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "_block285"  :anon :subid("32_1280467468.44761") :outer("31_1280467468.44761")
+.sub "_block285"  :anon :subid("32_1282323994.69928") :outer("31_1282323994.69928")
 .annotate 'line', 135
-    .const 'Sub' $P305 = "33_1280467468.44761" 
+    .const 'Sub' $P305 = "33_1282323994.69928" 
     capture_lex $P305
 .annotate 'line', 136
     $P287 = root_new ['parrot';'ResizablePMCArray']
@@ -6133,7 +6542,7 @@
     unless $P300, loop310_done
     shift $P303, $P300
   loop310_redo:
-    .const 'Sub' $P305 = "33_1280467468.44761" 
+    .const 'Sub' $P305 = "33_1282323994.69928" 
     capture_lex $P305
     $P305($P303)
   loop310_next:
@@ -6156,7 +6565,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block304"  :anon :subid("33_1280467468.44761") :outer("32_1280467468.44761")
+.sub "_block304"  :anon :subid("33_1282323994.69928") :outer("32_1282323994.69928")
     .param pmc param_306
 .annotate 'line', 139
     .lex "$_", param_306
@@ -6169,10 +6578,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_delimited"  :subid("34_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_delimited"  :subid("34_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_333
 .annotate 'line', 152
-    .const 'Sub' $P345 = "35_1280467468.44761" 
+    .const 'Sub' $P345 = "35_1282323994.69928" 
     capture_lex $P345
     new $P332, 'ExceptionHandler'
     set_addr $P332, control_331
@@ -6215,7 +6624,7 @@
     unless $P339, loop377_done
     shift $P343, $P339
   loop377_redo:
-    .const 'Sub' $P345 = "35_1280467468.44761" 
+    .const 'Sub' $P345 = "35_1282323994.69928" 
     capture_lex $P345
     $P345($P343)
   loop377_next:
@@ -6293,7 +6702,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block344"  :anon :subid("35_1280467468.44761") :outer("34_1280467468.44761")
+.sub "_block344"  :anon :subid("35_1282323994.69928") :outer("34_1282323994.69928")
     .param pmc param_347
 .annotate 'line', 156
     new $P346, "Undef"
@@ -6363,7 +6772,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_atom"  :subid("36_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_atom"  :subid("36_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_408
 .annotate 'line', 177
     new $P407, 'ExceptionHandler'
@@ -6413,7 +6822,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<backslash>"  :subid("37_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<backslash>"  :subid("37_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_424
 .annotate 'line', 181
     new $P423, 'ExceptionHandler'
@@ -6435,7 +6844,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<stopper>"  :subid("38_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<stopper>"  :subid("38_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_431
 .annotate 'line', 182
     new $P430, 'ExceptionHandler'
@@ -6466,7 +6875,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<bs>"  :subid("39_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<bs>"  :subid("39_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_441
 .annotate 'line', 184
     new $P440, 'ExceptionHandler'
@@ -6488,7 +6897,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<nl>"  :subid("40_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<nl>"  :subid("40_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_448
 .annotate 'line', 185
     new $P447, 'ExceptionHandler'
@@ -6510,7 +6919,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<cr>"  :subid("41_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<cr>"  :subid("41_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_455
 .annotate 'line', 186
     new $P454, 'ExceptionHandler'
@@ -6532,7 +6941,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<tab>"  :subid("42_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<tab>"  :subid("42_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_462
 .annotate 'line', 187
     new $P461, 'ExceptionHandler'
@@ -6554,7 +6963,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<ff>"  :subid("43_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<ff>"  :subid("43_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_469
 .annotate 'line', 188
     new $P468, 'ExceptionHandler'
@@ -6576,7 +6985,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("44_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<esc>"  :subid("44_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_476
 .annotate 'line', 189
     new $P475, 'ExceptionHandler'
@@ -6598,7 +7007,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<hex>"  :subid("45_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<hex>"  :subid("45_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_483
 .annotate 'line', 191
     new $P482, 'ExceptionHandler'
@@ -6657,7 +7066,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<oct>"  :subid("46_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<oct>"  :subid("46_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_500
 .annotate 'line', 195
     new $P499, 'ExceptionHandler'
@@ -6716,7 +7125,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<chr>"  :subid("47_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<chr>"  :subid("47_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_517
 .annotate 'line', 199
     new $P516, 'ExceptionHandler'
@@ -6749,7 +7158,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<0>"  :subid("48_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<0>"  :subid("48_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_527
 .annotate 'line', 203
     new $P526, 'ExceptionHandler'
@@ -6773,7 +7182,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<misc>"  :subid("49_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "quote_escape:sym<misc>"  :subid("49_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_534
 .annotate 'line', 207
     new $P533, 'ExceptionHandler'
@@ -6832,7 +7241,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charname"  :subid("50_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charname"  :subid("50_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_553
 .annotate 'line', 211
     new $P552, 'ExceptionHandler'
@@ -6906,10 +7315,10 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charnames"  :subid("51_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charnames"  :subid("51_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_583
 .annotate 'line', 219
-    .const 'Sub' $P592 = "52_1280467468.44761" 
+    .const 'Sub' $P592 = "52_1282323994.69928" 
     capture_lex $P592
     new $P582, 'ExceptionHandler'
     set_addr $P582, control_581
@@ -6943,7 +7352,7 @@
     unless $P586, loop598_done
     shift $P590, $P586
   loop598_redo:
-    .const 'Sub' $P592 = "52_1280467468.44761" 
+    .const 'Sub' $P592 = "52_1282323994.69928" 
     capture_lex $P592
     $P592($P590)
   loop598_next:
@@ -6972,7 +7381,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block591"  :anon :subid("52_1280467468.44761") :outer("51_1280467468.44761")
+.sub "_block591"  :anon :subid("52_1282323994.69928") :outer("51_1282323994.69928")
     .param pmc param_593
 .annotate 'line', 221
     .lex "$_", param_593
@@ -6987,7 +7396,7 @@
 
 .namespace ["HLL";"Actions"]
 .include "except_types.pasm"
-.sub "charspec"  :subid("53_1280467468.44761") :method :outer("11_1280467468.44761")
+.sub "charspec"  :subid("53_1282323994.69928") :method :outer("11_1282323994.69928")
     .param pmc param_608
 .annotate 'line', 225
     new $P607, 'ExceptionHandler'
@@ -7037,18 +7446,18 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block623" :load :anon :subid("54_1280467468.44761")
+.sub "_block623" :load :anon :subid("54_1282323994.69928")
 .annotate 'line', 3
-    .const 'Sub' $P625 = "11_1280467468.44761" 
+    .const 'Sub' $P625 = "11_1282323994.69928" 
     $P626 = $P625()
     .return ($P626)
 .end
 
 
 .namespace []
-.sub "_block628" :load :anon :subid("55_1280467468.44761")
+.sub "_block628" :load :anon :subid("55_1282323994.69928")
 .annotate 'line', 1
-    .const 'Sub' $P630 = "10_1280467468.44761" 
+    .const 'Sub' $P630 = "10_1282323994.69928" 
     $P631 = $P630()
     .return ($P631)
 .end
@@ -7056,7 +7465,7 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467469.30058")
+.sub "_block11"  :anon :subid("10_1282323995.38516")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
@@ -7073,15 +7482,15 @@
     $P497 = $P14()
 .annotate 'line', 1
     .return ($P497)
-    .const 'Sub' $P499 = "36_1280467469.30058" 
+    .const 'Sub' $P499 = "36_1282323995.38516" 
     .return ($P499)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post37") :outer("10_1280467469.30058")
+.sub "" :load :init :subid("post37") :outer("10_1282323995.38516")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467469.30058" 
+    .const 'Sub' $P12 = "10_1282323995.38516" 
     .local pmc block
     set block, $P12
 .annotate 'line', 2
@@ -7095,36 +7504,36 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1280467469.30058") :outer("10_1280467469.30058")
+.sub "_block13"  :subid("11_1282323995.38516") :outer("10_1282323995.38516")
 .annotate 'line', 6
-    .const 'Sub' $P489 = "35_1280467469.30058" 
+    .const 'Sub' $P489 = "35_1282323995.38516" 
     capture_lex $P489
-    .const 'Sub' $P447 = "33_1280467469.30058" 
+    .const 'Sub' $P447 = "33_1282323995.38516" 
     capture_lex $P447
-    .const 'Sub' $P298 = "26_1280467469.30058" 
+    .const 'Sub' $P298 = "26_1282323995.38516" 
     capture_lex $P298
-    .const 'Sub' $P283 = "25_1280467469.30058" 
+    .const 'Sub' $P283 = "25_1282323995.38516" 
     capture_lex $P283
-    .const 'Sub' $P188 = "20_1280467469.30058" 
+    .const 'Sub' $P188 = "20_1282323995.38516" 
     capture_lex $P188
-    .const 'Sub' $P153 = "18_1280467469.30058" 
+    .const 'Sub' $P153 = "18_1282323995.38516" 
     capture_lex $P153
-    .const 'Sub' $P138 = "17_1280467469.30058" 
+    .const 'Sub' $P138 = "17_1282323995.38516" 
     capture_lex $P138
-    .const 'Sub' $P122 = "16_1280467469.30058" 
+    .const 'Sub' $P122 = "16_1282323995.38516" 
     capture_lex $P122
-    .const 'Sub' $P33 = "13_1280467469.30058" 
+    .const 'Sub' $P33 = "13_1282323995.38516" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1280467469.30058" 
+    .const 'Sub' $P15 = "12_1282323995.38516" 
     capture_lex $P15
 .annotate 'line', 14
-    .const 'Sub' $P15 = "12_1280467469.30058" 
+    .const 'Sub' $P15 = "12_1282323995.38516" 
     newclosure $P31, $P15
     .lex "value_type", $P31
 .annotate 'line', 10
     find_lex $P32, "value_type"
 .annotate 'line', 165
-    .const 'Sub' $P489 = "35_1280467469.30058" 
+    .const 'Sub' $P489 = "35_1282323995.38516" 
     newclosure $P495, $P489
 .annotate 'line', 6
     .return ($P495)
@@ -7132,7 +7541,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post38") :outer("11_1280467469.30058")
+.sub "" :load :init :subid("post38") :outer("11_1282323995.38516")
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
@@ -7145,7 +7554,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "value_type"  :subid("12_1280467469.30058") :outer("11_1280467469.30058")
+.sub "value_type"  :subid("12_1282323995.38516") :outer("11_1282323995.38516")
     .param pmc param_18
 .annotate 'line', 14
     new $P17, 'ExceptionHandler'
@@ -7190,15 +7599,15 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_exports"  :subid("13_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "get_exports"  :subid("13_1282323995.38516") :method :outer("11_1282323995.38516")
     .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_1280467469.30058" 
+    .const 'Sub' $P105 = "15_1282323995.38516" 
     capture_lex $P105
-    .const 'Sub' $P84 = "14_1280467469.30058" 
+    .const 'Sub' $P84 = "14_1282323995.38516" 
     capture_lex $P84
     new $P35, 'ExceptionHandler'
     set_addr $P35, control_34
@@ -7304,7 +7713,7 @@
     unless $P100, loop117_done
     shift $P103, $P100
   loop117_redo:
-    .const 'Sub' $P105 = "15_1280467469.30058" 
+    .const 'Sub' $P105 = "15_1282323995.38516" 
     capture_lex $P105
     $P105($P103)
   loop117_next:
@@ -7334,7 +7743,7 @@
     unless $P79, loop97_done
     shift $P82, $P79
   loop97_redo:
-    .const 'Sub' $P84 = "14_1280467469.30058" 
+    .const 'Sub' $P84 = "14_1282323995.38516" 
     capture_lex $P84
     $P84($P82)
   loop97_next:
@@ -7362,7 +7771,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block104"  :anon :subid("15_1280467469.30058") :outer("13_1280467469.30058")
+.sub "_block104"  :anon :subid("15_1282323995.38516") :outer("13_1282323995.38516")
     .param pmc param_107
 .annotate 'line', 40
     new $P106, "Undef"
@@ -7394,7 +7803,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block83"  :anon :subid("14_1280467469.30058") :outer("13_1280467469.30058")
+.sub "_block83"  :anon :subid("14_1282323995.38516") :outer("13_1282323995.38516")
     .param pmc param_86
 .annotate 'line', 34
     new $P85, "Undef"
@@ -7434,7 +7843,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "get_module"  :subid("16_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "get_module"  :subid("16_1282323995.38516") :method :outer("11_1282323995.38516")
     .param pmc param_125
 .annotate 'line', 47
     new $P124, 'ExceptionHandler'
@@ -7475,7 +7884,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "language"  :subid("17_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "language"  :subid("17_1282323995.38516") :method :outer("11_1282323995.38516")
     .param pmc param_141 :optional
     .param int has_param_141 :opt_flag
 .annotate 'line', 53
@@ -7520,10 +7929,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "load_module"  :subid("18_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "load_module"  :subid("18_1282323995.38516") :method :outer("11_1282323995.38516")
     .param pmc param_156
 .annotate 'line', 61
-    .const 'Sub' $P166 = "19_1280467469.30058" 
+    .const 'Sub' $P166 = "19_1282323995.38516" 
     capture_lex $P166
     new $P155, 'ExceptionHandler'
     set_addr $P155, control_154
@@ -7550,7 +7959,7 @@
     assign $P164, 0
     store_lex "$loaded", $P164
 .annotate 'line', 64
-    .const 'Sub' $P166 = "19_1280467469.30058" 
+    .const 'Sub' $P166 = "19_1282323995.38516" 
     capture_lex $P166
     $P166()
 .annotate 'line', 65
@@ -7580,7 +7989,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block165"  :anon :subid("19_1280467469.30058") :outer("18_1280467469.30058")
+.sub "_block165"  :anon :subid("19_1282323995.38516") :outer("18_1282323995.38516")
 .annotate 'line', 64
     new $P173, 'ExceptionHandler'
     set_addr $P173, control_172
@@ -7614,11 +8023,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "import"  :subid("20_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "import"  :subid("20_1282323995.38516") :method :outer("11_1282323995.38516")
     .param pmc param_191
     .param pmc param_192
 .annotate 'line', 69
-    .const 'Sub' $P198 = "21_1280467469.30058" 
+    .const 'Sub' $P198 = "21_1282323995.38516" 
     capture_lex $P198
     new $P190, 'ExceptionHandler'
     set_addr $P190, control_189
@@ -7640,7 +8049,7 @@
     unless $P193, loop279_done
     shift $P196, $P193
   loop279_redo:
-    .const 'Sub' $P198 = "21_1280467469.30058" 
+    .const 'Sub' $P198 = "21_1282323995.38516" 
     capture_lex $P198
     $P198($P196)
   loop279_next:
@@ -7666,14 +8075,14 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block197"  :anon :subid("21_1280467469.30058") :outer("20_1280467469.30058")
+.sub "_block197"  :anon :subid("21_1282323995.38516") :outer("20_1282323995.38516")
     .param pmc param_201
 .annotate 'line', 70
-    .const 'Sub' $P268 = "24_1280467469.30058" 
+    .const 'Sub' $P268 = "24_1282323995.38516" 
     capture_lex $P268
-    .const 'Sub' $P248 = "23_1280467469.30058" 
+    .const 'Sub' $P248 = "23_1282323995.38516" 
     capture_lex $P248
-    .const 'Sub' $P219 = "22_1280467469.30058" 
+    .const 'Sub' $P219 = "22_1282323995.38516" 
     capture_lex $P219
 .annotate 'line', 71
     new $P199, "Undef"
@@ -7721,7 +8130,7 @@
     unless $P263, loop276_done
     shift $P266, $P263
   loop276_redo:
-    .const 'Sub' $P268 = "24_1280467469.30058" 
+    .const 'Sub' $P268 = "24_1282323995.38516" 
     capture_lex $P268
     $P268($P266)
   loop276_next:
@@ -7753,7 +8162,7 @@
     unless $P243, loop260_done
     shift $P246, $P243
   loop260_redo:
-    .const 'Sub' $P248 = "23_1280467469.30058" 
+    .const 'Sub' $P248 = "23_1282323995.38516" 
     capture_lex $P248
     $P248($P246)
   loop260_next:
@@ -7787,7 +8196,7 @@
     unless $P214, loop232_done
     shift $P217, $P214
   loop232_redo:
-    .const 'Sub' $P219 = "22_1280467469.30058" 
+    .const 'Sub' $P219 = "22_1282323995.38516" 
     capture_lex $P219
     $P219($P217)
   loop232_next:
@@ -7810,7 +8219,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block267"  :anon :subid("24_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block267"  :anon :subid("24_1282323995.38516") :outer("21_1282323995.38516")
     .param pmc param_269
 .annotate 'line', 80
     .lex "$_", param_269
@@ -7830,7 +8239,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block247"  :anon :subid("23_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block247"  :anon :subid("23_1282323995.38516") :outer("21_1282323995.38516")
     .param pmc param_249
 .annotate 'line', 77
     .lex "$_", param_249
@@ -7850,7 +8259,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block218"  :anon :subid("22_1280467469.30058") :outer("21_1280467469.30058")
+.sub "_block218"  :anon :subid("22_1282323995.38516") :outer("21_1282323995.38516")
     .param pmc param_220
 .annotate 'line', 74
     .lex "$_", param_220
@@ -7872,7 +8281,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "autoprint"  :subid("25_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "autoprint"  :subid("25_1282323995.38516") :method :outer("11_1282323995.38516")
     .param pmc param_286
 .annotate 'line', 85
     new $P285, 'ExceptionHandler'
@@ -7916,10 +8325,10 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "interactive"  :subid("26_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "interactive"  :subid("26_1282323995.38516") :method :outer("11_1282323995.38516")
     .param pmc param_301 :slurpy :named
 .annotate 'line', 90
-    .const 'Sub' $P333 = "27_1280467469.30058" 
+    .const 'Sub' $P333 = "27_1282323995.38516" 
     capture_lex $P333
     new $P300, 'ExceptionHandler'
     set_addr $P300, control_299
@@ -8006,7 +8415,7 @@
     assign $P331, 1
     unless $P331, loop443_done
   loop443_redo:
-    .const 'Sub' $P333 = "27_1280467469.30058" 
+    .const 'Sub' $P333 = "27_1282323995.38516" 
     capture_lex $P333
     $P333()
   loop443_next:
@@ -8031,9 +8440,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block332"  :anon :subid("27_1280467469.30058") :outer("26_1280467469.30058")
+.sub "_block332"  :anon :subid("27_1282323995.38516") :outer("26_1282323995.38516")
 .annotate 'line', 102
-    .const 'Sub' $P365 = "28_1280467469.30058" 
+    .const 'Sub' $P365 = "28_1282323995.38516" 
     capture_lex $P365
 .annotate 'line', 105
     new $P334, "Undef"
@@ -8101,7 +8510,7 @@
     set $P361, $P363
     goto if_362_end
   if_362:
-    .const 'Sub' $P365 = "28_1280467469.30058" 
+    .const 'Sub' $P365 = "28_1282323995.38516" 
     capture_lex $P365
     $P442 = $P365()
     set $P361, $P442
@@ -8113,11 +8522,11 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block364"  :anon :subid("28_1280467469.30058") :outer("27_1280467469.30058")
+.sub "_block364"  :anon :subid("28_1282323995.38516") :outer("27_1282323995.38516")
 .annotate 'line', 115
-    .const 'Sub' $P398 = "31_1280467469.30058" 
+    .const 'Sub' $P398 = "31_1282323995.38516" 
     capture_lex $P398
-    .const 'Sub' $P371 = "29_1280467469.30058" 
+    .const 'Sub' $P371 = "29_1282323995.38516" 
     capture_lex $P371
 .annotate 'line', 117
     new $P366, "Undef"
@@ -8128,7 +8537,7 @@
     store_lex "$code", $P368
     find_lex $P369, "$output"
 .annotate 'line', 118
-    .const 'Sub' $P371 = "29_1280467469.30058" 
+    .const 'Sub' $P371 = "29_1282323995.38516" 
     capture_lex $P371
     $P371()
 .annotate 'line', 125
@@ -8141,7 +8550,7 @@
   vivify_67:
     defined $I396, $P395
     unless $I396, if_394_end
-    .const 'Sub' $P398 = "31_1280467469.30058" 
+    .const 'Sub' $P398 = "31_1282323995.38516" 
     capture_lex $P398
     $P398()
   if_394_end:
@@ -8195,9 +8604,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block370"  :anon :subid("29_1280467469.30058") :outer("28_1280467469.30058")
+.sub "_block370"  :anon :subid("29_1282323995.38516") :outer("28_1282323995.38516")
 .annotate 'line', 118
-    .const 'Sub' $P383 = "30_1280467469.30058" 
+    .const 'Sub' $P383 = "30_1282323995.38516" 
     capture_lex $P383
     new $P379, 'ExceptionHandler'
     set_addr $P379, control_378
@@ -8217,7 +8626,7 @@
 .annotate 'line', 120
     .local pmc exception 
     .get_results (exception) 
-    .const 'Sub' $P383 = "30_1280467469.30058" 
+    .const 'Sub' $P383 = "30_1282323995.38516" 
     newclosure $P391, $P383
     $P391(exception)
     new $P392, 'Integer'
@@ -8237,7 +8646,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block382"  :anon :subid("30_1280467469.30058") :outer("29_1280467469.30058")
+.sub "_block382"  :anon :subid("30_1282323995.38516") :outer("29_1282323995.38516")
     .param pmc param_384
 .annotate 'line', 120
     .lex "$_", param_384
@@ -8260,9 +8669,9 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "_block397"  :anon :subid("31_1280467469.30058") :outer("28_1280467469.30058")
+.sub "_block397"  :anon :subid("31_1282323995.38516") :outer("28_1282323995.38516")
 .annotate 'line', 125
-    .const 'Sub' $P409 = "32_1280467469.30058" 
+    .const 'Sub' $P409 = "32_1282323995.38516" 
     capture_lex $P409
 .annotate 'line', 126
     get_global $P399, "$interactive_ctx"
@@ -8299,7 +8708,7 @@
     unless $P403, loop416_done
     shift $P407, $P403
   loop416_redo:
-    .const 'Sub' $P409 = "32_1280467469.30058" 
+    .const 'Sub' $P409 = "32_1282323995.38516" 
     capture_lex $P409
     $P409($P407)
   loop416_next:
@@ -8322,7 +8731,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block408"  :anon :subid("32_1280467469.30058") :outer("31_1280467469.30058")
+.sub "_block408"  :anon :subid("32_1282323995.38516") :outer("31_1282323995.38516")
     .param pmc param_410
 .annotate 'line', 128
     .lex "$_", param_410
@@ -8344,12 +8753,12 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "eval"  :subid("33_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "eval"  :subid("33_1282323995.38516") :method :outer("11_1282323995.38516")
     .param pmc param_450
     .param pmc param_451 :slurpy
     .param pmc param_452 :slurpy :named
 .annotate 'line', 146
-    .const 'Sub' $P471 = "34_1280467469.30058" 
+    .const 'Sub' $P471 = "34_1282323995.38516" 
     capture_lex $P471
     new $P449, 'ExceptionHandler'
     set_addr $P449, control_448
@@ -8396,7 +8805,7 @@
     set $P460, $I469
   if_461_end:
     unless $P460, if_459_end
-    .const 'Sub' $P471 = "34_1280467469.30058" 
+    .const 'Sub' $P471 = "34_1282323995.38516" 
     capture_lex $P471
     $P471()
   if_459_end:
@@ -8413,7 +8822,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block470"  :anon :subid("34_1280467469.30058") :outer("33_1280467469.30058")
+.sub "_block470"  :anon :subid("34_1282323995.38516") :outer("33_1282323995.38516")
 .annotate 'line', 152
     new $P472, "Undef"
     .lex "$outer_ctx", $P472
@@ -8467,7 +8876,7 @@
 
 .namespace ["HLL";"Compiler"]
 .include "except_types.pasm"
-.sub "ctxsave"  :subid("35_1280467469.30058") :method :outer("11_1280467469.30058")
+.sub "ctxsave"  :subid("35_1282323995.38516") :method :outer("11_1282323995.38516")
 .annotate 'line', 165
     new $P491, 'ExceptionHandler'
     set_addr $P491, control_490
@@ -8495,9 +8904,9 @@
 
 
 .namespace []
-.sub "_block498" :load :anon :subid("36_1280467469.30058")
+.sub "_block498" :load :anon :subid("36_1282323995.38516")
 .annotate 'line', 1
-    .const 'Sub' $P500 = "10_1280467469.30058" 
+    .const 'Sub' $P500 = "10_1282323995.38516" 
     $P501 = $P500()
     .return ($P501)
 .end

Modified: branches/unshared_buffers/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/unshared_buffers/ext/nqp-rx/src/stage0/NQP-s0.pir	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/ext/nqp-rx/src/stage0/NQP-s0.pir	Sun Aug 29 17:09:11 2010	(r48719)
@@ -15,7 +15,7 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467477.44751")
+.sub "_block11"  :anon :subid("10_1282324002.40722")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
@@ -32,15 +32,15 @@
     $P1423 = $P14()
 .annotate 'line', 1
     .return ($P1423)
-    .const 'Sub' $P1425 = "371_1280467477.44751" 
+    .const 'Sub' $P1425 = "371_1282324002.40722" 
     .return ($P1425)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post372") :outer("10_1280467477.44751")
+.sub "" :load :init :subid("post372") :outer("10_1282324002.40722")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467477.44751" 
+    .const 'Sub' $P12 = "10_1282324002.40722" 
     .local pmc block
     set block, $P12
     $P1428 = get_root_global ["parrot"], "P6metaclass"
@@ -49,321 +49,321 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1280467477.44751") :outer("10_1280467477.44751")
+.sub "_block13"  :subid("11_1282324002.40722") :outer("10_1282324002.40722")
 .annotate 'line', 4
     get_hll_global $P1340, ["NQP";"Regex"], "_block1339" 
     capture_lex $P1340
-    .const 'Sub' $P1326 = "348_1280467477.44751" 
+    .const 'Sub' $P1326 = "348_1282324002.40722" 
     capture_lex $P1326
-    .const 'Sub' $P1320 = "346_1280467477.44751" 
+    .const 'Sub' $P1320 = "346_1282324002.40722" 
     capture_lex $P1320
-    .const 'Sub' $P1314 = "344_1280467477.44751" 
+    .const 'Sub' $P1314 = "344_1282324002.40722" 
     capture_lex $P1314
-    .const 'Sub' $P1308 = "342_1280467477.44751" 
+    .const 'Sub' $P1308 = "342_1282324002.40722" 
     capture_lex $P1308
-    .const 'Sub' $P1302 = "340_1280467477.44751" 
+    .const 'Sub' $P1302 = "340_1282324002.40722" 
     capture_lex $P1302
-    .const 'Sub' $P1296 = "338_1280467477.44751" 
+    .const 'Sub' $P1296 = "338_1282324002.40722" 
     capture_lex $P1296
-    .const 'Sub' $P1289 = "336_1280467477.44751" 
+    .const 'Sub' $P1289 = "336_1282324002.40722" 
     capture_lex $P1289
-    .const 'Sub' $P1282 = "334_1280467477.44751" 
+    .const 'Sub' $P1282 = "334_1282324002.40722" 
     capture_lex $P1282
-    .const 'Sub' $P1275 = "332_1280467477.44751" 
+    .const 'Sub' $P1275 = "332_1282324002.40722" 
     capture_lex $P1275
-    .const 'Sub' $P1268 = "330_1280467477.44751" 
+    .const 'Sub' $P1268 = "330_1282324002.40722" 
     capture_lex $P1268
-    .const 'Sub' $P1262 = "328_1280467477.44751" 
+    .const 'Sub' $P1262 = "328_1282324002.40722" 
     capture_lex $P1262
-    .const 'Sub' $P1255 = "326_1280467477.44751" 
+    .const 'Sub' $P1255 = "326_1282324002.40722" 
     capture_lex $P1255
-    .const 'Sub' $P1248 = "324_1280467477.44751" 
+    .const 'Sub' $P1248 = "324_1282324002.40722" 
     capture_lex $P1248
-    .const 'Sub' $P1241 = "322_1280467477.44751" 
+    .const 'Sub' $P1241 = "322_1282324002.40722" 
     capture_lex $P1241
-    .const 'Sub' $P1234 = "320_1280467477.44751" 
+    .const 'Sub' $P1234 = "320_1282324002.40722" 
     capture_lex $P1234
-    .const 'Sub' $P1227 = "318_1280467477.44751" 
+    .const 'Sub' $P1227 = "318_1282324002.40722" 
     capture_lex $P1227
-    .const 'Sub' $P1220 = "316_1280467477.44751" 
+    .const 'Sub' $P1220 = "316_1282324002.40722" 
     capture_lex $P1220
-    .const 'Sub' $P1213 = "314_1280467477.44751" 
+    .const 'Sub' $P1213 = "314_1282324002.40722" 
     capture_lex $P1213
-    .const 'Sub' $P1206 = "312_1280467477.44751" 
+    .const 'Sub' $P1206 = "312_1282324002.40722" 
     capture_lex $P1206
-    .const 'Sub' $P1199 = "310_1280467477.44751" 
+    .const 'Sub' $P1199 = "310_1282324002.40722" 
     capture_lex $P1199
-    .const 'Sub' $P1192 = "308_1280467477.44751" 
+    .const 'Sub' $P1192 = "308_1282324002.40722" 
     capture_lex $P1192
-    .const 'Sub' $P1185 = "306_1280467477.44751" 
+    .const 'Sub' $P1185 = "306_1282324002.40722" 
     capture_lex $P1185
-    .const 'Sub' $P1178 = "304_1280467477.44751" 
+    .const 'Sub' $P1178 = "304_1282324002.40722" 
     capture_lex $P1178
-    .const 'Sub' $P1171 = "302_1280467477.44751" 
+    .const 'Sub' $P1171 = "302_1282324002.40722" 
     capture_lex $P1171
-    .const 'Sub' $P1164 = "300_1280467477.44751" 
+    .const 'Sub' $P1164 = "300_1282324002.40722" 
     capture_lex $P1164
-    .const 'Sub' $P1157 = "298_1280467477.44751" 
+    .const 'Sub' $P1157 = "298_1282324002.40722" 
     capture_lex $P1157
-    .const 'Sub' $P1150 = "296_1280467477.44751" 
+    .const 'Sub' $P1150 = "296_1282324002.40722" 
     capture_lex $P1150
-    .const 'Sub' $P1143 = "294_1280467477.44751" 
+    .const 'Sub' $P1143 = "294_1282324002.40722" 
     capture_lex $P1143
-    .const 'Sub' $P1136 = "292_1280467477.44751" 
+    .const 'Sub' $P1136 = "292_1282324002.40722" 
     capture_lex $P1136
-    .const 'Sub' $P1129 = "290_1280467477.44751" 
+    .const 'Sub' $P1129 = "290_1282324002.40722" 
     capture_lex $P1129
-    .const 'Sub' $P1122 = "288_1280467477.44751" 
+    .const 'Sub' $P1122 = "288_1282324002.40722" 
     capture_lex $P1122
-    .const 'Sub' $P1115 = "286_1280467477.44751" 
+    .const 'Sub' $P1115 = "286_1282324002.40722" 
     capture_lex $P1115
-    .const 'Sub' $P1108 = "284_1280467477.44751" 
+    .const 'Sub' $P1108 = "284_1282324002.40722" 
     capture_lex $P1108
-    .const 'Sub' $P1101 = "282_1280467477.44751" 
+    .const 'Sub' $P1101 = "282_1282324002.40722" 
     capture_lex $P1101
-    .const 'Sub' $P1094 = "280_1280467477.44751" 
+    .const 'Sub' $P1094 = "280_1282324002.40722" 
     capture_lex $P1094
-    .const 'Sub' $P1087 = "278_1280467477.44751" 
+    .const 'Sub' $P1087 = "278_1282324002.40722" 
     capture_lex $P1087
-    .const 'Sub' $P1080 = "276_1280467477.44751" 
+    .const 'Sub' $P1080 = "276_1282324002.40722" 
     capture_lex $P1080
-    .const 'Sub' $P1073 = "274_1280467477.44751" 
+    .const 'Sub' $P1073 = "274_1282324002.40722" 
     capture_lex $P1073
-    .const 'Sub' $P1066 = "272_1280467477.44751" 
+    .const 'Sub' $P1066 = "272_1282324002.40722" 
     capture_lex $P1066
-    .const 'Sub' $P1059 = "270_1280467477.44751" 
+    .const 'Sub' $P1059 = "270_1282324002.40722" 
     capture_lex $P1059
-    .const 'Sub' $P1053 = "268_1280467477.44751" 
+    .const 'Sub' $P1053 = "268_1282324002.40722" 
     capture_lex $P1053
-    .const 'Sub' $P1046 = "266_1280467477.44751" 
+    .const 'Sub' $P1046 = "266_1282324002.40722" 
     capture_lex $P1046
-    .const 'Sub' $P1039 = "264_1280467477.44751" 
+    .const 'Sub' $P1039 = "264_1282324002.40722" 
     capture_lex $P1039
-    .const 'Sub' $P1032 = "262_1280467477.44751" 
+    .const 'Sub' $P1032 = "262_1282324002.40722" 
     capture_lex $P1032
-    .const 'Sub' $P1025 = "260_1280467477.44751" 
+    .const 'Sub' $P1025 = "260_1282324002.40722" 
     capture_lex $P1025
-    .const 'Sub' $P1018 = "258_1280467477.44751" 
+    .const 'Sub' $P1018 = "258_1282324002.40722" 
     capture_lex $P1018
-    .const 'Sub' $P1011 = "256_1280467477.44751" 
+    .const 'Sub' $P1011 = "256_1282324002.40722" 
     capture_lex $P1011
-    .const 'Sub' $P1004 = "254_1280467477.44751" 
+    .const 'Sub' $P1004 = "254_1282324002.40722" 
     capture_lex $P1004
-    .const 'Sub' $P998 = "252_1280467477.44751" 
+    .const 'Sub' $P998 = "252_1282324002.40722" 
     capture_lex $P998
-    .const 'Sub' $P992 = "250_1280467477.44751" 
+    .const 'Sub' $P992 = "250_1282324002.40722" 
     capture_lex $P992
-    .const 'Sub' $P987 = "248_1280467477.44751" 
+    .const 'Sub' $P987 = "248_1282324002.40722" 
     capture_lex $P987
-    .const 'Sub' $P981 = "246_1280467477.44751" 
+    .const 'Sub' $P981 = "246_1282324002.40722" 
     capture_lex $P981
-    .const 'Sub' $P975 = "244_1280467477.44751" 
+    .const 'Sub' $P975 = "244_1282324002.40722" 
     capture_lex $P975
-    .const 'Sub' $P970 = "242_1280467477.44751" 
+    .const 'Sub' $P970 = "242_1282324002.40722" 
     capture_lex $P970
-    .const 'Sub' $P965 = "240_1280467477.44751" 
+    .const 'Sub' $P965 = "240_1282324002.40722" 
     capture_lex $P965
-    .const 'Sub' $P957 = "238_1280467477.44751" 
+    .const 'Sub' $P957 = "238_1282324002.40722" 
     capture_lex $P957
-    .const 'Sub' $P948 = "236_1280467477.44751" 
+    .const 'Sub' $P948 = "236_1282324002.40722" 
     capture_lex $P948
-    .const 'Sub' $P943 = "234_1280467477.44751" 
+    .const 'Sub' $P943 = "234_1282324002.40722" 
     capture_lex $P943
-    .const 'Sub' $P938 = "232_1280467477.44751" 
+    .const 'Sub' $P938 = "232_1282324002.40722" 
     capture_lex $P938
-    .const 'Sub' $P933 = "230_1280467477.44751" 
+    .const 'Sub' $P933 = "230_1282324002.40722" 
     capture_lex $P933
-    .const 'Sub' $P925 = "228_1280467477.44751" 
+    .const 'Sub' $P925 = "228_1282324002.40722" 
     capture_lex $P925
-    .const 'Sub' $P917 = "226_1280467477.44751" 
+    .const 'Sub' $P917 = "226_1282324002.40722" 
     capture_lex $P917
-    .const 'Sub' $P912 = "224_1280467477.44751" 
+    .const 'Sub' $P912 = "224_1282324002.40722" 
     capture_lex $P912
-    .const 'Sub' $P907 = "222_1280467477.44751" 
+    .const 'Sub' $P907 = "222_1282324002.40722" 
     capture_lex $P907
-    .const 'Sub' $P902 = "220_1280467477.44751" 
+    .const 'Sub' $P902 = "220_1282324002.40722" 
     capture_lex $P902
-    .const 'Sub' $P896 = "218_1280467477.44751" 
+    .const 'Sub' $P896 = "218_1282324002.40722" 
     capture_lex $P896
-    .const 'Sub' $P890 = "216_1280467477.44751" 
+    .const 'Sub' $P890 = "216_1282324002.40722" 
     capture_lex $P890
-    .const 'Sub' $P884 = "214_1280467477.44751" 
+    .const 'Sub' $P884 = "214_1282324002.40722" 
     capture_lex $P884
-    .const 'Sub' $P878 = "212_1280467477.44751" 
+    .const 'Sub' $P878 = "212_1282324002.40722" 
     capture_lex $P878
-    .const 'Sub' $P872 = "210_1280467477.44751" 
+    .const 'Sub' $P872 = "210_1282324002.40722" 
     capture_lex $P872
-    .const 'Sub' $P867 = "208_1280467477.44751" 
+    .const 'Sub' $P867 = "208_1282324002.40722" 
     capture_lex $P867
-    .const 'Sub' $P862 = "206_1280467477.44751" 
+    .const 'Sub' $P862 = "206_1282324002.40722" 
     capture_lex $P862
-    .const 'Sub' $P850 = "202_1280467477.44751" 
+    .const 'Sub' $P850 = "202_1282324002.40722" 
     capture_lex $P850
-    .const 'Sub' $P842 = "200_1280467477.44751" 
+    .const 'Sub' $P842 = "200_1282324002.40722" 
     capture_lex $P842
-    .const 'Sub' $P836 = "198_1280467477.44751" 
+    .const 'Sub' $P836 = "198_1282324002.40722" 
     capture_lex $P836
-    .const 'Sub' $P829 = "196_1280467477.44751" 
+    .const 'Sub' $P829 = "196_1282324002.40722" 
     capture_lex $P829
-    .const 'Sub' $P823 = "194_1280467477.44751" 
+    .const 'Sub' $P823 = "194_1282324002.40722" 
     capture_lex $P823
-    .const 'Sub' $P815 = "192_1280467477.44751" 
+    .const 'Sub' $P815 = "192_1282324002.40722" 
     capture_lex $P815
-    .const 'Sub' $P807 = "190_1280467477.44751" 
+    .const 'Sub' $P807 = "190_1282324002.40722" 
     capture_lex $P807
-    .const 'Sub' $P801 = "188_1280467477.44751" 
+    .const 'Sub' $P801 = "188_1282324002.40722" 
     capture_lex $P801
-    .const 'Sub' $P795 = "186_1280467477.44751" 
+    .const 'Sub' $P795 = "186_1282324002.40722" 
     capture_lex $P795
-    .const 'Sub' $P781 = "182_1280467477.44751" 
+    .const 'Sub' $P781 = "182_1282324002.40722" 
     capture_lex $P781
-    .const 'Sub' $P744 = "180_1280467477.44751" 
+    .const 'Sub' $P744 = "180_1282324002.40722" 
     capture_lex $P744
-    .const 'Sub' $P735 = "178_1280467477.44751" 
+    .const 'Sub' $P735 = "178_1282324002.40722" 
     capture_lex $P735
-    .const 'Sub' $P729 = "176_1280467477.44751" 
+    .const 'Sub' $P729 = "176_1282324002.40722" 
     capture_lex $P729
-    .const 'Sub' $P719 = "174_1280467477.44751" 
+    .const 'Sub' $P719 = "174_1282324002.40722" 
     capture_lex $P719
-    .const 'Sub' $P706 = "172_1280467477.44751" 
+    .const 'Sub' $P706 = "172_1282324002.40722" 
     capture_lex $P706
-    .const 'Sub' $P699 = "170_1280467477.44751" 
+    .const 'Sub' $P699 = "170_1282324002.40722" 
     capture_lex $P699
-    .const 'Sub' $P691 = "168_1280467477.44751" 
+    .const 'Sub' $P691 = "168_1282324002.40722" 
     capture_lex $P691
-    .const 'Sub' $P681 = "166_1280467477.44751" 
+    .const 'Sub' $P681 = "166_1282324002.40722" 
     capture_lex $P681
-    .const 'Sub' $P657 = "162_1280467477.44751" 
+    .const 'Sub' $P657 = "162_1282324002.40722" 
     capture_lex $P657
-    .const 'Sub' $P634 = "160_1280467477.44751" 
+    .const 'Sub' $P634 = "160_1282324002.40722" 
     capture_lex $P634
-    .const 'Sub' $P627 = "158_1280467477.44751" 
+    .const 'Sub' $P627 = "158_1282324002.40722" 
     capture_lex $P627
-    .const 'Sub' $P620 = "156_1280467477.44751" 
+    .const 'Sub' $P620 = "156_1282324002.40722" 
     capture_lex $P620
-    .const 'Sub' $P610 = "152_1280467477.44751" 
+    .const 'Sub' $P610 = "152_1282324002.40722" 
     capture_lex $P610
-    .const 'Sub' $P602 = "150_1280467477.44751" 
+    .const 'Sub' $P602 = "150_1282324002.40722" 
     capture_lex $P602
-    .const 'Sub' $P596 = "148_1280467477.44751" 
+    .const 'Sub' $P596 = "148_1282324002.40722" 
     capture_lex $P596
-    .const 'Sub' $P583 = "146_1280467477.44751" 
+    .const 'Sub' $P583 = "146_1282324002.40722" 
     capture_lex $P583
-    .const 'Sub' $P576 = "144_1280467477.44751" 
+    .const 'Sub' $P576 = "144_1282324002.40722" 
     capture_lex $P576
-    .const 'Sub' $P569 = "142_1280467477.44751" 
+    .const 'Sub' $P569 = "142_1282324002.40722" 
     capture_lex $P569
-    .const 'Sub' $P562 = "140_1280467477.44751" 
+    .const 'Sub' $P562 = "140_1282324002.40722" 
     capture_lex $P562
-    .const 'Sub' $P535 = "136_1280467477.44751" 
+    .const 'Sub' $P535 = "136_1282324002.40722" 
     capture_lex $P535
-    .const 'Sub' $P526 = "134_1280467477.44751" 
+    .const 'Sub' $P526 = "134_1282324002.40722" 
     capture_lex $P526
-    .const 'Sub' $P519 = "132_1280467477.44751" 
+    .const 'Sub' $P519 = "132_1282324002.40722" 
     capture_lex $P519
-    .const 'Sub' $P510 = "128_1280467477.44751" 
+    .const 'Sub' $P510 = "128_1282324002.40722" 
     capture_lex $P510
-    .const 'Sub' $P505 = "126_1280467477.44751" 
+    .const 'Sub' $P505 = "126_1282324002.40722" 
     capture_lex $P505
-    .const 'Sub' $P493 = "124_1280467477.44751" 
+    .const 'Sub' $P493 = "124_1282324002.40722" 
     capture_lex $P493
-    .const 'Sub' $P481 = "122_1280467477.44751" 
+    .const 'Sub' $P481 = "122_1282324002.40722" 
     capture_lex $P481
-    .const 'Sub' $P474 = "120_1280467477.44751" 
+    .const 'Sub' $P474 = "120_1282324002.40722" 
     capture_lex $P474
-    .const 'Sub' $P469 = "118_1280467477.44751" 
+    .const 'Sub' $P469 = "118_1282324002.40722" 
     capture_lex $P469
-    .const 'Sub' $P463 = "116_1280467477.44751" 
+    .const 'Sub' $P463 = "116_1282324002.40722" 
     capture_lex $P463
-    .const 'Sub' $P457 = "114_1280467477.44751" 
+    .const 'Sub' $P457 = "114_1282324002.40722" 
     capture_lex $P457
-    .const 'Sub' $P447 = "111_1280467477.44751" 
+    .const 'Sub' $P447 = "111_1282324002.40722" 
     capture_lex $P447
-    .const 'Sub' $P441 = "109_1280467477.44751" 
+    .const 'Sub' $P441 = "109_1282324002.40722" 
     capture_lex $P441
-    .const 'Sub' $P435 = "107_1280467477.44751" 
+    .const 'Sub' $P435 = "107_1282324002.40722" 
     capture_lex $P435
-    .const 'Sub' $P429 = "105_1280467477.44751" 
+    .const 'Sub' $P429 = "105_1282324002.40722" 
     capture_lex $P429
-    .const 'Sub' $P423 = "103_1280467477.44751" 
+    .const 'Sub' $P423 = "103_1282324002.40722" 
     capture_lex $P423
-    .const 'Sub' $P417 = "101_1280467477.44751" 
+    .const 'Sub' $P417 = "101_1282324002.40722" 
     capture_lex $P417
-    .const 'Sub' $P411 = "99_1280467477.44751" 
+    .const 'Sub' $P411 = "99_1282324002.40722" 
     capture_lex $P411
-    .const 'Sub' $P402 = "97_1280467477.44751" 
+    .const 'Sub' $P402 = "97_1282324002.40722" 
     capture_lex $P402
-    .const 'Sub' $P393 = "95_1280467477.44751" 
+    .const 'Sub' $P393 = "95_1282324002.40722" 
     capture_lex $P393
-    .const 'Sub' $P384 = "93_1280467477.44751" 
+    .const 'Sub' $P384 = "93_1282324002.40722" 
     capture_lex $P384
-    .const 'Sub' $P371 = "89_1280467477.44751" 
+    .const 'Sub' $P371 = "89_1282324002.40722" 
     capture_lex $P371
-    .const 'Sub' $P362 = "87_1280467477.44751" 
+    .const 'Sub' $P362 = "87_1282324002.40722" 
     capture_lex $P362
-    .const 'Sub' $P352 = "83_1280467477.44751" 
+    .const 'Sub' $P352 = "83_1282324002.40722" 
     capture_lex $P352
-    .const 'Sub' $P345 = "81_1280467477.44751" 
+    .const 'Sub' $P345 = "81_1282324002.40722" 
     capture_lex $P345
-    .const 'Sub' $P338 = "79_1280467477.44751" 
+    .const 'Sub' $P338 = "79_1282324002.40722" 
     capture_lex $P338
-    .const 'Sub' $P326 = "75_1280467477.44751" 
+    .const 'Sub' $P326 = "75_1282324002.40722" 
     capture_lex $P326
-    .const 'Sub' $P318 = "73_1280467477.44751" 
+    .const 'Sub' $P318 = "73_1282324002.40722" 
     capture_lex $P318
-    .const 'Sub' $P310 = "71_1280467477.44751" 
+    .const 'Sub' $P310 = "71_1282324002.40722" 
     capture_lex $P310
-    .const 'Sub' $P290 = "69_1280467477.44751" 
+    .const 'Sub' $P290 = "69_1282324002.40722" 
     capture_lex $P290
-    .const 'Sub' $P281 = "67_1280467477.44751" 
+    .const 'Sub' $P281 = "67_1282324002.40722" 
     capture_lex $P281
-    .const 'Sub' $P263 = "64_1280467477.44751" 
+    .const 'Sub' $P263 = "64_1282324002.40722" 
     capture_lex $P263
-    .const 'Sub' $P245 = "62_1280467477.44751" 
+    .const 'Sub' $P245 = "62_1282324002.40722" 
     capture_lex $P245
-    .const 'Sub' $P236 = "58_1280467477.44751" 
+    .const 'Sub' $P236 = "58_1282324002.40722" 
     capture_lex $P236
-    .const 'Sub' $P231 = "56_1280467477.44751" 
+    .const 'Sub' $P231 = "56_1282324002.40722" 
     capture_lex $P231
-    .const 'Sub' $P222 = "52_1280467477.44751" 
+    .const 'Sub' $P222 = "52_1282324002.40722" 
     capture_lex $P222
-    .const 'Sub' $P217 = "50_1280467477.44751" 
+    .const 'Sub' $P217 = "50_1282324002.40722" 
     capture_lex $P217
-    .const 'Sub' $P212 = "48_1280467477.44751" 
+    .const 'Sub' $P212 = "48_1282324002.40722" 
     capture_lex $P212
-    .const 'Sub' $P203 = "46_1280467477.44751" 
+    .const 'Sub' $P203 = "46_1282324002.40722" 
     capture_lex $P203
-    .const 'Sub' $P196 = "44_1280467477.44751" 
+    .const 'Sub' $P196 = "44_1282324002.40722" 
     capture_lex $P196
-    .const 'Sub' $P190 = "42_1280467477.44751" 
+    .const 'Sub' $P190 = "42_1282324002.40722" 
     capture_lex $P190
-    .const 'Sub' $P182 = "40_1280467477.44751" 
+    .const 'Sub' $P182 = "40_1282324002.40722" 
     capture_lex $P182
-    .const 'Sub' $P176 = "38_1280467477.44751" 
+    .const 'Sub' $P176 = "38_1282324002.40722" 
     capture_lex $P176
-    .const 'Sub' $P170 = "36_1280467477.44751" 
+    .const 'Sub' $P170 = "36_1282324002.40722" 
     capture_lex $P170
-    .const 'Sub' $P155 = "33_1280467477.44751" 
+    .const 'Sub' $P155 = "33_1282324002.40722" 
     capture_lex $P155
-    .const 'Sub' $P141 = "31_1280467477.44751" 
+    .const 'Sub' $P141 = "31_1282324002.40722" 
     capture_lex $P141
-    .const 'Sub' $P134 = "29_1280467477.44751" 
+    .const 'Sub' $P134 = "29_1282324002.40722" 
     capture_lex $P134
-    .const 'Sub' $P95 = "26_1280467477.44751" 
+    .const 'Sub' $P95 = "26_1282324002.40722" 
     capture_lex $P95
-    .const 'Sub' $P80 = "23_1280467477.44751" 
+    .const 'Sub' $P80 = "23_1282324002.40722" 
     capture_lex $P80
-    .const 'Sub' $P69 = "21_1280467477.44751" 
+    .const 'Sub' $P69 = "21_1282324002.40722" 
     capture_lex $P69
-    .const 'Sub' $P57 = "19_1280467477.44751" 
+    .const 'Sub' $P57 = "19_1282324002.40722" 
     capture_lex $P57
-    .const 'Sub' $P49 = "17_1280467477.44751" 
+    .const 'Sub' $P49 = "17_1282324002.40722" 
     capture_lex $P49
-    .const 'Sub' $P42 = "15_1280467477.44751" 
+    .const 'Sub' $P42 = "15_1282324002.40722" 
     capture_lex $P42
-    .const 'Sub' $P35 = "13_1280467477.44751" 
+    .const 'Sub' $P35 = "13_1282324002.40722" 
     capture_lex $P35
-    .const 'Sub' $P15 = "12_1280467477.44751" 
+    .const 'Sub' $P15 = "12_1282324002.40722" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -377,13 +377,13 @@
     $P1402 = $P1340()
 .annotate 'line', 4
     .return ($P1402)
-    .const 'Sub' $P1404 = "370_1280467477.44751" 
+    .const 'Sub' $P1404 = "370_1282324002.40722" 
     .return ($P1404)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post373") :outer("11_1280467477.44751")
+.sub "" :load :init :subid("post373") :outer("11_1282324002.40722")
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
@@ -441,7 +441,7 @@
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("12_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "TOP"  :subid("12_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
@@ -531,7 +531,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "identifier"  :subid("13_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx36_tgt
     .local int rx36_pos
@@ -539,7 +539,9 @@
     .local int rx36_eos
     .local int rx36_rep
     .local pmc rx36_cur
+    .local pmc rx36_debug
     (rx36_cur, rx36_pos, rx36_tgt, $I10) = self."!cursor_start"()
+    getattribute rx36_debug, rx36_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx36_cur
     .local pmc match
     .lex "$/", match
@@ -551,7 +553,9 @@
     substr rx36_tgt, rx36_tgt, rx36_off
   rx36_start:
     eq $I10, 1, rx36_restart
-    rx36_cur."!cursor_debug"("START ", "identifier")
+    if_null rx36_debug, debug_384
+    rx36_cur."!cursor_debug"("START", "identifier")
+  debug_384:
     $I10 = self.'from'()
     ne $I10, -1, rxscan40_done
     goto rxscan40_scan
@@ -594,11 +598,15 @@
   rxquantr41_done:
   # rx pass
     rx36_cur."!cursor_pass"(rx36_pos, "identifier")
-    rx36_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx36_pos)
+    if_null rx36_debug, debug_385
+    rx36_cur."!cursor_debug"("PASS", "identifier", " at pos=", rx36_pos)
+  debug_385:
     .return (rx36_cur)
   rx36_restart:
 .annotate 'line', 4
-    rx36_cur."!cursor_debug"("NEXT ", "identifier")
+    if_null rx36_debug, debug_386
+    rx36_cur."!cursor_debug"("NEXT", "identifier")
+  debug_386:
   rx36_fail:
     (rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0)
     lt rx36_pos, -1, rx36_done
@@ -606,14 +614,16 @@
     jump $I10
   rx36_done:
     rx36_cur."!cursor_fail"()
-    rx36_cur."!cursor_debug"("FAIL  ", "identifier")
+    if_null rx36_debug, debug_387
+    rx36_cur."!cursor_debug"("FAIL", "identifier")
+  debug_387:
     .return (rx36_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1280467477.44751") :method
+.sub "!PREFIX__identifier"  :subid("14_1282324002.40722") :method
 .annotate 'line', 4
     $P38 = self."!PREFIX__!subrule"("ident", "")
     new $P39, "ResizablePMCArray"
@@ -623,7 +633,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "name"  :subid("15_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx43_tgt
     .local int rx43_pos
@@ -631,8 +641,10 @@
     .local int rx43_eos
     .local int rx43_rep
     .local pmc rx43_cur
+    .local pmc rx43_debug
     (rx43_cur, rx43_pos, rx43_tgt, $I10) = self."!cursor_start"()
     rx43_cur."!cursor_caparray"("identifier")
+    getattribute rx43_debug, rx43_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx43_cur
     .local pmc match
     .lex "$/", match
@@ -644,7 +656,9 @@
     substr rx43_tgt, rx43_tgt, rx43_off
   rx43_start:
     eq $I10, 1, rx43_restart
-    rx43_cur."!cursor_debug"("START ", "name")
+    if_null rx43_debug, debug_388
+    rx43_cur."!cursor_debug"("START", "name")
+  debug_388:
     $I10 = self.'from'()
     ne $I10, -1, rxscan46_done
     goto rxscan46_scan
@@ -690,11 +704,15 @@
   rxquantr47_done:
   # rx pass
     rx43_cur."!cursor_pass"(rx43_pos, "name")
-    rx43_cur."!cursor_debug"("PASS  ", "name", " at pos=", rx43_pos)
+    if_null rx43_debug, debug_389
+    rx43_cur."!cursor_debug"("PASS", "name", " at pos=", rx43_pos)
+  debug_389:
     .return (rx43_cur)
   rx43_restart:
 .annotate 'line', 4
-    rx43_cur."!cursor_debug"("NEXT ", "name")
+    if_null rx43_debug, debug_390
+    rx43_cur."!cursor_debug"("NEXT", "name")
+  debug_390:
   rx43_fail:
     (rx43_rep, rx43_pos, $I10, $P10) = rx43_cur."!mark_fail"(0)
     lt rx43_pos, -1, rx43_done
@@ -702,14 +720,16 @@
     jump $I10
   rx43_done:
     rx43_cur."!cursor_fail"()
-    rx43_cur."!cursor_debug"("FAIL  ", "name")
+    if_null rx43_debug, debug_391
+    rx43_cur."!cursor_debug"("FAIL", "name")
+  debug_391:
     .return (rx43_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1280467477.44751") :method
+.sub "!PREFIX__name"  :subid("16_1282324002.40722") :method
 .annotate 'line', 4
     new $P45, "ResizablePMCArray"
     push $P45, ""
@@ -718,7 +738,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "deflongname"  :subid("17_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx50_tgt
     .local int rx50_pos
@@ -726,8 +746,10 @@
     .local int rx50_eos
     .local int rx50_rep
     .local pmc rx50_cur
+    .local pmc rx50_debug
     (rx50_cur, rx50_pos, rx50_tgt, $I10) = self."!cursor_start"()
     rx50_cur."!cursor_caparray"("colonpair")
+    getattribute rx50_debug, rx50_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx50_cur
     .local pmc match
     .lex "$/", match
@@ -739,7 +761,9 @@
     substr rx50_tgt, rx50_tgt, rx50_off
   rx50_start:
     eq $I10, 1, rx50_restart
-    rx50_cur."!cursor_debug"("START ", "deflongname")
+    if_null rx50_debug, debug_392
+    rx50_cur."!cursor_debug"("START", "deflongname")
+  debug_392:
     $I10 = self.'from'()
     ne $I10, -1, rxscan54_done
     goto rxscan54_scan
@@ -783,11 +807,15 @@
 .annotate 'line', 21
   # rx pass
     rx50_cur."!cursor_pass"(rx50_pos, "deflongname")
-    rx50_cur."!cursor_debug"("PASS  ", "deflongname", " at pos=", rx50_pos)
+    if_null rx50_debug, debug_393
+    rx50_cur."!cursor_debug"("PASS", "deflongname", " at pos=", rx50_pos)
+  debug_393:
     .return (rx50_cur)
   rx50_restart:
 .annotate 'line', 4
-    rx50_cur."!cursor_debug"("NEXT ", "deflongname")
+    if_null rx50_debug, debug_394
+    rx50_cur."!cursor_debug"("NEXT", "deflongname")
+  debug_394:
   rx50_fail:
     (rx50_rep, rx50_pos, $I10, $P10) = rx50_cur."!mark_fail"(0)
     lt rx50_pos, -1, rx50_done
@@ -795,14 +823,16 @@
     jump $I10
   rx50_done:
     rx50_cur."!cursor_fail"()
-    rx50_cur."!cursor_debug"("FAIL  ", "deflongname")
+    if_null rx50_debug, debug_395
+    rx50_cur."!cursor_debug"("FAIL", "deflongname")
+  debug_395:
     .return (rx50_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1280467477.44751") :method
+.sub "!PREFIX__deflongname"  :subid("18_1282324002.40722") :method
 .annotate 'line', 4
     $P52 = self."!PREFIX__!subrule"("identifier", "")
     new $P53, "ResizablePMCArray"
@@ -812,7 +842,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "ENDSTMT"  :subid("19_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx58_tgt
     .local int rx58_pos
@@ -820,7 +850,9 @@
     .local int rx58_eos
     .local int rx58_rep
     .local pmc rx58_cur
+    .local pmc rx58_debug
     (rx58_cur, rx58_pos, rx58_tgt, $I10) = self."!cursor_start"()
+    getattribute rx58_debug, rx58_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx58_cur
     .local pmc match
     .lex "$/", match
@@ -832,7 +864,9 @@
     substr rx58_tgt, rx58_tgt, rx58_off
   rx58_start:
     eq $I10, 1, rx58_restart
-    rx58_cur."!cursor_debug"("START ", "ENDSTMT")
+    if_null rx58_debug, debug_396
+    rx58_cur."!cursor_debug"("START", "ENDSTMT")
+  debug_396:
     $I10 = self.'from'()
     ne $I10, -1, rxscan61_done
     goto rxscan61_scan
@@ -855,23 +889,21 @@
     set_addr $I10, alt63_1
     rx58_cur."!mark_push"(0, rx58_pos, $I10)
 .annotate 'line', 27
-  # rx rxquantr64 ** 0..*
-    set_addr $I10, rxquantr64_done
-    rx58_cur."!mark_push"(0, rx58_pos, $I10)
-  rxquantr64_loop:
-  # rx enumcharlist negate=0 
-    ge rx58_pos, rx58_eos, rx58_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx58_pos, rx58_off
+    set rx58_rep, 0
+    sub $I12, rx58_eos, rx58_pos
+  rxenumcharlistq64_loop:
+    le $I12, 0, rxenumcharlistq64_done
     substr $S10, rx58_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx58_fail
-    inc rx58_pos
-    set_addr $I10, rxquantr64_done
-    (rx58_rep) = rx58_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr64_done
-    rx58_cur."!mark_push"(rx58_rep, rx58_pos, $I10)
-    goto rxquantr64_loop
-  rxquantr64_done:
+    lt $I11, 0, rxenumcharlistq64_done
+    inc rx58_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq64_loop
+  rxenumcharlistq64_done:
+    add rx58_pos, rx58_pos, rx58_rep
   # rxanchor eol
     sub $I10, rx58_pos, rx58_off
     is_cclass $I11, 4096, rx58_tgt, $I10
@@ -940,11 +972,15 @@
 .annotate 'line', 25
   # rx pass
     rx58_cur."!cursor_pass"(rx58_pos, "ENDSTMT")
-    rx58_cur."!cursor_debug"("PASS  ", "ENDSTMT", " at pos=", rx58_pos)
+    if_null rx58_debug, debug_397
+    rx58_cur."!cursor_debug"("PASS", "ENDSTMT", " at pos=", rx58_pos)
+  debug_397:
     .return (rx58_cur)
   rx58_restart:
 .annotate 'line', 4
-    rx58_cur."!cursor_debug"("NEXT ", "ENDSTMT")
+    if_null rx58_debug, debug_398
+    rx58_cur."!cursor_debug"("NEXT", "ENDSTMT")
+  debug_398:
   rx58_fail:
     (rx58_rep, rx58_pos, $I10, $P10) = rx58_cur."!mark_fail"(0)
     lt rx58_pos, -1, rx58_done
@@ -952,14 +988,16 @@
     jump $I10
   rx58_done:
     rx58_cur."!cursor_fail"()
-    rx58_cur."!cursor_debug"("FAIL  ", "ENDSTMT")
+    if_null rx58_debug, debug_399
+    rx58_cur."!cursor_debug"("FAIL", "ENDSTMT")
+  debug_399:
     .return (rx58_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1280467477.44751") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1282324002.40722") :method
 .annotate 'line', 4
     new $P60, "ResizablePMCArray"
     push $P60, ""
@@ -968,7 +1006,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "ws"  :subid("21_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx70_tgt
     .local int rx70_pos
@@ -976,7 +1014,9 @@
     .local int rx70_eos
     .local int rx70_rep
     .local pmc rx70_cur
+    .local pmc rx70_debug
     (rx70_cur, rx70_pos, rx70_tgt, $I10) = self."!cursor_start"()
+    getattribute rx70_debug, rx70_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx70_cur
     .local pmc match
     .lex "$/", match
@@ -988,7 +1028,9 @@
     substr rx70_tgt, rx70_tgt, rx70_off
   rx70_start:
     eq $I10, 1, rx70_restart
-    rx70_cur."!cursor_debug"("START ", "ws")
+    if_null rx70_debug, debug_400
+    rx70_cur."!cursor_debug"("START", "ws")
+  debug_400:
     $I10 = self.'from'()
     ne $I10, -1, rxscan73_done
     goto rxscan73_scan
@@ -1026,23 +1068,22 @@
 .annotate 'line', 35
     set_addr $I10, alt76_1
     rx70_cur."!mark_push"(0, rx70_pos, $I10)
-  # rx rxquantr77 ** 1..*
-    set_addr $I10, rxquantr77_done
-    rx70_cur."!mark_push"(0, -1, $I10)
-  rxquantr77_loop:
-  # rx enumcharlist negate=0 
-    ge rx70_pos, rx70_eos, rx70_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx70_pos, rx70_off
+    set rx70_rep, 0
+    sub $I12, rx70_eos, rx70_pos
+  rxenumcharlistq77_loop:
+    le $I12, 0, rxenumcharlistq77_done
     substr $S10, rx70_tgt, $I10, 1
     index $I11, unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", $S10
-    lt $I11, 0, rx70_fail
-    inc rx70_pos
-    set_addr $I10, rxquantr77_done
-    (rx70_rep) = rx70_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr77_done
-    rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
-    goto rxquantr77_loop
-  rxquantr77_done:
+    lt $I11, 0, rxenumcharlistq77_done
+    inc rx70_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq77_loop
+  rxenumcharlistq77_done:
+    lt rx70_rep, 1, rx70_fail
+    add rx70_pos, rx70_pos, rx70_rep
     goto alt76_end
   alt76_1:
     set_addr $I10, alt76_2
@@ -1052,8 +1093,8 @@
     add $I11, rx70_pos, 1
     gt $I11, rx70_eos, rx70_fail
     sub $I11, rx70_pos, rx70_off
-    substr $S10, rx70_tgt, $I11, 1
-    ne $S10, "#", rx70_fail
+    ord $I11, rx70_tgt, $I11
+    ne $I11, 35, rx70_fail
     add rx70_pos, 1
   # rx charclass_q N r 0..-1
     sub $I10, rx70_pos, rx70_off
@@ -1080,23 +1121,22 @@
     goto alt76_end
   alt76_3:
 .annotate 'line', 38
-  # rx rxquantr79 ** 1..*
-    set_addr $I10, rxquantr79_done
-    rx70_cur."!mark_push"(0, -1, $I10)
-  rxquantr79_loop:
-  # rx enumcharlist negate=0 
-    ge rx70_pos, rx70_eos, rx70_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx70_pos, rx70_off
+    set rx70_rep, 0
+    sub $I12, rx70_eos, rx70_pos
+  rxenumcharlistq79_loop:
+    le $I12, 0, rxenumcharlistq79_done
     substr $S10, rx70_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx70_fail
-    inc rx70_pos
-    set_addr $I10, rxquantr79_done
-    (rx70_rep) = rx70_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr79_done
-    rx70_cur."!mark_push"(rx70_rep, rx70_pos, $I10)
-    goto rxquantr79_loop
-  rxquantr79_done:
+    lt $I11, 0, rxenumcharlistq79_done
+    inc rx70_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq79_loop
+  rxenumcharlistq79_done:
+    lt rx70_rep, 1, rx70_fail
+    add rx70_pos, rx70_pos, rx70_rep
   alt76_end:
 .annotate 'line', 39
     set_addr $I10, rxquantr75_done
@@ -1114,11 +1154,15 @@
 .annotate 'line', 32
   # rx pass
     rx70_cur."!cursor_pass"(rx70_pos, "ws")
-    rx70_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx70_pos)
+    if_null rx70_debug, debug_401
+    rx70_cur."!cursor_debug"("PASS", "ws", " at pos=", rx70_pos)
+  debug_401:
     .return (rx70_cur)
   rx70_restart:
 .annotate 'line', 4
-    rx70_cur."!cursor_debug"("NEXT ", "ws")
+    if_null rx70_debug, debug_402
+    rx70_cur."!cursor_debug"("NEXT", "ws")
+  debug_402:
   rx70_fail:
     (rx70_rep, rx70_pos, $I10, $P10) = rx70_cur."!mark_fail"(0)
     lt rx70_pos, -1, rx70_done
@@ -1126,14 +1170,16 @@
     jump $I10
   rx70_done:
     rx70_cur."!cursor_fail"()
-    rx70_cur."!cursor_debug"("FAIL  ", "ws")
+    if_null rx70_debug, debug_403
+    rx70_cur."!cursor_debug"("FAIL", "ws")
+  debug_403:
     .return (rx70_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1280467477.44751") :method
+.sub "!PREFIX__ws"  :subid("22_1282324002.40722") :method
 .annotate 'line', 4
     new $P72, "ResizablePMCArray"
     push $P72, ""
@@ -1143,9 +1189,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "unv"  :subid("23_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
-    .const 'Sub' $P88 = "25_1280467477.44751" 
+    .const 'Sub' $P88 = "25_1282324002.40722" 
     capture_lex $P88
     .local string rx81_tgt
     .local int rx81_pos
@@ -1153,7 +1199,9 @@
     .local int rx81_eos
     .local int rx81_rep
     .local pmc rx81_cur
+    .local pmc rx81_debug
     (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+    getattribute rx81_debug, rx81_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx81_cur
     .local pmc match
     .lex "$/", match
@@ -1165,7 +1213,9 @@
     substr rx81_tgt, rx81_tgt, rx81_off
   rx81_start:
     eq $I10, 1, rx81_restart
-    rx81_cur."!cursor_debug"("START ", "unv")
+    if_null rx81_debug, debug_404
+    rx81_cur."!cursor_debug"("START", "unv")
+  debug_404:
     $I10 = self.'from'()
     ne $I10, -1, rxscan84_done
     goto rxscan84_scan
@@ -1193,7 +1243,7 @@
   rxanchor86_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx81_cur."!cursor_pos"(rx81_pos)
-    .const 'Sub' $P88 = "25_1280467477.44751" 
+    .const 'Sub' $P88 = "25_1282324002.40722" 
     capture_lex $P88
     $P10 = rx81_cur."before"($P88)
     unless $P10, rx81_fail
@@ -1207,29 +1257,27 @@
     set_addr $I10, alt85_2
     rx81_cur."!mark_push"(0, rx81_pos, $I10)
 .annotate 'line', 47
-  # rx rxquantr93 ** 0..*
-    set_addr $I10, rxquantr93_done
-    rx81_cur."!mark_push"(0, rx81_pos, $I10)
-  rxquantr93_loop:
-  # rx enumcharlist negate=0 
-    ge rx81_pos, rx81_eos, rx81_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx81_pos, rx81_off
+    set rx81_rep, 0
+    sub $I12, rx81_eos, rx81_pos
+  rxenumcharlistq93_loop:
+    le $I12, 0, rxenumcharlistq93_done
     substr $S10, rx81_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx81_fail
-    inc rx81_pos
-    set_addr $I10, rxquantr93_done
-    (rx81_rep) = rx81_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr93_done
-    rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
-    goto rxquantr93_loop
-  rxquantr93_done:
+    lt $I11, 0, rxenumcharlistq93_done
+    inc rx81_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq93_loop
+  rxenumcharlistq93_done:
+    add rx81_pos, rx81_pos, rx81_rep
   # rx literal  "#"
     add $I11, rx81_pos, 1
     gt $I11, rx81_eos, rx81_fail
     sub $I11, rx81_pos, rx81_off
-    substr $S10, rx81_tgt, $I11, 1
-    ne $S10, "#", rx81_fail
+    ord $I11, rx81_tgt, $I11
+    ne $I11, 35, rx81_fail
     add rx81_pos, 1
   # rx charclass_q N r 0..-1
     sub $I10, rx81_pos, rx81_off
@@ -1238,32 +1286,35 @@
     goto alt85_end
   alt85_2:
 .annotate 'line', 48
-  # rx rxquantr94 ** 1..*
-    set_addr $I10, rxquantr94_done
-    rx81_cur."!mark_push"(0, -1, $I10)
-  rxquantr94_loop:
-  # rx enumcharlist negate=0 
-    ge rx81_pos, rx81_eos, rx81_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx81_pos, rx81_off
+    set rx81_rep, 0
+    sub $I12, rx81_eos, rx81_pos
+  rxenumcharlistq94_loop:
+    le $I12, 0, rxenumcharlistq94_done
     substr $S10, rx81_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx81_fail
-    inc rx81_pos
-    set_addr $I10, rxquantr94_done
-    (rx81_rep) = rx81_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr94_done
-    rx81_cur."!mark_push"(rx81_rep, rx81_pos, $I10)
-    goto rxquantr94_loop
-  rxquantr94_done:
+    lt $I11, 0, rxenumcharlistq94_done
+    inc rx81_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq94_loop
+  rxenumcharlistq94_done:
+    lt rx81_rep, 1, rx81_fail
+    add rx81_pos, rx81_pos, rx81_rep
   alt85_end:
 .annotate 'line', 43
   # rx pass
     rx81_cur."!cursor_pass"(rx81_pos, "unv")
-    rx81_cur."!cursor_debug"("PASS  ", "unv", " at pos=", rx81_pos)
+    if_null rx81_debug, debug_409
+    rx81_cur."!cursor_debug"("PASS", "unv", " at pos=", rx81_pos)
+  debug_409:
     .return (rx81_cur)
   rx81_restart:
 .annotate 'line', 4
-    rx81_cur."!cursor_debug"("NEXT ", "unv")
+    if_null rx81_debug, debug_410
+    rx81_cur."!cursor_debug"("NEXT", "unv")
+  debug_410:
   rx81_fail:
     (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
     lt rx81_pos, -1, rx81_done
@@ -1271,14 +1322,16 @@
     jump $I10
   rx81_done:
     rx81_cur."!cursor_fail"()
-    rx81_cur."!cursor_debug"("FAIL  ", "unv")
+    if_null rx81_debug, debug_411
+    rx81_cur."!cursor_debug"("FAIL", "unv")
+  debug_411:
     .return (rx81_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1280467477.44751") :method
+.sub "!PREFIX__unv"  :subid("24_1282324002.40722") :method
 .annotate 'line', 4
     new $P83, "ResizablePMCArray"
     push $P83, ""
@@ -1289,7 +1342,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block87"  :anon :subid("25_1280467477.44751") :method :outer("23_1280467477.44751")
+.sub "_block87"  :anon :subid("25_1282324002.40722") :method :outer("23_1282324002.40722")
 .annotate 'line', 46
     .local string rx89_tgt
     .local int rx89_pos
@@ -1297,7 +1350,9 @@
     .local int rx89_eos
     .local int rx89_rep
     .local pmc rx89_cur
+    .local pmc rx89_debug
     (rx89_cur, rx89_pos, rx89_tgt, $I10) = self."!cursor_start"()
+    getattribute rx89_debug, rx89_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx89_cur
     .local pmc match
     .lex "$/", match
@@ -1309,7 +1364,9 @@
     substr rx89_tgt, rx89_tgt, rx89_off
   rx89_start:
     eq $I10, 1, rx89_restart
-    rx89_cur."!cursor_debug"("START ", "")
+    if_null rx89_debug, debug_405
+    rx89_cur."!cursor_debug"("START", "")
+  debug_405:
     $I10 = self.'from'()
     ne $I10, -1, rxscan90_done
     goto rxscan90_scan
@@ -1322,29 +1379,27 @@
     set_addr $I10, rxscan90_loop
     rx89_cur."!mark_push"(0, rx89_pos, $I10)
   rxscan90_done:
-  # rx rxquantr91 ** 0..*
-    set_addr $I10, rxquantr91_done
-    rx89_cur."!mark_push"(0, rx89_pos, $I10)
-  rxquantr91_loop:
-  # rx enumcharlist negate=0 
-    ge rx89_pos, rx89_eos, rx89_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx89_pos, rx89_off
+    set rx89_rep, 0
+    sub $I12, rx89_eos, rx89_pos
+  rxenumcharlistq91_loop:
+    le $I12, 0, rxenumcharlistq91_done
     substr $S10, rx89_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx89_fail
-    inc rx89_pos
-    set_addr $I10, rxquantr91_done
-    (rx89_rep) = rx89_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr91_done
-    rx89_cur."!mark_push"(rx89_rep, rx89_pos, $I10)
-    goto rxquantr91_loop
-  rxquantr91_done:
+    lt $I11, 0, rxenumcharlistq91_done
+    inc rx89_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq91_loop
+  rxenumcharlistq91_done:
+    add rx89_pos, rx89_pos, rx89_rep
   # rx literal  "="
     add $I11, rx89_pos, 1
     gt $I11, rx89_eos, rx89_fail
     sub $I11, rx89_pos, rx89_off
-    substr $S10, rx89_tgt, $I11, 1
-    ne $S10, "=", rx89_fail
+    ord $I11, rx89_tgt, $I11
+    ne $I11, 61, rx89_fail
     add rx89_pos, 1
   alt92_0:
     set_addr $I10, alt92_1
@@ -1361,16 +1416,20 @@
     add $I11, rx89_pos, 1
     gt $I11, rx89_eos, rx89_fail
     sub $I11, rx89_pos, rx89_off
-    substr $S10, rx89_tgt, $I11, 1
-    ne $S10, "\\", rx89_fail
+    ord $I11, rx89_tgt, $I11
+    ne $I11, 92, rx89_fail
     add rx89_pos, 1
   alt92_end:
   # rx pass
     rx89_cur."!cursor_pass"(rx89_pos, "")
-    rx89_cur."!cursor_debug"("PASS  ", "", " at pos=", rx89_pos)
+    if_null rx89_debug, debug_406
+    rx89_cur."!cursor_debug"("PASS", "", " at pos=", rx89_pos)
+  debug_406:
     .return (rx89_cur)
   rx89_restart:
-    rx89_cur."!cursor_debug"("NEXT ", "")
+    if_null rx89_debug, debug_407
+    rx89_cur."!cursor_debug"("NEXT", "")
+  debug_407:
   rx89_fail:
     (rx89_rep, rx89_pos, $I10, $P10) = rx89_cur."!mark_fail"(0)
     lt rx89_pos, -1, rx89_done
@@ -1378,16 +1437,18 @@
     jump $I10
   rx89_done:
     rx89_cur."!cursor_fail"()
-    rx89_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx89_debug, debug_408
+    rx89_cur."!cursor_debug"("FAIL", "")
+  debug_408:
     .return (rx89_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "pod_comment"  :subid("26_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
-    .const 'Sub' $P127 = "28_1280467477.44751" 
+    .const 'Sub' $P127 = "28_1282324002.40722" 
     capture_lex $P127
     .local string rx96_tgt
     .local int rx96_pos
@@ -1395,7 +1456,9 @@
     .local int rx96_eos
     .local int rx96_rep
     .local pmc rx96_cur
+    .local pmc rx96_debug
     (rx96_cur, rx96_pos, rx96_tgt, $I10) = self."!cursor_start"()
+    getattribute rx96_debug, rx96_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx96_cur
     .local pmc match
     .lex "$/", match
@@ -1407,7 +1470,9 @@
     substr rx96_tgt, rx96_tgt, rx96_off
   rx96_start:
     eq $I10, 1, rx96_restart
-    rx96_cur."!cursor_debug"("START ", "pod_comment")
+    if_null rx96_debug, debug_412
+    rx96_cur."!cursor_debug"("START", "pod_comment")
+  debug_412:
     $I10 = self.'from'()
     ne $I10, -1, rxscan99_done
     goto rxscan99_scan
@@ -1429,29 +1494,27 @@
     is_cclass $I11, 4096, rx96_tgt, $I10
     unless $I11, rx96_fail
   rxanchor100_done:
-  # rx rxquantr101 ** 0..*
-    set_addr $I10, rxquantr101_done
-    rx96_cur."!mark_push"(0, rx96_pos, $I10)
-  rxquantr101_loop:
-  # rx enumcharlist negate=0 
-    ge rx96_pos, rx96_eos, rx96_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx96_pos, rx96_off
+    set rx96_rep, 0
+    sub $I12, rx96_eos, rx96_pos
+  rxenumcharlistq101_loop:
+    le $I12, 0, rxenumcharlistq101_done
     substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx96_fail
-    inc rx96_pos
-    set_addr $I10, rxquantr101_done
-    (rx96_rep) = rx96_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr101_done
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
-    goto rxquantr101_loop
-  rxquantr101_done:
+    lt $I11, 0, rxenumcharlistq101_done
+    inc rx96_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq101_loop
+  rxenumcharlistq101_done:
+    add rx96_pos, rx96_pos, rx96_rep
   # rx literal  "="
     add $I11, rx96_pos, 1
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 1
-    ne $S10, "=", rx96_fail
+    ord $I11, rx96_tgt, $I11
+    ne $I11, 61, rx96_fail
     add rx96_pos, 1
   alt102_0:
 .annotate 'line', 54
@@ -1465,23 +1528,22 @@
     substr $S10, rx96_tgt, $I11, 5
     ne $S10, "begin", rx96_fail
     add rx96_pos, 5
-  # rx rxquantr103 ** 1..*
-    set_addr $I10, rxquantr103_done
-    rx96_cur."!mark_push"(0, -1, $I10)
-  rxquantr103_loop:
-  # rx enumcharlist negate=0 
-    ge rx96_pos, rx96_eos, rx96_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx96_pos, rx96_off
+    set rx96_rep, 0
+    sub $I12, rx96_eos, rx96_pos
+  rxenumcharlistq103_loop:
+    le $I12, 0, rxenumcharlistq103_done
     substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx96_fail
-    inc rx96_pos
-    set_addr $I10, rxquantr103_done
-    (rx96_rep) = rx96_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr103_done
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
-    goto rxquantr103_loop
-  rxquantr103_done:
+    lt $I11, 0, rxenumcharlistq103_done
+    inc rx96_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq103_loop
+  rxenumcharlistq103_done:
+    lt rx96_rep, 1, rx96_fail
+    add rx96_pos, rx96_pos, rx96_rep
   # rx literal  "END"
     add $I11, rx96_pos, 3
     gt $I11, rx96_eos, rx96_fail
@@ -1521,23 +1583,21 @@
     iseq $I11, $S10, "\r\n"
     add rx96_pos, $I11
     inc rx96_pos
-  # rx rxquantr107 ** 0..*
-    set_addr $I10, rxquantr107_done
-    rx96_cur."!mark_push"(0, rx96_pos, $I10)
-  rxquantr107_loop:
-  # rx enumcharlist negate=0 
-    ge rx96_pos, rx96_eos, rx96_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx96_pos, rx96_off
+    set rx96_rep, 0
+    sub $I12, rx96_eos, rx96_pos
+  rxenumcharlistq107_loop:
+    le $I12, 0, rxenumcharlistq107_done
     substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx96_fail
-    inc rx96_pos
-    set_addr $I10, rxquantr107_done
-    (rx96_rep) = rx96_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr107_done
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
-    goto rxquantr107_loop
-  rxquantr107_done:
+    lt $I11, 0, rxenumcharlistq107_done
+    inc rx96_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq107_loop
+  rxenumcharlistq107_done:
+    add rx96_pos, rx96_pos, rx96_rep
   # rx literal  "=end"
     add $I11, rx96_pos, 4
     gt $I11, rx96_eos, rx96_fail
@@ -1545,23 +1605,22 @@
     substr $S10, rx96_tgt, $I11, 4
     ne $S10, "=end", rx96_fail
     add rx96_pos, 4
-  # rx rxquantr108 ** 1..*
-    set_addr $I10, rxquantr108_done
-    rx96_cur."!mark_push"(0, -1, $I10)
-  rxquantr108_loop:
-  # rx enumcharlist negate=0 
-    ge rx96_pos, rx96_eos, rx96_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx96_pos, rx96_off
+    set rx96_rep, 0
+    sub $I12, rx96_eos, rx96_pos
+  rxenumcharlistq108_loop:
+    le $I12, 0, rxenumcharlistq108_done
     substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx96_fail
-    inc rx96_pos
-    set_addr $I10, rxquantr108_done
-    (rx96_rep) = rx96_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr108_done
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
-    goto rxquantr108_loop
-  rxquantr108_done:
+    lt $I11, 0, rxenumcharlistq108_done
+    inc rx96_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq108_loop
+  rxenumcharlistq108_done:
+    lt rx96_rep, 1, rx96_fail
+    add rx96_pos, rx96_pos, rx96_rep
   # rx literal  "END"
     add $I11, rx96_pos, 3
     gt $I11, rx96_eos, rx96_fail
@@ -1601,23 +1660,22 @@
     substr $S10, rx96_tgt, $I11, 5
     ne $S10, "begin", rx96_fail
     add rx96_pos, 5
-  # rx rxquantr109 ** 1..*
-    set_addr $I10, rxquantr109_done
-    rx96_cur."!mark_push"(0, -1, $I10)
-  rxquantr109_loop:
-  # rx enumcharlist negate=0 
-    ge rx96_pos, rx96_eos, rx96_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx96_pos, rx96_off
+    set rx96_rep, 0
+    sub $I12, rx96_eos, rx96_pos
+  rxenumcharlistq109_loop:
+    le $I12, 0, rxenumcharlistq109_done
     substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx96_fail
-    inc rx96_pos
-    set_addr $I10, rxquantr109_done
-    (rx96_rep) = rx96_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr109_done
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
-    goto rxquantr109_loop
-  rxquantr109_done:
+    lt $I11, 0, rxenumcharlistq109_done
+    inc rx96_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq109_loop
+  rxenumcharlistq109_done:
+    lt rx96_rep, 1, rx96_fail
+    add rx96_pos, rx96_pos, rx96_rep
   # rx subrule "identifier" subtype=capture negate=
     rx96_cur."!cursor_pos"(rx96_pos)
     $P10 = rx96_cur."identifier"()
@@ -1650,23 +1708,21 @@
     iseq $I11, $S10, "\r\n"
     add rx96_pos, $I11
     inc rx96_pos
-  # rx rxquantr113 ** 0..*
-    set_addr $I10, rxquantr113_done
-    rx96_cur."!mark_push"(0, rx96_pos, $I10)
-  rxquantr113_loop:
-  # rx enumcharlist negate=0 
-    ge rx96_pos, rx96_eos, rx96_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx96_pos, rx96_off
+    set rx96_rep, 0
+    sub $I12, rx96_eos, rx96_pos
+  rxenumcharlistq113_loop:
+    le $I12, 0, rxenumcharlistq113_done
     substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx96_fail
-    inc rx96_pos
-    set_addr $I10, rxquantr113_done
-    (rx96_rep) = rx96_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr113_done
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
-    goto rxquantr113_loop
-  rxquantr113_done:
+    lt $I11, 0, rxenumcharlistq113_done
+    inc rx96_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq113_loop
+  rxenumcharlistq113_done:
+    add rx96_pos, rx96_pos, rx96_rep
   # rx literal  "=end"
     add $I11, rx96_pos, 4
     gt $I11, rx96_eos, rx96_fail
@@ -1674,23 +1730,22 @@
     substr $S10, rx96_tgt, $I11, 4
     ne $S10, "=end", rx96_fail
     add rx96_pos, 4
-  # rx rxquantr114 ** 1..*
-    set_addr $I10, rxquantr114_done
-    rx96_cur."!mark_push"(0, -1, $I10)
-  rxquantr114_loop:
-  # rx enumcharlist negate=0 
-    ge rx96_pos, rx96_eos, rx96_fail
+  # rx enumcharlist_q negate=0  r 1..-1
     sub $I10, rx96_pos, rx96_off
+    set rx96_rep, 0
+    sub $I12, rx96_eos, rx96_pos
+  rxenumcharlistq114_loop:
+    le $I12, 0, rxenumcharlistq114_done
     substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx96_fail
-    inc rx96_pos
-    set_addr $I10, rxquantr114_done
-    (rx96_rep) = rx96_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr114_done
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
-    goto rxquantr114_loop
-  rxquantr114_done:
+    lt $I11, 0, rxenumcharlistq114_done
+    inc rx96_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq114_loop
+  rxenumcharlistq114_done:
+    lt rx96_rep, 1, rx96_fail
+    add rx96_pos, rx96_pos, rx96_rep
   # rx subrule "!BACKREF" subtype=method negate=
     rx96_cur."!cursor_pos"(rx96_pos)
     $P10 = rx96_cur."!BACKREF"("identifier")
@@ -1738,23 +1793,21 @@
     dec $I10
     is_cclass $I11, 8192, rx96_tgt, $I10
     unless $I11, rx96_fail
-  # rx rxquantr116 ** 0..*
-    set_addr $I10, rxquantr116_done
-    rx96_cur."!mark_push"(0, rx96_pos, $I10)
-  rxquantr116_loop:
-  # rx enumcharlist negate=0 
-    ge rx96_pos, rx96_eos, rx96_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx96_pos, rx96_off
+    set rx96_rep, 0
+    sub $I12, rx96_eos, rx96_pos
+  rxenumcharlistq116_loop:
+    le $I12, 0, rxenumcharlistq116_done
     substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx96_fail
-    inc rx96_pos
-    set_addr $I10, rxquantr116_done
-    (rx96_rep) = rx96_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr116_done
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
-    goto rxquantr116_loop
-  rxquantr116_done:
+    lt $I11, 0, rxenumcharlistq116_done
+    inc rx96_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq116_loop
+  rxenumcharlistq116_done:
+    add rx96_pos, rx96_pos, rx96_rep
   alt117_0:
 .annotate 'line', 63
     set_addr $I10, alt117_1
@@ -1777,8 +1830,8 @@
     add $I11, rx96_pos, 1
     gt $I11, rx96_eos, rx96_fail
     sub $I11, rx96_pos, rx96_off
-    substr $S10, rx96_tgt, $I11, 1
-    ne $S10, "#", rx96_fail
+    ord $I11, rx96_tgt, $I11
+    ne $I11, 35, rx96_fail
     add rx96_pos, 1
     goto alt117_end
   alt117_2:
@@ -1813,23 +1866,21 @@
     iseq $I11, $S10, "\r\n"
     add rx96_pos, $I11
     inc rx96_pos
-  # rx rxquantr122 ** 0..*
-    set_addr $I10, rxquantr122_done
-    rx96_cur."!mark_push"(0, rx96_pos, $I10)
-  rxquantr122_loop:
-  # rx enumcharlist negate=0 
-    ge rx96_pos, rx96_eos, rx96_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx96_pos, rx96_off
+    set rx96_rep, 0
+    sub $I12, rx96_eos, rx96_pos
+  rxenumcharlistq122_loop:
+    le $I12, 0, rxenumcharlistq122_done
     substr $S10, rx96_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx96_fail
-    inc rx96_pos
-    set_addr $I10, rxquantr122_done
-    (rx96_rep) = rx96_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr122_done
-    rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I10)
-    goto rxquantr122_loop
-  rxquantr122_done:
+    lt $I11, 0, rxenumcharlistq122_done
+    inc rx96_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq122_loop
+  rxenumcharlistq122_done:
+    add rx96_pos, rx96_pos, rx96_rep
   # rx literal  "=end"
     add $I11, rx96_pos, 4
     gt $I11, rx96_eos, rx96_fail
@@ -1893,7 +1944,7 @@
   rxanchor125_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx96_cur."!cursor_pos"(rx96_pos)
-    .const 'Sub' $P127 = "28_1280467477.44751" 
+    .const 'Sub' $P127 = "28_1282324002.40722" 
     capture_lex $P127
     $P10 = rx96_cur."before"($P127)
     unless $P10, rx96_fail
@@ -1927,11 +1978,15 @@
 .annotate 'line', 52
   # rx pass
     rx96_cur."!cursor_pass"(rx96_pos, "pod_comment")
-    rx96_cur."!cursor_debug"("PASS  ", "pod_comment", " at pos=", rx96_pos)
+    if_null rx96_debug, debug_417
+    rx96_cur."!cursor_debug"("PASS", "pod_comment", " at pos=", rx96_pos)
+  debug_417:
     .return (rx96_cur)
   rx96_restart:
 .annotate 'line', 4
-    rx96_cur."!cursor_debug"("NEXT ", "pod_comment")
+    if_null rx96_debug, debug_418
+    rx96_cur."!cursor_debug"("NEXT", "pod_comment")
+  debug_418:
   rx96_fail:
     (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
     lt rx96_pos, -1, rx96_done
@@ -1939,14 +1994,16 @@
     jump $I10
   rx96_done:
     rx96_cur."!cursor_fail"()
-    rx96_cur."!cursor_debug"("FAIL  ", "pod_comment")
+    if_null rx96_debug, debug_419
+    rx96_cur."!cursor_debug"("FAIL", "pod_comment")
+  debug_419:
     .return (rx96_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1280467477.44751") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1282324002.40722") :method
 .annotate 'line', 4
     new $P98, "ResizablePMCArray"
     push $P98, ""
@@ -1955,7 +2012,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block126"  :anon :subid("28_1280467477.44751") :method :outer("26_1280467477.44751")
+.sub "_block126"  :anon :subid("28_1282324002.40722") :method :outer("26_1282324002.40722")
 .annotate 'line', 69
     .local string rx128_tgt
     .local int rx128_pos
@@ -1963,7 +2020,9 @@
     .local int rx128_eos
     .local int rx128_rep
     .local pmc rx128_cur
+    .local pmc rx128_debug
     (rx128_cur, rx128_pos, rx128_tgt, $I10) = self."!cursor_start"()
+    getattribute rx128_debug, rx128_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx128_cur
     .local pmc match
     .lex "$/", match
@@ -1975,7 +2034,9 @@
     substr rx128_tgt, rx128_tgt, rx128_off
   rx128_start:
     eq $I10, 1, rx128_restart
-    rx128_cur."!cursor_debug"("START ", "")
+    if_null rx128_debug, debug_413
+    rx128_cur."!cursor_debug"("START", "")
+  debug_413:
     $I10 = self.'from'()
     ne $I10, -1, rxscan129_done
     goto rxscan129_scan
@@ -1988,23 +2049,21 @@
     set_addr $I10, rxscan129_loop
     rx128_cur."!mark_push"(0, rx128_pos, $I10)
   rxscan129_done:
-  # rx rxquantr130 ** 0..*
-    set_addr $I10, rxquantr130_done
-    rx128_cur."!mark_push"(0, rx128_pos, $I10)
-  rxquantr130_loop:
-  # rx enumcharlist negate=0 
-    ge rx128_pos, rx128_eos, rx128_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx128_pos, rx128_off
+    set rx128_rep, 0
+    sub $I12, rx128_eos, rx128_pos
+  rxenumcharlistq130_loop:
+    le $I12, 0, rxenumcharlistq130_done
     substr $S10, rx128_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx128_fail
-    inc rx128_pos
-    set_addr $I10, rxquantr130_done
-    (rx128_rep) = rx128_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr130_done
-    rx128_cur."!mark_push"(rx128_rep, rx128_pos, $I10)
-    goto rxquantr130_loop
-  rxquantr130_done:
+    lt $I11, 0, rxenumcharlistq130_done
+    inc rx128_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq130_loop
+  rxenumcharlistq130_done:
+    add rx128_pos, rx128_pos, rx128_rep
   alt131_0:
     set_addr $I10, alt131_1
     rx128_cur."!mark_push"(0, rx128_pos, $I10)
@@ -2013,8 +2072,8 @@
     add $I11, rx128_pos, 1
     gt $I11, rx128_eos, rx128_fail
     sub $I11, rx128_pos, rx128_off
-    substr $S10, rx128_tgt, $I11, 1
-    ne $S10, "=", rx128_fail
+    ord $I11, rx128_tgt, $I11
+    ne $I11, 61, rx128_fail
     add rx128_pos, 1
 .annotate 'line', 72
   # rx rxquantr132 ** 0..1
@@ -2063,10 +2122,14 @@
 .annotate 'line', 69
   # rx pass
     rx128_cur."!cursor_pass"(rx128_pos, "")
-    rx128_cur."!cursor_debug"("PASS  ", "", " at pos=", rx128_pos)
+    if_null rx128_debug, debug_414
+    rx128_cur."!cursor_debug"("PASS", "", " at pos=", rx128_pos)
+  debug_414:
     .return (rx128_cur)
   rx128_restart:
-    rx128_cur."!cursor_debug"("NEXT ", "")
+    if_null rx128_debug, debug_415
+    rx128_cur."!cursor_debug"("NEXT", "")
+  debug_415:
   rx128_fail:
     (rx128_rep, rx128_pos, $I10, $P10) = rx128_cur."!mark_fail"(0)
     lt rx128_pos, -1, rx128_done
@@ -2074,14 +2137,16 @@
     jump $I10
   rx128_done:
     rx128_cur."!cursor_fail"()
-    rx128_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx128_debug, debug_416
+    rx128_cur."!cursor_debug"("FAIL", "")
+  debug_416:
     .return (rx128_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "comp_unit"  :subid("29_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx135_tgt
     .local int rx135_pos
@@ -2089,7 +2154,9 @@
     .local int rx135_eos
     .local int rx135_rep
     .local pmc rx135_cur
+    .local pmc rx135_debug
     (rx135_cur, rx135_pos, rx135_tgt, $I10) = self."!cursor_start"()
+    getattribute rx135_debug, rx135_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx135_cur
     .local pmc match
     .lex "$/", match
@@ -2101,7 +2168,9 @@
     substr rx135_tgt, rx135_tgt, rx135_off
   rx135_start:
     eq $I10, 1, rx135_restart
-    rx135_cur."!cursor_debug"("START ", "comp_unit")
+    if_null rx135_debug, debug_420
+    rx135_cur."!cursor_debug"("START", "comp_unit")
+  debug_420:
     $I10 = self.'from'()
     ne $I10, -1, rxscan139_done
     goto rxscan139_scan
@@ -2151,11 +2220,15 @@
 .annotate 'line', 83
   # rx pass
     rx135_cur."!cursor_pass"(rx135_pos, "comp_unit")
-    rx135_cur."!cursor_debug"("PASS  ", "comp_unit", " at pos=", rx135_pos)
+    if_null rx135_debug, debug_421
+    rx135_cur."!cursor_debug"("PASS", "comp_unit", " at pos=", rx135_pos)
+  debug_421:
     .return (rx135_cur)
   rx135_restart:
 .annotate 'line', 4
-    rx135_cur."!cursor_debug"("NEXT ", "comp_unit")
+    if_null rx135_debug, debug_422
+    rx135_cur."!cursor_debug"("NEXT", "comp_unit")
+  debug_422:
   rx135_fail:
     (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
     lt rx135_pos, -1, rx135_done
@@ -2163,14 +2236,16 @@
     jump $I10
   rx135_done:
     rx135_cur."!cursor_fail"()
-    rx135_cur."!cursor_debug"("FAIL  ", "comp_unit")
+    if_null rx135_debug, debug_423
+    rx135_cur."!cursor_debug"("FAIL", "comp_unit")
+  debug_423:
     .return (rx135_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1280467477.44751") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1282324002.40722") :method
 .annotate 'line', 4
     $P137 = self."!PREFIX__!subrule"("newpad", "")
     new $P138, "ResizablePMCArray"
@@ -2180,7 +2255,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statementlist"  :subid("31_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx142_tgt
     .local int rx142_pos
@@ -2188,8 +2263,10 @@
     .local int rx142_eos
     .local int rx142_rep
     .local pmc rx142_cur
+    .local pmc rx142_debug
     (rx142_cur, rx142_pos, rx142_tgt, $I10) = self."!cursor_start"()
     rx142_cur."!cursor_caparray"("statement")
+    getattribute rx142_debug, rx142_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx142_cur
     .local pmc match
     .lex "$/", match
@@ -2201,7 +2278,9 @@
     substr rx142_tgt, rx142_tgt, rx142_off
   rx142_start:
     eq $I10, 1, rx142_restart
-    rx142_cur."!cursor_debug"("START ", "statementlist")
+    if_null rx142_debug, debug_424
+    rx142_cur."!cursor_debug"("START", "statementlist")
+  debug_424:
     $I10 = self.'from'()
     ne $I10, -1, rxscan147_done
     goto rxscan147_scan
@@ -2275,11 +2354,15 @@
 .annotate 'line', 90
   # rx pass
     rx142_cur."!cursor_pass"(rx142_pos, "statementlist")
-    rx142_cur."!cursor_debug"("PASS  ", "statementlist", " at pos=", rx142_pos)
+    if_null rx142_debug, debug_425
+    rx142_cur."!cursor_debug"("PASS", "statementlist", " at pos=", rx142_pos)
+  debug_425:
     .return (rx142_cur)
   rx142_restart:
 .annotate 'line', 4
-    rx142_cur."!cursor_debug"("NEXT ", "statementlist")
+    if_null rx142_debug, debug_426
+    rx142_cur."!cursor_debug"("NEXT", "statementlist")
+  debug_426:
   rx142_fail:
     (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
     lt rx142_pos, -1, rx142_done
@@ -2287,14 +2370,16 @@
     jump $I10
   rx142_done:
     rx142_cur."!cursor_fail"()
-    rx142_cur."!cursor_debug"("FAIL  ", "statementlist")
+    if_null rx142_debug, debug_427
+    rx142_cur."!cursor_debug"("FAIL", "statementlist")
+  debug_427:
     .return (rx142_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1280467477.44751") :method
+.sub "!PREFIX__statementlist"  :subid("32_1282324002.40722") :method
 .annotate 'line', 4
     $P144 = self."!PREFIX__!subrule"("ws", "")
     $P145 = self."!PREFIX__!subrule"("ws", "")
@@ -2306,9 +2391,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement"  :subid("33_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
-    .const 'Sub' $P161 = "35_1280467477.44751" 
+    .const 'Sub' $P161 = "35_1282324002.40722" 
     capture_lex $P161
     .local string rx156_tgt
     .local int rx156_pos
@@ -2316,8 +2401,10 @@
     .local int rx156_eos
     .local int rx156_rep
     .local pmc rx156_cur
+    .local pmc rx156_debug
     (rx156_cur, rx156_pos, rx156_tgt, $I10) = self."!cursor_start"()
     rx156_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+    getattribute rx156_debug, rx156_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx156_cur
     .local pmc match
     .lex "$/", match
@@ -2329,7 +2416,9 @@
     substr rx156_tgt, rx156_tgt, rx156_off
   rx156_start:
     eq $I10, 1, rx156_restart
-    rx156_cur."!cursor_debug"("START ", "statement")
+    if_null rx156_debug, debug_428
+    rx156_cur."!cursor_debug"("START", "statement")
+  debug_428:
     $I10 = self.'from'()
     ne $I10, -1, rxscan159_done
     goto rxscan159_scan
@@ -2345,7 +2434,7 @@
 .annotate 'line', 96
   # rx subrule "before" subtype=zerowidth negate=1
     rx156_cur."!cursor_pos"(rx156_pos)
-    .const 'Sub' $P161 = "35_1280467477.44751" 
+    .const 'Sub' $P161 = "35_1282324002.40722" 
     capture_lex $P161
     $P10 = rx156_cur."before"($P161)
     if $P10, rx156_fail
@@ -2441,11 +2530,15 @@
 .annotate 'line', 95
   # rx pass
     rx156_cur."!cursor_pass"(rx156_pos, "statement")
-    rx156_cur."!cursor_debug"("PASS  ", "statement", " at pos=", rx156_pos)
+    if_null rx156_debug, debug_433
+    rx156_cur."!cursor_debug"("PASS", "statement", " at pos=", rx156_pos)
+  debug_433:
     .return (rx156_cur)
   rx156_restart:
 .annotate 'line', 4
-    rx156_cur."!cursor_debug"("NEXT ", "statement")
+    if_null rx156_debug, debug_434
+    rx156_cur."!cursor_debug"("NEXT", "statement")
+  debug_434:
   rx156_fail:
     (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
     lt rx156_pos, -1, rx156_done
@@ -2453,14 +2546,16 @@
     jump $I10
   rx156_done:
     rx156_cur."!cursor_fail"()
-    rx156_cur."!cursor_debug"("FAIL  ", "statement")
+    if_null rx156_debug, debug_435
+    rx156_cur."!cursor_debug"("FAIL", "statement")
+  debug_435:
     .return (rx156_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1280467477.44751") :method
+.sub "!PREFIX__statement"  :subid("34_1282324002.40722") :method
 .annotate 'line', 4
     new $P158, "ResizablePMCArray"
     push $P158, ""
@@ -2469,7 +2564,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block160"  :anon :subid("35_1280467477.44751") :method :outer("33_1280467477.44751")
+.sub "_block160"  :anon :subid("35_1282324002.40722") :method :outer("33_1282324002.40722")
 .annotate 'line', 96
     .local string rx162_tgt
     .local int rx162_pos
@@ -2477,7 +2572,9 @@
     .local int rx162_eos
     .local int rx162_rep
     .local pmc rx162_cur
+    .local pmc rx162_debug
     (rx162_cur, rx162_pos, rx162_tgt, $I10) = self."!cursor_start"()
+    getattribute rx162_debug, rx162_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx162_cur
     .local pmc match
     .lex "$/", match
@@ -2489,7 +2586,9 @@
     substr rx162_tgt, rx162_tgt, rx162_off
   rx162_start:
     eq $I10, 1, rx162_restart
-    rx162_cur."!cursor_debug"("START ", "")
+    if_null rx162_debug, debug_429
+    rx162_cur."!cursor_debug"("START", "")
+  debug_429:
     $I10 = self.'from'()
     ne $I10, -1, rxscan163_done
     goto rxscan163_scan
@@ -2519,10 +2618,14 @@
   alt164_end:
   # rx pass
     rx162_cur."!cursor_pass"(rx162_pos, "")
-    rx162_cur."!cursor_debug"("PASS  ", "", " at pos=", rx162_pos)
+    if_null rx162_debug, debug_430
+    rx162_cur."!cursor_debug"("PASS", "", " at pos=", rx162_pos)
+  debug_430:
     .return (rx162_cur)
   rx162_restart:
-    rx162_cur."!cursor_debug"("NEXT ", "")
+    if_null rx162_debug, debug_431
+    rx162_cur."!cursor_debug"("NEXT", "")
+  debug_431:
   rx162_fail:
     (rx162_rep, rx162_pos, $I10, $P10) = rx162_cur."!mark_fail"(0)
     lt rx162_pos, -1, rx162_done
@@ -2530,14 +2633,16 @@
     jump $I10
   rx162_done:
     rx162_cur."!cursor_fail"()
-    rx162_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx162_debug, debug_432
+    rx162_cur."!cursor_debug"("FAIL", "")
+  debug_432:
     .return (rx162_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "eat_terminator"  :subid("36_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx171_tgt
     .local int rx171_pos
@@ -2545,7 +2650,9 @@
     .local int rx171_eos
     .local int rx171_rep
     .local pmc rx171_cur
+    .local pmc rx171_debug
     (rx171_cur, rx171_pos, rx171_tgt, $I10) = self."!cursor_start"()
+    getattribute rx171_debug, rx171_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx171_cur
     .local pmc match
     .lex "$/", match
@@ -2557,7 +2664,9 @@
     substr rx171_tgt, rx171_tgt, rx171_off
   rx171_start:
     eq $I10, 1, rx171_restart
-    rx171_cur."!cursor_debug"("START ", "eat_terminator")
+    if_null rx171_debug, debug_436
+    rx171_cur."!cursor_debug"("START", "eat_terminator")
+  debug_436:
     $I10 = self.'from'()
     ne $I10, -1, rxscan174_done
     goto rxscan174_scan
@@ -2579,8 +2688,8 @@
     add $I11, rx171_pos, 1
     gt $I11, rx171_eos, rx171_fail
     sub $I11, rx171_pos, rx171_off
-    substr $S10, rx171_tgt, $I11, 1
-    ne $S10, ";", rx171_fail
+    ord $I11, rx171_tgt, $I11
+    ne $I11, 59, rx171_fail
     add rx171_pos, 1
     goto alt175_end
   alt175_1:
@@ -2609,11 +2718,15 @@
 .annotate 'line', 108
   # rx pass
     rx171_cur."!cursor_pass"(rx171_pos, "eat_terminator")
-    rx171_cur."!cursor_debug"("PASS  ", "eat_terminator", " at pos=", rx171_pos)
+    if_null rx171_debug, debug_437
+    rx171_cur."!cursor_debug"("PASS", "eat_terminator", " at pos=", rx171_pos)
+  debug_437:
     .return (rx171_cur)
   rx171_restart:
 .annotate 'line', 4
-    rx171_cur."!cursor_debug"("NEXT ", "eat_terminator")
+    if_null rx171_debug, debug_438
+    rx171_cur."!cursor_debug"("NEXT", "eat_terminator")
+  debug_438:
   rx171_fail:
     (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
     lt rx171_pos, -1, rx171_done
@@ -2621,14 +2734,16 @@
     jump $I10
   rx171_done:
     rx171_cur."!cursor_fail"()
-    rx171_cur."!cursor_debug"("FAIL  ", "eat_terminator")
+    if_null rx171_debug, debug_439
+    rx171_cur."!cursor_debug"("FAIL", "eat_terminator")
+  debug_439:
     .return (rx171_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1280467477.44751") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1282324002.40722") :method
 .annotate 'line', 4
     new $P173, "ResizablePMCArray"
     push $P173, ""
@@ -2640,7 +2755,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "xblock"  :subid("38_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx177_tgt
     .local int rx177_pos
@@ -2648,7 +2763,9 @@
     .local int rx177_eos
     .local int rx177_rep
     .local pmc rx177_cur
+    .local pmc rx177_debug
     (rx177_cur, rx177_pos, rx177_tgt, $I10) = self."!cursor_start"()
+    getattribute rx177_debug, rx177_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx177_cur
     .local pmc match
     .lex "$/", match
@@ -2660,7 +2777,9 @@
     substr rx177_tgt, rx177_tgt, rx177_off
   rx177_start:
     eq $I10, 1, rx177_restart
-    rx177_cur."!cursor_debug"("START ", "xblock")
+    if_null rx177_debug, debug_440
+    rx177_cur."!cursor_debug"("START", "xblock")
+  debug_440:
     $I10 = self.'from'()
     ne $I10, -1, rxscan181_done
     goto rxscan181_scan
@@ -2696,11 +2815,15 @@
 .annotate 'line', 115
   # rx pass
     rx177_cur."!cursor_pass"(rx177_pos, "xblock")
-    rx177_cur."!cursor_debug"("PASS  ", "xblock", " at pos=", rx177_pos)
+    if_null rx177_debug, debug_441
+    rx177_cur."!cursor_debug"("PASS", "xblock", " at pos=", rx177_pos)
+  debug_441:
     .return (rx177_cur)
   rx177_restart:
 .annotate 'line', 4
-    rx177_cur."!cursor_debug"("NEXT ", "xblock")
+    if_null rx177_debug, debug_442
+    rx177_cur."!cursor_debug"("NEXT", "xblock")
+  debug_442:
   rx177_fail:
     (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
     lt rx177_pos, -1, rx177_done
@@ -2708,14 +2831,16 @@
     jump $I10
   rx177_done:
     rx177_cur."!cursor_fail"()
-    rx177_cur."!cursor_debug"("FAIL  ", "xblock")
+    if_null rx177_debug, debug_443
+    rx177_cur."!cursor_debug"("FAIL", "xblock")
+  debug_443:
     .return (rx177_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1280467477.44751") :method
+.sub "!PREFIX__xblock"  :subid("39_1282324002.40722") :method
 .annotate 'line', 4
     $P179 = self."!PREFIX__!subrule"("EXPR", "")
     new $P180, "ResizablePMCArray"
@@ -2725,7 +2850,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "pblock"  :subid("40_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx183_tgt
     .local int rx183_pos
@@ -2733,7 +2858,9 @@
     .local int rx183_eos
     .local int rx183_rep
     .local pmc rx183_cur
+    .local pmc rx183_debug
     (rx183_cur, rx183_pos, rx183_tgt, $I10) = self."!cursor_start"()
+    getattribute rx183_debug, rx183_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx183_cur
     .local pmc match
     .lex "$/", match
@@ -2745,7 +2872,9 @@
     substr rx183_tgt, rx183_tgt, rx183_off
   rx183_start:
     eq $I10, 1, rx183_restart
-    rx183_cur."!cursor_debug"("START ", "pblock")
+    if_null rx183_debug, debug_444
+    rx183_cur."!cursor_debug"("START", "pblock")
+  debug_444:
     $I10 = self.'from'()
     ne $I10, -1, rxscan188_done
     goto rxscan188_scan
@@ -2829,11 +2958,15 @@
 .annotate 'line', 119
   # rx pass
     rx183_cur."!cursor_pass"(rx183_pos, "pblock")
-    rx183_cur."!cursor_debug"("PASS  ", "pblock", " at pos=", rx183_pos)
+    if_null rx183_debug, debug_445
+    rx183_cur."!cursor_debug"("PASS", "pblock", " at pos=", rx183_pos)
+  debug_445:
     .return (rx183_cur)
   rx183_restart:
 .annotate 'line', 4
-    rx183_cur."!cursor_debug"("NEXT ", "pblock")
+    if_null rx183_debug, debug_446
+    rx183_cur."!cursor_debug"("NEXT", "pblock")
+  debug_446:
   rx183_fail:
     (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
     lt rx183_pos, -1, rx183_done
@@ -2841,14 +2974,16 @@
     jump $I10
   rx183_done:
     rx183_cur."!cursor_fail"()
-    rx183_cur."!cursor_debug"("FAIL  ", "pblock")
+    if_null rx183_debug, debug_447
+    rx183_cur."!cursor_debug"("FAIL", "pblock")
+  debug_447:
     .return (rx183_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1280467477.44751") :method
+.sub "!PREFIX__pblock"  :subid("41_1282324002.40722") :method
 .annotate 'line', 4
     $P185 = self."!PREFIX__!subrule"("panic", "")
     $P186 = self."!PREFIX__!subrule"("lambda", "")
@@ -2861,7 +2996,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "lambda"  :subid("42_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx191_tgt
     .local int rx191_pos
@@ -2869,7 +3004,9 @@
     .local int rx191_eos
     .local int rx191_rep
     .local pmc rx191_cur
+    .local pmc rx191_debug
     (rx191_cur, rx191_pos, rx191_tgt, $I10) = self."!cursor_start"()
+    getattribute rx191_debug, rx191_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx191_cur
     .local pmc match
     .lex "$/", match
@@ -2881,7 +3018,9 @@
     substr rx191_tgt, rx191_tgt, rx191_off
   rx191_start:
     eq $I10, 1, rx191_restart
-    rx191_cur."!cursor_debug"("START ", "lambda")
+    if_null rx191_debug, debug_448
+    rx191_cur."!cursor_debug"("START", "lambda")
+  debug_448:
     $I10 = self.'from'()
     ne $I10, -1, rxscan194_done
     goto rxscan194_scan
@@ -2917,11 +3056,15 @@
   alt195_end:
   # rx pass
     rx191_cur."!cursor_pass"(rx191_pos, "lambda")
-    rx191_cur."!cursor_debug"("PASS  ", "lambda", " at pos=", rx191_pos)
+    if_null rx191_debug, debug_449
+    rx191_cur."!cursor_debug"("PASS", "lambda", " at pos=", rx191_pos)
+  debug_449:
     .return (rx191_cur)
   rx191_restart:
 .annotate 'line', 4
-    rx191_cur."!cursor_debug"("NEXT ", "lambda")
+    if_null rx191_debug, debug_450
+    rx191_cur."!cursor_debug"("NEXT", "lambda")
+  debug_450:
   rx191_fail:
     (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
     lt rx191_pos, -1, rx191_done
@@ -2929,14 +3072,16 @@
     jump $I10
   rx191_done:
     rx191_cur."!cursor_fail"()
-    rx191_cur."!cursor_debug"("FAIL  ", "lambda")
+    if_null rx191_debug, debug_451
+    rx191_cur."!cursor_debug"("FAIL", "lambda")
+  debug_451:
     .return (rx191_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1280467477.44751") :method
+.sub "!PREFIX__lambda"  :subid("43_1282324002.40722") :method
 .annotate 'line', 4
     new $P193, "ResizablePMCArray"
     push $P193, "<->"
@@ -2946,7 +3091,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "block"  :subid("44_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx197_tgt
     .local int rx197_pos
@@ -2954,7 +3099,9 @@
     .local int rx197_eos
     .local int rx197_rep
     .local pmc rx197_cur
+    .local pmc rx197_debug
     (rx197_cur, rx197_pos, rx197_tgt, $I10) = self."!cursor_start"()
+    getattribute rx197_debug, rx197_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx197_cur
     .local pmc match
     .lex "$/", match
@@ -2966,7 +3113,9 @@
     substr rx197_tgt, rx197_tgt, rx197_off
   rx197_start:
     eq $I10, 1, rx197_restart
-    rx197_cur."!cursor_debug"("START ", "block")
+    if_null rx197_debug, debug_452
+    rx197_cur."!cursor_debug"("START", "block")
+  debug_452:
     $I10 = self.'from'()
     ne $I10, -1, rxscan201_done
     goto rxscan201_scan
@@ -3014,11 +3163,15 @@
 .annotate 'line', 132
   # rx pass
     rx197_cur."!cursor_pass"(rx197_pos, "block")
-    rx197_cur."!cursor_debug"("PASS  ", "block", " at pos=", rx197_pos)
+    if_null rx197_debug, debug_453
+    rx197_cur."!cursor_debug"("PASS", "block", " at pos=", rx197_pos)
+  debug_453:
     .return (rx197_cur)
   rx197_restart:
 .annotate 'line', 4
-    rx197_cur."!cursor_debug"("NEXT ", "block")
+    if_null rx197_debug, debug_454
+    rx197_cur."!cursor_debug"("NEXT", "block")
+  debug_454:
   rx197_fail:
     (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
     lt rx197_pos, -1, rx197_done
@@ -3026,14 +3179,16 @@
     jump $I10
   rx197_done:
     rx197_cur."!cursor_fail"()
-    rx197_cur."!cursor_debug"("FAIL  ", "block")
+    if_null rx197_debug, debug_455
+    rx197_cur."!cursor_debug"("FAIL", "block")
+  debug_455:
     .return (rx197_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1280467477.44751") :method
+.sub "!PREFIX__block"  :subid("45_1282324002.40722") :method
 .annotate 'line', 4
     $P199 = self."!PREFIX__!subrule"("panic", "")
     new $P200, "ResizablePMCArray"
@@ -3044,7 +3199,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "blockoid"  :subid("46_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx204_tgt
     .local int rx204_pos
@@ -3052,7 +3207,9 @@
     .local int rx204_eos
     .local int rx204_rep
     .local pmc rx204_cur
+    .local pmc rx204_debug
     (rx204_cur, rx204_pos, rx204_tgt, $I10) = self."!cursor_start"()
+    getattribute rx204_debug, rx204_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx204_cur
     .local pmc match
     .lex "$/", match
@@ -3064,7 +3221,9 @@
     substr rx204_tgt, rx204_tgt, rx204_off
   rx204_start:
     eq $I10, 1, rx204_restart
-    rx204_cur."!cursor_debug"("START ", "blockoid")
+    if_null rx204_debug, debug_456
+    rx204_cur."!cursor_debug"("START", "blockoid")
+  debug_456:
     $I10 = self.'from'()
     ne $I10, -1, rxscan208_done
     goto rxscan208_scan
@@ -3088,8 +3247,8 @@
     add $I11, rx204_pos, 1
     gt $I11, rx204_eos, rx204_fail
     sub $I11, rx204_pos, rx204_off
-    substr $S10, rx204_tgt, $I11, 1
-    ne $S10, "{", rx204_fail
+    ord $I11, rx204_tgt, $I11
+    ne $I11, 123, rx204_fail
     add rx204_pos, 1
   # rx subrule "statementlist" subtype=capture negate=
     rx204_cur."!cursor_pos"(rx204_pos)
@@ -3105,8 +3264,8 @@
     add $I11, rx204_pos, 1
     gt $I11, rx204_eos, rx204_fail
     sub $I11, rx204_pos, rx204_off
-    substr $S10, rx204_tgt, $I11, 1
-    ne $S10, "}", rx204_fail
+    ord $I11, rx204_tgt, $I11
+    ne $I11, 125, rx204_fail
     add rx204_pos, 1
     goto alt209_end
   alt209_1:
@@ -3131,11 +3290,15 @@
 .annotate 'line', 138
   # rx pass
     rx204_cur."!cursor_pass"(rx204_pos, "blockoid")
-    rx204_cur."!cursor_debug"("PASS  ", "blockoid", " at pos=", rx204_pos)
+    if_null rx204_debug, debug_457
+    rx204_cur."!cursor_debug"("PASS", "blockoid", " at pos=", rx204_pos)
+  debug_457:
     .return (rx204_cur)
   rx204_restart:
 .annotate 'line', 4
-    rx204_cur."!cursor_debug"("NEXT ", "blockoid")
+    if_null rx204_debug, debug_458
+    rx204_cur."!cursor_debug"("NEXT", "blockoid")
+  debug_458:
   rx204_fail:
     (rx204_rep, rx204_pos, $I10, $P10) = rx204_cur."!mark_fail"(0)
     lt rx204_pos, -1, rx204_done
@@ -3143,14 +3306,16 @@
     jump $I10
   rx204_done:
     rx204_cur."!cursor_fail"()
-    rx204_cur."!cursor_debug"("FAIL  ", "blockoid")
+    if_null rx204_debug, debug_459
+    rx204_cur."!cursor_debug"("FAIL", "blockoid")
+  debug_459:
     .return (rx204_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1280467477.44751") :method
+.sub "!PREFIX__blockoid"  :subid("47_1282324002.40722") :method
 .annotate 'line', 4
     $P206 = self."!PREFIX__!subrule"("finishpad", "")
     new $P207, "ResizablePMCArray"
@@ -3160,7 +3325,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "newpad"  :subid("48_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx213_tgt
     .local int rx213_pos
@@ -3168,7 +3333,9 @@
     .local int rx213_eos
     .local int rx213_rep
     .local pmc rx213_cur
+    .local pmc rx213_debug
     (rx213_cur, rx213_pos, rx213_tgt, $I10) = self."!cursor_start"()
+    getattribute rx213_debug, rx213_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx213_cur
     .local pmc match
     .lex "$/", match
@@ -3180,7 +3347,9 @@
     substr rx213_tgt, rx213_tgt, rx213_off
   rx213_start:
     eq $I10, 1, rx213_restart
-    rx213_cur."!cursor_debug"("START ", "newpad")
+    if_null rx213_debug, debug_460
+    rx213_cur."!cursor_debug"("START", "newpad")
+  debug_460:
     $I10 = self.'from'()
     ne $I10, -1, rxscan216_done
     goto rxscan216_scan
@@ -3196,11 +3365,15 @@
 .annotate 'line', 144
   # rx pass
     rx213_cur."!cursor_pass"(rx213_pos, "newpad")
-    rx213_cur."!cursor_debug"("PASS  ", "newpad", " at pos=", rx213_pos)
+    if_null rx213_debug, debug_461
+    rx213_cur."!cursor_debug"("PASS", "newpad", " at pos=", rx213_pos)
+  debug_461:
     .return (rx213_cur)
   rx213_restart:
 .annotate 'line', 4
-    rx213_cur."!cursor_debug"("NEXT ", "newpad")
+    if_null rx213_debug, debug_462
+    rx213_cur."!cursor_debug"("NEXT", "newpad")
+  debug_462:
   rx213_fail:
     (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
     lt rx213_pos, -1, rx213_done
@@ -3208,14 +3381,16 @@
     jump $I10
   rx213_done:
     rx213_cur."!cursor_fail"()
-    rx213_cur."!cursor_debug"("FAIL  ", "newpad")
+    if_null rx213_debug, debug_463
+    rx213_cur."!cursor_debug"("FAIL", "newpad")
+  debug_463:
     .return (rx213_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1280467477.44751") :method
+.sub "!PREFIX__newpad"  :subid("49_1282324002.40722") :method
 .annotate 'line', 4
     new $P215, "ResizablePMCArray"
     push $P215, ""
@@ -3224,7 +3399,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "outerctx"  :subid("50_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "outerctx"  :subid("50_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx218_tgt
     .local int rx218_pos
@@ -3232,7 +3407,9 @@
     .local int rx218_eos
     .local int rx218_rep
     .local pmc rx218_cur
+    .local pmc rx218_debug
     (rx218_cur, rx218_pos, rx218_tgt, $I10) = self."!cursor_start"()
+    getattribute rx218_debug, rx218_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx218_cur
     .local pmc match
     .lex "$/", match
@@ -3244,7 +3421,9 @@
     substr rx218_tgt, rx218_tgt, rx218_off
   rx218_start:
     eq $I10, 1, rx218_restart
-    rx218_cur."!cursor_debug"("START ", "outerctx")
+    if_null rx218_debug, debug_464
+    rx218_cur."!cursor_debug"("START", "outerctx")
+  debug_464:
     $I10 = self.'from'()
     ne $I10, -1, rxscan221_done
     goto rxscan221_scan
@@ -3260,11 +3439,15 @@
 .annotate 'line', 145
   # rx pass
     rx218_cur."!cursor_pass"(rx218_pos, "outerctx")
-    rx218_cur."!cursor_debug"("PASS  ", "outerctx", " at pos=", rx218_pos)
+    if_null rx218_debug, debug_465
+    rx218_cur."!cursor_debug"("PASS", "outerctx", " at pos=", rx218_pos)
+  debug_465:
     .return (rx218_cur)
   rx218_restart:
 .annotate 'line', 4
-    rx218_cur."!cursor_debug"("NEXT ", "outerctx")
+    if_null rx218_debug, debug_466
+    rx218_cur."!cursor_debug"("NEXT", "outerctx")
+  debug_466:
   rx218_fail:
     (rx218_rep, rx218_pos, $I10, $P10) = rx218_cur."!mark_fail"(0)
     lt rx218_pos, -1, rx218_done
@@ -3272,14 +3455,16 @@
     jump $I10
   rx218_done:
     rx218_cur."!cursor_fail"()
-    rx218_cur."!cursor_debug"("FAIL  ", "outerctx")
+    if_null rx218_debug, debug_467
+    rx218_cur."!cursor_debug"("FAIL", "outerctx")
+  debug_467:
     .return (rx218_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__outerctx"  :subid("51_1280467477.44751") :method
+.sub "!PREFIX__outerctx"  :subid("51_1282324002.40722") :method
 .annotate 'line', 4
     new $P220, "ResizablePMCArray"
     push $P220, ""
@@ -3288,7 +3473,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("52_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "finishpad"  :subid("52_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx223_tgt
     .local int rx223_pos
@@ -3296,7 +3481,9 @@
     .local int rx223_eos
     .local int rx223_rep
     .local pmc rx223_cur
+    .local pmc rx223_debug
     (rx223_cur, rx223_pos, rx223_tgt, $I10) = self."!cursor_start"()
+    getattribute rx223_debug, rx223_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx223_cur
     .local pmc match
     .lex "$/", match
@@ -3308,7 +3495,9 @@
     substr rx223_tgt, rx223_tgt, rx223_off
   rx223_start:
     eq $I10, 1, rx223_restart
-    rx223_cur."!cursor_debug"("START ", "finishpad")
+    if_null rx223_debug, debug_468
+    rx223_cur."!cursor_debug"("START", "finishpad")
+  debug_468:
     $I10 = self.'from'()
     ne $I10, -1, rxscan226_done
     goto rxscan226_scan
@@ -3324,11 +3513,15 @@
 .annotate 'line', 146
   # rx pass
     rx223_cur."!cursor_pass"(rx223_pos, "finishpad")
-    rx223_cur."!cursor_debug"("PASS  ", "finishpad", " at pos=", rx223_pos)
+    if_null rx223_debug, debug_469
+    rx223_cur."!cursor_debug"("PASS", "finishpad", " at pos=", rx223_pos)
+  debug_469:
     .return (rx223_cur)
   rx223_restart:
 .annotate 'line', 4
-    rx223_cur."!cursor_debug"("NEXT ", "finishpad")
+    if_null rx223_debug, debug_470
+    rx223_cur."!cursor_debug"("NEXT", "finishpad")
+  debug_470:
   rx223_fail:
     (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0)
     lt rx223_pos, -1, rx223_done
@@ -3336,14 +3529,16 @@
     jump $I10
   rx223_done:
     rx223_cur."!cursor_fail"()
-    rx223_cur."!cursor_debug"("FAIL  ", "finishpad")
+    if_null rx223_debug, debug_471
+    rx223_cur."!cursor_debug"("FAIL", "finishpad")
+  debug_471:
     .return (rx223_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("53_1280467477.44751") :method
+.sub "!PREFIX__finishpad"  :subid("53_1282324002.40722") :method
 .annotate 'line', 4
     new $P225, "ResizablePMCArray"
     push $P225, ""
@@ -3352,7 +3547,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("54_1280467477.44751") :method
+.sub "terminator"  :subid("54_1282324002.40722") :method
 .annotate 'line', 148
     $P228 = self."!protoregex"("terminator")
     .return ($P228)
@@ -3360,7 +3555,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("55_1280467477.44751") :method
+.sub "!PREFIX__terminator"  :subid("55_1282324002.40722") :method
 .annotate 'line', 148
     $P230 = self."!PREFIX__!protoregex"("terminator")
     .return ($P230)
@@ -3368,7 +3563,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("56_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "terminator:sym<;>"  :subid("56_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx232_tgt
     .local int rx232_pos
@@ -3376,7 +3571,9 @@
     .local int rx232_eos
     .local int rx232_rep
     .local pmc rx232_cur
+    .local pmc rx232_debug
     (rx232_cur, rx232_pos, rx232_tgt, $I10) = self."!cursor_start"()
+    getattribute rx232_debug, rx232_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx232_cur
     .local pmc match
     .lex "$/", match
@@ -3388,7 +3585,9 @@
     substr rx232_tgt, rx232_tgt, rx232_off
   rx232_start:
     eq $I10, 1, rx232_restart
-    rx232_cur."!cursor_debug"("START ", "terminator:sym<;>")
+    if_null rx232_debug, debug_472
+    rx232_cur."!cursor_debug"("START", "terminator:sym<;>")
+  debug_472:
     $I10 = self.'from'()
     ne $I10, -1, rxscan235_done
     goto rxscan235_scan
@@ -3410,11 +3609,15 @@
     lt $I11, 0, rx232_fail
   # rx pass
     rx232_cur."!cursor_pass"(rx232_pos, "terminator:sym<;>")
-    rx232_cur."!cursor_debug"("PASS  ", "terminator:sym<;>", " at pos=", rx232_pos)
+    if_null rx232_debug, debug_473
+    rx232_cur."!cursor_debug"("PASS", "terminator:sym<;>", " at pos=", rx232_pos)
+  debug_473:
     .return (rx232_cur)
   rx232_restart:
 .annotate 'line', 4
-    rx232_cur."!cursor_debug"("NEXT ", "terminator:sym<;>")
+    if_null rx232_debug, debug_474
+    rx232_cur."!cursor_debug"("NEXT", "terminator:sym<;>")
+  debug_474:
   rx232_fail:
     (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
     lt rx232_pos, -1, rx232_done
@@ -3422,14 +3625,16 @@
     jump $I10
   rx232_done:
     rx232_cur."!cursor_fail"()
-    rx232_cur."!cursor_debug"("FAIL  ", "terminator:sym<;>")
+    if_null rx232_debug, debug_475
+    rx232_cur."!cursor_debug"("FAIL", "terminator:sym<;>")
+  debug_475:
     .return (rx232_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("57_1280467477.44751") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("57_1282324002.40722") :method
 .annotate 'line', 4
     new $P234, "ResizablePMCArray"
     push $P234, ";"
@@ -3438,7 +3643,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("58_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "terminator:sym<}>"  :subid("58_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx237_tgt
     .local int rx237_pos
@@ -3446,7 +3651,9 @@
     .local int rx237_eos
     .local int rx237_rep
     .local pmc rx237_cur
+    .local pmc rx237_debug
     (rx237_cur, rx237_pos, rx237_tgt, $I10) = self."!cursor_start"()
+    getattribute rx237_debug, rx237_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx237_cur
     .local pmc match
     .lex "$/", match
@@ -3458,7 +3665,9 @@
     substr rx237_tgt, rx237_tgt, rx237_off
   rx237_start:
     eq $I10, 1, rx237_restart
-    rx237_cur."!cursor_debug"("START ", "terminator:sym<}>")
+    if_null rx237_debug, debug_476
+    rx237_cur."!cursor_debug"("START", "terminator:sym<}>")
+  debug_476:
     $I10 = self.'from'()
     ne $I10, -1, rxscan240_done
     goto rxscan240_scan
@@ -3480,11 +3689,15 @@
     lt $I11, 0, rx237_fail
   # rx pass
     rx237_cur."!cursor_pass"(rx237_pos, "terminator:sym<}>")
-    rx237_cur."!cursor_debug"("PASS  ", "terminator:sym<}>", " at pos=", rx237_pos)
+    if_null rx237_debug, debug_477
+    rx237_cur."!cursor_debug"("PASS", "terminator:sym<}>", " at pos=", rx237_pos)
+  debug_477:
     .return (rx237_cur)
   rx237_restart:
 .annotate 'line', 4
-    rx237_cur."!cursor_debug"("NEXT ", "terminator:sym<}>")
+    if_null rx237_debug, debug_478
+    rx237_cur."!cursor_debug"("NEXT", "terminator:sym<}>")
+  debug_478:
   rx237_fail:
     (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
     lt rx237_pos, -1, rx237_done
@@ -3492,14 +3705,16 @@
     jump $I10
   rx237_done:
     rx237_cur."!cursor_fail"()
-    rx237_cur."!cursor_debug"("FAIL  ", "terminator:sym<}>")
+    if_null rx237_debug, debug_479
+    rx237_cur."!cursor_debug"("FAIL", "terminator:sym<}>")
+  debug_479:
     .return (rx237_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("59_1280467477.44751") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("59_1282324002.40722") :method
 .annotate 'line', 4
     new $P239, "ResizablePMCArray"
     push $P239, "}"
@@ -3508,7 +3723,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("60_1280467477.44751") :method
+.sub "statement_control"  :subid("60_1282324002.40722") :method
 .annotate 'line', 155
     $P242 = self."!protoregex"("statement_control")
     .return ($P242)
@@ -3516,7 +3731,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("61_1280467477.44751") :method
+.sub "!PREFIX__statement_control"  :subid("61_1282324002.40722") :method
 .annotate 'line', 155
     $P244 = self."!PREFIX__!protoregex"("statement_control")
     .return ($P244)
@@ -3524,7 +3739,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("62_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<if>"  :subid("62_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx246_tgt
     .local int rx246_pos
@@ -3532,8 +3747,10 @@
     .local int rx246_eos
     .local int rx246_rep
     .local pmc rx246_cur
+    .local pmc rx246_debug
     (rx246_cur, rx246_pos, rx246_tgt, $I10) = self."!cursor_start"()
-    rx246_cur."!cursor_caparray"("xblock", "else")
+    rx246_cur."!cursor_caparray"("else", "xblock")
+    getattribute rx246_debug, rx246_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx246_cur
     .local pmc match
     .lex "$/", match
@@ -3545,7 +3762,9 @@
     substr rx246_tgt, rx246_tgt, rx246_off
   rx246_start:
     eq $I10, 1, rx246_restart
-    rx246_cur."!cursor_debug"("START ", "statement_control:sym<if>")
+    if_null rx246_debug, debug_480
+    rx246_cur."!cursor_debug"("START", "statement_control:sym<if>")
+  debug_480:
     $I10 = self.'from'()
     ne $I10, -1, rxscan249_done
     goto rxscan249_scan
@@ -3706,11 +3925,15 @@
 .annotate 'line', 157
   # rx pass
     rx246_cur."!cursor_pass"(rx246_pos, "statement_control:sym<if>")
-    rx246_cur."!cursor_debug"("PASS  ", "statement_control:sym<if>", " at pos=", rx246_pos)
+    if_null rx246_debug, debug_481
+    rx246_cur."!cursor_debug"("PASS", "statement_control:sym<if>", " at pos=", rx246_pos)
+  debug_481:
     .return (rx246_cur)
   rx246_restart:
 .annotate 'line', 4
-    rx246_cur."!cursor_debug"("NEXT ", "statement_control:sym<if>")
+    if_null rx246_debug, debug_482
+    rx246_cur."!cursor_debug"("NEXT", "statement_control:sym<if>")
+  debug_482:
   rx246_fail:
     (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
     lt rx246_pos, -1, rx246_done
@@ -3718,14 +3941,16 @@
     jump $I10
   rx246_done:
     rx246_cur."!cursor_fail"()
-    rx246_cur."!cursor_debug"("FAIL  ", "statement_control:sym<if>")
+    if_null rx246_debug, debug_483
+    rx246_cur."!cursor_debug"("FAIL", "statement_control:sym<if>")
+  debug_483:
     .return (rx246_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("63_1282324002.40722") :method
 .annotate 'line', 4
     new $P248, "ResizablePMCArray"
     push $P248, "if"
@@ -3734,9 +3959,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("64_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<unless>"  :subid("64_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
-    .const 'Sub' $P274 = "66_1280467477.44751" 
+    .const 'Sub' $P274 = "66_1282324002.40722" 
     capture_lex $P274
     .local string rx264_tgt
     .local int rx264_pos
@@ -3744,7 +3969,9 @@
     .local int rx264_eos
     .local int rx264_rep
     .local pmc rx264_cur
+    .local pmc rx264_debug
     (rx264_cur, rx264_pos, rx264_tgt, $I10) = self."!cursor_start"()
+    getattribute rx264_debug, rx264_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx264_cur
     .local pmc match
     .lex "$/", match
@@ -3756,7 +3983,9 @@
     substr rx264_tgt, rx264_tgt, rx264_off
   rx264_start:
     eq $I10, 1, rx264_restart
-    rx264_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
+    if_null rx264_debug, debug_484
+    rx264_cur."!cursor_debug"("START", "statement_control:sym<unless>")
+  debug_484:
     $I10 = self.'from'()
     ne $I10, -1, rxscan267_done
     goto rxscan267_scan
@@ -3826,7 +4055,7 @@
     rx264_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
     rx264_cur."!cursor_pos"(rx264_pos)
-    .const 'Sub' $P274 = "66_1280467477.44751" 
+    .const 'Sub' $P274 = "66_1282324002.40722" 
     capture_lex $P274
     $P10 = rx264_cur."before"($P274)
     if $P10, rx264_fail
@@ -3861,11 +4090,15 @@
 .annotate 'line', 164
   # rx pass
     rx264_cur."!cursor_pass"(rx264_pos, "statement_control:sym<unless>")
-    rx264_cur."!cursor_debug"("PASS  ", "statement_control:sym<unless>", " at pos=", rx264_pos)
+    if_null rx264_debug, debug_489
+    rx264_cur."!cursor_debug"("PASS", "statement_control:sym<unless>", " at pos=", rx264_pos)
+  debug_489:
     .return (rx264_cur)
   rx264_restart:
 .annotate 'line', 4
-    rx264_cur."!cursor_debug"("NEXT ", "statement_control:sym<unless>")
+    if_null rx264_debug, debug_490
+    rx264_cur."!cursor_debug"("NEXT", "statement_control:sym<unless>")
+  debug_490:
   rx264_fail:
     (rx264_rep, rx264_pos, $I10, $P10) = rx264_cur."!mark_fail"(0)
     lt rx264_pos, -1, rx264_done
@@ -3873,14 +4106,16 @@
     jump $I10
   rx264_done:
     rx264_cur."!cursor_fail"()
-    rx264_cur."!cursor_debug"("FAIL  ", "statement_control:sym<unless>")
+    if_null rx264_debug, debug_491
+    rx264_cur."!cursor_debug"("FAIL", "statement_control:sym<unless>")
+  debug_491:
     .return (rx264_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("65_1282324002.40722") :method
 .annotate 'line', 4
     new $P266, "ResizablePMCArray"
     push $P266, "unless"
@@ -3889,7 +4124,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block273"  :anon :subid("66_1280467477.44751") :method :outer("64_1280467477.44751")
+.sub "_block273"  :anon :subid("66_1282324002.40722") :method :outer("64_1282324002.40722")
 .annotate 'line', 167
     .local string rx275_tgt
     .local int rx275_pos
@@ -3897,7 +4132,9 @@
     .local int rx275_eos
     .local int rx275_rep
     .local pmc rx275_cur
+    .local pmc rx275_debug
     (rx275_cur, rx275_pos, rx275_tgt, $I10) = self."!cursor_start"()
+    getattribute rx275_debug, rx275_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx275_cur
     .local pmc match
     .lex "$/", match
@@ -3909,7 +4146,9 @@
     substr rx275_tgt, rx275_tgt, rx275_off
   rx275_start:
     eq $I10, 1, rx275_restart
-    rx275_cur."!cursor_debug"("START ", "")
+    if_null rx275_debug, debug_485
+    rx275_cur."!cursor_debug"("START", "")
+  debug_485:
     $I10 = self.'from'()
     ne $I10, -1, rxscan276_done
     goto rxscan276_scan
@@ -3931,10 +4170,14 @@
     add rx275_pos, 4
   # rx pass
     rx275_cur."!cursor_pass"(rx275_pos, "")
-    rx275_cur."!cursor_debug"("PASS  ", "", " at pos=", rx275_pos)
+    if_null rx275_debug, debug_486
+    rx275_cur."!cursor_debug"("PASS", "", " at pos=", rx275_pos)
+  debug_486:
     .return (rx275_cur)
   rx275_restart:
-    rx275_cur."!cursor_debug"("NEXT ", "")
+    if_null rx275_debug, debug_487
+    rx275_cur."!cursor_debug"("NEXT", "")
+  debug_487:
   rx275_fail:
     (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
     lt rx275_pos, -1, rx275_done
@@ -3942,14 +4185,16 @@
     jump $I10
   rx275_done:
     rx275_cur."!cursor_fail"()
-    rx275_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx275_debug, debug_488
+    rx275_cur."!cursor_debug"("FAIL", "")
+  debug_488:
     .return (rx275_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("67_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<while>"  :subid("67_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx282_tgt
     .local int rx282_pos
@@ -3957,7 +4202,9 @@
     .local int rx282_eos
     .local int rx282_rep
     .local pmc rx282_cur
+    .local pmc rx282_debug
     (rx282_cur, rx282_pos, rx282_tgt, $I10) = self."!cursor_start"()
+    getattribute rx282_debug, rx282_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx282_cur
     .local pmc match
     .lex "$/", match
@@ -3969,7 +4216,9 @@
     substr rx282_tgt, rx282_tgt, rx282_off
   rx282_start:
     eq $I10, 1, rx282_restart
-    rx282_cur."!cursor_debug"("START ", "statement_control:sym<while>")
+    if_null rx282_debug, debug_492
+    rx282_cur."!cursor_debug"("START", "statement_control:sym<while>")
+  debug_492:
     $I10 = self.'from'()
     ne $I10, -1, rxscan285_done
     goto rxscan285_scan
@@ -4044,11 +4293,15 @@
 .annotate 'line', 170
   # rx pass
     rx282_cur."!cursor_pass"(rx282_pos, "statement_control:sym<while>")
-    rx282_cur."!cursor_debug"("PASS  ", "statement_control:sym<while>", " at pos=", rx282_pos)
+    if_null rx282_debug, debug_493
+    rx282_cur."!cursor_debug"("PASS", "statement_control:sym<while>", " at pos=", rx282_pos)
+  debug_493:
     .return (rx282_cur)
   rx282_restart:
 .annotate 'line', 4
-    rx282_cur."!cursor_debug"("NEXT ", "statement_control:sym<while>")
+    if_null rx282_debug, debug_494
+    rx282_cur."!cursor_debug"("NEXT", "statement_control:sym<while>")
+  debug_494:
   rx282_fail:
     (rx282_rep, rx282_pos, $I10, $P10) = rx282_cur."!mark_fail"(0)
     lt rx282_pos, -1, rx282_done
@@ -4056,14 +4309,16 @@
     jump $I10
   rx282_done:
     rx282_cur."!cursor_fail"()
-    rx282_cur."!cursor_debug"("FAIL  ", "statement_control:sym<while>")
+    if_null rx282_debug, debug_495
+    rx282_cur."!cursor_debug"("FAIL", "statement_control:sym<while>")
+  debug_495:
     .return (rx282_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("68_1282324002.40722") :method
 .annotate 'line', 4
     new $P284, "ResizablePMCArray"
     push $P284, "until"
@@ -4073,7 +4328,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("69_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<repeat>"  :subid("69_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx291_tgt
     .local int rx291_pos
@@ -4081,7 +4336,9 @@
     .local int rx291_eos
     .local int rx291_rep
     .local pmc rx291_cur
+    .local pmc rx291_debug
     (rx291_cur, rx291_pos, rx291_tgt, $I10) = self."!cursor_start"()
+    getattribute rx291_debug, rx291_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx291_cur
     .local pmc match
     .lex "$/", match
@@ -4093,7 +4350,9 @@
     substr rx291_tgt, rx291_tgt, rx291_off
   rx291_start:
     eq $I10, 1, rx291_restart
-    rx291_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
+    if_null rx291_debug, debug_496
+    rx291_cur."!cursor_debug"("START", "statement_control:sym<repeat>")
+  debug_496:
     $I10 = self.'from'()
     ne $I10, -1, rxscan294_done
     goto rxscan294_scan
@@ -4293,11 +4552,15 @@
 .annotate 'line', 175
   # rx pass
     rx291_cur."!cursor_pass"(rx291_pos, "statement_control:sym<repeat>")
-    rx291_cur."!cursor_debug"("PASS  ", "statement_control:sym<repeat>", " at pos=", rx291_pos)
+    if_null rx291_debug, debug_497
+    rx291_cur."!cursor_debug"("PASS", "statement_control:sym<repeat>", " at pos=", rx291_pos)
+  debug_497:
     .return (rx291_cur)
   rx291_restart:
 .annotate 'line', 4
-    rx291_cur."!cursor_debug"("NEXT ", "statement_control:sym<repeat>")
+    if_null rx291_debug, debug_498
+    rx291_cur."!cursor_debug"("NEXT", "statement_control:sym<repeat>")
+  debug_498:
   rx291_fail:
     (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
     lt rx291_pos, -1, rx291_done
@@ -4305,14 +4568,16 @@
     jump $I10
   rx291_done:
     rx291_cur."!cursor_fail"()
-    rx291_cur."!cursor_debug"("FAIL  ", "statement_control:sym<repeat>")
+    if_null rx291_debug, debug_499
+    rx291_cur."!cursor_debug"("FAIL", "statement_control:sym<repeat>")
+  debug_499:
     .return (rx291_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("70_1282324002.40722") :method
 .annotate 'line', 4
     new $P293, "ResizablePMCArray"
     push $P293, "repeat"
@@ -4321,7 +4586,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("71_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<for>"  :subid("71_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx311_tgt
     .local int rx311_pos
@@ -4329,7 +4594,9 @@
     .local int rx311_eos
     .local int rx311_rep
     .local pmc rx311_cur
+    .local pmc rx311_debug
     (rx311_cur, rx311_pos, rx311_tgt, $I10) = self."!cursor_start"()
+    getattribute rx311_debug, rx311_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx311_cur
     .local pmc match
     .lex "$/", match
@@ -4341,7 +4608,9 @@
     substr rx311_tgt, rx311_tgt, rx311_off
   rx311_start:
     eq $I10, 1, rx311_restart
-    rx311_cur."!cursor_debug"("START ", "statement_control:sym<for>")
+    if_null rx311_debug, debug_500
+    rx311_cur."!cursor_debug"("START", "statement_control:sym<for>")
+  debug_500:
     $I10 = self.'from'()
     ne $I10, -1, rxscan314_done
     goto rxscan314_scan
@@ -4403,11 +4672,15 @@
 .annotate 'line', 183
   # rx pass
     rx311_cur."!cursor_pass"(rx311_pos, "statement_control:sym<for>")
-    rx311_cur."!cursor_debug"("PASS  ", "statement_control:sym<for>", " at pos=", rx311_pos)
+    if_null rx311_debug, debug_501
+    rx311_cur."!cursor_debug"("PASS", "statement_control:sym<for>", " at pos=", rx311_pos)
+  debug_501:
     .return (rx311_cur)
   rx311_restart:
 .annotate 'line', 4
-    rx311_cur."!cursor_debug"("NEXT ", "statement_control:sym<for>")
+    if_null rx311_debug, debug_502
+    rx311_cur."!cursor_debug"("NEXT", "statement_control:sym<for>")
+  debug_502:
   rx311_fail:
     (rx311_rep, rx311_pos, $I10, $P10) = rx311_cur."!mark_fail"(0)
     lt rx311_pos, -1, rx311_done
@@ -4415,14 +4688,16 @@
     jump $I10
   rx311_done:
     rx311_cur."!cursor_fail"()
-    rx311_cur."!cursor_debug"("FAIL  ", "statement_control:sym<for>")
+    if_null rx311_debug, debug_503
+    rx311_cur."!cursor_debug"("FAIL", "statement_control:sym<for>")
+  debug_503:
     .return (rx311_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("72_1282324002.40722") :method
 .annotate 'line', 4
     new $P313, "ResizablePMCArray"
     push $P313, "for"
@@ -4431,7 +4706,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("73_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<CATCH>"  :subid("73_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx319_tgt
     .local int rx319_pos
@@ -4439,7 +4714,9 @@
     .local int rx319_eos
     .local int rx319_rep
     .local pmc rx319_cur
+    .local pmc rx319_debug
     (rx319_cur, rx319_pos, rx319_tgt, $I10) = self."!cursor_start"()
+    getattribute rx319_debug, rx319_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx319_cur
     .local pmc match
     .lex "$/", match
@@ -4451,7 +4728,9 @@
     substr rx319_tgt, rx319_tgt, rx319_off
   rx319_start:
     eq $I10, 1, rx319_restart
-    rx319_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
+    if_null rx319_debug, debug_504
+    rx319_cur."!cursor_debug"("START", "statement_control:sym<CATCH>")
+  debug_504:
     $I10 = self.'from'()
     ne $I10, -1, rxscan322_done
     goto rxscan322_scan
@@ -4513,11 +4792,15 @@
 .annotate 'line', 188
   # rx pass
     rx319_cur."!cursor_pass"(rx319_pos, "statement_control:sym<CATCH>")
-    rx319_cur."!cursor_debug"("PASS  ", "statement_control:sym<CATCH>", " at pos=", rx319_pos)
+    if_null rx319_debug, debug_505
+    rx319_cur."!cursor_debug"("PASS", "statement_control:sym<CATCH>", " at pos=", rx319_pos)
+  debug_505:
     .return (rx319_cur)
   rx319_restart:
 .annotate 'line', 4
-    rx319_cur."!cursor_debug"("NEXT ", "statement_control:sym<CATCH>")
+    if_null rx319_debug, debug_506
+    rx319_cur."!cursor_debug"("NEXT", "statement_control:sym<CATCH>")
+  debug_506:
   rx319_fail:
     (rx319_rep, rx319_pos, $I10, $P10) = rx319_cur."!mark_fail"(0)
     lt rx319_pos, -1, rx319_done
@@ -4525,14 +4808,16 @@
     jump $I10
   rx319_done:
     rx319_cur."!cursor_fail"()
-    rx319_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CATCH>")
+    if_null rx319_debug, debug_507
+    rx319_cur."!cursor_debug"("FAIL", "statement_control:sym<CATCH>")
+  debug_507:
     .return (rx319_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("74_1282324002.40722") :method
 .annotate 'line', 4
     new $P321, "ResizablePMCArray"
     push $P321, "CATCH"
@@ -4541,7 +4826,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("75_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_control:sym<CONTROL>"  :subid("75_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx327_tgt
     .local int rx327_pos
@@ -4549,7 +4834,9 @@
     .local int rx327_eos
     .local int rx327_rep
     .local pmc rx327_cur
+    .local pmc rx327_debug
     (rx327_cur, rx327_pos, rx327_tgt, $I10) = self."!cursor_start"()
+    getattribute rx327_debug, rx327_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx327_cur
     .local pmc match
     .lex "$/", match
@@ -4561,7 +4848,9 @@
     substr rx327_tgt, rx327_tgt, rx327_off
   rx327_start:
     eq $I10, 1, rx327_restart
-    rx327_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
+    if_null rx327_debug, debug_508
+    rx327_cur."!cursor_debug"("START", "statement_control:sym<CONTROL>")
+  debug_508:
     $I10 = self.'from'()
     ne $I10, -1, rxscan330_done
     goto rxscan330_scan
@@ -4623,11 +4912,15 @@
 .annotate 'line', 193
   # rx pass
     rx327_cur."!cursor_pass"(rx327_pos, "statement_control:sym<CONTROL>")
-    rx327_cur."!cursor_debug"("PASS  ", "statement_control:sym<CONTROL>", " at pos=", rx327_pos)
+    if_null rx327_debug, debug_509
+    rx327_cur."!cursor_debug"("PASS", "statement_control:sym<CONTROL>", " at pos=", rx327_pos)
+  debug_509:
     .return (rx327_cur)
   rx327_restart:
 .annotate 'line', 4
-    rx327_cur."!cursor_debug"("NEXT ", "statement_control:sym<CONTROL>")
+    if_null rx327_debug, debug_510
+    rx327_cur."!cursor_debug"("NEXT", "statement_control:sym<CONTROL>")
+  debug_510:
   rx327_fail:
     (rx327_rep, rx327_pos, $I10, $P10) = rx327_cur."!mark_fail"(0)
     lt rx327_pos, -1, rx327_done
@@ -4635,14 +4928,16 @@
     jump $I10
   rx327_done:
     rx327_cur."!cursor_fail"()
-    rx327_cur."!cursor_debug"("FAIL  ", "statement_control:sym<CONTROL>")
+    if_null rx327_debug, debug_511
+    rx327_cur."!cursor_debug"("FAIL", "statement_control:sym<CONTROL>")
+  debug_511:
     .return (rx327_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1280467477.44751") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("76_1282324002.40722") :method
 .annotate 'line', 4
     new $P329, "ResizablePMCArray"
     push $P329, "CONTROL"
@@ -4651,7 +4946,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("77_1280467477.44751") :method
+.sub "statement_prefix"  :subid("77_1282324002.40722") :method
 .annotate 'line', 198
     $P335 = self."!protoregex"("statement_prefix")
     .return ($P335)
@@ -4659,7 +4954,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("78_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix"  :subid("78_1282324002.40722") :method
 .annotate 'line', 198
     $P337 = self."!PREFIX__!protoregex"("statement_prefix")
     .return ($P337)
@@ -4667,7 +4962,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("79_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_prefix:sym<INIT>"  :subid("79_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx339_tgt
     .local int rx339_pos
@@ -4675,7 +4970,9 @@
     .local int rx339_eos
     .local int rx339_rep
     .local pmc rx339_cur
+    .local pmc rx339_debug
     (rx339_cur, rx339_pos, rx339_tgt, $I10) = self."!cursor_start"()
+    getattribute rx339_debug, rx339_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx339_cur
     .local pmc match
     .lex "$/", match
@@ -4687,7 +4984,9 @@
     substr rx339_tgt, rx339_tgt, rx339_off
   rx339_start:
     eq $I10, 1, rx339_restart
-    rx339_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
+    if_null rx339_debug, debug_512
+    rx339_cur."!cursor_debug"("START", "statement_prefix:sym<INIT>")
+  debug_512:
     $I10 = self.'from'()
     ne $I10, -1, rxscan343_done
     goto rxscan343_scan
@@ -4731,11 +5030,15 @@
     rx339_pos = $P10."pos"()
   # rx pass
     rx339_cur."!cursor_pass"(rx339_pos, "statement_prefix:sym<INIT>")
-    rx339_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<INIT>", " at pos=", rx339_pos)
+    if_null rx339_debug, debug_513
+    rx339_cur."!cursor_debug"("PASS", "statement_prefix:sym<INIT>", " at pos=", rx339_pos)
+  debug_513:
     .return (rx339_cur)
   rx339_restart:
 .annotate 'line', 4
-    rx339_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<INIT>")
+    if_null rx339_debug, debug_514
+    rx339_cur."!cursor_debug"("NEXT", "statement_prefix:sym<INIT>")
+  debug_514:
   rx339_fail:
     (rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0)
     lt rx339_pos, -1, rx339_done
@@ -4743,14 +5046,16 @@
     jump $I10
   rx339_done:
     rx339_cur."!cursor_fail"()
-    rx339_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<INIT>")
+    if_null rx339_debug, debug_515
+    rx339_cur."!cursor_debug"("FAIL", "statement_prefix:sym<INIT>")
+  debug_515:
     .return (rx339_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("80_1282324002.40722") :method
 .annotate 'line', 4
     $P341 = self."!PREFIX__!subrule"("blorst", "INIT")
     new $P342, "ResizablePMCArray"
@@ -4760,7 +5065,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("81_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_prefix:sym<try>"  :subid("81_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx346_tgt
     .local int rx346_pos
@@ -4768,7 +5073,9 @@
     .local int rx346_eos
     .local int rx346_rep
     .local pmc rx346_cur
+    .local pmc rx346_debug
     (rx346_cur, rx346_pos, rx346_tgt, $I10) = self."!cursor_start"()
+    getattribute rx346_debug, rx346_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx346_cur
     .local pmc match
     .lex "$/", match
@@ -4780,7 +5087,9 @@
     substr rx346_tgt, rx346_tgt, rx346_off
   rx346_start:
     eq $I10, 1, rx346_restart
-    rx346_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
+    if_null rx346_debug, debug_516
+    rx346_cur."!cursor_debug"("START", "statement_prefix:sym<try>")
+  debug_516:
     $I10 = self.'from'()
     ne $I10, -1, rxscan350_done
     goto rxscan350_scan
@@ -4826,11 +5135,15 @@
 .annotate 'line', 201
   # rx pass
     rx346_cur."!cursor_pass"(rx346_pos, "statement_prefix:sym<try>")
-    rx346_cur."!cursor_debug"("PASS  ", "statement_prefix:sym<try>", " at pos=", rx346_pos)
+    if_null rx346_debug, debug_517
+    rx346_cur."!cursor_debug"("PASS", "statement_prefix:sym<try>", " at pos=", rx346_pos)
+  debug_517:
     .return (rx346_cur)
   rx346_restart:
 .annotate 'line', 4
-    rx346_cur."!cursor_debug"("NEXT ", "statement_prefix:sym<try>")
+    if_null rx346_debug, debug_518
+    rx346_cur."!cursor_debug"("NEXT", "statement_prefix:sym<try>")
+  debug_518:
   rx346_fail:
     (rx346_rep, rx346_pos, $I10, $P10) = rx346_cur."!mark_fail"(0)
     lt rx346_pos, -1, rx346_done
@@ -4838,14 +5151,16 @@
     jump $I10
   rx346_done:
     rx346_cur."!cursor_fail"()
-    rx346_cur."!cursor_debug"("FAIL  ", "statement_prefix:sym<try>")
+    if_null rx346_debug, debug_519
+    rx346_cur."!cursor_debug"("FAIL", "statement_prefix:sym<try>")
+  debug_519:
     .return (rx346_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1280467477.44751") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("82_1282324002.40722") :method
 .annotate 'line', 4
     $P348 = self."!PREFIX__!subrule"("blorst", "try")
     new $P349, "ResizablePMCArray"
@@ -4855,7 +5170,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("83_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "blorst"  :subid("83_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx353_tgt
     .local int rx353_pos
@@ -4863,7 +5178,9 @@
     .local int rx353_eos
     .local int rx353_rep
     .local pmc rx353_cur
+    .local pmc rx353_debug
     (rx353_cur, rx353_pos, rx353_tgt, $I10) = self."!cursor_start"()
+    getattribute rx353_debug, rx353_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx353_cur
     .local pmc match
     .lex "$/", match
@@ -4875,7 +5192,9 @@
     substr rx353_tgt, rx353_tgt, rx353_off
   rx353_start:
     eq $I10, 1, rx353_restart
-    rx353_cur."!cursor_debug"("START ", "blorst")
+    if_null rx353_debug, debug_520
+    rx353_cur."!cursor_debug"("START", "blorst")
+  debug_520:
     $I10 = self.'from'()
     ne $I10, -1, rxscan356_done
     goto rxscan356_scan
@@ -4929,11 +5248,15 @@
 .annotate 'line', 206
   # rx pass
     rx353_cur."!cursor_pass"(rx353_pos, "blorst")
-    rx353_cur."!cursor_debug"("PASS  ", "blorst", " at pos=", rx353_pos)
+    if_null rx353_debug, debug_521
+    rx353_cur."!cursor_debug"("PASS", "blorst", " at pos=", rx353_pos)
+  debug_521:
     .return (rx353_cur)
   rx353_restart:
 .annotate 'line', 4
-    rx353_cur."!cursor_debug"("NEXT ", "blorst")
+    if_null rx353_debug, debug_522
+    rx353_cur."!cursor_debug"("NEXT", "blorst")
+  debug_522:
   rx353_fail:
     (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
     lt rx353_pos, -1, rx353_done
@@ -4941,14 +5264,16 @@
     jump $I10
   rx353_done:
     rx353_cur."!cursor_fail"()
-    rx353_cur."!cursor_debug"("FAIL  ", "blorst")
+    if_null rx353_debug, debug_523
+    rx353_cur."!cursor_debug"("FAIL", "blorst")
+  debug_523:
     .return (rx353_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("84_1280467477.44751") :method
+.sub "!PREFIX__blorst"  :subid("84_1282324002.40722") :method
 .annotate 'line', 4
     new $P355, "ResizablePMCArray"
     push $P355, ""
@@ -4957,7 +5282,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("85_1280467477.44751") :method
+.sub "statement_mod_cond"  :subid("85_1282324002.40722") :method
 .annotate 'line', 212
     $P359 = self."!protoregex"("statement_mod_cond")
     .return ($P359)
@@ -4965,7 +5290,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("86_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond"  :subid("86_1282324002.40722") :method
 .annotate 'line', 212
     $P361 = self."!PREFIX__!protoregex"("statement_mod_cond")
     .return ($P361)
@@ -4973,7 +5298,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("87_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_cond:sym<if>"  :subid("87_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx363_tgt
     .local int rx363_pos
@@ -4981,7 +5306,9 @@
     .local int rx363_eos
     .local int rx363_rep
     .local pmc rx363_cur
+    .local pmc rx363_debug
     (rx363_cur, rx363_pos, rx363_tgt, $I10) = self."!cursor_start"()
+    getattribute rx363_debug, rx363_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx363_cur
     .local pmc match
     .lex "$/", match
@@ -4993,7 +5320,9 @@
     substr rx363_tgt, rx363_tgt, rx363_off
   rx363_start:
     eq $I10, 1, rx363_restart
-    rx363_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
+    if_null rx363_debug, debug_524
+    rx363_cur."!cursor_debug"("START", "statement_mod_cond:sym<if>")
+  debug_524:
     $I10 = self.'from'()
     ne $I10, -1, rxscan367_done
     goto rxscan367_scan
@@ -5047,11 +5376,15 @@
     rx363_pos = $P10."pos"()
   # rx pass
     rx363_cur."!cursor_pass"(rx363_pos, "statement_mod_cond:sym<if>")
-    rx363_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<if>", " at pos=", rx363_pos)
+    if_null rx363_debug, debug_525
+    rx363_cur."!cursor_debug"("PASS", "statement_mod_cond:sym<if>", " at pos=", rx363_pos)
+  debug_525:
     .return (rx363_cur)
   rx363_restart:
 .annotate 'line', 4
-    rx363_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<if>")
+    if_null rx363_debug, debug_526
+    rx363_cur."!cursor_debug"("NEXT", "statement_mod_cond:sym<if>")
+  debug_526:
   rx363_fail:
     (rx363_rep, rx363_pos, $I10, $P10) = rx363_cur."!mark_fail"(0)
     lt rx363_pos, -1, rx363_done
@@ -5059,14 +5392,16 @@
     jump $I10
   rx363_done:
     rx363_cur."!cursor_fail"()
-    rx363_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<if>")
+    if_null rx363_debug, debug_527
+    rx363_cur."!cursor_debug"("FAIL", "statement_mod_cond:sym<if>")
+  debug_527:
     .return (rx363_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("88_1282324002.40722") :method
 .annotate 'line', 4
     $P365 = self."!PREFIX__!subrule"("ws", "if")
     new $P366, "ResizablePMCArray"
@@ -5076,7 +5411,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("89_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_cond:sym<unless>"  :subid("89_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx372_tgt
     .local int rx372_pos
@@ -5084,7 +5419,9 @@
     .local int rx372_eos
     .local int rx372_rep
     .local pmc rx372_cur
+    .local pmc rx372_debug
     (rx372_cur, rx372_pos, rx372_tgt, $I10) = self."!cursor_start"()
+    getattribute rx372_debug, rx372_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx372_cur
     .local pmc match
     .lex "$/", match
@@ -5096,7 +5433,9 @@
     substr rx372_tgt, rx372_tgt, rx372_off
   rx372_start:
     eq $I10, 1, rx372_restart
-    rx372_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
+    if_null rx372_debug, debug_528
+    rx372_cur."!cursor_debug"("START", "statement_mod_cond:sym<unless>")
+  debug_528:
     $I10 = self.'from'()
     ne $I10, -1, rxscan376_done
     goto rxscan376_scan
@@ -5150,11 +5489,15 @@
     rx372_pos = $P10."pos"()
   # rx pass
     rx372_cur."!cursor_pass"(rx372_pos, "statement_mod_cond:sym<unless>")
-    rx372_cur."!cursor_debug"("PASS  ", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
+    if_null rx372_debug, debug_529
+    rx372_cur."!cursor_debug"("PASS", "statement_mod_cond:sym<unless>", " at pos=", rx372_pos)
+  debug_529:
     .return (rx372_cur)
   rx372_restart:
 .annotate 'line', 4
-    rx372_cur."!cursor_debug"("NEXT ", "statement_mod_cond:sym<unless>")
+    if_null rx372_debug, debug_530
+    rx372_cur."!cursor_debug"("NEXT", "statement_mod_cond:sym<unless>")
+  debug_530:
   rx372_fail:
     (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
     lt rx372_pos, -1, rx372_done
@@ -5162,14 +5505,16 @@
     jump $I10
   rx372_done:
     rx372_cur."!cursor_fail"()
-    rx372_cur."!cursor_debug"("FAIL  ", "statement_mod_cond:sym<unless>")
+    if_null rx372_debug, debug_531
+    rx372_cur."!cursor_debug"("FAIL", "statement_mod_cond:sym<unless>")
+  debug_531:
     .return (rx372_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("90_1282324002.40722") :method
 .annotate 'line', 4
     $P374 = self."!PREFIX__!subrule"("ws", "unless")
     new $P375, "ResizablePMCArray"
@@ -5179,7 +5524,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("91_1280467477.44751") :method
+.sub "statement_mod_loop"  :subid("91_1282324002.40722") :method
 .annotate 'line', 217
     $P381 = self."!protoregex"("statement_mod_loop")
     .return ($P381)
@@ -5187,7 +5532,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("92_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop"  :subid("92_1282324002.40722") :method
 .annotate 'line', 217
     $P383 = self."!PREFIX__!protoregex"("statement_mod_loop")
     .return ($P383)
@@ -5195,7 +5540,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("93_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_loop:sym<while>"  :subid("93_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx385_tgt
     .local int rx385_pos
@@ -5203,7 +5548,9 @@
     .local int rx385_eos
     .local int rx385_rep
     .local pmc rx385_cur
+    .local pmc rx385_debug
     (rx385_cur, rx385_pos, rx385_tgt, $I10) = self."!cursor_start"()
+    getattribute rx385_debug, rx385_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx385_cur
     .local pmc match
     .lex "$/", match
@@ -5215,7 +5562,9 @@
     substr rx385_tgt, rx385_tgt, rx385_off
   rx385_start:
     eq $I10, 1, rx385_restart
-    rx385_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
+    if_null rx385_debug, debug_532
+    rx385_cur."!cursor_debug"("START", "statement_mod_loop:sym<while>")
+  debug_532:
     $I10 = self.'from'()
     ne $I10, -1, rxscan389_done
     goto rxscan389_scan
@@ -5269,11 +5618,15 @@
     rx385_pos = $P10."pos"()
   # rx pass
     rx385_cur."!cursor_pass"(rx385_pos, "statement_mod_loop:sym<while>")
-    rx385_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<while>", " at pos=", rx385_pos)
+    if_null rx385_debug, debug_533
+    rx385_cur."!cursor_debug"("PASS", "statement_mod_loop:sym<while>", " at pos=", rx385_pos)
+  debug_533:
     .return (rx385_cur)
   rx385_restart:
 .annotate 'line', 4
-    rx385_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<while>")
+    if_null rx385_debug, debug_534
+    rx385_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym<while>")
+  debug_534:
   rx385_fail:
     (rx385_rep, rx385_pos, $I10, $P10) = rx385_cur."!mark_fail"(0)
     lt rx385_pos, -1, rx385_done
@@ -5281,14 +5634,16 @@
     jump $I10
   rx385_done:
     rx385_cur."!cursor_fail"()
-    rx385_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<while>")
+    if_null rx385_debug, debug_535
+    rx385_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym<while>")
+  debug_535:
     .return (rx385_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("94_1282324002.40722") :method
 .annotate 'line', 4
     $P387 = self."!PREFIX__!subrule"("ws", "while")
     new $P388, "ResizablePMCArray"
@@ -5298,7 +5653,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("95_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_loop:sym<until>"  :subid("95_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx394_tgt
     .local int rx394_pos
@@ -5306,7 +5661,9 @@
     .local int rx394_eos
     .local int rx394_rep
     .local pmc rx394_cur
+    .local pmc rx394_debug
     (rx394_cur, rx394_pos, rx394_tgt, $I10) = self."!cursor_start"()
+    getattribute rx394_debug, rx394_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx394_cur
     .local pmc match
     .lex "$/", match
@@ -5318,7 +5675,9 @@
     substr rx394_tgt, rx394_tgt, rx394_off
   rx394_start:
     eq $I10, 1, rx394_restart
-    rx394_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
+    if_null rx394_debug, debug_536
+    rx394_cur."!cursor_debug"("START", "statement_mod_loop:sym<until>")
+  debug_536:
     $I10 = self.'from'()
     ne $I10, -1, rxscan398_done
     goto rxscan398_scan
@@ -5372,11 +5731,15 @@
     rx394_pos = $P10."pos"()
   # rx pass
     rx394_cur."!cursor_pass"(rx394_pos, "statement_mod_loop:sym<until>")
-    rx394_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<until>", " at pos=", rx394_pos)
+    if_null rx394_debug, debug_537
+    rx394_cur."!cursor_debug"("PASS", "statement_mod_loop:sym<until>", " at pos=", rx394_pos)
+  debug_537:
     .return (rx394_cur)
   rx394_restart:
 .annotate 'line', 4
-    rx394_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<until>")
+    if_null rx394_debug, debug_538
+    rx394_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym<until>")
+  debug_538:
   rx394_fail:
     (rx394_rep, rx394_pos, $I10, $P10) = rx394_cur."!mark_fail"(0)
     lt rx394_pos, -1, rx394_done
@@ -5384,14 +5747,16 @@
     jump $I10
   rx394_done:
     rx394_cur."!cursor_fail"()
-    rx394_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<until>")
+    if_null rx394_debug, debug_539
+    rx394_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym<until>")
+  debug_539:
     .return (rx394_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("96_1282324002.40722") :method
 .annotate 'line', 4
     $P396 = self."!PREFIX__!subrule"("ws", "until")
     new $P397, "ResizablePMCArray"
@@ -5401,7 +5766,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<for>"  :subid("97_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "statement_mod_loop:sym<for>"  :subid("97_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx403_tgt
     .local int rx403_pos
@@ -5409,7 +5774,9 @@
     .local int rx403_eos
     .local int rx403_rep
     .local pmc rx403_cur
+    .local pmc rx403_debug
     (rx403_cur, rx403_pos, rx403_tgt, $I10) = self."!cursor_start"()
+    getattribute rx403_debug, rx403_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx403_cur
     .local pmc match
     .lex "$/", match
@@ -5421,7 +5788,9 @@
     substr rx403_tgt, rx403_tgt, rx403_off
   rx403_start:
     eq $I10, 1, rx403_restart
-    rx403_cur."!cursor_debug"("START ", "statement_mod_loop:sym<for>")
+    if_null rx403_debug, debug_540
+    rx403_cur."!cursor_debug"("START", "statement_mod_loop:sym<for>")
+  debug_540:
     $I10 = self.'from'()
     ne $I10, -1, rxscan407_done
     goto rxscan407_scan
@@ -5475,11 +5844,15 @@
     rx403_pos = $P10."pos"()
   # rx pass
     rx403_cur."!cursor_pass"(rx403_pos, "statement_mod_loop:sym<for>")
-    rx403_cur."!cursor_debug"("PASS  ", "statement_mod_loop:sym<for>", " at pos=", rx403_pos)
+    if_null rx403_debug, debug_541
+    rx403_cur."!cursor_debug"("PASS", "statement_mod_loop:sym<for>", " at pos=", rx403_pos)
+  debug_541:
     .return (rx403_cur)
   rx403_restart:
 .annotate 'line', 4
-    rx403_cur."!cursor_debug"("NEXT ", "statement_mod_loop:sym<for>")
+    if_null rx403_debug, debug_542
+    rx403_cur."!cursor_debug"("NEXT", "statement_mod_loop:sym<for>")
+  debug_542:
   rx403_fail:
     (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
     lt rx403_pos, -1, rx403_done
@@ -5487,14 +5860,16 @@
     jump $I10
   rx403_done:
     rx403_cur."!cursor_fail"()
-    rx403_cur."!cursor_debug"("FAIL  ", "statement_mod_loop:sym<for>")
+    if_null rx403_debug, debug_543
+    rx403_cur."!cursor_debug"("FAIL", "statement_mod_loop:sym<for>")
+  debug_543:
     .return (rx403_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1280467477.44751") :method
+.sub "!PREFIX__statement_mod_loop:sym<for>"  :subid("98_1282324002.40722") :method
 .annotate 'line', 4
     $P405 = self."!PREFIX__!subrule"("ws", "for")
     new $P406, "ResizablePMCArray"
@@ -5504,7 +5879,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("99_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<fatarrow>"  :subid("99_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx412_tgt
     .local int rx412_pos
@@ -5512,7 +5887,9 @@
     .local int rx412_eos
     .local int rx412_rep
     .local pmc rx412_cur
+    .local pmc rx412_debug
     (rx412_cur, rx412_pos, rx412_tgt, $I10) = self."!cursor_start"()
+    getattribute rx412_debug, rx412_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx412_cur
     .local pmc match
     .lex "$/", match
@@ -5524,7 +5901,9 @@
     substr rx412_tgt, rx412_tgt, rx412_off
   rx412_start:
     eq $I10, 1, rx412_restart
-    rx412_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+    if_null rx412_debug, debug_544
+    rx412_cur."!cursor_debug"("START", "term:sym<fatarrow>")
+  debug_544:
     $I10 = self.'from'()
     ne $I10, -1, rxscan416_done
     goto rxscan416_scan
@@ -5547,11 +5926,15 @@
     rx412_pos = $P10."pos"()
   # rx pass
     rx412_cur."!cursor_pass"(rx412_pos, "term:sym<fatarrow>")
-    rx412_cur."!cursor_debug"("PASS  ", "term:sym<fatarrow>", " at pos=", rx412_pos)
+    if_null rx412_debug, debug_545
+    rx412_cur."!cursor_debug"("PASS", "term:sym<fatarrow>", " at pos=", rx412_pos)
+  debug_545:
     .return (rx412_cur)
   rx412_restart:
 .annotate 'line', 4
-    rx412_cur."!cursor_debug"("NEXT ", "term:sym<fatarrow>")
+    if_null rx412_debug, debug_546
+    rx412_cur."!cursor_debug"("NEXT", "term:sym<fatarrow>")
+  debug_546:
   rx412_fail:
     (rx412_rep, rx412_pos, $I10, $P10) = rx412_cur."!mark_fail"(0)
     lt rx412_pos, -1, rx412_done
@@ -5559,14 +5942,16 @@
     jump $I10
   rx412_done:
     rx412_cur."!cursor_fail"()
-    rx412_cur."!cursor_debug"("FAIL  ", "term:sym<fatarrow>")
+    if_null rx412_debug, debug_547
+    rx412_cur."!cursor_debug"("FAIL", "term:sym<fatarrow>")
+  debug_547:
     .return (rx412_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1280467477.44751") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("100_1282324002.40722") :method
 .annotate 'line', 4
     $P414 = self."!PREFIX__!subrule"("fatarrow", "")
     new $P415, "ResizablePMCArray"
@@ -5576,7 +5961,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("101_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<colonpair>"  :subid("101_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx418_tgt
     .local int rx418_pos
@@ -5584,7 +5969,9 @@
     .local int rx418_eos
     .local int rx418_rep
     .local pmc rx418_cur
+    .local pmc rx418_debug
     (rx418_cur, rx418_pos, rx418_tgt, $I10) = self."!cursor_start"()
+    getattribute rx418_debug, rx418_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx418_cur
     .local pmc match
     .lex "$/", match
@@ -5596,7 +5983,9 @@
     substr rx418_tgt, rx418_tgt, rx418_off
   rx418_start:
     eq $I10, 1, rx418_restart
-    rx418_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+    if_null rx418_debug, debug_548
+    rx418_cur."!cursor_debug"("START", "term:sym<colonpair>")
+  debug_548:
     $I10 = self.'from'()
     ne $I10, -1, rxscan422_done
     goto rxscan422_scan
@@ -5619,11 +6008,15 @@
     rx418_pos = $P10."pos"()
   # rx pass
     rx418_cur."!cursor_pass"(rx418_pos, "term:sym<colonpair>")
-    rx418_cur."!cursor_debug"("PASS  ", "term:sym<colonpair>", " at pos=", rx418_pos)
+    if_null rx418_debug, debug_549
+    rx418_cur."!cursor_debug"("PASS", "term:sym<colonpair>", " at pos=", rx418_pos)
+  debug_549:
     .return (rx418_cur)
   rx418_restart:
 .annotate 'line', 4
-    rx418_cur."!cursor_debug"("NEXT ", "term:sym<colonpair>")
+    if_null rx418_debug, debug_550
+    rx418_cur."!cursor_debug"("NEXT", "term:sym<colonpair>")
+  debug_550:
   rx418_fail:
     (rx418_rep, rx418_pos, $I10, $P10) = rx418_cur."!mark_fail"(0)
     lt rx418_pos, -1, rx418_done
@@ -5631,14 +6024,16 @@
     jump $I10
   rx418_done:
     rx418_cur."!cursor_fail"()
-    rx418_cur."!cursor_debug"("FAIL  ", "term:sym<colonpair>")
+    if_null rx418_debug, debug_551
+    rx418_cur."!cursor_debug"("FAIL", "term:sym<colonpair>")
+  debug_551:
     .return (rx418_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1280467477.44751") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("102_1282324002.40722") :method
 .annotate 'line', 4
     $P420 = self."!PREFIX__!subrule"("colonpair", "")
     new $P421, "ResizablePMCArray"
@@ -5648,7 +6043,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("103_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<variable>"  :subid("103_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx424_tgt
     .local int rx424_pos
@@ -5656,7 +6051,9 @@
     .local int rx424_eos
     .local int rx424_rep
     .local pmc rx424_cur
+    .local pmc rx424_debug
     (rx424_cur, rx424_pos, rx424_tgt, $I10) = self."!cursor_start"()
+    getattribute rx424_debug, rx424_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx424_cur
     .local pmc match
     .lex "$/", match
@@ -5668,7 +6065,9 @@
     substr rx424_tgt, rx424_tgt, rx424_off
   rx424_start:
     eq $I10, 1, rx424_restart
-    rx424_cur."!cursor_debug"("START ", "term:sym<variable>")
+    if_null rx424_debug, debug_552
+    rx424_cur."!cursor_debug"("START", "term:sym<variable>")
+  debug_552:
     $I10 = self.'from'()
     ne $I10, -1, rxscan428_done
     goto rxscan428_scan
@@ -5691,11 +6090,15 @@
     rx424_pos = $P10."pos"()
   # rx pass
     rx424_cur."!cursor_pass"(rx424_pos, "term:sym<variable>")
-    rx424_cur."!cursor_debug"("PASS  ", "term:sym<variable>", " at pos=", rx424_pos)
+    if_null rx424_debug, debug_553
+    rx424_cur."!cursor_debug"("PASS", "term:sym<variable>", " at pos=", rx424_pos)
+  debug_553:
     .return (rx424_cur)
   rx424_restart:
 .annotate 'line', 4
-    rx424_cur."!cursor_debug"("NEXT ", "term:sym<variable>")
+    if_null rx424_debug, debug_554
+    rx424_cur."!cursor_debug"("NEXT", "term:sym<variable>")
+  debug_554:
   rx424_fail:
     (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
     lt rx424_pos, -1, rx424_done
@@ -5703,14 +6106,16 @@
     jump $I10
   rx424_done:
     rx424_cur."!cursor_fail"()
-    rx424_cur."!cursor_debug"("FAIL  ", "term:sym<variable>")
+    if_null rx424_debug, debug_555
+    rx424_cur."!cursor_debug"("FAIL", "term:sym<variable>")
+  debug_555:
     .return (rx424_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("104_1280467477.44751") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("104_1282324002.40722") :method
 .annotate 'line', 4
     $P426 = self."!PREFIX__!subrule"("variable", "")
     new $P427, "ResizablePMCArray"
@@ -5720,7 +6125,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("105_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<package_declarator>"  :subid("105_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx430_tgt
     .local int rx430_pos
@@ -5728,7 +6133,9 @@
     .local int rx430_eos
     .local int rx430_rep
     .local pmc rx430_cur
+    .local pmc rx430_debug
     (rx430_cur, rx430_pos, rx430_tgt, $I10) = self."!cursor_start"()
+    getattribute rx430_debug, rx430_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx430_cur
     .local pmc match
     .lex "$/", match
@@ -5740,7 +6147,9 @@
     substr rx430_tgt, rx430_tgt, rx430_off
   rx430_start:
     eq $I10, 1, rx430_restart
-    rx430_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+    if_null rx430_debug, debug_556
+    rx430_cur."!cursor_debug"("START", "term:sym<package_declarator>")
+  debug_556:
     $I10 = self.'from'()
     ne $I10, -1, rxscan434_done
     goto rxscan434_scan
@@ -5763,11 +6172,15 @@
     rx430_pos = $P10."pos"()
   # rx pass
     rx430_cur."!cursor_pass"(rx430_pos, "term:sym<package_declarator>")
-    rx430_cur."!cursor_debug"("PASS  ", "term:sym<package_declarator>", " at pos=", rx430_pos)
+    if_null rx430_debug, debug_557
+    rx430_cur."!cursor_debug"("PASS", "term:sym<package_declarator>", " at pos=", rx430_pos)
+  debug_557:
     .return (rx430_cur)
   rx430_restart:
 .annotate 'line', 4
-    rx430_cur."!cursor_debug"("NEXT ", "term:sym<package_declarator>")
+    if_null rx430_debug, debug_558
+    rx430_cur."!cursor_debug"("NEXT", "term:sym<package_declarator>")
+  debug_558:
   rx430_fail:
     (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
     lt rx430_pos, -1, rx430_done
@@ -5775,14 +6188,16 @@
     jump $I10
   rx430_done:
     rx430_cur."!cursor_fail"()
-    rx430_cur."!cursor_debug"("FAIL  ", "term:sym<package_declarator>")
+    if_null rx430_debug, debug_559
+    rx430_cur."!cursor_debug"("FAIL", "term:sym<package_declarator>")
+  debug_559:
     .return (rx430_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1280467477.44751") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("106_1282324002.40722") :method
 .annotate 'line', 4
     $P432 = self."!PREFIX__!subrule"("package_declarator", "")
     new $P433, "ResizablePMCArray"
@@ -5792,7 +6207,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("107_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<scope_declarator>"  :subid("107_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx436_tgt
     .local int rx436_pos
@@ -5800,7 +6215,9 @@
     .local int rx436_eos
     .local int rx436_rep
     .local pmc rx436_cur
+    .local pmc rx436_debug
     (rx436_cur, rx436_pos, rx436_tgt, $I10) = self."!cursor_start"()
+    getattribute rx436_debug, rx436_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx436_cur
     .local pmc match
     .lex "$/", match
@@ -5812,7 +6229,9 @@
     substr rx436_tgt, rx436_tgt, rx436_off
   rx436_start:
     eq $I10, 1, rx436_restart
-    rx436_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
+    if_null rx436_debug, debug_560
+    rx436_cur."!cursor_debug"("START", "term:sym<scope_declarator>")
+  debug_560:
     $I10 = self.'from'()
     ne $I10, -1, rxscan440_done
     goto rxscan440_scan
@@ -5835,11 +6254,15 @@
     rx436_pos = $P10."pos"()
   # rx pass
     rx436_cur."!cursor_pass"(rx436_pos, "term:sym<scope_declarator>")
-    rx436_cur."!cursor_debug"("PASS  ", "term:sym<scope_declarator>", " at pos=", rx436_pos)
+    if_null rx436_debug, debug_561
+    rx436_cur."!cursor_debug"("PASS", "term:sym<scope_declarator>", " at pos=", rx436_pos)
+  debug_561:
     .return (rx436_cur)
   rx436_restart:
 .annotate 'line', 4
-    rx436_cur."!cursor_debug"("NEXT ", "term:sym<scope_declarator>")
+    if_null rx436_debug, debug_562
+    rx436_cur."!cursor_debug"("NEXT", "term:sym<scope_declarator>")
+  debug_562:
   rx436_fail:
     (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
     lt rx436_pos, -1, rx436_done
@@ -5847,14 +6270,16 @@
     jump $I10
   rx436_done:
     rx436_cur."!cursor_fail"()
-    rx436_cur."!cursor_debug"("FAIL  ", "term:sym<scope_declarator>")
+    if_null rx436_debug, debug_563
+    rx436_cur."!cursor_debug"("FAIL", "term:sym<scope_declarator>")
+  debug_563:
     .return (rx436_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1280467477.44751") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("108_1282324002.40722") :method
 .annotate 'line', 4
     $P438 = self."!PREFIX__!subrule"("scope_declarator", "")
     new $P439, "ResizablePMCArray"
@@ -5864,7 +6289,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("109_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<routine_declarator>"  :subid("109_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx442_tgt
     .local int rx442_pos
@@ -5872,7 +6297,9 @@
     .local int rx442_eos
     .local int rx442_rep
     .local pmc rx442_cur
+    .local pmc rx442_debug
     (rx442_cur, rx442_pos, rx442_tgt, $I10) = self."!cursor_start"()
+    getattribute rx442_debug, rx442_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx442_cur
     .local pmc match
     .lex "$/", match
@@ -5884,7 +6311,9 @@
     substr rx442_tgt, rx442_tgt, rx442_off
   rx442_start:
     eq $I10, 1, rx442_restart
-    rx442_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
+    if_null rx442_debug, debug_564
+    rx442_cur."!cursor_debug"("START", "term:sym<routine_declarator>")
+  debug_564:
     $I10 = self.'from'()
     ne $I10, -1, rxscan446_done
     goto rxscan446_scan
@@ -5907,11 +6336,15 @@
     rx442_pos = $P10."pos"()
   # rx pass
     rx442_cur."!cursor_pass"(rx442_pos, "term:sym<routine_declarator>")
-    rx442_cur."!cursor_debug"("PASS  ", "term:sym<routine_declarator>", " at pos=", rx442_pos)
+    if_null rx442_debug, debug_565
+    rx442_cur."!cursor_debug"("PASS", "term:sym<routine_declarator>", " at pos=", rx442_pos)
+  debug_565:
     .return (rx442_cur)
   rx442_restart:
 .annotate 'line', 4
-    rx442_cur."!cursor_debug"("NEXT ", "term:sym<routine_declarator>")
+    if_null rx442_debug, debug_566
+    rx442_cur."!cursor_debug"("NEXT", "term:sym<routine_declarator>")
+  debug_566:
   rx442_fail:
     (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
     lt rx442_pos, -1, rx442_done
@@ -5919,14 +6352,16 @@
     jump $I10
   rx442_done:
     rx442_cur."!cursor_fail"()
-    rx442_cur."!cursor_debug"("FAIL  ", "term:sym<routine_declarator>")
+    if_null rx442_debug, debug_567
+    rx442_cur."!cursor_debug"("FAIL", "term:sym<routine_declarator>")
+  debug_567:
     .return (rx442_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1280467477.44751") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("110_1282324002.40722") :method
 .annotate 'line', 4
     $P444 = self."!PREFIX__!subrule"("routine_declarator", "")
     new $P445, "ResizablePMCArray"
@@ -5936,9 +6371,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<multi_declarator>"  :subid("111_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<multi_declarator>"  :subid("111_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
-    .const 'Sub' $P453 = "113_1280467477.44751" 
+    .const 'Sub' $P453 = "113_1282324002.40722" 
     capture_lex $P453
     .local string rx448_tgt
     .local int rx448_pos
@@ -5946,7 +6381,9 @@
     .local int rx448_eos
     .local int rx448_rep
     .local pmc rx448_cur
+    .local pmc rx448_debug
     (rx448_cur, rx448_pos, rx448_tgt, $I10) = self."!cursor_start"()
+    getattribute rx448_debug, rx448_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx448_cur
     .local pmc match
     .lex "$/", match
@@ -5958,7 +6395,9 @@
     substr rx448_tgt, rx448_tgt, rx448_off
   rx448_start:
     eq $I10, 1, rx448_restart
-    rx448_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
+    if_null rx448_debug, debug_568
+    rx448_cur."!cursor_debug"("START", "term:sym<multi_declarator>")
+  debug_568:
     $I10 = self.'from'()
     ne $I10, -1, rxscan451_done
     goto rxscan451_scan
@@ -5974,7 +6413,7 @@
 .annotate 'line', 231
   # rx subrule "before" subtype=zerowidth negate=
     rx448_cur."!cursor_pos"(rx448_pos)
-    .const 'Sub' $P453 = "113_1280467477.44751" 
+    .const 'Sub' $P453 = "113_1282324002.40722" 
     capture_lex $P453
     $P10 = rx448_cur."before"($P453)
     unless $P10, rx448_fail
@@ -5987,11 +6426,15 @@
     rx448_pos = $P10."pos"()
   # rx pass
     rx448_cur."!cursor_pass"(rx448_pos, "term:sym<multi_declarator>")
-    rx448_cur."!cursor_debug"("PASS  ", "term:sym<multi_declarator>", " at pos=", rx448_pos)
+    if_null rx448_debug, debug_573
+    rx448_cur."!cursor_debug"("PASS", "term:sym<multi_declarator>", " at pos=", rx448_pos)
+  debug_573:
     .return (rx448_cur)
   rx448_restart:
 .annotate 'line', 4
-    rx448_cur."!cursor_debug"("NEXT ", "term:sym<multi_declarator>")
+    if_null rx448_debug, debug_574
+    rx448_cur."!cursor_debug"("NEXT", "term:sym<multi_declarator>")
+  debug_574:
   rx448_fail:
     (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
     lt rx448_pos, -1, rx448_done
@@ -5999,14 +6442,16 @@
     jump $I10
   rx448_done:
     rx448_cur."!cursor_fail"()
-    rx448_cur."!cursor_debug"("FAIL  ", "term:sym<multi_declarator>")
+    if_null rx448_debug, debug_575
+    rx448_cur."!cursor_debug"("FAIL", "term:sym<multi_declarator>")
+  debug_575:
     .return (rx448_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1280467477.44751") :method
+.sub "!PREFIX__term:sym<multi_declarator>"  :subid("112_1282324002.40722") :method
 .annotate 'line', 4
     new $P450, "ResizablePMCArray"
     push $P450, ""
@@ -6015,7 +6460,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block452"  :anon :subid("113_1280467477.44751") :method :outer("111_1280467477.44751")
+.sub "_block452"  :anon :subid("113_1282324002.40722") :method :outer("111_1282324002.40722")
 .annotate 'line', 231
     .local string rx454_tgt
     .local int rx454_pos
@@ -6023,7 +6468,9 @@
     .local int rx454_eos
     .local int rx454_rep
     .local pmc rx454_cur
+    .local pmc rx454_debug
     (rx454_cur, rx454_pos, rx454_tgt, $I10) = self."!cursor_start"()
+    getattribute rx454_debug, rx454_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx454_cur
     .local pmc match
     .lex "$/", match
@@ -6035,7 +6482,9 @@
     substr rx454_tgt, rx454_tgt, rx454_off
   rx454_start:
     eq $I10, 1, rx454_restart
-    rx454_cur."!cursor_debug"("START ", "")
+    if_null rx454_debug, debug_569
+    rx454_cur."!cursor_debug"("START", "")
+  debug_569:
     $I10 = self.'from'()
     ne $I10, -1, rxscan455_done
     goto rxscan455_scan
@@ -6081,10 +6530,14 @@
   alt456_end:
   # rx pass
     rx454_cur."!cursor_pass"(rx454_pos, "")
-    rx454_cur."!cursor_debug"("PASS  ", "", " at pos=", rx454_pos)
+    if_null rx454_debug, debug_570
+    rx454_cur."!cursor_debug"("PASS", "", " at pos=", rx454_pos)
+  debug_570:
     .return (rx454_cur)
   rx454_restart:
-    rx454_cur."!cursor_debug"("NEXT ", "")
+    if_null rx454_debug, debug_571
+    rx454_cur."!cursor_debug"("NEXT", "")
+  debug_571:
   rx454_fail:
     (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
     lt rx454_pos, -1, rx454_done
@@ -6092,14 +6545,16 @@
     jump $I10
   rx454_done:
     rx454_cur."!cursor_fail"()
-    rx454_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx454_debug, debug_572
+    rx454_cur."!cursor_debug"("FAIL", "")
+  debug_572:
     .return (rx454_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("114_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<regex_declarator>"  :subid("114_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx458_tgt
     .local int rx458_pos
@@ -6107,7 +6562,9 @@
     .local int rx458_eos
     .local int rx458_rep
     .local pmc rx458_cur
+    .local pmc rx458_debug
     (rx458_cur, rx458_pos, rx458_tgt, $I10) = self."!cursor_start"()
+    getattribute rx458_debug, rx458_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx458_cur
     .local pmc match
     .lex "$/", match
@@ -6119,7 +6576,9 @@
     substr rx458_tgt, rx458_tgt, rx458_off
   rx458_start:
     eq $I10, 1, rx458_restart
-    rx458_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+    if_null rx458_debug, debug_576
+    rx458_cur."!cursor_debug"("START", "term:sym<regex_declarator>")
+  debug_576:
     $I10 = self.'from'()
     ne $I10, -1, rxscan462_done
     goto rxscan462_scan
@@ -6142,11 +6601,15 @@
     rx458_pos = $P10."pos"()
   # rx pass
     rx458_cur."!cursor_pass"(rx458_pos, "term:sym<regex_declarator>")
-    rx458_cur."!cursor_debug"("PASS  ", "term:sym<regex_declarator>", " at pos=", rx458_pos)
+    if_null rx458_debug, debug_577
+    rx458_cur."!cursor_debug"("PASS", "term:sym<regex_declarator>", " at pos=", rx458_pos)
+  debug_577:
     .return (rx458_cur)
   rx458_restart:
 .annotate 'line', 4
-    rx458_cur."!cursor_debug"("NEXT ", "term:sym<regex_declarator>")
+    if_null rx458_debug, debug_578
+    rx458_cur."!cursor_debug"("NEXT", "term:sym<regex_declarator>")
+  debug_578:
   rx458_fail:
     (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
     lt rx458_pos, -1, rx458_done
@@ -6154,14 +6617,16 @@
     jump $I10
   rx458_done:
     rx458_cur."!cursor_fail"()
-    rx458_cur."!cursor_debug"("FAIL  ", "term:sym<regex_declarator>")
+    if_null rx458_debug, debug_579
+    rx458_cur."!cursor_debug"("FAIL", "term:sym<regex_declarator>")
+  debug_579:
     .return (rx458_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1280467477.44751") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("115_1282324002.40722") :method
 .annotate 'line', 4
     $P460 = self."!PREFIX__!subrule"("regex_declarator", "")
     new $P461, "ResizablePMCArray"
@@ -6171,7 +6636,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("116_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<statement_prefix>"  :subid("116_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx464_tgt
     .local int rx464_pos
@@ -6179,7 +6644,9 @@
     .local int rx464_eos
     .local int rx464_rep
     .local pmc rx464_cur
+    .local pmc rx464_debug
     (rx464_cur, rx464_pos, rx464_tgt, $I10) = self."!cursor_start"()
+    getattribute rx464_debug, rx464_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx464_cur
     .local pmc match
     .lex "$/", match
@@ -6191,7 +6658,9 @@
     substr rx464_tgt, rx464_tgt, rx464_off
   rx464_start:
     eq $I10, 1, rx464_restart
-    rx464_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
+    if_null rx464_debug, debug_580
+    rx464_cur."!cursor_debug"("START", "term:sym<statement_prefix>")
+  debug_580:
     $I10 = self.'from'()
     ne $I10, -1, rxscan468_done
     goto rxscan468_scan
@@ -6214,11 +6683,15 @@
     rx464_pos = $P10."pos"()
   # rx pass
     rx464_cur."!cursor_pass"(rx464_pos, "term:sym<statement_prefix>")
-    rx464_cur."!cursor_debug"("PASS  ", "term:sym<statement_prefix>", " at pos=", rx464_pos)
+    if_null rx464_debug, debug_581
+    rx464_cur."!cursor_debug"("PASS", "term:sym<statement_prefix>", " at pos=", rx464_pos)
+  debug_581:
     .return (rx464_cur)
   rx464_restart:
 .annotate 'line', 4
-    rx464_cur."!cursor_debug"("NEXT ", "term:sym<statement_prefix>")
+    if_null rx464_debug, debug_582
+    rx464_cur."!cursor_debug"("NEXT", "term:sym<statement_prefix>")
+  debug_582:
   rx464_fail:
     (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
     lt rx464_pos, -1, rx464_done
@@ -6226,14 +6699,16 @@
     jump $I10
   rx464_done:
     rx464_cur."!cursor_fail"()
-    rx464_cur."!cursor_debug"("FAIL  ", "term:sym<statement_prefix>")
+    if_null rx464_debug, debug_583
+    rx464_cur."!cursor_debug"("FAIL", "term:sym<statement_prefix>")
+  debug_583:
     .return (rx464_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1280467477.44751") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("117_1282324002.40722") :method
 .annotate 'line', 4
     $P466 = self."!PREFIX__!subrule"("statement_prefix", "")
     new $P467, "ResizablePMCArray"
@@ -6243,7 +6718,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("118_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<lambda>"  :subid("118_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx470_tgt
     .local int rx470_pos
@@ -6251,7 +6726,9 @@
     .local int rx470_eos
     .local int rx470_rep
     .local pmc rx470_cur
+    .local pmc rx470_debug
     (rx470_cur, rx470_pos, rx470_tgt, $I10) = self."!cursor_start"()
+    getattribute rx470_debug, rx470_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx470_cur
     .local pmc match
     .lex "$/", match
@@ -6263,7 +6740,9 @@
     substr rx470_tgt, rx470_tgt, rx470_off
   rx470_start:
     eq $I10, 1, rx470_restart
-    rx470_cur."!cursor_debug"("START ", "term:sym<lambda>")
+    if_null rx470_debug, debug_584
+    rx470_cur."!cursor_debug"("START", "term:sym<lambda>")
+  debug_584:
     $I10 = self.'from'()
     ne $I10, -1, rxscan473_done
     goto rxscan473_scan
@@ -6290,11 +6769,15 @@
     rx470_pos = $P10."pos"()
   # rx pass
     rx470_cur."!cursor_pass"(rx470_pos, "term:sym<lambda>")
-    rx470_cur."!cursor_debug"("PASS  ", "term:sym<lambda>", " at pos=", rx470_pos)
+    if_null rx470_debug, debug_585
+    rx470_cur."!cursor_debug"("PASS", "term:sym<lambda>", " at pos=", rx470_pos)
+  debug_585:
     .return (rx470_cur)
   rx470_restart:
 .annotate 'line', 4
-    rx470_cur."!cursor_debug"("NEXT ", "term:sym<lambda>")
+    if_null rx470_debug, debug_586
+    rx470_cur."!cursor_debug"("NEXT", "term:sym<lambda>")
+  debug_586:
   rx470_fail:
     (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
     lt rx470_pos, -1, rx470_done
@@ -6302,14 +6785,16 @@
     jump $I10
   rx470_done:
     rx470_cur."!cursor_fail"()
-    rx470_cur."!cursor_debug"("FAIL  ", "term:sym<lambda>")
+    if_null rx470_debug, debug_587
+    rx470_cur."!cursor_debug"("FAIL", "term:sym<lambda>")
+  debug_587:
     .return (rx470_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("119_1280467477.44751") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("119_1282324002.40722") :method
 .annotate 'line', 4
     new $P472, "ResizablePMCArray"
     push $P472, ""
@@ -6318,7 +6803,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("120_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "fatarrow"  :subid("120_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx475_tgt
     .local int rx475_pos
@@ -6326,7 +6811,9 @@
     .local int rx475_eos
     .local int rx475_rep
     .local pmc rx475_cur
+    .local pmc rx475_debug
     (rx475_cur, rx475_pos, rx475_tgt, $I10) = self."!cursor_start"()
+    getattribute rx475_debug, rx475_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx475_cur
     .local pmc match
     .lex "$/", match
@@ -6338,7 +6825,9 @@
     substr rx475_tgt, rx475_tgt, rx475_off
   rx475_start:
     eq $I10, 1, rx475_restart
-    rx475_cur."!cursor_debug"("START ", "fatarrow")
+    if_null rx475_debug, debug_588
+    rx475_cur."!cursor_debug"("START", "fatarrow")
+  debug_588:
     $I10 = self.'from'()
     ne $I10, -1, rxscan479_done
     goto rxscan479_scan
@@ -6359,23 +6848,21 @@
     rx475_cur."!mark_push"(0, -1, 0, $P10)
     $P10."!cursor_names"("key")
     rx475_pos = $P10."pos"()
-  # rx rxquantr480 ** 0..*
-    set_addr $I10, rxquantr480_done
-    rx475_cur."!mark_push"(0, rx475_pos, $I10)
-  rxquantr480_loop:
-  # rx enumcharlist negate=0 
-    ge rx475_pos, rx475_eos, rx475_fail
+  # rx enumcharlist_q negate=0  r 0..-1
     sub $I10, rx475_pos, rx475_off
+    set rx475_rep, 0
+    sub $I12, rx475_eos, rx475_pos
+  rxenumcharlistq480_loop:
+    le $I12, 0, rxenumcharlistq480_done
     substr $S10, rx475_tgt, $I10, 1
     index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
-    lt $I11, 0, rx475_fail
-    inc rx475_pos
-    set_addr $I10, rxquantr480_done
-    (rx475_rep) = rx475_cur."!mark_commit"($I10)
-    set_addr $I10, rxquantr480_done
-    rx475_cur."!mark_push"(rx475_rep, rx475_pos, $I10)
-    goto rxquantr480_loop
-  rxquantr480_done:
+    lt $I11, 0, rxenumcharlistq480_done
+    inc rx475_rep
+    inc $I10
+    dec $I12
+    goto rxenumcharlistq480_loop
+  rxenumcharlistq480_done:
+    add rx475_pos, rx475_pos, rx475_rep
   # rx literal  "=>"
     add $I11, rx475_pos, 2
     gt $I11, rx475_eos, rx475_fail
@@ -6398,11 +6885,15 @@
 .annotate 'line', 236
   # rx pass
     rx475_cur."!cursor_pass"(rx475_pos, "fatarrow")
-    rx475_cur."!cursor_debug"("PASS  ", "fatarrow", " at pos=", rx475_pos)
+    if_null rx475_debug, debug_589
+    rx475_cur."!cursor_debug"("PASS", "fatarrow", " at pos=", rx475_pos)
+  debug_589:
     .return (rx475_cur)
   rx475_restart:
 .annotate 'line', 4
-    rx475_cur."!cursor_debug"("NEXT ", "fatarrow")
+    if_null rx475_debug, debug_590
+    rx475_cur."!cursor_debug"("NEXT", "fatarrow")
+  debug_590:
   rx475_fail:
     (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0)
     lt rx475_pos, -1, rx475_done
@@ -6410,14 +6901,16 @@
     jump $I10
   rx475_done:
     rx475_cur."!cursor_fail"()
-    rx475_cur."!cursor_debug"("FAIL  ", "fatarrow")
+    if_null rx475_debug, debug_591
+    rx475_cur."!cursor_debug"("FAIL", "fatarrow")
+  debug_591:
     .return (rx475_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("121_1280467477.44751") :method
+.sub "!PREFIX__fatarrow"  :subid("121_1282324002.40722") :method
 .annotate 'line', 4
     $P477 = self."!PREFIX__!subrule"("identifier", "")
     new $P478, "ResizablePMCArray"
@@ -6427,7 +6920,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("122_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "colonpair"  :subid("122_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx482_tgt
     .local int rx482_pos
@@ -6435,8 +6928,10 @@
     .local int rx482_eos
     .local int rx482_rep
     .local pmc rx482_cur
+    .local pmc rx482_debug
     (rx482_cur, rx482_pos, rx482_tgt, $I10) = self."!cursor_start"()
     rx482_cur."!cursor_caparray"("circumfix")
+    getattribute rx482_debug, rx482_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx482_cur
     .local pmc match
     .lex "$/", match
@@ -6448,7 +6943,9 @@
     substr rx482_tgt, rx482_tgt, rx482_off
   rx482_start:
     eq $I10, 1, rx482_restart
-    rx482_cur."!cursor_debug"("START ", "colonpair")
+    if_null rx482_debug, debug_592
+    rx482_cur."!cursor_debug"("START", "colonpair")
+  debug_592:
     $I10 = self.'from'()
     ne $I10, -1, rxscan488_done
     goto rxscan488_scan
@@ -6466,8 +6963,8 @@
     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
+    ord $I11, rx482_tgt, $I11
+    ne $I11, 58, rx482_fail
     add rx482_pos, 1
   alt489_0:
 .annotate 'line', 242
@@ -6481,8 +6978,8 @@
     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
+    ord $I11, rx482_tgt, $I11
+    ne $I11, 33, rx482_fail
     add rx482_pos, 1
     set_addr $I10, rxcap_490_fail
     ($I12, $I11) = rx482_cur."!mark_peek"($I10)
@@ -6548,11 +7045,15 @@
 .annotate 'line', 240
   # rx pass
     rx482_cur."!cursor_pass"(rx482_pos, "colonpair")
-    rx482_cur."!cursor_debug"("PASS  ", "colonpair", " at pos=", rx482_pos)
+    if_null rx482_debug, debug_593
+    rx482_cur."!cursor_debug"("PASS", "colonpair", " at pos=", rx482_pos)
+  debug_593:
     .return (rx482_cur)
   rx482_restart:
 .annotate 'line', 4
-    rx482_cur."!cursor_debug"("NEXT ", "colonpair")
+    if_null rx482_debug, debug_594
+    rx482_cur."!cursor_debug"("NEXT", "colonpair")
+  debug_594:
   rx482_fail:
     (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
     lt rx482_pos, -1, rx482_done
@@ -6560,14 +7061,16 @@
     jump $I10
   rx482_done:
     rx482_cur."!cursor_fail"()
-    rx482_cur."!cursor_debug"("FAIL  ", "colonpair")
+    if_null rx482_debug, debug_595
+    rx482_cur."!cursor_debug"("FAIL", "colonpair")
+  debug_595:
     .return (rx482_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("123_1280467477.44751") :method
+.sub "!PREFIX__colonpair"  :subid("123_1282324002.40722") :method
 .annotate 'line', 4
     $P484 = self."!PREFIX__!subrule"("circumfix", ":")
     $P485 = self."!PREFIX__!subrule"("identifier", ":")
@@ -6581,7 +7084,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("124_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "variable"  :subid("124_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx494_tgt
     .local int rx494_pos
@@ -6589,8 +7092,10 @@
     .local int rx494_eos
     .local int rx494_rep
     .local pmc rx494_cur
+    .local pmc rx494_debug
     (rx494_cur, rx494_pos, rx494_tgt, $I10) = self."!cursor_start"()
     rx494_cur."!cursor_caparray"("twigil")
+    getattribute rx494_debug, rx494_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx494_cur
     .local pmc match
     .lex "$/", match
@@ -6602,7 +7107,9 @@
     substr rx494_tgt, rx494_tgt, rx494_off
   rx494_start:
     eq $I10, 1, rx494_restart
-    rx494_cur."!cursor_debug"("START ", "variable")
+    if_null rx494_debug, debug_596
+    rx494_cur."!cursor_debug"("START", "variable")
+  debug_596:
     $I10 = self.'from'()
     ne $I10, -1, rxscan499_done
     goto rxscan499_scan
@@ -6689,8 +7196,8 @@
     add $I11, rx494_pos, 1
     gt $I11, rx494_eos, rx494_fail
     sub $I11, rx494_pos, rx494_off
-    substr $S10, rx494_tgt, $I11, 1
-    ne $S10, "$", rx494_fail
+    ord $I11, rx494_tgt, $I11
+    ne $I11, 36, rx494_fail
     add rx494_pos, 1
     set_addr $I10, rxcap_503_fail
     ($I12, $I11) = rx494_cur."!mark_peek"($I10)
@@ -6728,11 +7235,15 @@
 .annotate 'line', 249
   # rx pass
     rx494_cur."!cursor_pass"(rx494_pos, "variable")
-    rx494_cur."!cursor_debug"("PASS  ", "variable", " at pos=", rx494_pos)
+    if_null rx494_debug, debug_597
+    rx494_cur."!cursor_debug"("PASS", "variable", " at pos=", rx494_pos)
+  debug_597:
     .return (rx494_cur)
   rx494_restart:
 .annotate 'line', 4
-    rx494_cur."!cursor_debug"("NEXT ", "variable")
+    if_null rx494_debug, debug_598
+    rx494_cur."!cursor_debug"("NEXT", "variable")
+  debug_598:
   rx494_fail:
     (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
     lt rx494_pos, -1, rx494_done
@@ -6740,14 +7251,16 @@
     jump $I10
   rx494_done:
     rx494_cur."!cursor_fail"()
-    rx494_cur."!cursor_debug"("FAIL  ", "variable")
+    if_null rx494_debug, debug_599
+    rx494_cur."!cursor_debug"("FAIL", "variable")
+  debug_599:
     .return (rx494_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("125_1280467477.44751") :method
+.sub "!PREFIX__variable"  :subid("125_1282324002.40722") :method
 .annotate 'line', 4
     $P496 = self."!PREFIX__!subrule"("sigil", "")
     $P497 = self."!PREFIX__!subrule"("sigil", "")
@@ -6762,7 +7275,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("126_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "sigil"  :subid("126_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx506_tgt
     .local int rx506_pos
@@ -6770,7 +7283,9 @@
     .local int rx506_eos
     .local int rx506_rep
     .local pmc rx506_cur
+    .local pmc rx506_debug
     (rx506_cur, rx506_pos, rx506_tgt, $I10) = self."!cursor_start"()
+    getattribute rx506_debug, rx506_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx506_cur
     .local pmc match
     .lex "$/", match
@@ -6782,7 +7297,9 @@
     substr rx506_tgt, rx506_tgt, rx506_off
   rx506_start:
     eq $I10, 1, rx506_restart
-    rx506_cur."!cursor_debug"("START ", "sigil")
+    if_null rx506_debug, debug_600
+    rx506_cur."!cursor_debug"("START", "sigil")
+  debug_600:
     $I10 = self.'from'()
     ne $I10, -1, rxscan509_done
     goto rxscan509_scan
@@ -6805,11 +7322,15 @@
     inc rx506_pos
   # rx pass
     rx506_cur."!cursor_pass"(rx506_pos, "sigil")
-    rx506_cur."!cursor_debug"("PASS  ", "sigil", " at pos=", rx506_pos)
+    if_null rx506_debug, debug_601
+    rx506_cur."!cursor_debug"("PASS", "sigil", " at pos=", rx506_pos)
+  debug_601:
     .return (rx506_cur)
   rx506_restart:
 .annotate 'line', 4
-    rx506_cur."!cursor_debug"("NEXT ", "sigil")
+    if_null rx506_debug, debug_602
+    rx506_cur."!cursor_debug"("NEXT", "sigil")
+  debug_602:
   rx506_fail:
     (rx506_rep, rx506_pos, $I10, $P10) = rx506_cur."!mark_fail"(0)
     lt rx506_pos, -1, rx506_done
@@ -6817,14 +7338,16 @@
     jump $I10
   rx506_done:
     rx506_cur."!cursor_fail"()
-    rx506_cur."!cursor_debug"("FAIL  ", "sigil")
+    if_null rx506_debug, debug_603
+    rx506_cur."!cursor_debug"("FAIL", "sigil")
+  debug_603:
     .return (rx506_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("127_1280467477.44751") :method
+.sub "!PREFIX__sigil"  :subid("127_1282324002.40722") :method
 .annotate 'line', 4
     new $P508, "ResizablePMCArray"
     push $P508, "&"
@@ -6836,7 +7359,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("128_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "twigil"  :subid("128_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx511_tgt
     .local int rx511_pos
@@ -6844,7 +7367,9 @@
     .local int rx511_eos
     .local int rx511_rep
     .local pmc rx511_cur
+    .local pmc rx511_debug
     (rx511_cur, rx511_pos, rx511_tgt, $I10) = self."!cursor_start"()
+    getattribute rx511_debug, rx511_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx511_cur
     .local pmc match
     .lex "$/", match
@@ -6856,7 +7381,9 @@
     substr rx511_tgt, rx511_tgt, rx511_off
   rx511_start:
     eq $I10, 1, rx511_restart
-    rx511_cur."!cursor_debug"("START ", "twigil")
+    if_null rx511_debug, debug_604
+    rx511_cur."!cursor_debug"("START", "twigil")
+  debug_604:
     $I10 = self.'from'()
     ne $I10, -1, rxscan514_done
     goto rxscan514_scan
@@ -6879,11 +7406,15 @@
     inc rx511_pos
   # rx pass
     rx511_cur."!cursor_pass"(rx511_pos, "twigil")
-    rx511_cur."!cursor_debug"("PASS  ", "twigil", " at pos=", rx511_pos)
+    if_null rx511_debug, debug_605
+    rx511_cur."!cursor_debug"("PASS", "twigil", " at pos=", rx511_pos)
+  debug_605:
     .return (rx511_cur)
   rx511_restart:
 .annotate 'line', 4
-    rx511_cur."!cursor_debug"("NEXT ", "twigil")
+    if_null rx511_debug, debug_606
+    rx511_cur."!cursor_debug"("NEXT", "twigil")
+  debug_606:
   rx511_fail:
     (rx511_rep, rx511_pos, $I10, $P10) = rx511_cur."!mark_fail"(0)
     lt rx511_pos, -1, rx511_done
@@ -6891,14 +7422,16 @@
     jump $I10
   rx511_done:
     rx511_cur."!cursor_fail"()
-    rx511_cur."!cursor_debug"("FAIL  ", "twigil")
+    if_null rx511_debug, debug_607
+    rx511_cur."!cursor_debug"("FAIL", "twigil")
+  debug_607:
     .return (rx511_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("129_1280467477.44751") :method
+.sub "!PREFIX__twigil"  :subid("129_1282324002.40722") :method
 .annotate 'line', 4
     new $P513, "ResizablePMCArray"
     push $P513, "?"
@@ -6909,7 +7442,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("130_1280467477.44751") :method
+.sub "package_declarator"  :subid("130_1282324002.40722") :method
 .annotate 'line', 259
     $P516 = self."!protoregex"("package_declarator")
     .return ($P516)
@@ -6917,7 +7450,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("131_1280467477.44751") :method
+.sub "!PREFIX__package_declarator"  :subid("131_1282324002.40722") :method
 .annotate 'line', 259
     $P518 = self."!PREFIX__!protoregex"("package_declarator")
     .return ($P518)
@@ -6925,7 +7458,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("132_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_declarator:sym<module>"  :subid("132_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx520_tgt
     .local int rx520_pos
@@ -6933,7 +7466,9 @@
     .local int rx520_eos
     .local int rx520_rep
     .local pmc rx520_cur
+    .local pmc rx520_debug
     (rx520_cur, rx520_pos, rx520_tgt, $I10) = self."!cursor_start"()
+    getattribute rx520_debug, rx520_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx520_cur
     .local pmc match
     .lex "$/", match
@@ -6945,7 +7480,9 @@
     substr rx520_tgt, rx520_tgt, rx520_off
   rx520_start:
     eq $I10, 1, rx520_restart
-    rx520_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
+    if_null rx520_debug, debug_608
+    rx520_cur."!cursor_debug"("START", "package_declarator:sym<module>")
+  debug_608:
     $I10 = self.'from'()
     ne $I10, -1, rxscan524_done
     goto rxscan524_scan
@@ -6989,11 +7526,15 @@
     rx520_pos = $P10."pos"()
   # rx pass
     rx520_cur."!cursor_pass"(rx520_pos, "package_declarator:sym<module>")
-    rx520_cur."!cursor_debug"("PASS  ", "package_declarator:sym<module>", " at pos=", rx520_pos)
+    if_null rx520_debug, debug_609
+    rx520_cur."!cursor_debug"("PASS", "package_declarator:sym<module>", " at pos=", rx520_pos)
+  debug_609:
     .return (rx520_cur)
   rx520_restart:
 .annotate 'line', 4
-    rx520_cur."!cursor_debug"("NEXT ", "package_declarator:sym<module>")
+    if_null rx520_debug, debug_610
+    rx520_cur."!cursor_debug"("NEXT", "package_declarator:sym<module>")
+  debug_610:
   rx520_fail:
     (rx520_rep, rx520_pos, $I10, $P10) = rx520_cur."!mark_fail"(0)
     lt rx520_pos, -1, rx520_done
@@ -7001,14 +7542,16 @@
     jump $I10
   rx520_done:
     rx520_cur."!cursor_fail"()
-    rx520_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<module>")
+    if_null rx520_debug, debug_611
+    rx520_cur."!cursor_debug"("FAIL", "package_declarator:sym<module>")
+  debug_611:
     .return (rx520_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1280467477.44751") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("133_1282324002.40722") :method
 .annotate 'line', 4
     $P522 = self."!PREFIX__!subrule"("package_def", "module")
     new $P523, "ResizablePMCArray"
@@ -7018,7 +7561,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("134_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_declarator:sym<class>"  :subid("134_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx527_tgt
     .local int rx527_pos
@@ -7026,7 +7569,9 @@
     .local int rx527_eos
     .local int rx527_rep
     .local pmc rx527_cur
+    .local pmc rx527_debug
     (rx527_cur, rx527_pos, rx527_tgt, $I10) = self."!cursor_start"()
+    getattribute rx527_debug, rx527_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx527_cur
     .local pmc match
     .lex "$/", match
@@ -7038,7 +7583,9 @@
     substr rx527_tgt, rx527_tgt, rx527_off
   rx527_start:
     eq $I10, 1, rx527_restart
-    rx527_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
+    if_null rx527_debug, debug_612
+    rx527_cur."!cursor_debug"("START", "package_declarator:sym<class>")
+  debug_612:
     $I10 = self.'from'()
     ne $I10, -1, rxscan532_done
     goto rxscan532_scan
@@ -7095,11 +7642,15 @@
     rx527_pos = $P10."pos"()
   # rx pass
     rx527_cur."!cursor_pass"(rx527_pos, "package_declarator:sym<class>")
-    rx527_cur."!cursor_debug"("PASS  ", "package_declarator:sym<class>", " at pos=", rx527_pos)
+    if_null rx527_debug, debug_613
+    rx527_cur."!cursor_debug"("PASS", "package_declarator:sym<class>", " at pos=", rx527_pos)
+  debug_613:
     .return (rx527_cur)
   rx527_restart:
 .annotate 'line', 4
-    rx527_cur."!cursor_debug"("NEXT ", "package_declarator:sym<class>")
+    if_null rx527_debug, debug_614
+    rx527_cur."!cursor_debug"("NEXT", "package_declarator:sym<class>")
+  debug_614:
   rx527_fail:
     (rx527_rep, rx527_pos, $I10, $P10) = rx527_cur."!mark_fail"(0)
     lt rx527_pos, -1, rx527_done
@@ -7107,14 +7658,16 @@
     jump $I10
   rx527_done:
     rx527_cur."!cursor_fail"()
-    rx527_cur."!cursor_debug"("FAIL  ", "package_declarator:sym<class>")
+    if_null rx527_debug, debug_615
+    rx527_cur."!cursor_debug"("FAIL", "package_declarator:sym<class>")
+  debug_615:
     .return (rx527_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1280467477.44751") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("135_1282324002.40722") :method
 .annotate 'line', 4
     $P529 = self."!PREFIX__!subrule"("package_def", "grammar")
     $P530 = self."!PREFIX__!subrule"("package_def", "class")
@@ -7126,7 +7679,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("136_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "package_def"  :subid("136_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx536_tgt
     .local int rx536_pos
@@ -7134,8 +7687,10 @@
     .local int rx536_eos
     .local int rx536_rep
     .local pmc rx536_cur
+    .local pmc rx536_debug
     (rx536_cur, rx536_pos, rx536_tgt, $I10) = self."!cursor_start"()
     rx536_cur."!cursor_caparray"("parent")
+    getattribute rx536_debug, rx536_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx536_cur
     .local pmc match
     .lex "$/", match
@@ -7147,7 +7702,9 @@
     substr rx536_tgt, rx536_tgt, rx536_off
   rx536_start:
     eq $I10, 1, rx536_restart
-    rx536_cur."!cursor_debug"("START ", "package_def")
+    if_null rx536_debug, debug_616
+    rx536_cur."!cursor_debug"("START", "package_def")
+  debug_616:
     $I10 = self.'from'()
     ne $I10, -1, rxscan540_done
     goto rxscan540_scan
@@ -7235,8 +7792,8 @@
     add $I11, rx536_pos, 1
     gt $I11, rx536_eos, rx536_fail
     sub $I11, rx536_pos, rx536_off
-    substr $S10, rx536_tgt, $I11, 1
-    ne $S10, ";", rx536_fail
+    ord $I11, rx536_tgt, $I11
+    ne $I11, 59, rx536_fail
     add rx536_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx536_cur."!cursor_pos"(rx536_pos)
@@ -7316,11 +7873,15 @@
 .annotate 'line', 263
   # rx pass
     rx536_cur."!cursor_pass"(rx536_pos, "package_def")
-    rx536_cur."!cursor_debug"("PASS  ", "package_def", " at pos=", rx536_pos)
+    if_null rx536_debug, debug_617
+    rx536_cur."!cursor_debug"("PASS", "package_def", " at pos=", rx536_pos)
+  debug_617:
     .return (rx536_cur)
   rx536_restart:
 .annotate 'line', 4
-    rx536_cur."!cursor_debug"("NEXT ", "package_def")
+    if_null rx536_debug, debug_618
+    rx536_cur."!cursor_debug"("NEXT", "package_def")
+  debug_618:
   rx536_fail:
     (rx536_rep, rx536_pos, $I10, $P10) = rx536_cur."!mark_fail"(0)
     lt rx536_pos, -1, rx536_done
@@ -7328,14 +7889,16 @@
     jump $I10
   rx536_done:
     rx536_cur."!cursor_fail"()
-    rx536_cur."!cursor_debug"("FAIL  ", "package_def")
+    if_null rx536_debug, debug_619
+    rx536_cur."!cursor_debug"("FAIL", "package_def")
+  debug_619:
     .return (rx536_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("137_1280467477.44751") :method
+.sub "!PREFIX__package_def"  :subid("137_1282324002.40722") :method
 .annotate 'line', 4
     $P538 = self."!PREFIX__!subrule"("ws", "")
     new $P539, "ResizablePMCArray"
@@ -7345,7 +7908,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("138_1280467477.44751") :method
+.sub "scope_declarator"  :subid("138_1282324002.40722") :method
 .annotate 'line', 273
     $P559 = self."!protoregex"("scope_declarator")
     .return ($P559)
@@ -7353,7 +7916,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("139_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator"  :subid("139_1282324002.40722") :method
 .annotate 'line', 273
     $P561 = self."!PREFIX__!protoregex"("scope_declarator")
     .return ($P561)
@@ -7361,7 +7924,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("140_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scope_declarator:sym<my>"  :subid("140_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx563_tgt
     .local int rx563_pos
@@ -7369,7 +7932,9 @@
     .local int rx563_eos
     .local int rx563_rep
     .local pmc rx563_cur
+    .local pmc rx563_debug
     (rx563_cur, rx563_pos, rx563_tgt, $I10) = self."!cursor_start"()
+    getattribute rx563_debug, rx563_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx563_cur
     .local pmc match
     .lex "$/", match
@@ -7381,7 +7946,9 @@
     substr rx563_tgt, rx563_tgt, rx563_off
   rx563_start:
     eq $I10, 1, rx563_restart
-    rx563_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+    if_null rx563_debug, debug_620
+    rx563_cur."!cursor_debug"("START", "scope_declarator:sym<my>")
+  debug_620:
     $I10 = self.'from'()
     ne $I10, -1, rxscan567_done
     goto rxscan567_scan
@@ -7425,11 +7992,15 @@
     rx563_pos = $P10."pos"()
   # rx pass
     rx563_cur."!cursor_pass"(rx563_pos, "scope_declarator:sym<my>")
-    rx563_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<my>", " at pos=", rx563_pos)
+    if_null rx563_debug, debug_621
+    rx563_cur."!cursor_debug"("PASS", "scope_declarator:sym<my>", " at pos=", rx563_pos)
+  debug_621:
     .return (rx563_cur)
   rx563_restart:
 .annotate 'line', 4
-    rx563_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<my>")
+    if_null rx563_debug, debug_622
+    rx563_cur."!cursor_debug"("NEXT", "scope_declarator:sym<my>")
+  debug_622:
   rx563_fail:
     (rx563_rep, rx563_pos, $I10, $P10) = rx563_cur."!mark_fail"(0)
     lt rx563_pos, -1, rx563_done
@@ -7437,14 +8008,16 @@
     jump $I10
   rx563_done:
     rx563_cur."!cursor_fail"()
-    rx563_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<my>")
+    if_null rx563_debug, debug_623
+    rx563_cur."!cursor_debug"("FAIL", "scope_declarator:sym<my>")
+  debug_623:
     .return (rx563_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("141_1282324002.40722") :method
 .annotate 'line', 4
     $P565 = self."!PREFIX__!subrule"("scoped", "my")
     new $P566, "ResizablePMCArray"
@@ -7454,7 +8027,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("142_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scope_declarator:sym<our>"  :subid("142_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx570_tgt
     .local int rx570_pos
@@ -7462,7 +8035,9 @@
     .local int rx570_eos
     .local int rx570_rep
     .local pmc rx570_cur
+    .local pmc rx570_debug
     (rx570_cur, rx570_pos, rx570_tgt, $I10) = self."!cursor_start"()
+    getattribute rx570_debug, rx570_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx570_cur
     .local pmc match
     .lex "$/", match
@@ -7474,7 +8049,9 @@
     substr rx570_tgt, rx570_tgt, rx570_off
   rx570_start:
     eq $I10, 1, rx570_restart
-    rx570_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
+    if_null rx570_debug, debug_624
+    rx570_cur."!cursor_debug"("START", "scope_declarator:sym<our>")
+  debug_624:
     $I10 = self.'from'()
     ne $I10, -1, rxscan574_done
     goto rxscan574_scan
@@ -7518,11 +8095,15 @@
     rx570_pos = $P10."pos"()
   # rx pass
     rx570_cur."!cursor_pass"(rx570_pos, "scope_declarator:sym<our>")
-    rx570_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<our>", " at pos=", rx570_pos)
+    if_null rx570_debug, debug_625
+    rx570_cur."!cursor_debug"("PASS", "scope_declarator:sym<our>", " at pos=", rx570_pos)
+  debug_625:
     .return (rx570_cur)
   rx570_restart:
 .annotate 'line', 4
-    rx570_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<our>")
+    if_null rx570_debug, debug_626
+    rx570_cur."!cursor_debug"("NEXT", "scope_declarator:sym<our>")
+  debug_626:
   rx570_fail:
     (rx570_rep, rx570_pos, $I10, $P10) = rx570_cur."!mark_fail"(0)
     lt rx570_pos, -1, rx570_done
@@ -7530,14 +8111,16 @@
     jump $I10
   rx570_done:
     rx570_cur."!cursor_fail"()
-    rx570_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<our>")
+    if_null rx570_debug, debug_627
+    rx570_cur."!cursor_debug"("FAIL", "scope_declarator:sym<our>")
+  debug_627:
     .return (rx570_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("143_1282324002.40722") :method
 .annotate 'line', 4
     $P572 = self."!PREFIX__!subrule"("scoped", "our")
     new $P573, "ResizablePMCArray"
@@ -7547,7 +8130,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("144_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scope_declarator:sym<has>"  :subid("144_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx577_tgt
     .local int rx577_pos
@@ -7555,7 +8138,9 @@
     .local int rx577_eos
     .local int rx577_rep
     .local pmc rx577_cur
+    .local pmc rx577_debug
     (rx577_cur, rx577_pos, rx577_tgt, $I10) = self."!cursor_start"()
+    getattribute rx577_debug, rx577_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx577_cur
     .local pmc match
     .lex "$/", match
@@ -7567,7 +8152,9 @@
     substr rx577_tgt, rx577_tgt, rx577_off
   rx577_start:
     eq $I10, 1, rx577_restart
-    rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
+    if_null rx577_debug, debug_628
+    rx577_cur."!cursor_debug"("START", "scope_declarator:sym<has>")
+  debug_628:
     $I10 = self.'from'()
     ne $I10, -1, rxscan581_done
     goto rxscan581_scan
@@ -7611,11 +8198,15 @@
     rx577_pos = $P10."pos"()
   # rx pass
     rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<has>")
-    rx577_cur."!cursor_debug"("PASS  ", "scope_declarator:sym<has>", " at pos=", rx577_pos)
+    if_null rx577_debug, debug_629
+    rx577_cur."!cursor_debug"("PASS", "scope_declarator:sym<has>", " at pos=", rx577_pos)
+  debug_629:
     .return (rx577_cur)
   rx577_restart:
 .annotate 'line', 4
-    rx577_cur."!cursor_debug"("NEXT ", "scope_declarator:sym<has>")
+    if_null rx577_debug, debug_630
+    rx577_cur."!cursor_debug"("NEXT", "scope_declarator:sym<has>")
+  debug_630:
   rx577_fail:
     (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
     lt rx577_pos, -1, rx577_done
@@ -7623,14 +8214,16 @@
     jump $I10
   rx577_done:
     rx577_cur."!cursor_fail"()
-    rx577_cur."!cursor_debug"("FAIL  ", "scope_declarator:sym<has>")
+    if_null rx577_debug, debug_631
+    rx577_cur."!cursor_debug"("FAIL", "scope_declarator:sym<has>")
+  debug_631:
     .return (rx577_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1280467477.44751") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("145_1282324002.40722") :method
 .annotate 'line', 4
     $P579 = self."!PREFIX__!subrule"("scoped", "has")
     new $P580, "ResizablePMCArray"
@@ -7640,7 +8233,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("146_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "scoped"  :subid("146_1282324002.40722") :method :outer("11_1282324002.40722")
     .param pmc param_584
 .annotate 'line', 278
     .lex "$*SCOPE", param_584
@@ -7651,7 +8244,9 @@
     .local int rx585_eos
     .local int rx585_rep
     .local pmc rx585_cur
+    .local pmc rx585_debug
     (rx585_cur, rx585_pos, rx585_tgt, $I10) = self."!cursor_start"()
+    getattribute rx585_debug, rx585_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx585_cur
     .local pmc match
     .lex "$/", match
@@ -7663,7 +8258,9 @@
     substr rx585_tgt, rx585_tgt, rx585_off
   rx585_start:
     eq $I10, 1, rx585_restart
-    rx585_cur."!cursor_debug"("START ", "scoped")
+    if_null rx585_debug, debug_632
+    rx585_cur."!cursor_debug"("START", "scoped")
+  debug_632:
     $I10 = self.'from'()
     ne $I10, -1, rxscan590_done
     goto rxscan590_scan
@@ -7722,11 +8319,15 @@
 .annotate 'line', 278
   # rx pass
     rx585_cur."!cursor_pass"(rx585_pos, "scoped")
-    rx585_cur."!cursor_debug"("PASS  ", "scoped", " at pos=", rx585_pos)
+    if_null rx585_debug, debug_633
+    rx585_cur."!cursor_debug"("PASS", "scoped", " at pos=", rx585_pos)
+  debug_633:
     .return (rx585_cur)
   rx585_restart:
 .annotate 'line', 4
-    rx585_cur."!cursor_debug"("NEXT ", "scoped")
+    if_null rx585_debug, debug_634
+    rx585_cur."!cursor_debug"("NEXT", "scoped")
+  debug_634:
   rx585_fail:
     (rx585_rep, rx585_pos, $I10, $P10) = rx585_cur."!mark_fail"(0)
     lt rx585_pos, -1, rx585_done
@@ -7734,14 +8335,16 @@
     jump $I10
   rx585_done:
     rx585_cur."!cursor_fail"()
-    rx585_cur."!cursor_debug"("FAIL  ", "scoped")
+    if_null rx585_debug, debug_635
+    rx585_cur."!cursor_debug"("FAIL", "scoped")
+  debug_635:
     .return (rx585_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("147_1280467477.44751") :method
+.sub "!PREFIX__scoped"  :subid("147_1282324002.40722") :method
 .annotate 'line', 4
     $P587 = self."!PREFIX__!subrule"("ws", "")
     $P588 = self."!PREFIX__!subrule"("ws", "")
@@ -7753,7 +8356,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "typename"  :subid("148_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "typename"  :subid("148_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx597_tgt
     .local int rx597_pos
@@ -7761,7 +8364,9 @@
     .local int rx597_eos
     .local int rx597_rep
     .local pmc rx597_cur
+    .local pmc rx597_debug
     (rx597_cur, rx597_pos, rx597_tgt, $I10) = self."!cursor_start"()
+    getattribute rx597_debug, rx597_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx597_cur
     .local pmc match
     .lex "$/", match
@@ -7773,7 +8378,9 @@
     substr rx597_tgt, rx597_tgt, rx597_off
   rx597_start:
     eq $I10, 1, rx597_restart
-    rx597_cur."!cursor_debug"("START ", "typename")
+    if_null rx597_debug, debug_636
+    rx597_cur."!cursor_debug"("START", "typename")
+  debug_636:
     $I10 = self.'from'()
     ne $I10, -1, rxscan601_done
     goto rxscan601_scan
@@ -7796,11 +8403,15 @@
     rx597_pos = $P10."pos"()
   # rx pass
     rx597_cur."!cursor_pass"(rx597_pos, "typename")
-    rx597_cur."!cursor_debug"("PASS  ", "typename", " at pos=", rx597_pos)
+    if_null rx597_debug, debug_637
+    rx597_cur."!cursor_debug"("PASS", "typename", " at pos=", rx597_pos)
+  debug_637:
     .return (rx597_cur)
   rx597_restart:
 .annotate 'line', 4
-    rx597_cur."!cursor_debug"("NEXT ", "typename")
+    if_null rx597_debug, debug_638
+    rx597_cur."!cursor_debug"("NEXT", "typename")
+  debug_638:
   rx597_fail:
     (rx597_rep, rx597_pos, $I10, $P10) = rx597_cur."!mark_fail"(0)
     lt rx597_pos, -1, rx597_done
@@ -7808,14 +8419,16 @@
     jump $I10
   rx597_done:
     rx597_cur."!cursor_fail"()
-    rx597_cur."!cursor_debug"("FAIL  ", "typename")
+    if_null rx597_debug, debug_639
+    rx597_cur."!cursor_debug"("FAIL", "typename")
+  debug_639:
     .return (rx597_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename"  :subid("149_1280467477.44751") :method
+.sub "!PREFIX__typename"  :subid("149_1282324002.40722") :method
 .annotate 'line', 4
     $P599 = self."!PREFIX__!subrule"("name", "")
     new $P600, "ResizablePMCArray"
@@ -7825,7 +8438,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "declarator"  :subid("150_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "declarator"  :subid("150_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx603_tgt
     .local int rx603_pos
@@ -7833,7 +8446,9 @@
     .local int rx603_eos
     .local int rx603_rep
     .local pmc rx603_cur
+    .local pmc rx603_debug
     (rx603_cur, rx603_pos, rx603_tgt, $I10) = self."!cursor_start"()
+    getattribute rx603_debug, rx603_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx603_cur
     .local pmc match
     .lex "$/", match
@@ -7845,7 +8460,9 @@
     substr rx603_tgt, rx603_tgt, rx603_off
   rx603_start:
     eq $I10, 1, rx603_restart
-    rx603_cur."!cursor_debug"("START ", "declarator")
+    if_null rx603_debug, debug_640
+    rx603_cur."!cursor_debug"("START", "declarator")
+  debug_640:
     $I10 = self.'from'()
     ne $I10, -1, rxscan608_done
     goto rxscan608_scan
@@ -7884,11 +8501,15 @@
 .annotate 'line', 285
   # rx pass
     rx603_cur."!cursor_pass"(rx603_pos, "declarator")
-    rx603_cur."!cursor_debug"("PASS  ", "declarator", " at pos=", rx603_pos)
+    if_null rx603_debug, debug_641
+    rx603_cur."!cursor_debug"("PASS", "declarator", " at pos=", rx603_pos)
+  debug_641:
     .return (rx603_cur)
   rx603_restart:
 .annotate 'line', 4
-    rx603_cur."!cursor_debug"("NEXT ", "declarator")
+    if_null rx603_debug, debug_642
+    rx603_cur."!cursor_debug"("NEXT", "declarator")
+  debug_642:
   rx603_fail:
     (rx603_rep, rx603_pos, $I10, $P10) = rx603_cur."!mark_fail"(0)
     lt rx603_pos, -1, rx603_done
@@ -7896,14 +8517,16 @@
     jump $I10
   rx603_done:
     rx603_cur."!cursor_fail"()
-    rx603_cur."!cursor_debug"("FAIL  ", "declarator")
+    if_null rx603_debug, debug_643
+    rx603_cur."!cursor_debug"("FAIL", "declarator")
+  debug_643:
     .return (rx603_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator"  :subid("151_1280467477.44751") :method
+.sub "!PREFIX__declarator"  :subid("151_1282324002.40722") :method
 .annotate 'line', 4
     $P605 = self."!PREFIX__!subrule"("routine_declarator", "")
     $P606 = self."!PREFIX__!subrule"("variable_declarator", "")
@@ -7915,7 +8538,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("152_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "variable_declarator"  :subid("152_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx611_tgt
     .local int rx611_pos
@@ -7923,7 +8546,9 @@
     .local int rx611_eos
     .local int rx611_rep
     .local pmc rx611_cur
+    .local pmc rx611_debug
     (rx611_cur, rx611_pos, rx611_tgt, $I10) = self."!cursor_start"()
+    getattribute rx611_debug, rx611_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx611_cur
     .local pmc match
     .lex "$/", match
@@ -7935,7 +8560,9 @@
     substr rx611_tgt, rx611_tgt, rx611_off
   rx611_start:
     eq $I10, 1, rx611_restart
-    rx611_cur."!cursor_debug"("START ", "variable_declarator")
+    if_null rx611_debug, debug_644
+    rx611_cur."!cursor_debug"("START", "variable_declarator")
+  debug_644:
     $I10 = self.'from'()
     ne $I10, -1, rxscan615_done
     goto rxscan615_scan
@@ -7958,11 +8585,15 @@
     rx611_pos = $P10."pos"()
   # rx pass
     rx611_cur."!cursor_pass"(rx611_pos, "variable_declarator")
-    rx611_cur."!cursor_debug"("PASS  ", "variable_declarator", " at pos=", rx611_pos)
+    if_null rx611_debug, debug_645
+    rx611_cur."!cursor_debug"("PASS", "variable_declarator", " at pos=", rx611_pos)
+  debug_645:
     .return (rx611_cur)
   rx611_restart:
 .annotate 'line', 4
-    rx611_cur."!cursor_debug"("NEXT ", "variable_declarator")
+    if_null rx611_debug, debug_646
+    rx611_cur."!cursor_debug"("NEXT", "variable_declarator")
+  debug_646:
   rx611_fail:
     (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
     lt rx611_pos, -1, rx611_done
@@ -7970,14 +8601,16 @@
     jump $I10
   rx611_done:
     rx611_cur."!cursor_fail"()
-    rx611_cur."!cursor_debug"("FAIL  ", "variable_declarator")
+    if_null rx611_debug, debug_647
+    rx611_cur."!cursor_debug"("FAIL", "variable_declarator")
+  debug_647:
     .return (rx611_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("153_1280467477.44751") :method
+.sub "!PREFIX__variable_declarator"  :subid("153_1282324002.40722") :method
 .annotate 'line', 4
     $P613 = self."!PREFIX__!subrule"("variable", "")
     new $P614, "ResizablePMCArray"
@@ -7987,7 +8620,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("154_1280467477.44751") :method
+.sub "routine_declarator"  :subid("154_1282324002.40722") :method
 .annotate 'line', 292
     $P617 = self."!protoregex"("routine_declarator")
     .return ($P617)
@@ -7995,7 +8628,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("155_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator"  :subid("155_1282324002.40722") :method
 .annotate 'line', 292
     $P619 = self."!PREFIX__!protoregex"("routine_declarator")
     .return ($P619)
@@ -8003,7 +8636,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("156_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_declarator:sym<sub>"  :subid("156_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx621_tgt
     .local int rx621_pos
@@ -8011,7 +8644,9 @@
     .local int rx621_eos
     .local int rx621_rep
     .local pmc rx621_cur
+    .local pmc rx621_debug
     (rx621_cur, rx621_pos, rx621_tgt, $I10) = self."!cursor_start"()
+    getattribute rx621_debug, rx621_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx621_cur
     .local pmc match
     .lex "$/", match
@@ -8023,7 +8658,9 @@
     substr rx621_tgt, rx621_tgt, rx621_off
   rx621_start:
     eq $I10, 1, rx621_restart
-    rx621_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+    if_null rx621_debug, debug_648
+    rx621_cur."!cursor_debug"("START", "routine_declarator:sym<sub>")
+  debug_648:
     $I10 = self.'from'()
     ne $I10, -1, rxscan625_done
     goto rxscan625_scan
@@ -8067,11 +8704,15 @@
     rx621_pos = $P10."pos"()
   # rx pass
     rx621_cur."!cursor_pass"(rx621_pos, "routine_declarator:sym<sub>")
-    rx621_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<sub>", " at pos=", rx621_pos)
+    if_null rx621_debug, debug_649
+    rx621_cur."!cursor_debug"("PASS", "routine_declarator:sym<sub>", " at pos=", rx621_pos)
+  debug_649:
     .return (rx621_cur)
   rx621_restart:
 .annotate 'line', 4
-    rx621_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<sub>")
+    if_null rx621_debug, debug_650
+    rx621_cur."!cursor_debug"("NEXT", "routine_declarator:sym<sub>")
+  debug_650:
   rx621_fail:
     (rx621_rep, rx621_pos, $I10, $P10) = rx621_cur."!mark_fail"(0)
     lt rx621_pos, -1, rx621_done
@@ -8079,14 +8720,16 @@
     jump $I10
   rx621_done:
     rx621_cur."!cursor_fail"()
-    rx621_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<sub>")
+    if_null rx621_debug, debug_651
+    rx621_cur."!cursor_debug"("FAIL", "routine_declarator:sym<sub>")
+  debug_651:
     .return (rx621_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("157_1282324002.40722") :method
 .annotate 'line', 4
     $P623 = self."!PREFIX__!subrule"("routine_def", "sub")
     new $P624, "ResizablePMCArray"
@@ -8096,7 +8739,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("158_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_declarator:sym<method>"  :subid("158_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx628_tgt
     .local int rx628_pos
@@ -8104,7 +8747,9 @@
     .local int rx628_eos
     .local int rx628_rep
     .local pmc rx628_cur
+    .local pmc rx628_debug
     (rx628_cur, rx628_pos, rx628_tgt, $I10) = self."!cursor_start"()
+    getattribute rx628_debug, rx628_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx628_cur
     .local pmc match
     .lex "$/", match
@@ -8116,7 +8761,9 @@
     substr rx628_tgt, rx628_tgt, rx628_off
   rx628_start:
     eq $I10, 1, rx628_restart
-    rx628_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
+    if_null rx628_debug, debug_652
+    rx628_cur."!cursor_debug"("START", "routine_declarator:sym<method>")
+  debug_652:
     $I10 = self.'from'()
     ne $I10, -1, rxscan632_done
     goto rxscan632_scan
@@ -8160,11 +8807,15 @@
     rx628_pos = $P10."pos"()
   # rx pass
     rx628_cur."!cursor_pass"(rx628_pos, "routine_declarator:sym<method>")
-    rx628_cur."!cursor_debug"("PASS  ", "routine_declarator:sym<method>", " at pos=", rx628_pos)
+    if_null rx628_debug, debug_653
+    rx628_cur."!cursor_debug"("PASS", "routine_declarator:sym<method>", " at pos=", rx628_pos)
+  debug_653:
     .return (rx628_cur)
   rx628_restart:
 .annotate 'line', 4
-    rx628_cur."!cursor_debug"("NEXT ", "routine_declarator:sym<method>")
+    if_null rx628_debug, debug_654
+    rx628_cur."!cursor_debug"("NEXT", "routine_declarator:sym<method>")
+  debug_654:
   rx628_fail:
     (rx628_rep, rx628_pos, $I10, $P10) = rx628_cur."!mark_fail"(0)
     lt rx628_pos, -1, rx628_done
@@ -8172,14 +8823,16 @@
     jump $I10
   rx628_done:
     rx628_cur."!cursor_fail"()
-    rx628_cur."!cursor_debug"("FAIL  ", "routine_declarator:sym<method>")
+    if_null rx628_debug, debug_655
+    rx628_cur."!cursor_debug"("FAIL", "routine_declarator:sym<method>")
+  debug_655:
     .return (rx628_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1280467477.44751") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("159_1282324002.40722") :method
 .annotate 'line', 4
     $P630 = self."!PREFIX__!subrule"("method_def", "method")
     new $P631, "ResizablePMCArray"
@@ -8189,7 +8842,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("160_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "routine_def"  :subid("160_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx635_tgt
     .local int rx635_pos
@@ -8197,8 +8850,10 @@
     .local int rx635_eos
     .local int rx635_rep
     .local pmc rx635_cur
+    .local pmc rx635_debug
     (rx635_cur, rx635_pos, rx635_tgt, $I10) = self."!cursor_start"()
-    rx635_cur."!cursor_caparray"("sigil", "deflongname")
+    rx635_cur."!cursor_caparray"("deflongname", "sigil")
+    getattribute rx635_debug, rx635_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx635_cur
     .local pmc match
     .lex "$/", match
@@ -8210,7 +8865,9 @@
     substr rx635_tgt, rx635_tgt, rx635_off
   rx635_start:
     eq $I10, 1, rx635_restart
-    rx635_cur."!cursor_debug"("START ", "routine_def")
+    if_null rx635_debug, debug_656
+    rx635_cur."!cursor_debug"("START", "routine_def")
+  debug_656:
     $I10 = self.'from'()
     ne $I10, -1, rxscan639_done
     goto rxscan639_scan
@@ -8250,8 +8907,8 @@
     add $I11, rx635_pos, 1
     gt $I11, rx635_eos, rx635_fail
     sub $I11, rx635_pos, rx635_off
-    substr $S10, rx635_tgt, $I11, 1
-    ne $S10, "&", rx635_fail
+    ord $I11, rx635_tgt, $I11
+    ne $I11, 38, rx635_fail
     add rx635_pos, 1
     set_addr $I10, rxquantr643_done
     (rx635_rep) = rx635_cur."!mark_commit"($I10)
@@ -8311,8 +8968,8 @@
     add $I11, rx635_pos, 1
     gt $I11, rx635_eos, rx635_fail
     sub $I11, rx635_pos, rx635_off
-    substr $S10, rx635_tgt, $I11, 1
-    ne $S10, "(", rx635_fail
+    ord $I11, rx635_tgt, $I11
+    ne $I11, 40, rx635_fail
     add rx635_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx635_cur."!cursor_pos"(rx635_pos)
@@ -8335,8 +8992,8 @@
     add $I11, rx635_pos, 1
     gt $I11, rx635_eos, rx635_fail
     sub $I11, rx635_pos, rx635_off
-    substr $S10, rx635_tgt, $I11, 1
-    ne $S10, ")", rx635_fail
+    ord $I11, rx635_tgt, $I11
+    ne $I11, 41, rx635_fail
     add rx635_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx635_cur."!cursor_pos"(rx635_pos)
@@ -8383,11 +9040,15 @@
 .annotate 'line', 296
   # rx pass
     rx635_cur."!cursor_pass"(rx635_pos, "routine_def")
-    rx635_cur."!cursor_debug"("PASS  ", "routine_def", " at pos=", rx635_pos)
+    if_null rx635_debug, debug_657
+    rx635_cur."!cursor_debug"("PASS", "routine_def", " at pos=", rx635_pos)
+  debug_657:
     .return (rx635_cur)
   rx635_restart:
 .annotate 'line', 4
-    rx635_cur."!cursor_debug"("NEXT ", "routine_def")
+    if_null rx635_debug, debug_658
+    rx635_cur."!cursor_debug"("NEXT", "routine_def")
+  debug_658:
   rx635_fail:
     (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
     lt rx635_pos, -1, rx635_done
@@ -8395,14 +9056,16 @@
     jump $I10
   rx635_done:
     rx635_cur."!cursor_fail"()
-    rx635_cur."!cursor_debug"("FAIL  ", "routine_def")
+    if_null rx635_debug, debug_659
+    rx635_cur."!cursor_debug"("FAIL", "routine_def")
+  debug_659:
     .return (rx635_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("161_1280467477.44751") :method
+.sub "!PREFIX__routine_def"  :subid("161_1282324002.40722") :method
 .annotate 'line', 4
     $P637 = self."!PREFIX__!subrule"("ws", "")
     new $P638, "ResizablePMCArray"
@@ -8412,7 +9075,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("162_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "method_def"  :subid("162_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx658_tgt
     .local int rx658_pos
@@ -8420,8 +9083,10 @@
     .local int rx658_eos
     .local int rx658_rep
     .local pmc rx658_cur
+    .local pmc rx658_debug
     (rx658_cur, rx658_pos, rx658_tgt, $I10) = self."!cursor_start"()
     rx658_cur."!cursor_caparray"("deflongname")
+    getattribute rx658_debug, rx658_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx658_cur
     .local pmc match
     .lex "$/", match
@@ -8433,7 +9098,9 @@
     substr rx658_tgt, rx658_tgt, rx658_off
   rx658_start:
     eq $I10, 1, rx658_restart
-    rx658_cur."!cursor_debug"("START ", "method_def")
+    if_null rx658_debug, debug_660
+    rx658_cur."!cursor_debug"("START", "method_def")
+  debug_660:
     $I10 = self.'from'()
     ne $I10, -1, rxscan662_done
     goto rxscan662_scan
@@ -8502,8 +9169,8 @@
     add $I11, rx658_pos, 1
     gt $I11, rx658_eos, rx658_fail
     sub $I11, rx658_pos, rx658_off
-    substr $S10, rx658_tgt, $I11, 1
-    ne $S10, "(", rx658_fail
+    ord $I11, rx658_tgt, $I11
+    ne $I11, 40, rx658_fail
     add rx658_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx658_cur."!cursor_pos"(rx658_pos)
@@ -8526,8 +9193,8 @@
     add $I11, rx658_pos, 1
     gt $I11, rx658_eos, rx658_fail
     sub $I11, rx658_pos, rx658_off
-    substr $S10, rx658_tgt, $I11, 1
-    ne $S10, ")", rx658_fail
+    ord $I11, rx658_tgt, $I11
+    ne $I11, 41, rx658_fail
     add rx658_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx658_cur."!cursor_pos"(rx658_pos)
@@ -8574,11 +9241,15 @@
 .annotate 'line', 304
   # rx pass
     rx658_cur."!cursor_pass"(rx658_pos, "method_def")
-    rx658_cur."!cursor_debug"("PASS  ", "method_def", " at pos=", rx658_pos)
+    if_null rx658_debug, debug_661
+    rx658_cur."!cursor_debug"("PASS", "method_def", " at pos=", rx658_pos)
+  debug_661:
     .return (rx658_cur)
   rx658_restart:
 .annotate 'line', 4
-    rx658_cur."!cursor_debug"("NEXT ", "method_def")
+    if_null rx658_debug, debug_662
+    rx658_cur."!cursor_debug"("NEXT", "method_def")
+  debug_662:
   rx658_fail:
     (rx658_rep, rx658_pos, $I10, $P10) = rx658_cur."!mark_fail"(0)
     lt rx658_pos, -1, rx658_done
@@ -8586,14 +9257,16 @@
     jump $I10
   rx658_done:
     rx658_cur."!cursor_fail"()
-    rx658_cur."!cursor_debug"("FAIL  ", "method_def")
+    if_null rx658_debug, debug_663
+    rx658_cur."!cursor_debug"("FAIL", "method_def")
+  debug_663:
     .return (rx658_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("163_1280467477.44751") :method
+.sub "!PREFIX__method_def"  :subid("163_1282324002.40722") :method
 .annotate 'line', 4
     $P660 = self."!PREFIX__!subrule"("ws", "")
     new $P661, "ResizablePMCArray"
@@ -8603,7 +9276,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator"  :subid("164_1280467477.44751") :method
+.sub "multi_declarator"  :subid("164_1282324002.40722") :method
 .annotate 'line', 312
     $P678 = self."!protoregex"("multi_declarator")
     .return ($P678)
@@ -8611,7 +9284,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator"  :subid("165_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator"  :subid("165_1282324002.40722") :method
 .annotate 'line', 312
     $P680 = self."!PREFIX__!protoregex"("multi_declarator")
     .return ($P680)
@@ -8619,7 +9292,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<multi>"  :subid("166_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "multi_declarator:sym<multi>"  :subid("166_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 314
     new $P682, "Undef"
     .lex "$*MULTINESS", $P682
@@ -8630,7 +9303,9 @@
     .local int rx683_eos
     .local int rx683_rep
     .local pmc rx683_cur
+    .local pmc rx683_debug
     (rx683_cur, rx683_pos, rx683_tgt, $I10) = self."!cursor_start"()
+    getattribute rx683_debug, rx683_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx683_cur
     .local pmc match
     .lex "$/", match
@@ -8642,7 +9317,9 @@
     substr rx683_tgt, rx683_tgt, rx683_off
   rx683_start:
     eq $I10, 1, rx683_restart
-    rx683_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
+    if_null rx683_debug, debug_664
+    rx683_cur."!cursor_debug"("START", "multi_declarator:sym<multi>")
+  debug_664:
     $I10 = self.'from'()
     ne $I10, -1, rxscan687_done
     goto rxscan687_scan
@@ -8720,11 +9397,15 @@
 .annotate 'line', 313
   # rx pass
     rx683_cur."!cursor_pass"(rx683_pos, "multi_declarator:sym<multi>")
-    rx683_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<multi>", " at pos=", rx683_pos)
+    if_null rx683_debug, debug_665
+    rx683_cur."!cursor_debug"("PASS", "multi_declarator:sym<multi>", " at pos=", rx683_pos)
+  debug_665:
     .return (rx683_cur)
   rx683_restart:
 .annotate 'line', 4
-    rx683_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<multi>")
+    if_null rx683_debug, debug_666
+    rx683_cur."!cursor_debug"("NEXT", "multi_declarator:sym<multi>")
+  debug_666:
   rx683_fail:
     (rx683_rep, rx683_pos, $I10, $P10) = rx683_cur."!mark_fail"(0)
     lt rx683_pos, -1, rx683_done
@@ -8732,14 +9413,16 @@
     jump $I10
   rx683_done:
     rx683_cur."!cursor_fail"()
-    rx683_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<multi>")
+    if_null rx683_debug, debug_667
+    rx683_cur."!cursor_debug"("FAIL", "multi_declarator:sym<multi>")
+  debug_667:
     .return (rx683_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator:sym<multi>"  :subid("167_1282324002.40722") :method
 .annotate 'line', 4
     $P685 = self."!PREFIX__!subrule"("ws", "multi")
     new $P686, "ResizablePMCArray"
@@ -8749,7 +9432,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "multi_declarator:sym<null>"  :subid("168_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "multi_declarator:sym<null>"  :subid("168_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 319
     new $P692, "Undef"
     .lex "$*MULTINESS", $P692
@@ -8760,7 +9443,9 @@
     .local int rx693_eos
     .local int rx693_rep
     .local pmc rx693_cur
+    .local pmc rx693_debug
     (rx693_cur, rx693_pos, rx693_tgt, $I10) = self."!cursor_start"()
+    getattribute rx693_debug, rx693_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx693_cur
     .local pmc match
     .lex "$/", match
@@ -8772,7 +9457,9 @@
     substr rx693_tgt, rx693_tgt, rx693_off
   rx693_start:
     eq $I10, 1, rx693_restart
-    rx693_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+    if_null rx693_debug, debug_668
+    rx693_cur."!cursor_debug"("START", "multi_declarator:sym<null>")
+  debug_668:
     $I10 = self.'from'()
     ne $I10, -1, rxscan697_done
     goto rxscan697_scan
@@ -8801,11 +9488,15 @@
 .annotate 'line', 318
   # rx pass
     rx693_cur."!cursor_pass"(rx693_pos, "multi_declarator:sym<null>")
-    rx693_cur."!cursor_debug"("PASS  ", "multi_declarator:sym<null>", " at pos=", rx693_pos)
+    if_null rx693_debug, debug_669
+    rx693_cur."!cursor_debug"("PASS", "multi_declarator:sym<null>", " at pos=", rx693_pos)
+  debug_669:
     .return (rx693_cur)
   rx693_restart:
 .annotate 'line', 4
-    rx693_cur."!cursor_debug"("NEXT ", "multi_declarator:sym<null>")
+    if_null rx693_debug, debug_670
+    rx693_cur."!cursor_debug"("NEXT", "multi_declarator:sym<null>")
+  debug_670:
   rx693_fail:
     (rx693_rep, rx693_pos, $I10, $P10) = rx693_cur."!mark_fail"(0)
     lt rx693_pos, -1, rx693_done
@@ -8813,14 +9504,16 @@
     jump $I10
   rx693_done:
     rx693_cur."!cursor_fail"()
-    rx693_cur."!cursor_debug"("FAIL  ", "multi_declarator:sym<null>")
+    if_null rx693_debug, debug_671
+    rx693_cur."!cursor_debug"("FAIL", "multi_declarator:sym<null>")
+  debug_671:
     .return (rx693_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1280467477.44751") :method
+.sub "!PREFIX__multi_declarator:sym<null>"  :subid("169_1282324002.40722") :method
 .annotate 'line', 4
     $P695 = self."!PREFIX__!subrule"("declarator", "")
     new $P696, "ResizablePMCArray"
@@ -8830,7 +9523,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("170_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "signature"  :subid("170_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx700_tgt
     .local int rx700_pos
@@ -8838,8 +9531,10 @@
     .local int rx700_eos
     .local int rx700_rep
     .local pmc rx700_cur
+    .local pmc rx700_debug
     (rx700_cur, rx700_pos, rx700_tgt, $I10) = self."!cursor_start"()
     rx700_cur."!cursor_caparray"("parameter")
+    getattribute rx700_debug, rx700_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx700_cur
     .local pmc match
     .lex "$/", match
@@ -8851,7 +9546,9 @@
     substr rx700_tgt, rx700_tgt, rx700_off
   rx700_start:
     eq $I10, 1, rx700_restart
-    rx700_cur."!cursor_debug"("START ", "signature")
+    if_null rx700_debug, debug_672
+    rx700_cur."!cursor_debug"("START", "signature")
+  debug_672:
     $I10 = self.'from'()
     ne $I10, -1, rxscan703_done
     goto rxscan703_scan
@@ -8898,8 +9595,8 @@
     add $I11, rx700_pos, 1
     gt $I11, rx700_eos, rx700_fail
     sub $I11, rx700_pos, rx700_off
-    substr $S10, rx700_tgt, $I11, 1
-    ne $S10, ",", rx700_fail
+    ord $I11, rx700_tgt, $I11
+    ne $I11, 44, rx700_fail
     add rx700_pos, 1
     goto rxquantr705_loop
   rxquantr705_done:
@@ -8908,11 +9605,15 @@
   rxquantr704_done:
   # rx pass
     rx700_cur."!cursor_pass"(rx700_pos, "signature")
-    rx700_cur."!cursor_debug"("PASS  ", "signature", " at pos=", rx700_pos)
+    if_null rx700_debug, debug_673
+    rx700_cur."!cursor_debug"("PASS", "signature", " at pos=", rx700_pos)
+  debug_673:
     .return (rx700_cur)
   rx700_restart:
 .annotate 'line', 4
-    rx700_cur."!cursor_debug"("NEXT ", "signature")
+    if_null rx700_debug, debug_674
+    rx700_cur."!cursor_debug"("NEXT", "signature")
+  debug_674:
   rx700_fail:
     (rx700_rep, rx700_pos, $I10, $P10) = rx700_cur."!mark_fail"(0)
     lt rx700_pos, -1, rx700_done
@@ -8920,14 +9621,16 @@
     jump $I10
   rx700_done:
     rx700_cur."!cursor_fail"()
-    rx700_cur."!cursor_debug"("FAIL  ", "signature")
+    if_null rx700_debug, debug_675
+    rx700_cur."!cursor_debug"("FAIL", "signature")
+  debug_675:
     .return (rx700_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("171_1280467477.44751") :method
+.sub "!PREFIX__signature"  :subid("171_1282324002.40722") :method
 .annotate 'line', 4
     new $P702, "ResizablePMCArray"
     push $P702, ""
@@ -8936,7 +9639,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("172_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "parameter"  :subid("172_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx707_tgt
     .local int rx707_pos
@@ -8944,8 +9647,10 @@
     .local int rx707_eos
     .local int rx707_rep
     .local pmc rx707_cur
+    .local pmc rx707_debug
     (rx707_cur, rx707_pos, rx707_tgt, $I10) = self."!cursor_start"()
-    rx707_cur."!cursor_caparray"("typename", "default_value")
+    rx707_cur."!cursor_caparray"("default_value", "typename")
+    getattribute rx707_debug, rx707_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx707_cur
     .local pmc match
     .lex "$/", match
@@ -8957,7 +9662,9 @@
     substr rx707_tgt, rx707_tgt, rx707_off
   rx707_start:
     eq $I10, 1, rx707_restart
-    rx707_cur."!cursor_debug"("START ", "parameter")
+    if_null rx707_debug, debug_676
+    rx707_cur."!cursor_debug"("START", "parameter")
+  debug_676:
     $I10 = self.'from'()
     ne $I10, -1, rxscan710_done
     goto rxscan710_scan
@@ -9005,8 +9712,8 @@
     add $I11, rx707_pos, 1
     gt $I11, rx707_eos, rx707_fail
     sub $I11, rx707_pos, rx707_off
-    substr $S10, rx707_tgt, $I11, 1
-    ne $S10, "*", rx707_fail
+    ord $I11, rx707_tgt, $I11
+    ne $I11, 42, rx707_fail
     add rx707_pos, 1
     set_addr $I10, rxcap_713_fail
     ($I12, $I11) = rx707_cur."!mark_peek"($I10)
@@ -9059,8 +9766,8 @@
     add $I11, rx707_pos, 1
     gt $I11, rx707_eos, rx707_fail
     sub $I11, rx707_pos, rx707_off
-    substr $S10, rx707_tgt, $I11, 1
-    ne $S10, "?", rx707_fail
+    ord $I11, rx707_tgt, $I11
+    ne $I11, 63, rx707_fail
     add rx707_pos, 1
     goto alt715_end
   alt715_1:
@@ -9070,8 +9777,8 @@
     add $I11, rx707_pos, 1
     gt $I11, rx707_eos, rx707_fail
     sub $I11, rx707_pos, rx707_off
-    substr $S10, rx707_tgt, $I11, 1
-    ne $S10, "!", rx707_fail
+    ord $I11, rx707_tgt, $I11
+    ne $I11, 33, rx707_fail
     add rx707_pos, 1
     goto alt715_end
   alt715_2:
@@ -9112,11 +9819,15 @@
 .annotate 'line', 325
   # rx pass
     rx707_cur."!cursor_pass"(rx707_pos, "parameter")
-    rx707_cur."!cursor_debug"("PASS  ", "parameter", " at pos=", rx707_pos)
+    if_null rx707_debug, debug_677
+    rx707_cur."!cursor_debug"("PASS", "parameter", " at pos=", rx707_pos)
+  debug_677:
     .return (rx707_cur)
   rx707_restart:
 .annotate 'line', 4
-    rx707_cur."!cursor_debug"("NEXT ", "parameter")
+    if_null rx707_debug, debug_678
+    rx707_cur."!cursor_debug"("NEXT", "parameter")
+  debug_678:
   rx707_fail:
     (rx707_rep, rx707_pos, $I10, $P10) = rx707_cur."!mark_fail"(0)
     lt rx707_pos, -1, rx707_done
@@ -9124,14 +9835,16 @@
     jump $I10
   rx707_done:
     rx707_cur."!cursor_fail"()
-    rx707_cur."!cursor_debug"("FAIL  ", "parameter")
+    if_null rx707_debug, debug_679
+    rx707_cur."!cursor_debug"("FAIL", "parameter")
+  debug_679:
     .return (rx707_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("173_1280467477.44751") :method
+.sub "!PREFIX__parameter"  :subid("173_1282324002.40722") :method
 .annotate 'line', 4
     new $P709, "ResizablePMCArray"
     push $P709, ""
@@ -9140,7 +9853,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("174_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "param_var"  :subid("174_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx720_tgt
     .local int rx720_pos
@@ -9148,8 +9861,10 @@
     .local int rx720_eos
     .local int rx720_rep
     .local pmc rx720_cur
+    .local pmc rx720_debug
     (rx720_cur, rx720_pos, rx720_tgt, $I10) = self."!cursor_start"()
     rx720_cur."!cursor_caparray"("twigil")
+    getattribute rx720_debug, rx720_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx720_cur
     .local pmc match
     .lex "$/", match
@@ -9161,7 +9876,9 @@
     substr rx720_tgt, rx720_tgt, rx720_off
   rx720_start:
     eq $I10, 1, rx720_restart
-    rx720_cur."!cursor_debug"("START ", "param_var")
+    if_null rx720_debug, debug_680
+    rx720_cur."!cursor_debug"("START", "param_var")
+  debug_680:
     $I10 = self.'from'()
     ne $I10, -1, rxscan724_done
     goto rxscan724_scan
@@ -9240,11 +9957,15 @@
 .annotate 'line', 334
   # rx pass
     rx720_cur."!cursor_pass"(rx720_pos, "param_var")
-    rx720_cur."!cursor_debug"("PASS  ", "param_var", " at pos=", rx720_pos)
+    if_null rx720_debug, debug_681
+    rx720_cur."!cursor_debug"("PASS", "param_var", " at pos=", rx720_pos)
+  debug_681:
     .return (rx720_cur)
   rx720_restart:
 .annotate 'line', 4
-    rx720_cur."!cursor_debug"("NEXT ", "param_var")
+    if_null rx720_debug, debug_682
+    rx720_cur."!cursor_debug"("NEXT", "param_var")
+  debug_682:
   rx720_fail:
     (rx720_rep, rx720_pos, $I10, $P10) = rx720_cur."!mark_fail"(0)
     lt rx720_pos, -1, rx720_done
@@ -9252,14 +9973,16 @@
     jump $I10
   rx720_done:
     rx720_cur."!cursor_fail"()
-    rx720_cur."!cursor_debug"("FAIL  ", "param_var")
+    if_null rx720_debug, debug_683
+    rx720_cur."!cursor_debug"("FAIL", "param_var")
+  debug_683:
     .return (rx720_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("175_1280467477.44751") :method
+.sub "!PREFIX__param_var"  :subid("175_1282324002.40722") :method
 .annotate 'line', 4
     $P722 = self."!PREFIX__!subrule"("sigil", "")
     new $P723, "ResizablePMCArray"
@@ -9269,7 +9992,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("176_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "named_param"  :subid("176_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx730_tgt
     .local int rx730_pos
@@ -9277,7 +10000,9 @@
     .local int rx730_eos
     .local int rx730_rep
     .local pmc rx730_cur
+    .local pmc rx730_debug
     (rx730_cur, rx730_pos, rx730_tgt, $I10) = self."!cursor_start"()
+    getattribute rx730_debug, rx730_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx730_cur
     .local pmc match
     .lex "$/", match
@@ -9289,7 +10014,9 @@
     substr rx730_tgt, rx730_tgt, rx730_off
   rx730_start:
     eq $I10, 1, rx730_restart
-    rx730_cur."!cursor_debug"("START ", "named_param")
+    if_null rx730_debug, debug_684
+    rx730_cur."!cursor_debug"("START", "named_param")
+  debug_684:
     $I10 = self.'from'()
     ne $I10, -1, rxscan734_done
     goto rxscan734_scan
@@ -9307,8 +10034,8 @@
     add $I11, rx730_pos, 1
     gt $I11, rx730_eos, rx730_fail
     sub $I11, rx730_pos, rx730_off
-    substr $S10, rx730_tgt, $I11, 1
-    ne $S10, ":", rx730_fail
+    ord $I11, rx730_tgt, $I11
+    ne $I11, 58, rx730_fail
     add rx730_pos, 1
   # rx subrule "param_var" subtype=capture negate=
     rx730_cur."!cursor_pos"(rx730_pos)
@@ -9320,11 +10047,15 @@
 .annotate 'line', 339
   # rx pass
     rx730_cur."!cursor_pass"(rx730_pos, "named_param")
-    rx730_cur."!cursor_debug"("PASS  ", "named_param", " at pos=", rx730_pos)
+    if_null rx730_debug, debug_685
+    rx730_cur."!cursor_debug"("PASS", "named_param", " at pos=", rx730_pos)
+  debug_685:
     .return (rx730_cur)
   rx730_restart:
 .annotate 'line', 4
-    rx730_cur."!cursor_debug"("NEXT ", "named_param")
+    if_null rx730_debug, debug_686
+    rx730_cur."!cursor_debug"("NEXT", "named_param")
+  debug_686:
   rx730_fail:
     (rx730_rep, rx730_pos, $I10, $P10) = rx730_cur."!mark_fail"(0)
     lt rx730_pos, -1, rx730_done
@@ -9332,14 +10063,16 @@
     jump $I10
   rx730_done:
     rx730_cur."!cursor_fail"()
-    rx730_cur."!cursor_debug"("FAIL  ", "named_param")
+    if_null rx730_debug, debug_687
+    rx730_cur."!cursor_debug"("FAIL", "named_param")
+  debug_687:
     .return (rx730_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("177_1280467477.44751") :method
+.sub "!PREFIX__named_param"  :subid("177_1282324002.40722") :method
 .annotate 'line', 4
     $P732 = self."!PREFIX__!subrule"("param_var", ":")
     new $P733, "ResizablePMCArray"
@@ -9349,7 +10082,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("178_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "default_value"  :subid("178_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx736_tgt
     .local int rx736_pos
@@ -9357,7 +10090,9 @@
     .local int rx736_eos
     .local int rx736_rep
     .local pmc rx736_cur
+    .local pmc rx736_debug
     (rx736_cur, rx736_pos, rx736_tgt, $I10) = self."!cursor_start"()
+    getattribute rx736_debug, rx736_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx736_cur
     .local pmc match
     .lex "$/", match
@@ -9369,7 +10104,9 @@
     substr rx736_tgt, rx736_tgt, rx736_off
   rx736_start:
     eq $I10, 1, rx736_restart
-    rx736_cur."!cursor_debug"("START ", "default_value")
+    if_null rx736_debug, debug_688
+    rx736_cur."!cursor_debug"("START", "default_value")
+  debug_688:
     $I10 = self.'from'()
     ne $I10, -1, rxscan740_done
     goto rxscan740_scan
@@ -9392,8 +10129,8 @@
     add $I11, rx736_pos, 1
     gt $I11, rx736_eos, rx736_fail
     sub $I11, rx736_pos, rx736_off
-    substr $S10, rx736_tgt, $I11, 1
-    ne $S10, "=", rx736_fail
+    ord $I11, rx736_tgt, $I11
+    ne $I11, 61, rx736_fail
     add rx736_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx736_cur."!cursor_pos"(rx736_pos)
@@ -9414,11 +10151,15 @@
     rx736_pos = $P10."pos"()
   # rx pass
     rx736_cur."!cursor_pass"(rx736_pos, "default_value")
-    rx736_cur."!cursor_debug"("PASS  ", "default_value", " at pos=", rx736_pos)
+    if_null rx736_debug, debug_689
+    rx736_cur."!cursor_debug"("PASS", "default_value", " at pos=", rx736_pos)
+  debug_689:
     .return (rx736_cur)
   rx736_restart:
 .annotate 'line', 4
-    rx736_cur."!cursor_debug"("NEXT ", "default_value")
+    if_null rx736_debug, debug_690
+    rx736_cur."!cursor_debug"("NEXT", "default_value")
+  debug_690:
   rx736_fail:
     (rx736_rep, rx736_pos, $I10, $P10) = rx736_cur."!mark_fail"(0)
     lt rx736_pos, -1, rx736_done
@@ -9426,14 +10167,16 @@
     jump $I10
   rx736_done:
     rx736_cur."!cursor_fail"()
-    rx736_cur."!cursor_debug"("FAIL  ", "default_value")
+    if_null rx736_debug, debug_691
+    rx736_cur."!cursor_debug"("FAIL", "default_value")
+  debug_691:
     .return (rx736_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("179_1280467477.44751") :method
+.sub "!PREFIX__default_value"  :subid("179_1282324002.40722") :method
 .annotate 'line', 4
     $P738 = self."!PREFIX__!subrule"("ws", "")
     new $P739, "ResizablePMCArray"
@@ -9443,7 +10186,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("180_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "regex_declarator"  :subid("180_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx745_tgt
     .local int rx745_pos
@@ -9451,8 +10194,10 @@
     .local int rx745_eos
     .local int rx745_rep
     .local pmc rx745_cur
+    .local pmc rx745_debug
     (rx745_cur, rx745_pos, rx745_tgt, $I10) = self."!cursor_start"()
     rx745_cur."!cursor_caparray"("signature")
+    getattribute rx745_debug, rx745_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx745_cur
     .local pmc match
     .lex "$/", match
@@ -9464,7 +10209,9 @@
     substr rx745_tgt, rx745_tgt, rx745_off
   rx745_start:
     eq $I10, 1, rx745_restart
-    rx745_cur."!cursor_debug"("START ", "regex_declarator")
+    if_null rx745_debug, debug_692
+    rx745_cur."!cursor_debug"("START", "regex_declarator")
+  debug_692:
     $I10 = self.'from'()
     ne $I10, -1, rxscan749_done
     goto rxscan749_scan
@@ -9582,8 +10329,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "{", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 123, rx745_fail
     add rx745_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9606,8 +10353,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "}", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 125, rx745_fail
     add rx745_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9740,8 +10487,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "(", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 40, rx745_fail
     add rx745_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9764,8 +10511,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, ")", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 41, rx745_fail
     add rx745_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9794,8 +10541,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "{", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 123, rx745_fail
     add rx745_pos, 1
   # rx subrule "LANG" subtype=capture negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9808,8 +10555,8 @@
     add $I11, rx745_pos, 1
     gt $I11, rx745_eos, rx745_fail
     sub $I11, rx745_pos, rx745_off
-    substr $S10, rx745_tgt, $I11, 1
-    ne $S10, "}", rx745_fail
+    ord $I11, rx745_tgt, $I11
+    ne $I11, 125, rx745_fail
     add rx745_pos, 1
   # rx subrule "ENDSTMT" subtype=zerowidth negate=
     rx745_cur."!cursor_pos"(rx745_pos)
@@ -9830,11 +10577,15 @@
 .annotate 'line', 345
   # rx pass
     rx745_cur."!cursor_pass"(rx745_pos, "regex_declarator")
-    rx745_cur."!cursor_debug"("PASS  ", "regex_declarator", " at pos=", rx745_pos)
+    if_null rx745_debug, debug_693
+    rx745_cur."!cursor_debug"("PASS", "regex_declarator", " at pos=", rx745_pos)
+  debug_693:
     .return (rx745_cur)
   rx745_restart:
 .annotate 'line', 4
-    rx745_cur."!cursor_debug"("NEXT ", "regex_declarator")
+    if_null rx745_debug, debug_694
+    rx745_cur."!cursor_debug"("NEXT", "regex_declarator")
+  debug_694:
   rx745_fail:
     (rx745_rep, rx745_pos, $I10, $P10) = rx745_cur."!mark_fail"(0)
     lt rx745_pos, -1, rx745_done
@@ -9842,14 +10593,16 @@
     jump $I10
   rx745_done:
     rx745_cur."!cursor_fail"()
-    rx745_cur."!cursor_debug"("FAIL  ", "regex_declarator")
+    if_null rx745_debug, debug_695
+    rx745_cur."!cursor_debug"("FAIL", "regex_declarator")
+  debug_695:
     .return (rx745_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("181_1280467477.44751") :method
+.sub "!PREFIX__regex_declarator"  :subid("181_1282324002.40722") :method
 .annotate 'line', 4
     $P747 = self."!PREFIX__!subrule"("ws", "")
     new $P748, "ResizablePMCArray"
@@ -9859,7 +10612,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("182_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "dotty"  :subid("182_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx782_tgt
     .local int rx782_pos
@@ -9867,8 +10620,10 @@
     .local int rx782_eos
     .local int rx782_rep
     .local pmc rx782_cur
+    .local pmc rx782_debug
     (rx782_cur, rx782_pos, rx782_tgt, $I10) = self."!cursor_start"()
     rx782_cur."!cursor_caparray"("args")
+    getattribute rx782_debug, rx782_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx782_cur
     .local pmc match
     .lex "$/", match
@@ -9880,7 +10635,9 @@
     substr rx782_tgt, rx782_tgt, rx782_off
   rx782_start:
     eq $I10, 1, rx782_restart
-    rx782_cur."!cursor_debug"("START ", "dotty")
+    if_null rx782_debug, debug_696
+    rx782_cur."!cursor_debug"("START", "dotty")
+  debug_696:
     $I10 = self.'from'()
     ne $I10, -1, rxscan786_done
     goto rxscan786_scan
@@ -9898,8 +10655,8 @@
     add $I11, rx782_pos, 1
     gt $I11, rx782_eos, rx782_fail
     sub $I11, rx782_pos, rx782_off
-    substr $S10, rx782_tgt, $I11, 1
-    ne $S10, ".", rx782_fail
+    ord $I11, rx782_tgt, $I11
+    ne $I11, 46, rx782_fail
     add rx782_pos, 1
   alt787_0:
 .annotate 'line', 364
@@ -9977,8 +10734,8 @@
     add $I11, rx782_pos, 1
     gt $I11, rx782_eos, rx782_fail
     sub $I11, rx782_pos, rx782_off
-    substr $S10, rx782_tgt, $I11, 1
-    ne $S10, ":", rx782_fail
+    ord $I11, rx782_tgt, $I11
+    ne $I11, 58, rx782_fail
     add rx782_pos, 1
   # rx charclass s
     ge rx782_pos, rx782_eos, rx782_fail
@@ -10001,11 +10758,15 @@
 .annotate 'line', 362
   # rx pass
     rx782_cur."!cursor_pass"(rx782_pos, "dotty")
-    rx782_cur."!cursor_debug"("PASS  ", "dotty", " at pos=", rx782_pos)
+    if_null rx782_debug, debug_697
+    rx782_cur."!cursor_debug"("PASS", "dotty", " at pos=", rx782_pos)
+  debug_697:
     .return (rx782_cur)
   rx782_restart:
 .annotate 'line', 4
-    rx782_cur."!cursor_debug"("NEXT ", "dotty")
+    if_null rx782_debug, debug_698
+    rx782_cur."!cursor_debug"("NEXT", "dotty")
+  debug_698:
   rx782_fail:
     (rx782_rep, rx782_pos, $I10, $P10) = rx782_cur."!mark_fail"(0)
     lt rx782_pos, -1, rx782_done
@@ -10013,14 +10774,16 @@
     jump $I10
   rx782_done:
     rx782_cur."!cursor_fail"()
-    rx782_cur."!cursor_debug"("FAIL  ", "dotty")
+    if_null rx782_debug, debug_699
+    rx782_cur."!cursor_debug"("FAIL", "dotty")
+  debug_699:
     .return (rx782_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("183_1280467477.44751") :method
+.sub "!PREFIX__dotty"  :subid("183_1282324002.40722") :method
 .annotate 'line', 4
     $P784 = self."!PREFIX__!subrule"("deflongname", ".")
     new $P785, "ResizablePMCArray"
@@ -10032,7 +10795,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("184_1280467477.44751") :method
+.sub "term"  :subid("184_1282324002.40722") :method
 .annotate 'line', 376
     $P792 = self."!protoregex"("term")
     .return ($P792)
@@ -10040,7 +10803,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("185_1280467477.44751") :method
+.sub "!PREFIX__term"  :subid("185_1282324002.40722") :method
 .annotate 'line', 376
     $P794 = self."!PREFIX__!protoregex"("term")
     .return ($P794)
@@ -10048,7 +10811,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("186_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<self>"  :subid("186_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx796_tgt
     .local int rx796_pos
@@ -10056,7 +10819,9 @@
     .local int rx796_eos
     .local int rx796_rep
     .local pmc rx796_cur
+    .local pmc rx796_debug
     (rx796_cur, rx796_pos, rx796_tgt, $I10) = self."!cursor_start"()
+    getattribute rx796_debug, rx796_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx796_cur
     .local pmc match
     .lex "$/", match
@@ -10068,7 +10833,9 @@
     substr rx796_tgt, rx796_tgt, rx796_off
   rx796_start:
     eq $I10, 1, rx796_restart
-    rx796_cur."!cursor_debug"("START ", "term:sym<self>")
+    if_null rx796_debug, debug_700
+    rx796_cur."!cursor_debug"("START", "term:sym<self>")
+  debug_700:
     $I10 = self.'from'()
     ne $I10, -1, rxscan799_done
     goto rxscan799_scan
@@ -10113,11 +10880,15 @@
     unless $I11, rx796_fail
   # rx pass
     rx796_cur."!cursor_pass"(rx796_pos, "term:sym<self>")
-    rx796_cur."!cursor_debug"("PASS  ", "term:sym<self>", " at pos=", rx796_pos)
+    if_null rx796_debug, debug_701
+    rx796_cur."!cursor_debug"("PASS", "term:sym<self>", " at pos=", rx796_pos)
+  debug_701:
     .return (rx796_cur)
   rx796_restart:
 .annotate 'line', 4
-    rx796_cur."!cursor_debug"("NEXT ", "term:sym<self>")
+    if_null rx796_debug, debug_702
+    rx796_cur."!cursor_debug"("NEXT", "term:sym<self>")
+  debug_702:
   rx796_fail:
     (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0)
     lt rx796_pos, -1, rx796_done
@@ -10125,14 +10896,16 @@
     jump $I10
   rx796_done:
     rx796_cur."!cursor_fail"()
-    rx796_cur."!cursor_debug"("FAIL  ", "term:sym<self>")
+    if_null rx796_debug, debug_703
+    rx796_cur."!cursor_debug"("FAIL", "term:sym<self>")
+  debug_703:
     .return (rx796_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("187_1280467477.44751") :method
+.sub "!PREFIX__term:sym<self>"  :subid("187_1282324002.40722") :method
 .annotate 'line', 4
     new $P798, "ResizablePMCArray"
     push $P798, "self"
@@ -10141,7 +10914,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("188_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<identifier>"  :subid("188_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx802_tgt
     .local int rx802_pos
@@ -10149,7 +10922,9 @@
     .local int rx802_eos
     .local int rx802_rep
     .local pmc rx802_cur
+    .local pmc rx802_debug
     (rx802_cur, rx802_pos, rx802_tgt, $I10) = self."!cursor_start"()
+    getattribute rx802_debug, rx802_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx802_cur
     .local pmc match
     .lex "$/", match
@@ -10161,7 +10936,9 @@
     substr rx802_tgt, rx802_tgt, rx802_off
   rx802_start:
     eq $I10, 1, rx802_restart
-    rx802_cur."!cursor_debug"("START ", "term:sym<identifier>")
+    if_null rx802_debug, debug_704
+    rx802_cur."!cursor_debug"("START", "term:sym<identifier>")
+  debug_704:
     $I10 = self.'from'()
     ne $I10, -1, rxscan806_done
     goto rxscan806_scan
@@ -10198,11 +10975,15 @@
 .annotate 'line', 380
   # rx pass
     rx802_cur."!cursor_pass"(rx802_pos, "term:sym<identifier>")
-    rx802_cur."!cursor_debug"("PASS  ", "term:sym<identifier>", " at pos=", rx802_pos)
+    if_null rx802_debug, debug_705
+    rx802_cur."!cursor_debug"("PASS", "term:sym<identifier>", " at pos=", rx802_pos)
+  debug_705:
     .return (rx802_cur)
   rx802_restart:
 .annotate 'line', 4
-    rx802_cur."!cursor_debug"("NEXT ", "term:sym<identifier>")
+    if_null rx802_debug, debug_706
+    rx802_cur."!cursor_debug"("NEXT", "term:sym<identifier>")
+  debug_706:
   rx802_fail:
     (rx802_rep, rx802_pos, $I10, $P10) = rx802_cur."!mark_fail"(0)
     lt rx802_pos, -1, rx802_done
@@ -10210,14 +10991,16 @@
     jump $I10
   rx802_done:
     rx802_cur."!cursor_fail"()
-    rx802_cur."!cursor_debug"("FAIL  ", "term:sym<identifier>")
+    if_null rx802_debug, debug_707
+    rx802_cur."!cursor_debug"("FAIL", "term:sym<identifier>")
+  debug_707:
     .return (rx802_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("189_1280467477.44751") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("189_1282324002.40722") :method
 .annotate 'line', 4
     $P804 = self."!PREFIX__!subrule"("deflongname", "")
     new $P805, "ResizablePMCArray"
@@ -10227,7 +11010,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("190_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<name>"  :subid("190_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx808_tgt
     .local int rx808_pos
@@ -10235,8 +11018,10 @@
     .local int rx808_eos
     .local int rx808_rep
     .local pmc rx808_cur
+    .local pmc rx808_debug
     (rx808_cur, rx808_pos, rx808_tgt, $I10) = self."!cursor_start"()
     rx808_cur."!cursor_caparray"("args")
+    getattribute rx808_debug, rx808_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx808_cur
     .local pmc match
     .lex "$/", match
@@ -10248,7 +11033,9 @@
     substr rx808_tgt, rx808_tgt, rx808_off
   rx808_start:
     eq $I10, 1, rx808_restart
-    rx808_cur."!cursor_debug"("START ", "term:sym<name>")
+    if_null rx808_debug, debug_708
+    rx808_cur."!cursor_debug"("START", "term:sym<name>")
+  debug_708:
     $I10 = self.'from'()
     ne $I10, -1, rxscan812_done
     goto rxscan812_scan
@@ -10292,11 +11079,15 @@
 .annotate 'line', 384
   # rx pass
     rx808_cur."!cursor_pass"(rx808_pos, "term:sym<name>")
-    rx808_cur."!cursor_debug"("PASS  ", "term:sym<name>", " at pos=", rx808_pos)
+    if_null rx808_debug, debug_709
+    rx808_cur."!cursor_debug"("PASS", "term:sym<name>", " at pos=", rx808_pos)
+  debug_709:
     .return (rx808_cur)
   rx808_restart:
 .annotate 'line', 4
-    rx808_cur."!cursor_debug"("NEXT ", "term:sym<name>")
+    if_null rx808_debug, debug_710
+    rx808_cur."!cursor_debug"("NEXT", "term:sym<name>")
+  debug_710:
   rx808_fail:
     (rx808_rep, rx808_pos, $I10, $P10) = rx808_cur."!mark_fail"(0)
     lt rx808_pos, -1, rx808_done
@@ -10304,14 +11095,16 @@
     jump $I10
   rx808_done:
     rx808_cur."!cursor_fail"()
-    rx808_cur."!cursor_debug"("FAIL  ", "term:sym<name>")
+    if_null rx808_debug, debug_711
+    rx808_cur."!cursor_debug"("FAIL", "term:sym<name>")
+  debug_711:
     .return (rx808_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("191_1280467477.44751") :method
+.sub "!PREFIX__term:sym<name>"  :subid("191_1282324002.40722") :method
 .annotate 'line', 4
     $P810 = self."!PREFIX__!subrule"("name", "")
     new $P811, "ResizablePMCArray"
@@ -10321,7 +11114,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("192_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<pir::op>"  :subid("192_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx816_tgt
     .local int rx816_pos
@@ -10329,8 +11122,10 @@
     .local int rx816_eos
     .local int rx816_rep
     .local pmc rx816_cur
+    .local pmc rx816_debug
     (rx816_cur, rx816_pos, rx816_tgt, $I10) = self."!cursor_start"()
     rx816_cur."!cursor_caparray"("args")
+    getattribute rx816_debug, rx816_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx816_cur
     .local pmc match
     .lex "$/", match
@@ -10342,7 +11137,9 @@
     substr rx816_tgt, rx816_tgt, rx816_off
   rx816_start:
     eq $I10, 1, rx816_restart
-    rx816_cur."!cursor_debug"("START ", "term:sym<pir::op>")
+    if_null rx816_debug, debug_712
+    rx816_cur."!cursor_debug"("START", "term:sym<pir::op>")
+  debug_712:
     $I10 = self.'from'()
     ne $I10, -1, rxscan819_done
     goto rxscan819_scan
@@ -10406,11 +11203,15 @@
 .annotate 'line', 388
   # rx pass
     rx816_cur."!cursor_pass"(rx816_pos, "term:sym<pir::op>")
-    rx816_cur."!cursor_debug"("PASS  ", "term:sym<pir::op>", " at pos=", rx816_pos)
+    if_null rx816_debug, debug_713
+    rx816_cur."!cursor_debug"("PASS", "term:sym<pir::op>", " at pos=", rx816_pos)
+  debug_713:
     .return (rx816_cur)
   rx816_restart:
 .annotate 'line', 4
-    rx816_cur."!cursor_debug"("NEXT ", "term:sym<pir::op>")
+    if_null rx816_debug, debug_714
+    rx816_cur."!cursor_debug"("NEXT", "term:sym<pir::op>")
+  debug_714:
   rx816_fail:
     (rx816_rep, rx816_pos, $I10, $P10) = rx816_cur."!mark_fail"(0)
     lt rx816_pos, -1, rx816_done
@@ -10418,14 +11219,16 @@
     jump $I10
   rx816_done:
     rx816_cur."!cursor_fail"()
-    rx816_cur."!cursor_debug"("FAIL  ", "term:sym<pir::op>")
+    if_null rx816_debug, debug_715
+    rx816_cur."!cursor_debug"("FAIL", "term:sym<pir::op>")
+  debug_715:
     .return (rx816_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1280467477.44751") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("193_1282324002.40722") :method
 .annotate 'line', 4
     new $P818, "ResizablePMCArray"
     push $P818, "pir::"
@@ -10434,7 +11237,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("194_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "args"  :subid("194_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx824_tgt
     .local int rx824_pos
@@ -10442,7 +11245,9 @@
     .local int rx824_eos
     .local int rx824_rep
     .local pmc rx824_cur
+    .local pmc rx824_debug
     (rx824_cur, rx824_pos, rx824_tgt, $I10) = self."!cursor_start"()
+    getattribute rx824_debug, rx824_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx824_cur
     .local pmc match
     .lex "$/", match
@@ -10454,7 +11259,9 @@
     substr rx824_tgt, rx824_tgt, rx824_off
   rx824_start:
     eq $I10, 1, rx824_restart
-    rx824_cur."!cursor_debug"("START ", "args")
+    if_null rx824_debug, debug_716
+    rx824_cur."!cursor_debug"("START", "args")
+  debug_716:
     $I10 = self.'from'()
     ne $I10, -1, rxscan828_done
     goto rxscan828_scan
@@ -10472,8 +11279,8 @@
     add $I11, rx824_pos, 1
     gt $I11, rx824_eos, rx824_fail
     sub $I11, rx824_pos, rx824_off
-    substr $S10, rx824_tgt, $I11, 1
-    ne $S10, "(", rx824_fail
+    ord $I11, rx824_tgt, $I11
+    ne $I11, 40, rx824_fail
     add rx824_pos, 1
   # rx subrule "arglist" subtype=capture negate=
     rx824_cur."!cursor_pos"(rx824_pos)
@@ -10486,16 +11293,20 @@
     add $I11, rx824_pos, 1
     gt $I11, rx824_eos, rx824_fail
     sub $I11, rx824_pos, rx824_off
-    substr $S10, rx824_tgt, $I11, 1
-    ne $S10, ")", rx824_fail
+    ord $I11, rx824_tgt, $I11
+    ne $I11, 41, rx824_fail
     add rx824_pos, 1
   # rx pass
     rx824_cur."!cursor_pass"(rx824_pos, "args")
-    rx824_cur."!cursor_debug"("PASS  ", "args", " at pos=", rx824_pos)
+    if_null rx824_debug, debug_717
+    rx824_cur."!cursor_debug"("PASS", "args", " at pos=", rx824_pos)
+  debug_717:
     .return (rx824_cur)
   rx824_restart:
 .annotate 'line', 4
-    rx824_cur."!cursor_debug"("NEXT ", "args")
+    if_null rx824_debug, debug_718
+    rx824_cur."!cursor_debug"("NEXT", "args")
+  debug_718:
   rx824_fail:
     (rx824_rep, rx824_pos, $I10, $P10) = rx824_cur."!mark_fail"(0)
     lt rx824_pos, -1, rx824_done
@@ -10503,14 +11314,16 @@
     jump $I10
   rx824_done:
     rx824_cur."!cursor_fail"()
-    rx824_cur."!cursor_debug"("FAIL  ", "args")
+    if_null rx824_debug, debug_719
+    rx824_cur."!cursor_debug"("FAIL", "args")
+  debug_719:
     .return (rx824_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("195_1280467477.44751") :method
+.sub "!PREFIX__args"  :subid("195_1282324002.40722") :method
 .annotate 'line', 4
     $P826 = self."!PREFIX__!subrule"("arglist", "(")
     new $P827, "ResizablePMCArray"
@@ -10520,7 +11333,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("196_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "arglist"  :subid("196_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx830_tgt
     .local int rx830_pos
@@ -10528,7 +11341,9 @@
     .local int rx830_eos
     .local int rx830_rep
     .local pmc rx830_cur
+    .local pmc rx830_debug
     (rx830_cur, rx830_pos, rx830_tgt, $I10) = self."!cursor_start"()
+    getattribute rx830_debug, rx830_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx830_cur
     .local pmc match
     .lex "$/", match
@@ -10540,7 +11355,9 @@
     substr rx830_tgt, rx830_tgt, rx830_off
   rx830_start:
     eq $I10, 1, rx830_restart
-    rx830_cur."!cursor_debug"("START ", "arglist")
+    if_null rx830_debug, debug_720
+    rx830_cur."!cursor_debug"("START", "arglist")
+  debug_720:
     $I10 = self.'from'()
     ne $I10, -1, rxscan834_done
     goto rxscan834_scan
@@ -10577,11 +11394,15 @@
 .annotate 'line', 396
   # rx pass
     rx830_cur."!cursor_pass"(rx830_pos, "arglist")
-    rx830_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx830_pos)
+    if_null rx830_debug, debug_721
+    rx830_cur."!cursor_debug"("PASS", "arglist", " at pos=", rx830_pos)
+  debug_721:
     .return (rx830_cur)
   rx830_restart:
 .annotate 'line', 4
-    rx830_cur."!cursor_debug"("NEXT ", "arglist")
+    if_null rx830_debug, debug_722
+    rx830_cur."!cursor_debug"("NEXT", "arglist")
+  debug_722:
   rx830_fail:
     (rx830_rep, rx830_pos, $I10, $P10) = rx830_cur."!mark_fail"(0)
     lt rx830_pos, -1, rx830_done
@@ -10589,14 +11410,16 @@
     jump $I10
   rx830_done:
     rx830_cur."!cursor_fail"()
-    rx830_cur."!cursor_debug"("FAIL  ", "arglist")
+    if_null rx830_debug, debug_723
+    rx830_cur."!cursor_debug"("FAIL", "arglist")
+  debug_723:
     .return (rx830_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("197_1280467477.44751") :method
+.sub "!PREFIX__arglist"  :subid("197_1282324002.40722") :method
 .annotate 'line', 4
     $P832 = self."!PREFIX__!subrule"("ws", "")
     new $P833, "ResizablePMCArray"
@@ -10606,7 +11429,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("198_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<value>"  :subid("198_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx837_tgt
     .local int rx837_pos
@@ -10614,7 +11437,9 @@
     .local int rx837_eos
     .local int rx837_rep
     .local pmc rx837_cur
+    .local pmc rx837_debug
     (rx837_cur, rx837_pos, rx837_tgt, $I10) = self."!cursor_start"()
+    getattribute rx837_debug, rx837_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx837_cur
     .local pmc match
     .lex "$/", match
@@ -10626,7 +11451,9 @@
     substr rx837_tgt, rx837_tgt, rx837_off
   rx837_start:
     eq $I10, 1, rx837_restart
-    rx837_cur."!cursor_debug"("START ", "term:sym<value>")
+    if_null rx837_debug, debug_724
+    rx837_cur."!cursor_debug"("START", "term:sym<value>")
+  debug_724:
     $I10 = self.'from'()
     ne $I10, -1, rxscan841_done
     goto rxscan841_scan
@@ -10649,11 +11476,15 @@
     rx837_pos = $P10."pos"()
   # rx pass
     rx837_cur."!cursor_pass"(rx837_pos, "term:sym<value>")
-    rx837_cur."!cursor_debug"("PASS  ", "term:sym<value>", " at pos=", rx837_pos)
+    if_null rx837_debug, debug_725
+    rx837_cur."!cursor_debug"("PASS", "term:sym<value>", " at pos=", rx837_pos)
+  debug_725:
     .return (rx837_cur)
   rx837_restart:
 .annotate 'line', 4
-    rx837_cur."!cursor_debug"("NEXT ", "term:sym<value>")
+    if_null rx837_debug, debug_726
+    rx837_cur."!cursor_debug"("NEXT", "term:sym<value>")
+  debug_726:
   rx837_fail:
     (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
     lt rx837_pos, -1, rx837_done
@@ -10661,14 +11492,16 @@
     jump $I10
   rx837_done:
     rx837_cur."!cursor_fail"()
-    rx837_cur."!cursor_debug"("FAIL  ", "term:sym<value>")
+    if_null rx837_debug, debug_727
+    rx837_cur."!cursor_debug"("FAIL", "term:sym<value>")
+  debug_727:
     .return (rx837_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("199_1280467477.44751") :method
+.sub "!PREFIX__term:sym<value>"  :subid("199_1282324002.40722") :method
 .annotate 'line', 4
     $P839 = self."!PREFIX__!subrule"("value", "")
     new $P840, "ResizablePMCArray"
@@ -10678,7 +11511,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("200_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "value"  :subid("200_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx843_tgt
     .local int rx843_pos
@@ -10686,7 +11519,9 @@
     .local int rx843_eos
     .local int rx843_rep
     .local pmc rx843_cur
+    .local pmc rx843_debug
     (rx843_cur, rx843_pos, rx843_tgt, $I10) = self."!cursor_start"()
+    getattribute rx843_debug, rx843_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx843_cur
     .local pmc match
     .lex "$/", match
@@ -10698,7 +11533,9 @@
     substr rx843_tgt, rx843_tgt, rx843_off
   rx843_start:
     eq $I10, 1, rx843_restart
-    rx843_cur."!cursor_debug"("START ", "value")
+    if_null rx843_debug, debug_728
+    rx843_cur."!cursor_debug"("START", "value")
+  debug_728:
     $I10 = self.'from'()
     ne $I10, -1, rxscan848_done
     goto rxscan848_scan
@@ -10737,11 +11574,15 @@
 .annotate 'line', 407
   # rx pass
     rx843_cur."!cursor_pass"(rx843_pos, "value")
-    rx843_cur."!cursor_debug"("PASS  ", "value", " at pos=", rx843_pos)
+    if_null rx843_debug, debug_729
+    rx843_cur."!cursor_debug"("PASS", "value", " at pos=", rx843_pos)
+  debug_729:
     .return (rx843_cur)
   rx843_restart:
 .annotate 'line', 4
-    rx843_cur."!cursor_debug"("NEXT ", "value")
+    if_null rx843_debug, debug_730
+    rx843_cur."!cursor_debug"("NEXT", "value")
+  debug_730:
   rx843_fail:
     (rx843_rep, rx843_pos, $I10, $P10) = rx843_cur."!mark_fail"(0)
     lt rx843_pos, -1, rx843_done
@@ -10749,14 +11590,16 @@
     jump $I10
   rx843_done:
     rx843_cur."!cursor_fail"()
-    rx843_cur."!cursor_debug"("FAIL  ", "value")
+    if_null rx843_debug, debug_731
+    rx843_cur."!cursor_debug"("FAIL", "value")
+  debug_731:
     .return (rx843_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("201_1280467477.44751") :method
+.sub "!PREFIX__value"  :subid("201_1282324002.40722") :method
 .annotate 'line', 4
     $P845 = self."!PREFIX__!subrule"("number", "")
     $P846 = self."!PREFIX__!subrule"("quote", "")
@@ -10768,7 +11611,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("202_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "number"  :subid("202_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx851_tgt
     .local int rx851_pos
@@ -10776,7 +11619,9 @@
     .local int rx851_eos
     .local int rx851_rep
     .local pmc rx851_cur
+    .local pmc rx851_debug
     (rx851_cur, rx851_pos, rx851_tgt, $I10) = self."!cursor_start"()
+    getattribute rx851_debug, rx851_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx851_cur
     .local pmc match
     .lex "$/", match
@@ -10788,7 +11633,9 @@
     substr rx851_tgt, rx851_tgt, rx851_off
   rx851_start:
     eq $I10, 1, rx851_restart
-    rx851_cur."!cursor_debug"("START ", "number")
+    if_null rx851_debug, debug_732
+    rx851_cur."!cursor_debug"("START", "number")
+  debug_732:
     $I10 = self.'from'()
     ne $I10, -1, rxscan854_done
     goto rxscan854_scan
@@ -10805,20 +11652,20 @@
   # rx subcapture "sign"
     set_addr $I10, rxcap_856_fail
     rx851_cur."!mark_push"(0, rx851_pos, $I10)
-  # rx rxquantr855 ** 0..1
-    set_addr $I10, rxquantr855_done
-    rx851_cur."!mark_push"(0, rx851_pos, $I10)
-  rxquantr855_loop:
-  # rx enumcharlist negate=0 
-    ge rx851_pos, rx851_eos, rx851_fail
+  # rx enumcharlist_q negate=0  r 0..1
     sub $I10, rx851_pos, rx851_off
+    set rx851_rep, 0
+    sub $I12, rx851_eos, rx851_pos
+    le $I12, 1, rxenumcharlistq855_loop
+    set $I12, 1
+  rxenumcharlistq855_loop:
+    le $I12, 0, rxenumcharlistq855_done
     substr $S10, rx851_tgt, $I10, 1
     index $I11, "+-", $S10
-    lt $I11, 0, rx851_fail
-    inc rx851_pos
-    set_addr $I10, rxquantr855_done
-    (rx851_rep) = rx851_cur."!mark_commit"($I10)
-  rxquantr855_done:
+    lt $I11, 0, rxenumcharlistq855_done
+    inc rx851_rep
+  rxenumcharlistq855_done:
+    add rx851_pos, rx851_pos, rx851_rep
     set_addr $I10, rxcap_856_fail
     ($I12, $I11) = rx851_cur."!mark_peek"($I10)
     rx851_cur."!cursor_pos"($I11)
@@ -10854,11 +11701,15 @@
 .annotate 'line', 412
   # rx pass
     rx851_cur."!cursor_pass"(rx851_pos, "number")
-    rx851_cur."!cursor_debug"("PASS  ", "number", " at pos=", rx851_pos)
+    if_null rx851_debug, debug_733
+    rx851_cur."!cursor_debug"("PASS", "number", " at pos=", rx851_pos)
+  debug_733:
     .return (rx851_cur)
   rx851_restart:
 .annotate 'line', 4
-    rx851_cur."!cursor_debug"("NEXT ", "number")
+    if_null rx851_debug, debug_734
+    rx851_cur."!cursor_debug"("NEXT", "number")
+  debug_734:
   rx851_fail:
     (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
     lt rx851_pos, -1, rx851_done
@@ -10866,14 +11717,16 @@
     jump $I10
   rx851_done:
     rx851_cur."!cursor_fail"()
-    rx851_cur."!cursor_debug"("FAIL  ", "number")
+    if_null rx851_debug, debug_735
+    rx851_cur."!cursor_debug"("FAIL", "number")
+  debug_735:
     .return (rx851_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("203_1280467477.44751") :method
+.sub "!PREFIX__number"  :subid("203_1282324002.40722") :method
 .annotate 'line', 4
     new $P853, "ResizablePMCArray"
     push $P853, ""
@@ -10882,7 +11735,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("204_1280467477.44751") :method
+.sub "quote"  :subid("204_1282324002.40722") :method
 .annotate 'line', 417
     $P859 = self."!protoregex"("quote")
     .return ($P859)
@@ -10890,7 +11743,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("205_1280467477.44751") :method
+.sub "!PREFIX__quote"  :subid("205_1282324002.40722") :method
 .annotate 'line', 417
     $P861 = self."!PREFIX__!protoregex"("quote")
     .return ($P861)
@@ -10898,7 +11751,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("206_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<apos>"  :subid("206_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx863_tgt
     .local int rx863_pos
@@ -10906,7 +11759,9 @@
     .local int rx863_eos
     .local int rx863_rep
     .local pmc rx863_cur
+    .local pmc rx863_debug
     (rx863_cur, rx863_pos, rx863_tgt, $I10) = self."!cursor_start"()
+    getattribute rx863_debug, rx863_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx863_cur
     .local pmc match
     .lex "$/", match
@@ -10918,7 +11773,9 @@
     substr rx863_tgt, rx863_tgt, rx863_off
   rx863_start:
     eq $I10, 1, rx863_restart
-    rx863_cur."!cursor_debug"("START ", "quote:sym<apos>")
+    if_null rx863_debug, debug_736
+    rx863_cur."!cursor_debug"("START", "quote:sym<apos>")
+  debug_736:
     $I10 = self.'from'()
     ne $I10, -1, rxscan866_done
     goto rxscan866_scan
@@ -10947,11 +11804,15 @@
     rx863_pos = $P10."pos"()
   # rx pass
     rx863_cur."!cursor_pass"(rx863_pos, "quote:sym<apos>")
-    rx863_cur."!cursor_debug"("PASS  ", "quote:sym<apos>", " at pos=", rx863_pos)
+    if_null rx863_debug, debug_737
+    rx863_cur."!cursor_debug"("PASS", "quote:sym<apos>", " at pos=", rx863_pos)
+  debug_737:
     .return (rx863_cur)
   rx863_restart:
 .annotate 'line', 4
-    rx863_cur."!cursor_debug"("NEXT ", "quote:sym<apos>")
+    if_null rx863_debug, debug_738
+    rx863_cur."!cursor_debug"("NEXT", "quote:sym<apos>")
+  debug_738:
   rx863_fail:
     (rx863_rep, rx863_pos, $I10, $P10) = rx863_cur."!mark_fail"(0)
     lt rx863_pos, -1, rx863_done
@@ -10959,14 +11820,16 @@
     jump $I10
   rx863_done:
     rx863_cur."!cursor_fail"()
-    rx863_cur."!cursor_debug"("FAIL  ", "quote:sym<apos>")
+    if_null rx863_debug, debug_739
+    rx863_cur."!cursor_debug"("FAIL", "quote:sym<apos>")
+  debug_739:
     .return (rx863_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("207_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("207_1282324002.40722") :method
 .annotate 'line', 4
     new $P865, "ResizablePMCArray"
     push $P865, "'"
@@ -10975,7 +11838,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("208_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<dblq>"  :subid("208_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx868_tgt
     .local int rx868_pos
@@ -10983,7 +11846,9 @@
     .local int rx868_eos
     .local int rx868_rep
     .local pmc rx868_cur
+    .local pmc rx868_debug
     (rx868_cur, rx868_pos, rx868_tgt, $I10) = self."!cursor_start"()
+    getattribute rx868_debug, rx868_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx868_cur
     .local pmc match
     .lex "$/", match
@@ -10995,7 +11860,9 @@
     substr rx868_tgt, rx868_tgt, rx868_off
   rx868_start:
     eq $I10, 1, rx868_restart
-    rx868_cur."!cursor_debug"("START ", "quote:sym<dblq>")
+    if_null rx868_debug, debug_740
+    rx868_cur."!cursor_debug"("START", "quote:sym<dblq>")
+  debug_740:
     $I10 = self.'from'()
     ne $I10, -1, rxscan871_done
     goto rxscan871_scan
@@ -11024,11 +11891,15 @@
     rx868_pos = $P10."pos"()
   # rx pass
     rx868_cur."!cursor_pass"(rx868_pos, "quote:sym<dblq>")
-    rx868_cur."!cursor_debug"("PASS  ", "quote:sym<dblq>", " at pos=", rx868_pos)
+    if_null rx868_debug, debug_741
+    rx868_cur."!cursor_debug"("PASS", "quote:sym<dblq>", " at pos=", rx868_pos)
+  debug_741:
     .return (rx868_cur)
   rx868_restart:
 .annotate 'line', 4
-    rx868_cur."!cursor_debug"("NEXT ", "quote:sym<dblq>")
+    if_null rx868_debug, debug_742
+    rx868_cur."!cursor_debug"("NEXT", "quote:sym<dblq>")
+  debug_742:
   rx868_fail:
     (rx868_rep, rx868_pos, $I10, $P10) = rx868_cur."!mark_fail"(0)
     lt rx868_pos, -1, rx868_done
@@ -11036,14 +11907,16 @@
     jump $I10
   rx868_done:
     rx868_cur."!cursor_fail"()
-    rx868_cur."!cursor_debug"("FAIL  ", "quote:sym<dblq>")
+    if_null rx868_debug, debug_743
+    rx868_cur."!cursor_debug"("FAIL", "quote:sym<dblq>")
+  debug_743:
     .return (rx868_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("209_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<dblq>"  :subid("209_1282324002.40722") :method
 .annotate 'line', 4
     new $P870, "ResizablePMCArray"
     push $P870, "\""
@@ -11052,7 +11925,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("210_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<q>"  :subid("210_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx873_tgt
     .local int rx873_pos
@@ -11060,7 +11933,9 @@
     .local int rx873_eos
     .local int rx873_rep
     .local pmc rx873_cur
+    .local pmc rx873_debug
     (rx873_cur, rx873_pos, rx873_tgt, $I10) = self."!cursor_start"()
+    getattribute rx873_debug, rx873_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx873_cur
     .local pmc match
     .lex "$/", match
@@ -11072,7 +11947,9 @@
     substr rx873_tgt, rx873_tgt, rx873_off
   rx873_start:
     eq $I10, 1, rx873_restart
-    rx873_cur."!cursor_debug"("START ", "quote:sym<q>")
+    if_null rx873_debug, debug_744
+    rx873_cur."!cursor_debug"("START", "quote:sym<q>")
+  debug_744:
     $I10 = self.'from'()
     ne $I10, -1, rxscan877_done
     goto rxscan877_scan
@@ -11090,8 +11967,8 @@
     add $I11, rx873_pos, 1
     gt $I11, rx873_eos, rx873_fail
     sub $I11, rx873_pos, rx873_off
-    substr $S10, rx873_tgt, $I11, 1
-    ne $S10, "q", rx873_fail
+    ord $I11, rx873_tgt, $I11
+    ne $I11, 113, rx873_fail
     add rx873_pos, 1
   # rxanchor rwb
     le rx873_pos, 0, rx873_fail
@@ -11121,11 +11998,15 @@
     rx873_pos = $P10."pos"()
   # rx pass
     rx873_cur."!cursor_pass"(rx873_pos, "quote:sym<q>")
-    rx873_cur."!cursor_debug"("PASS  ", "quote:sym<q>", " at pos=", rx873_pos)
+    if_null rx873_debug, debug_745
+    rx873_cur."!cursor_debug"("PASS", "quote:sym<q>", " at pos=", rx873_pos)
+  debug_745:
     .return (rx873_cur)
   rx873_restart:
 .annotate 'line', 4
-    rx873_cur."!cursor_debug"("NEXT ", "quote:sym<q>")
+    if_null rx873_debug, debug_746
+    rx873_cur."!cursor_debug"("NEXT", "quote:sym<q>")
+  debug_746:
   rx873_fail:
     (rx873_rep, rx873_pos, $I10, $P10) = rx873_cur."!mark_fail"(0)
     lt rx873_pos, -1, rx873_done
@@ -11133,14 +12014,16 @@
     jump $I10
   rx873_done:
     rx873_cur."!cursor_fail"()
-    rx873_cur."!cursor_debug"("FAIL  ", "quote:sym<q>")
+    if_null rx873_debug, debug_747
+    rx873_cur."!cursor_debug"("FAIL", "quote:sym<q>")
+  debug_747:
     .return (rx873_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("211_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<q>"  :subid("211_1282324002.40722") :method
 .annotate 'line', 4
     $P875 = self."!PREFIX__!subrule"("ws", "q")
     new $P876, "ResizablePMCArray"
@@ -11150,7 +12033,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("212_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<qq>"  :subid("212_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx879_tgt
     .local int rx879_pos
@@ -11158,7 +12041,9 @@
     .local int rx879_eos
     .local int rx879_rep
     .local pmc rx879_cur
+    .local pmc rx879_debug
     (rx879_cur, rx879_pos, rx879_tgt, $I10) = self."!cursor_start"()
+    getattribute rx879_debug, rx879_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx879_cur
     .local pmc match
     .lex "$/", match
@@ -11170,7 +12055,9 @@
     substr rx879_tgt, rx879_tgt, rx879_off
   rx879_start:
     eq $I10, 1, rx879_restart
-    rx879_cur."!cursor_debug"("START ", "quote:sym<qq>")
+    if_null rx879_debug, debug_748
+    rx879_cur."!cursor_debug"("START", "quote:sym<qq>")
+  debug_748:
     $I10 = self.'from'()
     ne $I10, -1, rxscan883_done
     goto rxscan883_scan
@@ -11219,11 +12106,15 @@
     rx879_pos = $P10."pos"()
   # rx pass
     rx879_cur."!cursor_pass"(rx879_pos, "quote:sym<qq>")
-    rx879_cur."!cursor_debug"("PASS  ", "quote:sym<qq>", " at pos=", rx879_pos)
+    if_null rx879_debug, debug_749
+    rx879_cur."!cursor_debug"("PASS", "quote:sym<qq>", " at pos=", rx879_pos)
+  debug_749:
     .return (rx879_cur)
   rx879_restart:
 .annotate 'line', 4
-    rx879_cur."!cursor_debug"("NEXT ", "quote:sym<qq>")
+    if_null rx879_debug, debug_750
+    rx879_cur."!cursor_debug"("NEXT", "quote:sym<qq>")
+  debug_750:
   rx879_fail:
     (rx879_rep, rx879_pos, $I10, $P10) = rx879_cur."!mark_fail"(0)
     lt rx879_pos, -1, rx879_done
@@ -11231,14 +12122,16 @@
     jump $I10
   rx879_done:
     rx879_cur."!cursor_fail"()
-    rx879_cur."!cursor_debug"("FAIL  ", "quote:sym<qq>")
+    if_null rx879_debug, debug_751
+    rx879_cur."!cursor_debug"("FAIL", "quote:sym<qq>")
+  debug_751:
     .return (rx879_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("213_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<qq>"  :subid("213_1282324002.40722") :method
 .annotate 'line', 4
     $P881 = self."!PREFIX__!subrule"("ws", "qq")
     new $P882, "ResizablePMCArray"
@@ -11248,7 +12141,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("214_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<Q>"  :subid("214_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx885_tgt
     .local int rx885_pos
@@ -11256,7 +12149,9 @@
     .local int rx885_eos
     .local int rx885_rep
     .local pmc rx885_cur
+    .local pmc rx885_debug
     (rx885_cur, rx885_pos, rx885_tgt, $I10) = self."!cursor_start"()
+    getattribute rx885_debug, rx885_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx885_cur
     .local pmc match
     .lex "$/", match
@@ -11268,7 +12163,9 @@
     substr rx885_tgt, rx885_tgt, rx885_off
   rx885_start:
     eq $I10, 1, rx885_restart
-    rx885_cur."!cursor_debug"("START ", "quote:sym<Q>")
+    if_null rx885_debug, debug_752
+    rx885_cur."!cursor_debug"("START", "quote:sym<Q>")
+  debug_752:
     $I10 = self.'from'()
     ne $I10, -1, rxscan889_done
     goto rxscan889_scan
@@ -11286,8 +12183,8 @@
     add $I11, rx885_pos, 1
     gt $I11, rx885_eos, rx885_fail
     sub $I11, rx885_pos, rx885_off
-    substr $S10, rx885_tgt, $I11, 1
-    ne $S10, "Q", rx885_fail
+    ord $I11, rx885_tgt, $I11
+    ne $I11, 81, rx885_fail
     add rx885_pos, 1
   # rxanchor rwb
     le rx885_pos, 0, rx885_fail
@@ -11317,11 +12214,15 @@
     rx885_pos = $P10."pos"()
   # rx pass
     rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<Q>")
-    rx885_cur."!cursor_debug"("PASS  ", "quote:sym<Q>", " at pos=", rx885_pos)
+    if_null rx885_debug, debug_753
+    rx885_cur."!cursor_debug"("PASS", "quote:sym<Q>", " at pos=", rx885_pos)
+  debug_753:
     .return (rx885_cur)
   rx885_restart:
 .annotate 'line', 4
-    rx885_cur."!cursor_debug"("NEXT ", "quote:sym<Q>")
+    if_null rx885_debug, debug_754
+    rx885_cur."!cursor_debug"("NEXT", "quote:sym<Q>")
+  debug_754:
   rx885_fail:
     (rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0)
     lt rx885_pos, -1, rx885_done
@@ -11329,14 +12230,16 @@
     jump $I10
   rx885_done:
     rx885_cur."!cursor_fail"()
-    rx885_cur."!cursor_debug"("FAIL  ", "quote:sym<Q>")
+    if_null rx885_debug, debug_755
+    rx885_cur."!cursor_debug"("FAIL", "quote:sym<Q>")
+  debug_755:
     .return (rx885_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("215_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<Q>"  :subid("215_1282324002.40722") :method
 .annotate 'line', 4
     $P887 = self."!PREFIX__!subrule"("ws", "Q")
     new $P888, "ResizablePMCArray"
@@ -11346,7 +12249,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>"  :subid("216_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym<Q:PIR>"  :subid("216_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx891_tgt
     .local int rx891_pos
@@ -11354,7 +12257,9 @@
     .local int rx891_eos
     .local int rx891_rep
     .local pmc rx891_cur
+    .local pmc rx891_debug
     (rx891_cur, rx891_pos, rx891_tgt, $I10) = self."!cursor_start"()
+    getattribute rx891_debug, rx891_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx891_cur
     .local pmc match
     .lex "$/", match
@@ -11366,7 +12271,9 @@
     substr rx891_tgt, rx891_tgt, rx891_off
   rx891_start:
     eq $I10, 1, rx891_restart
-    rx891_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+    if_null rx891_debug, debug_756
+    rx891_cur."!cursor_debug"("START", "quote:sym<Q:PIR>")
+  debug_756:
     $I10 = self.'from'()
     ne $I10, -1, rxscan895_done
     goto rxscan895_scan
@@ -11401,11 +12308,15 @@
     rx891_pos = $P10."pos"()
   # rx pass
     rx891_cur."!cursor_pass"(rx891_pos, "quote:sym<Q:PIR>")
-    rx891_cur."!cursor_debug"("PASS  ", "quote:sym<Q:PIR>", " at pos=", rx891_pos)
+    if_null rx891_debug, debug_757
+    rx891_cur."!cursor_debug"("PASS", "quote:sym<Q:PIR>", " at pos=", rx891_pos)
+  debug_757:
     .return (rx891_cur)
   rx891_restart:
 .annotate 'line', 4
-    rx891_cur."!cursor_debug"("NEXT ", "quote:sym<Q:PIR>")
+    if_null rx891_debug, debug_758
+    rx891_cur."!cursor_debug"("NEXT", "quote:sym<Q:PIR>")
+  debug_758:
   rx891_fail:
     (rx891_rep, rx891_pos, $I10, $P10) = rx891_cur."!mark_fail"(0)
     lt rx891_pos, -1, rx891_done
@@ -11413,14 +12324,16 @@
     jump $I10
   rx891_done:
     rx891_cur."!cursor_fail"()
-    rx891_cur."!cursor_debug"("FAIL  ", "quote:sym<Q:PIR>")
+    if_null rx891_debug, debug_759
+    rx891_cur."!cursor_debug"("FAIL", "quote:sym<Q:PIR>")
+  debug_759:
     .return (rx891_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("217_1280467477.44751") :method
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("217_1282324002.40722") :method
 .annotate 'line', 4
     $P893 = self."!PREFIX__!subrule"("ws", "Q:PIR")
     new $P894, "ResizablePMCArray"
@@ -11430,7 +12343,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("218_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote:sym</ />"  :subid("218_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx897_tgt
     .local int rx897_pos
@@ -11438,7 +12351,9 @@
     .local int rx897_eos
     .local int rx897_rep
     .local pmc rx897_cur
+    .local pmc rx897_debug
     (rx897_cur, rx897_pos, rx897_tgt, $I10) = self."!cursor_start"()
+    getattribute rx897_debug, rx897_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx897_cur
     .local pmc match
     .lex "$/", match
@@ -11450,7 +12365,9 @@
     substr rx897_tgt, rx897_tgt, rx897_off
   rx897_start:
     eq $I10, 1, rx897_restart
-    rx897_cur."!cursor_debug"("START ", "quote:sym</ />")
+    if_null rx897_debug, debug_760
+    rx897_cur."!cursor_debug"("START", "quote:sym</ />")
+  debug_760:
     $I10 = self.'from'()
     ne $I10, -1, rxscan901_done
     goto rxscan901_scan
@@ -11468,8 +12385,8 @@
     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, "/", rx897_fail
+    ord $I11, rx897_tgt, $I11
+    ne $I11, 47, rx897_fail
     add rx897_pos, 1
 .annotate 'line', 426
   # rx subrule "newpad" subtype=method negate=
@@ -11494,17 +12411,21 @@
     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, "/", rx897_fail
+    ord $I11, rx897_tgt, $I11
+    ne $I11, 47, rx897_fail
     add rx897_pos, 1
 .annotate 'line', 424
   # rx pass
     rx897_cur."!cursor_pass"(rx897_pos, "quote:sym</ />")
-    rx897_cur."!cursor_debug"("PASS  ", "quote:sym</ />", " at pos=", rx897_pos)
+    if_null rx897_debug, debug_761
+    rx897_cur."!cursor_debug"("PASS", "quote:sym</ />", " at pos=", rx897_pos)
+  debug_761:
     .return (rx897_cur)
   rx897_restart:
 .annotate 'line', 4
-    rx897_cur."!cursor_debug"("NEXT ", "quote:sym</ />")
+    if_null rx897_debug, debug_762
+    rx897_cur."!cursor_debug"("NEXT", "quote:sym</ />")
+  debug_762:
   rx897_fail:
     (rx897_rep, rx897_pos, $I10, $P10) = rx897_cur."!mark_fail"(0)
     lt rx897_pos, -1, rx897_done
@@ -11512,14 +12433,16 @@
     jump $I10
   rx897_done:
     rx897_cur."!cursor_fail"()
-    rx897_cur."!cursor_debug"("FAIL  ", "quote:sym</ />")
+    if_null rx897_debug, debug_763
+    rx897_cur."!cursor_debug"("FAIL", "quote:sym</ />")
+  debug_763:
     .return (rx897_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("219_1280467477.44751") :method
+.sub "!PREFIX__quote:sym</ />"  :subid("219_1282324002.40722") :method
 .annotate 'line', 4
     $P899 = self."!PREFIX__!subrule"("newpad", "/")
     new $P900, "ResizablePMCArray"
@@ -11529,7 +12452,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("220_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<$>"  :subid("220_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx903_tgt
     .local int rx903_pos
@@ -11537,7 +12460,9 @@
     .local int rx903_eos
     .local int rx903_rep
     .local pmc rx903_cur
+    .local pmc rx903_debug
     (rx903_cur, rx903_pos, rx903_tgt, $I10) = self."!cursor_start"()
+    getattribute rx903_debug, rx903_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx903_cur
     .local pmc match
     .lex "$/", match
@@ -11549,7 +12474,9 @@
     substr rx903_tgt, rx903_tgt, rx903_off
   rx903_start:
     eq $I10, 1, rx903_restart
-    rx903_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
+    if_null rx903_debug, debug_764
+    rx903_cur."!cursor_debug"("START", "quote_escape:sym<$>")
+  debug_764:
     $I10 = self.'from'()
     ne $I10, -1, rxscan906_done
     goto rxscan906_scan
@@ -11582,11 +12509,15 @@
     rx903_pos = $P10."pos"()
   # rx pass
     rx903_cur."!cursor_pass"(rx903_pos, "quote_escape:sym<$>")
-    rx903_cur."!cursor_debug"("PASS  ", "quote_escape:sym<$>", " at pos=", rx903_pos)
+    if_null rx903_debug, debug_765
+    rx903_cur."!cursor_debug"("PASS", "quote_escape:sym<$>", " at pos=", rx903_pos)
+  debug_765:
     .return (rx903_cur)
   rx903_restart:
 .annotate 'line', 4
-    rx903_cur."!cursor_debug"("NEXT ", "quote_escape:sym<$>")
+    if_null rx903_debug, debug_766
+    rx903_cur."!cursor_debug"("NEXT", "quote_escape:sym<$>")
+  debug_766:
   rx903_fail:
     (rx903_rep, rx903_pos, $I10, $P10) = rx903_cur."!mark_fail"(0)
     lt rx903_pos, -1, rx903_done
@@ -11594,14 +12525,16 @@
     jump $I10
   rx903_done:
     rx903_cur."!cursor_fail"()
-    rx903_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<$>")
+    if_null rx903_debug, debug_767
+    rx903_cur."!cursor_debug"("FAIL", "quote_escape:sym<$>")
+  debug_767:
     .return (rx903_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("221_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("221_1282324002.40722") :method
 .annotate 'line', 4
     new $P905, "ResizablePMCArray"
     push $P905, "$"
@@ -11610,7 +12543,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("222_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<{ }>"  :subid("222_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx908_tgt
     .local int rx908_pos
@@ -11618,7 +12551,9 @@
     .local int rx908_eos
     .local int rx908_rep
     .local pmc rx908_cur
+    .local pmc rx908_debug
     (rx908_cur, rx908_pos, rx908_tgt, $I10) = self."!cursor_start"()
+    getattribute rx908_debug, rx908_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx908_cur
     .local pmc match
     .lex "$/", match
@@ -11630,7 +12565,9 @@
     substr rx908_tgt, rx908_tgt, rx908_off
   rx908_start:
     eq $I10, 1, rx908_restart
-    rx908_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
+    if_null rx908_debug, debug_768
+    rx908_cur."!cursor_debug"("START", "quote_escape:sym<{ }>")
+  debug_768:
     $I10 = self.'from'()
     ne $I10, -1, rxscan911_done
     goto rxscan911_scan
@@ -11663,11 +12600,15 @@
     rx908_pos = $P10."pos"()
   # rx pass
     rx908_cur."!cursor_pass"(rx908_pos, "quote_escape:sym<{ }>")
-    rx908_cur."!cursor_debug"("PASS  ", "quote_escape:sym<{ }>", " at pos=", rx908_pos)
+    if_null rx908_debug, debug_769
+    rx908_cur."!cursor_debug"("PASS", "quote_escape:sym<{ }>", " at pos=", rx908_pos)
+  debug_769:
     .return (rx908_cur)
   rx908_restart:
 .annotate 'line', 4
-    rx908_cur."!cursor_debug"("NEXT ", "quote_escape:sym<{ }>")
+    if_null rx908_debug, debug_770
+    rx908_cur."!cursor_debug"("NEXT", "quote_escape:sym<{ }>")
+  debug_770:
   rx908_fail:
     (rx908_rep, rx908_pos, $I10, $P10) = rx908_cur."!mark_fail"(0)
     lt rx908_pos, -1, rx908_done
@@ -11675,14 +12616,16 @@
     jump $I10
   rx908_done:
     rx908_cur."!cursor_fail"()
-    rx908_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<{ }>")
+    if_null rx908_debug, debug_771
+    rx908_cur."!cursor_debug"("FAIL", "quote_escape:sym<{ }>")
+  debug_771:
     .return (rx908_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("223_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("223_1282324002.40722") :method
 .annotate 'line', 4
     new $P910, "ResizablePMCArray"
     push $P910, "{"
@@ -11691,7 +12634,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("224_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "quote_escape:sym<esc>"  :subid("224_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx913_tgt
     .local int rx913_pos
@@ -11699,7 +12642,9 @@
     .local int rx913_eos
     .local int rx913_rep
     .local pmc rx913_cur
+    .local pmc rx913_debug
     (rx913_cur, rx913_pos, rx913_tgt, $I10) = self."!cursor_start"()
+    getattribute rx913_debug, rx913_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx913_cur
     .local pmc match
     .lex "$/", match
@@ -11711,7 +12656,9 @@
     substr rx913_tgt, rx913_tgt, rx913_off
   rx913_start:
     eq $I10, 1, rx913_restart
-    rx913_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
+    if_null rx913_debug, debug_772
+    rx913_cur."!cursor_debug"("START", "quote_escape:sym<esc>")
+  debug_772:
     $I10 = self.'from'()
     ne $I10, -1, rxscan916_done
     goto rxscan916_scan
@@ -11738,11 +12685,15 @@
     unless $P10, rx913_fail
   # rx pass
     rx913_cur."!cursor_pass"(rx913_pos, "quote_escape:sym<esc>")
-    rx913_cur."!cursor_debug"("PASS  ", "quote_escape:sym<esc>", " at pos=", rx913_pos)
+    if_null rx913_debug, debug_773
+    rx913_cur."!cursor_debug"("PASS", "quote_escape:sym<esc>", " at pos=", rx913_pos)
+  debug_773:
     .return (rx913_cur)
   rx913_restart:
 .annotate 'line', 4
-    rx913_cur."!cursor_debug"("NEXT ", "quote_escape:sym<esc>")
+    if_null rx913_debug, debug_774
+    rx913_cur."!cursor_debug"("NEXT", "quote_escape:sym<esc>")
+  debug_774:
   rx913_fail:
     (rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0)
     lt rx913_pos, -1, rx913_done
@@ -11750,14 +12701,16 @@
     jump $I10
   rx913_done:
     rx913_cur."!cursor_fail"()
-    rx913_cur."!cursor_debug"("FAIL  ", "quote_escape:sym<esc>")
+    if_null rx913_debug, debug_775
+    rx913_cur."!cursor_debug"("FAIL", "quote_escape:sym<esc>")
+  debug_775:
     .return (rx913_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("225_1280467477.44751") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("225_1282324002.40722") :method
 .annotate 'line', 4
     new $P915, "ResizablePMCArray"
     push $P915, "\\e"
@@ -11766,7 +12719,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("226_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<( )>"  :subid("226_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx918_tgt
     .local int rx918_pos
@@ -11774,8 +12727,10 @@
     .local int rx918_eos
     .local int rx918_rep
     .local pmc rx918_cur
+    .local pmc rx918_debug
     (rx918_cur, rx918_pos, rx918_tgt, $I10) = self."!cursor_start"()
     rx918_cur."!cursor_caparray"("EXPR")
+    getattribute rx918_debug, rx918_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx918_cur
     .local pmc match
     .lex "$/", match
@@ -11787,7 +12742,9 @@
     substr rx918_tgt, rx918_tgt, rx918_off
   rx918_start:
     eq $I10, 1, rx918_restart
-    rx918_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
+    if_null rx918_debug, debug_776
+    rx918_cur."!cursor_debug"("START", "circumfix:sym<( )>")
+  debug_776:
     $I10 = self.'from'()
     ne $I10, -1, rxscan922_done
     goto rxscan922_scan
@@ -11805,8 +12762,8 @@
     add $I11, rx918_pos, 1
     gt $I11, rx918_eos, rx918_fail
     sub $I11, rx918_pos, rx918_off
-    substr $S10, rx918_tgt, $I11, 1
-    ne $S10, "(", rx918_fail
+    ord $I11, rx918_tgt, $I11
+    ne $I11, 40, rx918_fail
     add rx918_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx918_cur."!cursor_pos"(rx918_pos)
@@ -11837,16 +12794,20 @@
     add $I11, rx918_pos, 1
     gt $I11, rx918_eos, rx918_fail
     sub $I11, rx918_pos, rx918_off
-    substr $S10, rx918_tgt, $I11, 1
-    ne $S10, ")", rx918_fail
+    ord $I11, rx918_tgt, $I11
+    ne $I11, 41, rx918_fail
     add rx918_pos, 1
   # rx pass
     rx918_cur."!cursor_pass"(rx918_pos, "circumfix:sym<( )>")
-    rx918_cur."!cursor_debug"("PASS  ", "circumfix:sym<( )>", " at pos=", rx918_pos)
+    if_null rx918_debug, debug_777
+    rx918_cur."!cursor_debug"("PASS", "circumfix:sym<( )>", " at pos=", rx918_pos)
+  debug_777:
     .return (rx918_cur)
   rx918_restart:
 .annotate 'line', 4
-    rx918_cur."!cursor_debug"("NEXT ", "circumfix:sym<( )>")
+    if_null rx918_debug, debug_778
+    rx918_cur."!cursor_debug"("NEXT", "circumfix:sym<( )>")
+  debug_778:
   rx918_fail:
     (rx918_rep, rx918_pos, $I10, $P10) = rx918_cur."!mark_fail"(0)
     lt rx918_pos, -1, rx918_done
@@ -11854,14 +12815,16 @@
     jump $I10
   rx918_done:
     rx918_cur."!cursor_fail"()
-    rx918_cur."!cursor_debug"("FAIL  ", "circumfix:sym<( )>")
+    if_null rx918_debug, debug_779
+    rx918_cur."!cursor_debug"("FAIL", "circumfix:sym<( )>")
+  debug_779:
     .return (rx918_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("227_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("227_1282324002.40722") :method
 .annotate 'line', 4
     $P920 = self."!PREFIX__!subrule"("ws", "(")
     new $P921, "ResizablePMCArray"
@@ -11871,7 +12834,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("228_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<[ ]>"  :subid("228_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx926_tgt
     .local int rx926_pos
@@ -11879,8 +12842,10 @@
     .local int rx926_eos
     .local int rx926_rep
     .local pmc rx926_cur
+    .local pmc rx926_debug
     (rx926_cur, rx926_pos, rx926_tgt, $I10) = self."!cursor_start"()
     rx926_cur."!cursor_caparray"("EXPR")
+    getattribute rx926_debug, rx926_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx926_cur
     .local pmc match
     .lex "$/", match
@@ -11892,7 +12857,9 @@
     substr rx926_tgt, rx926_tgt, rx926_off
   rx926_start:
     eq $I10, 1, rx926_restart
-    rx926_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
+    if_null rx926_debug, debug_780
+    rx926_cur."!cursor_debug"("START", "circumfix:sym<[ ]>")
+  debug_780:
     $I10 = self.'from'()
     ne $I10, -1, rxscan930_done
     goto rxscan930_scan
@@ -11910,8 +12877,8 @@
     add $I11, rx926_pos, 1
     gt $I11, rx926_eos, rx926_fail
     sub $I11, rx926_pos, rx926_off
-    substr $S10, rx926_tgt, $I11, 1
-    ne $S10, "[", rx926_fail
+    ord $I11, rx926_tgt, $I11
+    ne $I11, 91, rx926_fail
     add rx926_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx926_cur."!cursor_pos"(rx926_pos)
@@ -11942,16 +12909,20 @@
     add $I11, rx926_pos, 1
     gt $I11, rx926_eos, rx926_fail
     sub $I11, rx926_pos, rx926_off
-    substr $S10, rx926_tgt, $I11, 1
-    ne $S10, "]", rx926_fail
+    ord $I11, rx926_tgt, $I11
+    ne $I11, 93, rx926_fail
     add rx926_pos, 1
   # rx pass
     rx926_cur."!cursor_pass"(rx926_pos, "circumfix:sym<[ ]>")
-    rx926_cur."!cursor_debug"("PASS  ", "circumfix:sym<[ ]>", " at pos=", rx926_pos)
+    if_null rx926_debug, debug_781
+    rx926_cur."!cursor_debug"("PASS", "circumfix:sym<[ ]>", " at pos=", rx926_pos)
+  debug_781:
     .return (rx926_cur)
   rx926_restart:
 .annotate 'line', 4
-    rx926_cur."!cursor_debug"("NEXT ", "circumfix:sym<[ ]>")
+    if_null rx926_debug, debug_782
+    rx926_cur."!cursor_debug"("NEXT", "circumfix:sym<[ ]>")
+  debug_782:
   rx926_fail:
     (rx926_rep, rx926_pos, $I10, $P10) = rx926_cur."!mark_fail"(0)
     lt rx926_pos, -1, rx926_done
@@ -11959,14 +12930,16 @@
     jump $I10
   rx926_done:
     rx926_cur."!cursor_fail"()
-    rx926_cur."!cursor_debug"("FAIL  ", "circumfix:sym<[ ]>")
+    if_null rx926_debug, debug_783
+    rx926_cur."!cursor_debug"("FAIL", "circumfix:sym<[ ]>")
+  debug_783:
     .return (rx926_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("229_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("229_1282324002.40722") :method
 .annotate 'line', 4
     $P928 = self."!PREFIX__!subrule"("ws", "[")
     new $P929, "ResizablePMCArray"
@@ -11976,7 +12949,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("230_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<ang>"  :subid("230_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx934_tgt
     .local int rx934_pos
@@ -11984,7 +12957,9 @@
     .local int rx934_eos
     .local int rx934_rep
     .local pmc rx934_cur
+    .local pmc rx934_debug
     (rx934_cur, rx934_pos, rx934_tgt, $I10) = self."!cursor_start"()
+    getattribute rx934_debug, rx934_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx934_cur
     .local pmc match
     .lex "$/", match
@@ -11996,7 +12971,9 @@
     substr rx934_tgt, rx934_tgt, rx934_off
   rx934_start:
     eq $I10, 1, rx934_restart
-    rx934_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+    if_null rx934_debug, debug_784
+    rx934_cur."!cursor_debug"("START", "circumfix:sym<ang>")
+  debug_784:
     $I10 = self.'from'()
     ne $I10, -1, rxscan937_done
     goto rxscan937_scan
@@ -12025,11 +13002,15 @@
     rx934_pos = $P10."pos"()
   # rx pass
     rx934_cur."!cursor_pass"(rx934_pos, "circumfix:sym<ang>")
-    rx934_cur."!cursor_debug"("PASS  ", "circumfix:sym<ang>", " at pos=", rx934_pos)
+    if_null rx934_debug, debug_785
+    rx934_cur."!cursor_debug"("PASS", "circumfix:sym<ang>", " at pos=", rx934_pos)
+  debug_785:
     .return (rx934_cur)
   rx934_restart:
 .annotate 'line', 4
-    rx934_cur."!cursor_debug"("NEXT ", "circumfix:sym<ang>")
+    if_null rx934_debug, debug_786
+    rx934_cur."!cursor_debug"("NEXT", "circumfix:sym<ang>")
+  debug_786:
   rx934_fail:
     (rx934_rep, rx934_pos, $I10, $P10) = rx934_cur."!mark_fail"(0)
     lt rx934_pos, -1, rx934_done
@@ -12037,14 +13018,16 @@
     jump $I10
   rx934_done:
     rx934_cur."!cursor_fail"()
-    rx934_cur."!cursor_debug"("FAIL  ", "circumfix:sym<ang>")
+    if_null rx934_debug, debug_787
+    rx934_cur."!cursor_debug"("FAIL", "circumfix:sym<ang>")
+  debug_787:
     .return (rx934_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("231_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("231_1282324002.40722") :method
 .annotate 'line', 4
     new $P936, "ResizablePMCArray"
     push $P936, "<"
@@ -12053,7 +13036,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("232_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("232_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx939_tgt
     .local int rx939_pos
@@ -12061,7 +13044,9 @@
     .local int rx939_eos
     .local int rx939_rep
     .local pmc rx939_cur
+    .local pmc rx939_debug
     (rx939_cur, rx939_pos, rx939_tgt, $I10) = self."!cursor_start"()
+    getattribute rx939_debug, rx939_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx939_cur
     .local pmc match
     .lex "$/", match
@@ -12073,7 +13058,9 @@
     substr rx939_tgt, rx939_tgt, rx939_off
   rx939_start:
     eq $I10, 1, rx939_restart
-    rx939_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    if_null rx939_debug, debug_788
+    rx939_cur."!cursor_debug"("START", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  debug_788:
     $I10 = self.'from'()
     ne $I10, -1, rxscan942_done
     goto rxscan942_scan
@@ -12102,11 +13089,15 @@
     rx939_pos = $P10."pos"()
   # rx pass
     rx939_cur."!cursor_pass"(rx939_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
-    rx939_cur."!cursor_debug"("PASS  ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos)
+    if_null rx939_debug, debug_789
+    rx939_cur."!cursor_debug"("PASS", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx939_pos)
+  debug_789:
     .return (rx939_cur)
   rx939_restart:
 .annotate 'line', 4
-    rx939_cur."!cursor_debug"("NEXT ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    if_null rx939_debug, debug_790
+    rx939_cur."!cursor_debug"("NEXT", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  debug_790:
   rx939_fail:
     (rx939_rep, rx939_pos, $I10, $P10) = rx939_cur."!mark_fail"(0)
     lt rx939_pos, -1, rx939_done
@@ -12114,14 +13105,16 @@
     jump $I10
   rx939_done:
     rx939_cur."!cursor_fail"()
-    rx939_cur."!cursor_debug"("FAIL  ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+    if_null rx939_debug, debug_791
+    rx939_cur."!cursor_debug"("FAIL", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+  debug_791:
     .return (rx939_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("233_1280467477.44751") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("233_1282324002.40722") :method
 .annotate 'line', 4
     new $P941, "ResizablePMCArray"
     push $P941, unicode:"\x{ab}"
@@ -12130,7 +13123,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("234_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<{ }>"  :subid("234_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx944_tgt
     .local int rx944_pos
@@ -12138,7 +13131,9 @@
     .local int rx944_eos
     .local int rx944_rep
     .local pmc rx944_cur
+    .local pmc rx944_debug
     (rx944_cur, rx944_pos, rx944_tgt, $I10) = self."!cursor_start"()
+    getattribute rx944_debug, rx944_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx944_cur
     .local pmc match
     .lex "$/", match
@@ -12150,7 +13145,9 @@
     substr rx944_tgt, rx944_tgt, rx944_off
   rx944_start:
     eq $I10, 1, rx944_restart
-    rx944_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
+    if_null rx944_debug, debug_792
+    rx944_cur."!cursor_debug"("START", "circumfix:sym<{ }>")
+  debug_792:
     $I10 = self.'from'()
     ne $I10, -1, rxscan947_done
     goto rxscan947_scan
@@ -12179,11 +13176,15 @@
     rx944_pos = $P10."pos"()
   # rx pass
     rx944_cur."!cursor_pass"(rx944_pos, "circumfix:sym<{ }>")
-    rx944_cur."!cursor_debug"("PASS  ", "circumfix:sym<{ }>", " at pos=", rx944_pos)
+    if_null rx944_debug, debug_793
+    rx944_cur."!cursor_debug"("PASS", "circumfix:sym<{ }>", " at pos=", rx944_pos)
+  debug_793:
     .return (rx944_cur)
   rx944_restart:
 .annotate 'line', 4
-    rx944_cur."!cursor_debug"("NEXT ", "circumfix:sym<{ }>")
+    if_null rx944_debug, debug_794
+    rx944_cur."!cursor_debug"("NEXT", "circumfix:sym<{ }>")
+  debug_794:
   rx944_fail:
     (rx944_rep, rx944_pos, $I10, $P10) = rx944_cur."!mark_fail"(0)
     lt rx944_pos, -1, rx944_done
@@ -12191,14 +13192,16 @@
     jump $I10
   rx944_done:
     rx944_cur."!cursor_fail"()
-    rx944_cur."!cursor_debug"("FAIL  ", "circumfix:sym<{ }>")
+    if_null rx944_debug, debug_795
+    rx944_cur."!cursor_debug"("FAIL", "circumfix:sym<{ }>")
+  debug_795:
     .return (rx944_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("235_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("235_1282324002.40722") :method
 .annotate 'line', 4
     new $P946, "ResizablePMCArray"
     push $P946, "{"
@@ -12207,7 +13210,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("236_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "circumfix:sym<sigil>"  :subid("236_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx949_tgt
     .local int rx949_pos
@@ -12215,7 +13218,9 @@
     .local int rx949_eos
     .local int rx949_rep
     .local pmc rx949_cur
+    .local pmc rx949_debug
     (rx949_cur, rx949_pos, rx949_tgt, $I10) = self."!cursor_start"()
+    getattribute rx949_debug, rx949_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx949_cur
     .local pmc match
     .lex "$/", match
@@ -12227,7 +13232,9 @@
     substr rx949_tgt, rx949_tgt, rx949_off
   rx949_start:
     eq $I10, 1, rx949_restart
-    rx949_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+    if_null rx949_debug, debug_796
+    rx949_cur."!cursor_debug"("START", "circumfix:sym<sigil>")
+  debug_796:
     $I10 = self.'from'()
     ne $I10, -1, rxscan953_done
     goto rxscan953_scan
@@ -12252,8 +13259,8 @@
     add $I11, rx949_pos, 1
     gt $I11, rx949_eos, rx949_fail
     sub $I11, rx949_pos, rx949_off
-    substr $S10, rx949_tgt, $I11, 1
-    ne $S10, "(", rx949_fail
+    ord $I11, rx949_tgt, $I11
+    ne $I11, 40, rx949_fail
     add rx949_pos, 1
   # rx subrule "semilist" subtype=capture negate=
     rx949_cur."!cursor_pos"(rx949_pos)
@@ -12269,8 +13276,8 @@
     add $I11, rx949_pos, 1
     gt $I11, rx949_eos, rx949_fail
     sub $I11, rx949_pos, rx949_off
-    substr $S10, rx949_tgt, $I11, 1
-    ne $S10, ")", rx949_fail
+    ord $I11, rx949_tgt, $I11
+    ne $I11, 41, rx949_fail
     add rx949_pos, 1
     goto alt954_end
   alt954_1:
@@ -12289,11 +13296,15 @@
   alt954_end:
   # rx pass
     rx949_cur."!cursor_pass"(rx949_pos, "circumfix:sym<sigil>")
-    rx949_cur."!cursor_debug"("PASS  ", "circumfix:sym<sigil>", " at pos=", rx949_pos)
+    if_null rx949_debug, debug_797
+    rx949_cur."!cursor_debug"("PASS", "circumfix:sym<sigil>", " at pos=", rx949_pos)
+  debug_797:
     .return (rx949_cur)
   rx949_restart:
 .annotate 'line', 4
-    rx949_cur."!cursor_debug"("NEXT ", "circumfix:sym<sigil>")
+    if_null rx949_debug, debug_798
+    rx949_cur."!cursor_debug"("NEXT", "circumfix:sym<sigil>")
+  debug_798:
   rx949_fail:
     (rx949_rep, rx949_pos, $I10, $P10) = rx949_cur."!mark_fail"(0)
     lt rx949_pos, -1, rx949_done
@@ -12301,14 +13312,16 @@
     jump $I10
   rx949_done:
     rx949_cur."!cursor_fail"()
-    rx949_cur."!cursor_debug"("FAIL  ", "circumfix:sym<sigil>")
+    if_null rx949_debug, debug_799
+    rx949_cur."!cursor_debug"("FAIL", "circumfix:sym<sigil>")
+  debug_799:
     .return (rx949_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("237_1280467477.44751") :method
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("237_1282324002.40722") :method
 .annotate 'line', 4
     $P951 = self."!PREFIX__!subrule"("sigil", "")
     new $P952, "ResizablePMCArray"
@@ -12318,7 +13331,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("238_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "semilist"  :subid("238_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 4
     .local string rx958_tgt
     .local int rx958_pos
@@ -12326,7 +13339,9 @@
     .local int rx958_eos
     .local int rx958_rep
     .local pmc rx958_cur
+    .local pmc rx958_debug
     (rx958_cur, rx958_pos, rx958_tgt, $I10) = self."!cursor_start"()
+    getattribute rx958_debug, rx958_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx958_cur
     .local pmc match
     .lex "$/", match
@@ -12338,7 +13353,9 @@
     substr rx958_tgt, rx958_tgt, rx958_off
   rx958_start:
     eq $I10, 1, rx958_restart
-    rx958_cur."!cursor_debug"("START ", "semilist")
+    if_null rx958_debug, debug_800
+    rx958_cur."!cursor_debug"("START", "semilist")
+  debug_800:
     $I10 = self.'from'()
     ne $I10, -1, rxscan962_done
     goto rxscan962_scan
@@ -12371,11 +13388,15 @@
     rx958_pos = $P10."pos"()
   # rx pass
     rx958_cur."!cursor_pass"(rx958_pos, "semilist")
-    rx958_cur."!cursor_debug"("PASS  ", "semilist", " at pos=", rx958_pos)
+    if_null rx958_debug, debug_801
+    rx958_cur."!cursor_debug"("PASS", "semilist", " at pos=", rx958_pos)
+  debug_801:
     .return (rx958_cur)
   rx958_restart:
 .annotate 'line', 4
-    rx958_cur."!cursor_debug"("NEXT ", "semilist")
+    if_null rx958_debug, debug_802
+    rx958_cur."!cursor_debug"("NEXT", "semilist")
+  debug_802:
   rx958_fail:
     (rx958_rep, rx958_pos, $I10, $P10) = rx958_cur."!mark_fail"(0)
     lt rx958_pos, -1, rx958_done
@@ -12383,14 +13404,16 @@
     jump $I10
   rx958_done:
     rx958_cur."!cursor_fail"()
-    rx958_cur."!cursor_debug"("FAIL  ", "semilist")
+    if_null rx958_debug, debug_803
+    rx958_cur."!cursor_debug"("FAIL", "semilist")
+  debug_803:
     .return (rx958_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("239_1280467477.44751") :method
+.sub "!PREFIX__semilist"  :subid("239_1282324002.40722") :method
 .annotate 'line', 4
     $P960 = self."!PREFIX__!subrule"("ws", "")
     new $P961, "ResizablePMCArray"
@@ -12400,7 +13423,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("240_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infixish"  :subid("240_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx966_tgt
     .local int rx966_pos
@@ -12408,7 +13431,9 @@
     .local int rx966_eos
     .local int rx966_rep
     .local pmc rx966_cur
+    .local pmc rx966_debug
     (rx966_cur, rx966_pos, rx966_tgt, $I10) = self."!cursor_start"()
+    getattribute rx966_debug, rx966_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx966_cur
     .local pmc match
     .lex "$/", match
@@ -12420,7 +13445,9 @@
     substr rx966_tgt, rx966_tgt, rx966_off
   rx966_start:
     eq $I10, 1, rx966_restart
-    rx966_cur."!cursor_debug"("START ", "infixish")
+    if_null rx966_debug, debug_804
+    rx966_cur."!cursor_debug"("START", "infixish")
+  debug_804:
     $I10 = self.'from'()
     ne $I10, -1, rxscan969_done
     goto rxscan969_scan
@@ -12447,11 +13474,15 @@
     rx966_pos = $P10."pos"()
   # rx pass
     rx966_cur."!cursor_pass"(rx966_pos, "infixish")
-    rx966_cur."!cursor_debug"("PASS  ", "infixish", " at pos=", rx966_pos)
+    if_null rx966_debug, debug_805
+    rx966_cur."!cursor_debug"("PASS", "infixish", " at pos=", rx966_pos)
+  debug_805:
     .return (rx966_cur)
   rx966_restart:
 .annotate 'line', 447
-    rx966_cur."!cursor_debug"("NEXT ", "infixish")
+    if_null rx966_debug, debug_806
+    rx966_cur."!cursor_debug"("NEXT", "infixish")
+  debug_806:
   rx966_fail:
     (rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0)
     lt rx966_pos, -1, rx966_done
@@ -12459,14 +13490,16 @@
     jump $I10
   rx966_done:
     rx966_cur."!cursor_fail"()
-    rx966_cur."!cursor_debug"("FAIL  ", "infixish")
+    if_null rx966_debug, debug_807
+    rx966_cur."!cursor_debug"("FAIL", "infixish")
+  debug_807:
     .return (rx966_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("241_1280467477.44751") :method
+.sub "!PREFIX__infixish"  :subid("241_1282324002.40722") :method
 .annotate 'line', 447
     new $P968, "ResizablePMCArray"
     push $P968, ""
@@ -12475,7 +13508,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("242_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infixstopper"  :subid("242_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx971_tgt
     .local int rx971_pos
@@ -12483,7 +13516,9 @@
     .local int rx971_eos
     .local int rx971_rep
     .local pmc rx971_cur
+    .local pmc rx971_debug
     (rx971_cur, rx971_pos, rx971_tgt, $I10) = self."!cursor_start"()
+    getattribute rx971_debug, rx971_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx971_cur
     .local pmc match
     .lex "$/", match
@@ -12495,7 +13530,9 @@
     substr rx971_tgt, rx971_tgt, rx971_off
   rx971_start:
     eq $I10, 1, rx971_restart
-    rx971_cur."!cursor_debug"("START ", "infixstopper")
+    if_null rx971_debug, debug_808
+    rx971_cur."!cursor_debug"("START", "infixstopper")
+  debug_808:
     $I10 = self.'from'()
     ne $I10, -1, rxscan974_done
     goto rxscan974_scan
@@ -12515,11 +13552,15 @@
     unless $P10, rx971_fail
   # rx pass
     rx971_cur."!cursor_pass"(rx971_pos, "infixstopper")
-    rx971_cur."!cursor_debug"("PASS  ", "infixstopper", " at pos=", rx971_pos)
+    if_null rx971_debug, debug_809
+    rx971_cur."!cursor_debug"("PASS", "infixstopper", " at pos=", rx971_pos)
+  debug_809:
     .return (rx971_cur)
   rx971_restart:
 .annotate 'line', 447
-    rx971_cur."!cursor_debug"("NEXT ", "infixstopper")
+    if_null rx971_debug, debug_810
+    rx971_cur."!cursor_debug"("NEXT", "infixstopper")
+  debug_810:
   rx971_fail:
     (rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0)
     lt rx971_pos, -1, rx971_done
@@ -12527,14 +13568,16 @@
     jump $I10
   rx971_done:
     rx971_cur."!cursor_fail"()
-    rx971_cur."!cursor_debug"("FAIL  ", "infixstopper")
+    if_null rx971_debug, debug_811
+    rx971_cur."!cursor_debug"("FAIL", "infixstopper")
+  debug_811:
     .return (rx971_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("243_1280467477.44751") :method
+.sub "!PREFIX__infixstopper"  :subid("243_1282324002.40722") :method
 .annotate 'line', 447
     new $P973, "ResizablePMCArray"
     push $P973, ""
@@ -12543,7 +13586,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("244_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<[ ]>"  :subid("244_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx976_tgt
     .local int rx976_pos
@@ -12551,7 +13594,9 @@
     .local int rx976_eos
     .local int rx976_rep
     .local pmc rx976_cur
+    .local pmc rx976_debug
     (rx976_cur, rx976_pos, rx976_tgt, $I10) = self."!cursor_start"()
+    getattribute rx976_debug, rx976_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx976_cur
     .local pmc match
     .lex "$/", match
@@ -12563,7 +13608,9 @@
     substr rx976_tgt, rx976_tgt, rx976_off
   rx976_start:
     eq $I10, 1, rx976_restart
-    rx976_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
+    if_null rx976_debug, debug_812
+    rx976_cur."!cursor_debug"("START", "postcircumfix:sym<[ ]>")
+  debug_812:
     $I10 = self.'from'()
     ne $I10, -1, rxscan980_done
     goto rxscan980_scan
@@ -12581,8 +13628,8 @@
     add $I11, rx976_pos, 1
     gt $I11, rx976_eos, rx976_fail
     sub $I11, rx976_pos, rx976_off
-    substr $S10, rx976_tgt, $I11, 1
-    ne $S10, "[", rx976_fail
+    ord $I11, rx976_tgt, $I11
+    ne $I11, 91, rx976_fail
     add rx976_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx976_cur."!cursor_pos"(rx976_pos)
@@ -12600,8 +13647,8 @@
     add $I11, rx976_pos, 1
     gt $I11, rx976_eos, rx976_fail
     sub $I11, rx976_pos, rx976_off
-    substr $S10, rx976_tgt, $I11, 1
-    ne $S10, "]", rx976_fail
+    ord $I11, rx976_tgt, $I11
+    ne $I11, 93, rx976_fail
     add rx976_pos, 1
 .annotate 'line', 471
   # rx subrule "O" subtype=capture negate=
@@ -12614,11 +13661,15 @@
 .annotate 'line', 469
   # rx pass
     rx976_cur."!cursor_pass"(rx976_pos, "postcircumfix:sym<[ ]>")
-    rx976_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos)
+    if_null rx976_debug, debug_813
+    rx976_cur."!cursor_debug"("PASS", "postcircumfix:sym<[ ]>", " at pos=", rx976_pos)
+  debug_813:
     .return (rx976_cur)
   rx976_restart:
 .annotate 'line', 447
-    rx976_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<[ ]>")
+    if_null rx976_debug, debug_814
+    rx976_cur."!cursor_debug"("NEXT", "postcircumfix:sym<[ ]>")
+  debug_814:
   rx976_fail:
     (rx976_rep, rx976_pos, $I10, $P10) = rx976_cur."!mark_fail"(0)
     lt rx976_pos, -1, rx976_done
@@ -12626,14 +13677,16 @@
     jump $I10
   rx976_done:
     rx976_cur."!cursor_fail"()
-    rx976_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<[ ]>")
+    if_null rx976_debug, debug_815
+    rx976_cur."!cursor_debug"("FAIL", "postcircumfix:sym<[ ]>")
+  debug_815:
     .return (rx976_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("245_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("245_1282324002.40722") :method
 .annotate 'line', 447
     $P978 = self."!PREFIX__!subrule"("ws", "[")
     new $P979, "ResizablePMCArray"
@@ -12643,7 +13696,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("246_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<{ }>"  :subid("246_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx982_tgt
     .local int rx982_pos
@@ -12651,7 +13704,9 @@
     .local int rx982_eos
     .local int rx982_rep
     .local pmc rx982_cur
+    .local pmc rx982_debug
     (rx982_cur, rx982_pos, rx982_tgt, $I10) = self."!cursor_start"()
+    getattribute rx982_debug, rx982_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx982_cur
     .local pmc match
     .lex "$/", match
@@ -12663,7 +13718,9 @@
     substr rx982_tgt, rx982_tgt, rx982_off
   rx982_start:
     eq $I10, 1, rx982_restart
-    rx982_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+    if_null rx982_debug, debug_816
+    rx982_cur."!cursor_debug"("START", "postcircumfix:sym<{ }>")
+  debug_816:
     $I10 = self.'from'()
     ne $I10, -1, rxscan986_done
     goto rxscan986_scan
@@ -12681,8 +13738,8 @@
     add $I11, rx982_pos, 1
     gt $I11, rx982_eos, rx982_fail
     sub $I11, rx982_pos, rx982_off
-    substr $S10, rx982_tgt, $I11, 1
-    ne $S10, "{", rx982_fail
+    ord $I11, rx982_tgt, $I11
+    ne $I11, 123, rx982_fail
     add rx982_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx982_cur."!cursor_pos"(rx982_pos)
@@ -12700,8 +13757,8 @@
     add $I11, rx982_pos, 1
     gt $I11, rx982_eos, rx982_fail
     sub $I11, rx982_pos, rx982_off
-    substr $S10, rx982_tgt, $I11, 1
-    ne $S10, "}", rx982_fail
+    ord $I11, rx982_tgt, $I11
+    ne $I11, 125, rx982_fail
     add rx982_pos, 1
 .annotate 'line', 476
   # rx subrule "O" subtype=capture negate=
@@ -12714,11 +13771,15 @@
 .annotate 'line', 474
   # rx pass
     rx982_cur."!cursor_pass"(rx982_pos, "postcircumfix:sym<{ }>")
-    rx982_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<{ }>", " at pos=", rx982_pos)
+    if_null rx982_debug, debug_817
+    rx982_cur."!cursor_debug"("PASS", "postcircumfix:sym<{ }>", " at pos=", rx982_pos)
+  debug_817:
     .return (rx982_cur)
   rx982_restart:
 .annotate 'line', 447
-    rx982_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<{ }>")
+    if_null rx982_debug, debug_818
+    rx982_cur."!cursor_debug"("NEXT", "postcircumfix:sym<{ }>")
+  debug_818:
   rx982_fail:
     (rx982_rep, rx982_pos, $I10, $P10) = rx982_cur."!mark_fail"(0)
     lt rx982_pos, -1, rx982_done
@@ -12726,14 +13787,16 @@
     jump $I10
   rx982_done:
     rx982_cur."!cursor_fail"()
-    rx982_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<{ }>")
+    if_null rx982_debug, debug_819
+    rx982_cur."!cursor_debug"("FAIL", "postcircumfix:sym<{ }>")
+  debug_819:
     .return (rx982_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("247_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("247_1282324002.40722") :method
 .annotate 'line', 447
     $P984 = self."!PREFIX__!subrule"("ws", "{")
     new $P985, "ResizablePMCArray"
@@ -12743,7 +13806,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("248_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<ang>"  :subid("248_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx988_tgt
     .local int rx988_pos
@@ -12751,7 +13814,9 @@
     .local int rx988_eos
     .local int rx988_rep
     .local pmc rx988_cur
+    .local pmc rx988_debug
     (rx988_cur, rx988_pos, rx988_tgt, $I10) = self."!cursor_start"()
+    getattribute rx988_debug, rx988_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx988_cur
     .local pmc match
     .lex "$/", match
@@ -12763,7 +13828,9 @@
     substr rx988_tgt, rx988_tgt, rx988_off
   rx988_start:
     eq $I10, 1, rx988_restart
-    rx988_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
+    if_null rx988_debug, debug_820
+    rx988_cur."!cursor_debug"("START", "postcircumfix:sym<ang>")
+  debug_820:
     $I10 = self.'from'()
     ne $I10, -1, rxscan991_done
     goto rxscan991_scan
@@ -12801,11 +13868,15 @@
 .annotate 'line', 479
   # rx pass
     rx988_cur."!cursor_pass"(rx988_pos, "postcircumfix:sym<ang>")
-    rx988_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<ang>", " at pos=", rx988_pos)
+    if_null rx988_debug, debug_821
+    rx988_cur."!cursor_debug"("PASS", "postcircumfix:sym<ang>", " at pos=", rx988_pos)
+  debug_821:
     .return (rx988_cur)
   rx988_restart:
 .annotate 'line', 447
-    rx988_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<ang>")
+    if_null rx988_debug, debug_822
+    rx988_cur."!cursor_debug"("NEXT", "postcircumfix:sym<ang>")
+  debug_822:
   rx988_fail:
     (rx988_rep, rx988_pos, $I10, $P10) = rx988_cur."!mark_fail"(0)
     lt rx988_pos, -1, rx988_done
@@ -12813,14 +13884,16 @@
     jump $I10
   rx988_done:
     rx988_cur."!cursor_fail"()
-    rx988_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<ang>")
+    if_null rx988_debug, debug_823
+    rx988_cur."!cursor_debug"("FAIL", "postcircumfix:sym<ang>")
+  debug_823:
     .return (rx988_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("249_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("249_1282324002.40722") :method
 .annotate 'line', 447
     new $P990, "ResizablePMCArray"
     push $P990, "<"
@@ -12829,7 +13902,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("250_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postcircumfix:sym<( )>"  :subid("250_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx993_tgt
     .local int rx993_pos
@@ -12837,7 +13910,9 @@
     .local int rx993_eos
     .local int rx993_rep
     .local pmc rx993_cur
+    .local pmc rx993_debug
     (rx993_cur, rx993_pos, rx993_tgt, $I10) = self."!cursor_start"()
+    getattribute rx993_debug, rx993_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx993_cur
     .local pmc match
     .lex "$/", match
@@ -12849,7 +13924,9 @@
     substr rx993_tgt, rx993_tgt, rx993_off
   rx993_start:
     eq $I10, 1, rx993_restart
-    rx993_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
+    if_null rx993_debug, debug_824
+    rx993_cur."!cursor_debug"("START", "postcircumfix:sym<( )>")
+  debug_824:
     $I10 = self.'from'()
     ne $I10, -1, rxscan997_done
     goto rxscan997_scan
@@ -12867,8 +13944,8 @@
     add $I11, rx993_pos, 1
     gt $I11, rx993_eos, rx993_fail
     sub $I11, rx993_pos, rx993_off
-    substr $S10, rx993_tgt, $I11, 1
-    ne $S10, "(", rx993_fail
+    ord $I11, rx993_tgt, $I11
+    ne $I11, 40, rx993_fail
     add rx993_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx993_cur."!cursor_pos"(rx993_pos)
@@ -12886,8 +13963,8 @@
     add $I11, rx993_pos, 1
     gt $I11, rx993_eos, rx993_fail
     sub $I11, rx993_pos, rx993_off
-    substr $S10, rx993_tgt, $I11, 1
-    ne $S10, ")", rx993_fail
+    ord $I11, rx993_tgt, $I11
+    ne $I11, 41, rx993_fail
     add rx993_pos, 1
 .annotate 'line', 486
   # rx subrule "O" subtype=capture negate=
@@ -12900,11 +13977,15 @@
 .annotate 'line', 484
   # rx pass
     rx993_cur."!cursor_pass"(rx993_pos, "postcircumfix:sym<( )>")
-    rx993_cur."!cursor_debug"("PASS  ", "postcircumfix:sym<( )>", " at pos=", rx993_pos)
+    if_null rx993_debug, debug_825
+    rx993_cur."!cursor_debug"("PASS", "postcircumfix:sym<( )>", " at pos=", rx993_pos)
+  debug_825:
     .return (rx993_cur)
   rx993_restart:
 .annotate 'line', 447
-    rx993_cur."!cursor_debug"("NEXT ", "postcircumfix:sym<( )>")
+    if_null rx993_debug, debug_826
+    rx993_cur."!cursor_debug"("NEXT", "postcircumfix:sym<( )>")
+  debug_826:
   rx993_fail:
     (rx993_rep, rx993_pos, $I10, $P10) = rx993_cur."!mark_fail"(0)
     lt rx993_pos, -1, rx993_done
@@ -12912,14 +13993,16 @@
     jump $I10
   rx993_done:
     rx993_cur."!cursor_fail"()
-    rx993_cur."!cursor_debug"("FAIL  ", "postcircumfix:sym<( )>")
+    if_null rx993_debug, debug_827
+    rx993_cur."!cursor_debug"("FAIL", "postcircumfix:sym<( )>")
+  debug_827:
     .return (rx993_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("251_1280467477.44751") :method
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("251_1282324002.40722") :method
 .annotate 'line', 447
     $P995 = self."!PREFIX__!subrule"("ws", "(")
     new $P996, "ResizablePMCArray"
@@ -12929,7 +14012,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("252_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<.>"  :subid("252_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx999_tgt
     .local int rx999_pos
@@ -12937,7 +14020,9 @@
     .local int rx999_eos
     .local int rx999_rep
     .local pmc rx999_cur
+    .local pmc rx999_debug
     (rx999_cur, rx999_pos, rx999_tgt, $I10) = self."!cursor_start"()
+    getattribute rx999_debug, rx999_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx999_cur
     .local pmc match
     .lex "$/", match
@@ -12949,7 +14034,9 @@
     substr rx999_tgt, rx999_tgt, rx999_off
   rx999_start:
     eq $I10, 1, rx999_restart
-    rx999_cur."!cursor_debug"("START ", "postfix:sym<.>")
+    if_null rx999_debug, debug_828
+    rx999_cur."!cursor_debug"("START", "postfix:sym<.>")
+  debug_828:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1003_done
     goto rxscan1003_scan
@@ -12979,11 +14066,15 @@
     rx999_pos = $P10."pos"()
   # rx pass
     rx999_cur."!cursor_pass"(rx999_pos, "postfix:sym<.>")
-    rx999_cur."!cursor_debug"("PASS  ", "postfix:sym<.>", " at pos=", rx999_pos)
+    if_null rx999_debug, debug_829
+    rx999_cur."!cursor_debug"("PASS", "postfix:sym<.>", " at pos=", rx999_pos)
+  debug_829:
     .return (rx999_cur)
   rx999_restart:
 .annotate 'line', 447
-    rx999_cur."!cursor_debug"("NEXT ", "postfix:sym<.>")
+    if_null rx999_debug, debug_830
+    rx999_cur."!cursor_debug"("NEXT", "postfix:sym<.>")
+  debug_830:
   rx999_fail:
     (rx999_rep, rx999_pos, $I10, $P10) = rx999_cur."!mark_fail"(0)
     lt rx999_pos, -1, rx999_done
@@ -12991,14 +14082,16 @@
     jump $I10
   rx999_done:
     rx999_cur."!cursor_fail"()
-    rx999_cur."!cursor_debug"("FAIL  ", "postfix:sym<.>")
+    if_null rx999_debug, debug_831
+    rx999_cur."!cursor_debug"("FAIL", "postfix:sym<.>")
+  debug_831:
     .return (rx999_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("253_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<.>"  :subid("253_1282324002.40722") :method
 .annotate 'line', 447
     $P1001 = self."!PREFIX__!subrule"("dotty", "")
     new $P1002, "ResizablePMCArray"
@@ -13008,7 +14101,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("254_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<++>"  :subid("254_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1005_tgt
     .local int rx1005_pos
@@ -13016,7 +14109,9 @@
     .local int rx1005_eos
     .local int rx1005_rep
     .local pmc rx1005_cur
+    .local pmc rx1005_debug
     (rx1005_cur, rx1005_pos, rx1005_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1005_debug, rx1005_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1005_cur
     .local pmc match
     .lex "$/", match
@@ -13028,7 +14123,9 @@
     substr rx1005_tgt, rx1005_tgt, rx1005_off
   rx1005_start:
     eq $I10, 1, rx1005_restart
-    rx1005_cur."!cursor_debug"("START ", "prefix:sym<++>")
+    if_null rx1005_debug, debug_832
+    rx1005_cur."!cursor_debug"("START", "prefix:sym<++>")
+  debug_832:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1009_done
     goto rxscan1009_scan
@@ -13072,11 +14169,15 @@
     rx1005_pos = $P10."pos"()
   # rx pass
     rx1005_cur."!cursor_pass"(rx1005_pos, "prefix:sym<++>")
-    rx1005_cur."!cursor_debug"("PASS  ", "prefix:sym<++>", " at pos=", rx1005_pos)
+    if_null rx1005_debug, debug_833
+    rx1005_cur."!cursor_debug"("PASS", "prefix:sym<++>", " at pos=", rx1005_pos)
+  debug_833:
     .return (rx1005_cur)
   rx1005_restart:
 .annotate 'line', 447
-    rx1005_cur."!cursor_debug"("NEXT ", "prefix:sym<++>")
+    if_null rx1005_debug, debug_834
+    rx1005_cur."!cursor_debug"("NEXT", "prefix:sym<++>")
+  debug_834:
   rx1005_fail:
     (rx1005_rep, rx1005_pos, $I10, $P10) = rx1005_cur."!mark_fail"(0)
     lt rx1005_pos, -1, rx1005_done
@@ -13084,14 +14185,16 @@
     jump $I10
   rx1005_done:
     rx1005_cur."!cursor_fail"()
-    rx1005_cur."!cursor_debug"("FAIL  ", "prefix:sym<++>")
+    if_null rx1005_debug, debug_835
+    rx1005_cur."!cursor_debug"("FAIL", "prefix:sym<++>")
+  debug_835:
     .return (rx1005_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("255_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<++>"  :subid("255_1282324002.40722") :method
 .annotate 'line', 447
     $P1007 = self."!PREFIX__!subrule"("O", "++")
     new $P1008, "ResizablePMCArray"
@@ -13101,7 +14204,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("256_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<-->"  :subid("256_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1012_tgt
     .local int rx1012_pos
@@ -13109,7 +14212,9 @@
     .local int rx1012_eos
     .local int rx1012_rep
     .local pmc rx1012_cur
+    .local pmc rx1012_debug
     (rx1012_cur, rx1012_pos, rx1012_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1012_debug, rx1012_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1012_cur
     .local pmc match
     .lex "$/", match
@@ -13121,7 +14226,9 @@
     substr rx1012_tgt, rx1012_tgt, rx1012_off
   rx1012_start:
     eq $I10, 1, rx1012_restart
-    rx1012_cur."!cursor_debug"("START ", "prefix:sym<-->")
+    if_null rx1012_debug, debug_836
+    rx1012_cur."!cursor_debug"("START", "prefix:sym<-->")
+  debug_836:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1016_done
     goto rxscan1016_scan
@@ -13165,11 +14272,15 @@
     rx1012_pos = $P10."pos"()
   # rx pass
     rx1012_cur."!cursor_pass"(rx1012_pos, "prefix:sym<-->")
-    rx1012_cur."!cursor_debug"("PASS  ", "prefix:sym<-->", " at pos=", rx1012_pos)
+    if_null rx1012_debug, debug_837
+    rx1012_cur."!cursor_debug"("PASS", "prefix:sym<-->", " at pos=", rx1012_pos)
+  debug_837:
     .return (rx1012_cur)
   rx1012_restart:
 .annotate 'line', 447
-    rx1012_cur."!cursor_debug"("NEXT ", "prefix:sym<-->")
+    if_null rx1012_debug, debug_838
+    rx1012_cur."!cursor_debug"("NEXT", "prefix:sym<-->")
+  debug_838:
   rx1012_fail:
     (rx1012_rep, rx1012_pos, $I10, $P10) = rx1012_cur."!mark_fail"(0)
     lt rx1012_pos, -1, rx1012_done
@@ -13177,14 +14288,16 @@
     jump $I10
   rx1012_done:
     rx1012_cur."!cursor_fail"()
-    rx1012_cur."!cursor_debug"("FAIL  ", "prefix:sym<-->")
+    if_null rx1012_debug, debug_839
+    rx1012_cur."!cursor_debug"("FAIL", "prefix:sym<-->")
+  debug_839:
     .return (rx1012_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("257_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<-->"  :subid("257_1282324002.40722") :method
 .annotate 'line', 447
     $P1014 = self."!PREFIX__!subrule"("O", "--")
     new $P1015, "ResizablePMCArray"
@@ -13194,7 +14307,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("258_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<++>"  :subid("258_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1019_tgt
     .local int rx1019_pos
@@ -13202,7 +14315,9 @@
     .local int rx1019_eos
     .local int rx1019_rep
     .local pmc rx1019_cur
+    .local pmc rx1019_debug
     (rx1019_cur, rx1019_pos, rx1019_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1019_debug, rx1019_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1019_cur
     .local pmc match
     .lex "$/", match
@@ -13214,7 +14329,9 @@
     substr rx1019_tgt, rx1019_tgt, rx1019_off
   rx1019_start:
     eq $I10, 1, rx1019_restart
-    rx1019_cur."!cursor_debug"("START ", "postfix:sym<++>")
+    if_null rx1019_debug, debug_840
+    rx1019_cur."!cursor_debug"("START", "postfix:sym<++>")
+  debug_840:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1023_done
     goto rxscan1023_scan
@@ -13258,11 +14375,15 @@
     rx1019_pos = $P10."pos"()
   # rx pass
     rx1019_cur."!cursor_pass"(rx1019_pos, "postfix:sym<++>")
-    rx1019_cur."!cursor_debug"("PASS  ", "postfix:sym<++>", " at pos=", rx1019_pos)
+    if_null rx1019_debug, debug_841
+    rx1019_cur."!cursor_debug"("PASS", "postfix:sym<++>", " at pos=", rx1019_pos)
+  debug_841:
     .return (rx1019_cur)
   rx1019_restart:
 .annotate 'line', 447
-    rx1019_cur."!cursor_debug"("NEXT ", "postfix:sym<++>")
+    if_null rx1019_debug, debug_842
+    rx1019_cur."!cursor_debug"("NEXT", "postfix:sym<++>")
+  debug_842:
   rx1019_fail:
     (rx1019_rep, rx1019_pos, $I10, $P10) = rx1019_cur."!mark_fail"(0)
     lt rx1019_pos, -1, rx1019_done
@@ -13270,14 +14391,16 @@
     jump $I10
   rx1019_done:
     rx1019_cur."!cursor_fail"()
-    rx1019_cur."!cursor_debug"("FAIL  ", "postfix:sym<++>")
+    if_null rx1019_debug, debug_843
+    rx1019_cur."!cursor_debug"("FAIL", "postfix:sym<++>")
+  debug_843:
     .return (rx1019_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("259_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<++>"  :subid("259_1282324002.40722") :method
 .annotate 'line', 447
     $P1021 = self."!PREFIX__!subrule"("O", "++")
     new $P1022, "ResizablePMCArray"
@@ -13287,7 +14410,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("260_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "postfix:sym<-->"  :subid("260_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1026_tgt
     .local int rx1026_pos
@@ -13295,7 +14418,9 @@
     .local int rx1026_eos
     .local int rx1026_rep
     .local pmc rx1026_cur
+    .local pmc rx1026_debug
     (rx1026_cur, rx1026_pos, rx1026_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1026_debug, rx1026_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1026_cur
     .local pmc match
     .lex "$/", match
@@ -13307,7 +14432,9 @@
     substr rx1026_tgt, rx1026_tgt, rx1026_off
   rx1026_start:
     eq $I10, 1, rx1026_restart
-    rx1026_cur."!cursor_debug"("START ", "postfix:sym<-->")
+    if_null rx1026_debug, debug_844
+    rx1026_cur."!cursor_debug"("START", "postfix:sym<-->")
+  debug_844:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1030_done
     goto rxscan1030_scan
@@ -13351,11 +14478,15 @@
     rx1026_pos = $P10."pos"()
   # rx pass
     rx1026_cur."!cursor_pass"(rx1026_pos, "postfix:sym<-->")
-    rx1026_cur."!cursor_debug"("PASS  ", "postfix:sym<-->", " at pos=", rx1026_pos)
+    if_null rx1026_debug, debug_845
+    rx1026_cur."!cursor_debug"("PASS", "postfix:sym<-->", " at pos=", rx1026_pos)
+  debug_845:
     .return (rx1026_cur)
   rx1026_restart:
 .annotate 'line', 447
-    rx1026_cur."!cursor_debug"("NEXT ", "postfix:sym<-->")
+    if_null rx1026_debug, debug_846
+    rx1026_cur."!cursor_debug"("NEXT", "postfix:sym<-->")
+  debug_846:
   rx1026_fail:
     (rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0)
     lt rx1026_pos, -1, rx1026_done
@@ -13363,14 +14494,16 @@
     jump $I10
   rx1026_done:
     rx1026_cur."!cursor_fail"()
-    rx1026_cur."!cursor_debug"("FAIL  ", "postfix:sym<-->")
+    if_null rx1026_debug, debug_847
+    rx1026_cur."!cursor_debug"("FAIL", "postfix:sym<-->")
+  debug_847:
     .return (rx1026_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("261_1280467477.44751") :method
+.sub "!PREFIX__postfix:sym<-->"  :subid("261_1282324002.40722") :method
 .annotate 'line', 447
     $P1028 = self."!PREFIX__!subrule"("O", "--")
     new $P1029, "ResizablePMCArray"
@@ -13380,7 +14513,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("262_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<**>"  :subid("262_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1033_tgt
     .local int rx1033_pos
@@ -13388,7 +14521,9 @@
     .local int rx1033_eos
     .local int rx1033_rep
     .local pmc rx1033_cur
+    .local pmc rx1033_debug
     (rx1033_cur, rx1033_pos, rx1033_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1033_debug, rx1033_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1033_cur
     .local pmc match
     .lex "$/", match
@@ -13400,7 +14535,9 @@
     substr rx1033_tgt, rx1033_tgt, rx1033_off
   rx1033_start:
     eq $I10, 1, rx1033_restart
-    rx1033_cur."!cursor_debug"("START ", "infix:sym<**>")
+    if_null rx1033_debug, debug_848
+    rx1033_cur."!cursor_debug"("START", "infix:sym<**>")
+  debug_848:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1037_done
     goto rxscan1037_scan
@@ -13444,11 +14581,15 @@
     rx1033_pos = $P10."pos"()
   # rx pass
     rx1033_cur."!cursor_pass"(rx1033_pos, "infix:sym<**>")
-    rx1033_cur."!cursor_debug"("PASS  ", "infix:sym<**>", " at pos=", rx1033_pos)
+    if_null rx1033_debug, debug_849
+    rx1033_cur."!cursor_debug"("PASS", "infix:sym<**>", " at pos=", rx1033_pos)
+  debug_849:
     .return (rx1033_cur)
   rx1033_restart:
 .annotate 'line', 447
-    rx1033_cur."!cursor_debug"("NEXT ", "infix:sym<**>")
+    if_null rx1033_debug, debug_850
+    rx1033_cur."!cursor_debug"("NEXT", "infix:sym<**>")
+  debug_850:
   rx1033_fail:
     (rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0)
     lt rx1033_pos, -1, rx1033_done
@@ -13456,14 +14597,16 @@
     jump $I10
   rx1033_done:
     rx1033_cur."!cursor_fail"()
-    rx1033_cur."!cursor_debug"("FAIL  ", "infix:sym<**>")
+    if_null rx1033_debug, debug_851
+    rx1033_cur."!cursor_debug"("FAIL", "infix:sym<**>")
+  debug_851:
     .return (rx1033_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("263_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<**>"  :subid("263_1282324002.40722") :method
 .annotate 'line', 447
     $P1035 = self."!PREFIX__!subrule"("O", "**")
     new $P1036, "ResizablePMCArray"
@@ -13473,7 +14616,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("264_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<+>"  :subid("264_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1040_tgt
     .local int rx1040_pos
@@ -13481,7 +14624,9 @@
     .local int rx1040_eos
     .local int rx1040_rep
     .local pmc rx1040_cur
+    .local pmc rx1040_debug
     (rx1040_cur, rx1040_pos, rx1040_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1040_debug, rx1040_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1040_cur
     .local pmc match
     .lex "$/", match
@@ -13493,7 +14638,9 @@
     substr rx1040_tgt, rx1040_tgt, rx1040_off
   rx1040_start:
     eq $I10, 1, rx1040_restart
-    rx1040_cur."!cursor_debug"("START ", "prefix:sym<+>")
+    if_null rx1040_debug, debug_852
+    rx1040_cur."!cursor_debug"("START", "prefix:sym<+>")
+  debug_852:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1044_done
     goto rxscan1044_scan
@@ -13514,8 +14661,8 @@
     add $I11, rx1040_pos, 1
     gt $I11, rx1040_eos, rx1040_fail
     sub $I11, rx1040_pos, rx1040_off
-    substr $S10, rx1040_tgt, $I11, 1
-    ne $S10, "+", rx1040_fail
+    ord $I11, rx1040_tgt, $I11
+    ne $I11, 43, rx1040_fail
     add rx1040_pos, 1
     set_addr $I10, rxcap_1045_fail
     ($I12, $I11) = rx1040_cur."!mark_peek"($I10)
@@ -13537,11 +14684,15 @@
     rx1040_pos = $P10."pos"()
   # rx pass
     rx1040_cur."!cursor_pass"(rx1040_pos, "prefix:sym<+>")
-    rx1040_cur."!cursor_debug"("PASS  ", "prefix:sym<+>", " at pos=", rx1040_pos)
+    if_null rx1040_debug, debug_853
+    rx1040_cur."!cursor_debug"("PASS", "prefix:sym<+>", " at pos=", rx1040_pos)
+  debug_853:
     .return (rx1040_cur)
   rx1040_restart:
 .annotate 'line', 447
-    rx1040_cur."!cursor_debug"("NEXT ", "prefix:sym<+>")
+    if_null rx1040_debug, debug_854
+    rx1040_cur."!cursor_debug"("NEXT", "prefix:sym<+>")
+  debug_854:
   rx1040_fail:
     (rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0)
     lt rx1040_pos, -1, rx1040_done
@@ -13549,14 +14700,16 @@
     jump $I10
   rx1040_done:
     rx1040_cur."!cursor_fail"()
-    rx1040_cur."!cursor_debug"("FAIL  ", "prefix:sym<+>")
+    if_null rx1040_debug, debug_855
+    rx1040_cur."!cursor_debug"("FAIL", "prefix:sym<+>")
+  debug_855:
     .return (rx1040_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("265_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<+>"  :subid("265_1282324002.40722") :method
 .annotate 'line', 447
     $P1042 = self."!PREFIX__!subrule"("O", "+")
     new $P1043, "ResizablePMCArray"
@@ -13566,7 +14719,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("266_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<~>"  :subid("266_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1047_tgt
     .local int rx1047_pos
@@ -13574,7 +14727,9 @@
     .local int rx1047_eos
     .local int rx1047_rep
     .local pmc rx1047_cur
+    .local pmc rx1047_debug
     (rx1047_cur, rx1047_pos, rx1047_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1047_debug, rx1047_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1047_cur
     .local pmc match
     .lex "$/", match
@@ -13586,7 +14741,9 @@
     substr rx1047_tgt, rx1047_tgt, rx1047_off
   rx1047_start:
     eq $I10, 1, rx1047_restart
-    rx1047_cur."!cursor_debug"("START ", "prefix:sym<~>")
+    if_null rx1047_debug, debug_856
+    rx1047_cur."!cursor_debug"("START", "prefix:sym<~>")
+  debug_856:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1051_done
     goto rxscan1051_scan
@@ -13607,8 +14764,8 @@
     add $I11, rx1047_pos, 1
     gt $I11, rx1047_eos, rx1047_fail
     sub $I11, rx1047_pos, rx1047_off
-    substr $S10, rx1047_tgt, $I11, 1
-    ne $S10, "~", rx1047_fail
+    ord $I11, rx1047_tgt, $I11
+    ne $I11, 126, rx1047_fail
     add rx1047_pos, 1
     set_addr $I10, rxcap_1052_fail
     ($I12, $I11) = rx1047_cur."!mark_peek"($I10)
@@ -13630,11 +14787,15 @@
     rx1047_pos = $P10."pos"()
   # rx pass
     rx1047_cur."!cursor_pass"(rx1047_pos, "prefix:sym<~>")
-    rx1047_cur."!cursor_debug"("PASS  ", "prefix:sym<~>", " at pos=", rx1047_pos)
+    if_null rx1047_debug, debug_857
+    rx1047_cur."!cursor_debug"("PASS", "prefix:sym<~>", " at pos=", rx1047_pos)
+  debug_857:
     .return (rx1047_cur)
   rx1047_restart:
 .annotate 'line', 447
-    rx1047_cur."!cursor_debug"("NEXT ", "prefix:sym<~>")
+    if_null rx1047_debug, debug_858
+    rx1047_cur."!cursor_debug"("NEXT", "prefix:sym<~>")
+  debug_858:
   rx1047_fail:
     (rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0)
     lt rx1047_pos, -1, rx1047_done
@@ -13642,14 +14803,16 @@
     jump $I10
   rx1047_done:
     rx1047_cur."!cursor_fail"()
-    rx1047_cur."!cursor_debug"("FAIL  ", "prefix:sym<~>")
+    if_null rx1047_debug, debug_859
+    rx1047_cur."!cursor_debug"("FAIL", "prefix:sym<~>")
+  debug_859:
     .return (rx1047_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("267_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<~>"  :subid("267_1282324002.40722") :method
 .annotate 'line', 447
     $P1049 = self."!PREFIX__!subrule"("O", "~")
     new $P1050, "ResizablePMCArray"
@@ -13659,7 +14822,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("268_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<->"  :subid("268_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1054_tgt
     .local int rx1054_pos
@@ -13667,7 +14830,9 @@
     .local int rx1054_eos
     .local int rx1054_rep
     .local pmc rx1054_cur
+    .local pmc rx1054_debug
     (rx1054_cur, rx1054_pos, rx1054_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1054_debug, rx1054_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1054_cur
     .local pmc match
     .lex "$/", match
@@ -13679,7 +14844,9 @@
     substr rx1054_tgt, rx1054_tgt, rx1054_off
   rx1054_start:
     eq $I10, 1, rx1054_restart
-    rx1054_cur."!cursor_debug"("START ", "prefix:sym<->")
+    if_null rx1054_debug, debug_860
+    rx1054_cur."!cursor_debug"("START", "prefix:sym<->")
+  debug_860:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1057_done
     goto rxscan1057_scan
@@ -13700,8 +14867,8 @@
     add $I11, rx1054_pos, 1
     gt $I11, rx1054_eos, rx1054_fail
     sub $I11, rx1054_pos, rx1054_off
-    substr $S10, rx1054_tgt, $I11, 1
-    ne $S10, "-", rx1054_fail
+    ord $I11, rx1054_tgt, $I11
+    ne $I11, 45, rx1054_fail
     add rx1054_pos, 1
     set_addr $I10, rxcap_1058_fail
     ($I12, $I11) = rx1054_cur."!mark_peek"($I10)
@@ -13733,11 +14900,15 @@
     rx1054_pos = $P10."pos"()
   # rx pass
     rx1054_cur."!cursor_pass"(rx1054_pos, "prefix:sym<->")
-    rx1054_cur."!cursor_debug"("PASS  ", "prefix:sym<->", " at pos=", rx1054_pos)
+    if_null rx1054_debug, debug_861
+    rx1054_cur."!cursor_debug"("PASS", "prefix:sym<->", " at pos=", rx1054_pos)
+  debug_861:
     .return (rx1054_cur)
   rx1054_restart:
 .annotate 'line', 447
-    rx1054_cur."!cursor_debug"("NEXT ", "prefix:sym<->")
+    if_null rx1054_debug, debug_862
+    rx1054_cur."!cursor_debug"("NEXT", "prefix:sym<->")
+  debug_862:
   rx1054_fail:
     (rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0)
     lt rx1054_pos, -1, rx1054_done
@@ -13745,14 +14916,16 @@
     jump $I10
   rx1054_done:
     rx1054_cur."!cursor_fail"()
-    rx1054_cur."!cursor_debug"("FAIL  ", "prefix:sym<->")
+    if_null rx1054_debug, debug_863
+    rx1054_cur."!cursor_debug"("FAIL", "prefix:sym<->")
+  debug_863:
     .return (rx1054_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("269_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<->"  :subid("269_1282324002.40722") :method
 .annotate 'line', 447
     new $P1056, "ResizablePMCArray"
     push $P1056, "-"
@@ -13761,7 +14934,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("270_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<?>"  :subid("270_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1060_tgt
     .local int rx1060_pos
@@ -13769,7 +14942,9 @@
     .local int rx1060_eos
     .local int rx1060_rep
     .local pmc rx1060_cur
+    .local pmc rx1060_debug
     (rx1060_cur, rx1060_pos, rx1060_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1060_debug, rx1060_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1060_cur
     .local pmc match
     .lex "$/", match
@@ -13781,7 +14956,9 @@
     substr rx1060_tgt, rx1060_tgt, rx1060_off
   rx1060_start:
     eq $I10, 1, rx1060_restart
-    rx1060_cur."!cursor_debug"("START ", "prefix:sym<?>")
+    if_null rx1060_debug, debug_864
+    rx1060_cur."!cursor_debug"("START", "prefix:sym<?>")
+  debug_864:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1064_done
     goto rxscan1064_scan
@@ -13802,8 +14979,8 @@
     add $I11, rx1060_pos, 1
     gt $I11, rx1060_eos, rx1060_fail
     sub $I11, rx1060_pos, rx1060_off
-    substr $S10, rx1060_tgt, $I11, 1
-    ne $S10, "?", rx1060_fail
+    ord $I11, rx1060_tgt, $I11
+    ne $I11, 63, rx1060_fail
     add rx1060_pos, 1
     set_addr $I10, rxcap_1065_fail
     ($I12, $I11) = rx1060_cur."!mark_peek"($I10)
@@ -13825,11 +15002,15 @@
     rx1060_pos = $P10."pos"()
   # rx pass
     rx1060_cur."!cursor_pass"(rx1060_pos, "prefix:sym<?>")
-    rx1060_cur."!cursor_debug"("PASS  ", "prefix:sym<?>", " at pos=", rx1060_pos)
+    if_null rx1060_debug, debug_865
+    rx1060_cur."!cursor_debug"("PASS", "prefix:sym<?>", " at pos=", rx1060_pos)
+  debug_865:
     .return (rx1060_cur)
   rx1060_restart:
 .annotate 'line', 447
-    rx1060_cur."!cursor_debug"("NEXT ", "prefix:sym<?>")
+    if_null rx1060_debug, debug_866
+    rx1060_cur."!cursor_debug"("NEXT", "prefix:sym<?>")
+  debug_866:
   rx1060_fail:
     (rx1060_rep, rx1060_pos, $I10, $P10) = rx1060_cur."!mark_fail"(0)
     lt rx1060_pos, -1, rx1060_done
@@ -13837,14 +15018,16 @@
     jump $I10
   rx1060_done:
     rx1060_cur."!cursor_fail"()
-    rx1060_cur."!cursor_debug"("FAIL  ", "prefix:sym<?>")
+    if_null rx1060_debug, debug_867
+    rx1060_cur."!cursor_debug"("FAIL", "prefix:sym<?>")
+  debug_867:
     .return (rx1060_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("271_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<?>"  :subid("271_1282324002.40722") :method
 .annotate 'line', 447
     $P1062 = self."!PREFIX__!subrule"("O", "?")
     new $P1063, "ResizablePMCArray"
@@ -13854,7 +15037,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("272_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<!>"  :subid("272_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1067_tgt
     .local int rx1067_pos
@@ -13862,7 +15045,9 @@
     .local int rx1067_eos
     .local int rx1067_rep
     .local pmc rx1067_cur
+    .local pmc rx1067_debug
     (rx1067_cur, rx1067_pos, rx1067_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1067_debug, rx1067_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1067_cur
     .local pmc match
     .lex "$/", match
@@ -13874,7 +15059,9 @@
     substr rx1067_tgt, rx1067_tgt, rx1067_off
   rx1067_start:
     eq $I10, 1, rx1067_restart
-    rx1067_cur."!cursor_debug"("START ", "prefix:sym<!>")
+    if_null rx1067_debug, debug_868
+    rx1067_cur."!cursor_debug"("START", "prefix:sym<!>")
+  debug_868:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1071_done
     goto rxscan1071_scan
@@ -13895,8 +15082,8 @@
     add $I11, rx1067_pos, 1
     gt $I11, rx1067_eos, rx1067_fail
     sub $I11, rx1067_pos, rx1067_off
-    substr $S10, rx1067_tgt, $I11, 1
-    ne $S10, "!", rx1067_fail
+    ord $I11, rx1067_tgt, $I11
+    ne $I11, 33, rx1067_fail
     add rx1067_pos, 1
     set_addr $I10, rxcap_1072_fail
     ($I12, $I11) = rx1067_cur."!mark_peek"($I10)
@@ -13918,11 +15105,15 @@
     rx1067_pos = $P10."pos"()
   # rx pass
     rx1067_cur."!cursor_pass"(rx1067_pos, "prefix:sym<!>")
-    rx1067_cur."!cursor_debug"("PASS  ", "prefix:sym<!>", " at pos=", rx1067_pos)
+    if_null rx1067_debug, debug_869
+    rx1067_cur."!cursor_debug"("PASS", "prefix:sym<!>", " at pos=", rx1067_pos)
+  debug_869:
     .return (rx1067_cur)
   rx1067_restart:
 .annotate 'line', 447
-    rx1067_cur."!cursor_debug"("NEXT ", "prefix:sym<!>")
+    if_null rx1067_debug, debug_870
+    rx1067_cur."!cursor_debug"("NEXT", "prefix:sym<!>")
+  debug_870:
   rx1067_fail:
     (rx1067_rep, rx1067_pos, $I10, $P10) = rx1067_cur."!mark_fail"(0)
     lt rx1067_pos, -1, rx1067_done
@@ -13930,14 +15121,16 @@
     jump $I10
   rx1067_done:
     rx1067_cur."!cursor_fail"()
-    rx1067_cur."!cursor_debug"("FAIL  ", "prefix:sym<!>")
+    if_null rx1067_debug, debug_871
+    rx1067_cur."!cursor_debug"("FAIL", "prefix:sym<!>")
+  debug_871:
     .return (rx1067_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("273_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<!>"  :subid("273_1282324002.40722") :method
 .annotate 'line', 447
     $P1069 = self."!PREFIX__!subrule"("O", "!")
     new $P1070, "ResizablePMCArray"
@@ -13947,7 +15140,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("274_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<|>"  :subid("274_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1074_tgt
     .local int rx1074_pos
@@ -13955,7 +15148,9 @@
     .local int rx1074_eos
     .local int rx1074_rep
     .local pmc rx1074_cur
+    .local pmc rx1074_debug
     (rx1074_cur, rx1074_pos, rx1074_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1074_debug, rx1074_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1074_cur
     .local pmc match
     .lex "$/", match
@@ -13967,7 +15162,9 @@
     substr rx1074_tgt, rx1074_tgt, rx1074_off
   rx1074_start:
     eq $I10, 1, rx1074_restart
-    rx1074_cur."!cursor_debug"("START ", "prefix:sym<|>")
+    if_null rx1074_debug, debug_872
+    rx1074_cur."!cursor_debug"("START", "prefix:sym<|>")
+  debug_872:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1078_done
     goto rxscan1078_scan
@@ -13988,8 +15185,8 @@
     add $I11, rx1074_pos, 1
     gt $I11, rx1074_eos, rx1074_fail
     sub $I11, rx1074_pos, rx1074_off
-    substr $S10, rx1074_tgt, $I11, 1
-    ne $S10, "|", rx1074_fail
+    ord $I11, rx1074_tgt, $I11
+    ne $I11, 124, rx1074_fail
     add rx1074_pos, 1
     set_addr $I10, rxcap_1079_fail
     ($I12, $I11) = rx1074_cur."!mark_peek"($I10)
@@ -14011,11 +15208,15 @@
     rx1074_pos = $P10."pos"()
   # rx pass
     rx1074_cur."!cursor_pass"(rx1074_pos, "prefix:sym<|>")
-    rx1074_cur."!cursor_debug"("PASS  ", "prefix:sym<|>", " at pos=", rx1074_pos)
+    if_null rx1074_debug, debug_873
+    rx1074_cur."!cursor_debug"("PASS", "prefix:sym<|>", " at pos=", rx1074_pos)
+  debug_873:
     .return (rx1074_cur)
   rx1074_restart:
 .annotate 'line', 447
-    rx1074_cur."!cursor_debug"("NEXT ", "prefix:sym<|>")
+    if_null rx1074_debug, debug_874
+    rx1074_cur."!cursor_debug"("NEXT", "prefix:sym<|>")
+  debug_874:
   rx1074_fail:
     (rx1074_rep, rx1074_pos, $I10, $P10) = rx1074_cur."!mark_fail"(0)
     lt rx1074_pos, -1, rx1074_done
@@ -14023,14 +15224,16 @@
     jump $I10
   rx1074_done:
     rx1074_cur."!cursor_fail"()
-    rx1074_cur."!cursor_debug"("FAIL  ", "prefix:sym<|>")
+    if_null rx1074_debug, debug_875
+    rx1074_cur."!cursor_debug"("FAIL", "prefix:sym<|>")
+  debug_875:
     .return (rx1074_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("275_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<|>"  :subid("275_1282324002.40722") :method
 .annotate 'line', 447
     $P1076 = self."!PREFIX__!subrule"("O", "|")
     new $P1077, "ResizablePMCArray"
@@ -14040,7 +15243,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("276_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<*>"  :subid("276_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1081_tgt
     .local int rx1081_pos
@@ -14048,7 +15251,9 @@
     .local int rx1081_eos
     .local int rx1081_rep
     .local pmc rx1081_cur
+    .local pmc rx1081_debug
     (rx1081_cur, rx1081_pos, rx1081_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1081_debug, rx1081_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1081_cur
     .local pmc match
     .lex "$/", match
@@ -14060,7 +15265,9 @@
     substr rx1081_tgt, rx1081_tgt, rx1081_off
   rx1081_start:
     eq $I10, 1, rx1081_restart
-    rx1081_cur."!cursor_debug"("START ", "infix:sym<*>")
+    if_null rx1081_debug, debug_876
+    rx1081_cur."!cursor_debug"("START", "infix:sym<*>")
+  debug_876:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1085_done
     goto rxscan1085_scan
@@ -14081,8 +15288,8 @@
     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
+    ord $I11, rx1081_tgt, $I11
+    ne $I11, 42, rx1081_fail
     add rx1081_pos, 1
     set_addr $I10, rxcap_1086_fail
     ($I12, $I11) = rx1081_cur."!mark_peek"($I10)
@@ -14104,11 +15311,15 @@
     rx1081_pos = $P10."pos"()
   # rx pass
     rx1081_cur."!cursor_pass"(rx1081_pos, "infix:sym<*>")
-    rx1081_cur."!cursor_debug"("PASS  ", "infix:sym<*>", " at pos=", rx1081_pos)
+    if_null rx1081_debug, debug_877
+    rx1081_cur."!cursor_debug"("PASS", "infix:sym<*>", " at pos=", rx1081_pos)
+  debug_877:
     .return (rx1081_cur)
   rx1081_restart:
 .annotate 'line', 447
-    rx1081_cur."!cursor_debug"("NEXT ", "infix:sym<*>")
+    if_null rx1081_debug, debug_878
+    rx1081_cur."!cursor_debug"("NEXT", "infix:sym<*>")
+  debug_878:
   rx1081_fail:
     (rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0)
     lt rx1081_pos, -1, rx1081_done
@@ -14116,14 +15327,16 @@
     jump $I10
   rx1081_done:
     rx1081_cur."!cursor_fail"()
-    rx1081_cur."!cursor_debug"("FAIL  ", "infix:sym<*>")
+    if_null rx1081_debug, debug_879
+    rx1081_cur."!cursor_debug"("FAIL", "infix:sym<*>")
+  debug_879:
     .return (rx1081_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("277_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<*>"  :subid("277_1282324002.40722") :method
 .annotate 'line', 447
     $P1083 = self."!PREFIX__!subrule"("O", "*")
     new $P1084, "ResizablePMCArray"
@@ -14133,7 +15346,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("278_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym</>"  :subid("278_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1088_tgt
     .local int rx1088_pos
@@ -14141,7 +15354,9 @@
     .local int rx1088_eos
     .local int rx1088_rep
     .local pmc rx1088_cur
+    .local pmc rx1088_debug
     (rx1088_cur, rx1088_pos, rx1088_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1088_debug, rx1088_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1088_cur
     .local pmc match
     .lex "$/", match
@@ -14153,7 +15368,9 @@
     substr rx1088_tgt, rx1088_tgt, rx1088_off
   rx1088_start:
     eq $I10, 1, rx1088_restart
-    rx1088_cur."!cursor_debug"("START ", "infix:sym</>")
+    if_null rx1088_debug, debug_880
+    rx1088_cur."!cursor_debug"("START", "infix:sym</>")
+  debug_880:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1092_done
     goto rxscan1092_scan
@@ -14174,8 +15391,8 @@
     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
+    ord $I11, rx1088_tgt, $I11
+    ne $I11, 47, rx1088_fail
     add rx1088_pos, 1
     set_addr $I10, rxcap_1093_fail
     ($I12, $I11) = rx1088_cur."!mark_peek"($I10)
@@ -14197,11 +15414,15 @@
     rx1088_pos = $P10."pos"()
   # rx pass
     rx1088_cur."!cursor_pass"(rx1088_pos, "infix:sym</>")
-    rx1088_cur."!cursor_debug"("PASS  ", "infix:sym</>", " at pos=", rx1088_pos)
+    if_null rx1088_debug, debug_881
+    rx1088_cur."!cursor_debug"("PASS", "infix:sym</>", " at pos=", rx1088_pos)
+  debug_881:
     .return (rx1088_cur)
   rx1088_restart:
 .annotate 'line', 447
-    rx1088_cur."!cursor_debug"("NEXT ", "infix:sym</>")
+    if_null rx1088_debug, debug_882
+    rx1088_cur."!cursor_debug"("NEXT", "infix:sym</>")
+  debug_882:
   rx1088_fail:
     (rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0)
     lt rx1088_pos, -1, rx1088_done
@@ -14209,14 +15430,16 @@
     jump $I10
   rx1088_done:
     rx1088_cur."!cursor_fail"()
-    rx1088_cur."!cursor_debug"("FAIL  ", "infix:sym</>")
+    if_null rx1088_debug, debug_883
+    rx1088_cur."!cursor_debug"("FAIL", "infix:sym</>")
+  debug_883:
     .return (rx1088_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("279_1280467477.44751") :method
+.sub "!PREFIX__infix:sym</>"  :subid("279_1282324002.40722") :method
 .annotate 'line', 447
     $P1090 = self."!PREFIX__!subrule"("O", "/")
     new $P1091, "ResizablePMCArray"
@@ -14226,7 +15449,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("280_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<%>"  :subid("280_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1095_tgt
     .local int rx1095_pos
@@ -14234,7 +15457,9 @@
     .local int rx1095_eos
     .local int rx1095_rep
     .local pmc rx1095_cur
+    .local pmc rx1095_debug
     (rx1095_cur, rx1095_pos, rx1095_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1095_debug, rx1095_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1095_cur
     .local pmc match
     .lex "$/", match
@@ -14246,7 +15471,9 @@
     substr rx1095_tgt, rx1095_tgt, rx1095_off
   rx1095_start:
     eq $I10, 1, rx1095_restart
-    rx1095_cur."!cursor_debug"("START ", "infix:sym<%>")
+    if_null rx1095_debug, debug_884
+    rx1095_cur."!cursor_debug"("START", "infix:sym<%>")
+  debug_884:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1099_done
     goto rxscan1099_scan
@@ -14267,8 +15494,8 @@
     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
+    ord $I11, rx1095_tgt, $I11
+    ne $I11, 37, rx1095_fail
     add rx1095_pos, 1
     set_addr $I10, rxcap_1100_fail
     ($I12, $I11) = rx1095_cur."!mark_peek"($I10)
@@ -14290,11 +15517,15 @@
     rx1095_pos = $P10."pos"()
   # rx pass
     rx1095_cur."!cursor_pass"(rx1095_pos, "infix:sym<%>")
-    rx1095_cur."!cursor_debug"("PASS  ", "infix:sym<%>", " at pos=", rx1095_pos)
+    if_null rx1095_debug, debug_885
+    rx1095_cur."!cursor_debug"("PASS", "infix:sym<%>", " at pos=", rx1095_pos)
+  debug_885:
     .return (rx1095_cur)
   rx1095_restart:
 .annotate 'line', 447
-    rx1095_cur."!cursor_debug"("NEXT ", "infix:sym<%>")
+    if_null rx1095_debug, debug_886
+    rx1095_cur."!cursor_debug"("NEXT", "infix:sym<%>")
+  debug_886:
   rx1095_fail:
     (rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0)
     lt rx1095_pos, -1, rx1095_done
@@ -14302,14 +15533,16 @@
     jump $I10
   rx1095_done:
     rx1095_cur."!cursor_fail"()
-    rx1095_cur."!cursor_debug"("FAIL  ", "infix:sym<%>")
+    if_null rx1095_debug, debug_887
+    rx1095_cur."!cursor_debug"("FAIL", "infix:sym<%>")
+  debug_887:
     .return (rx1095_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("281_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<%>"  :subid("281_1282324002.40722") :method
 .annotate 'line', 447
     $P1097 = self."!PREFIX__!subrule"("O", "%")
     new $P1098, "ResizablePMCArray"
@@ -14319,7 +15552,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+&>"  :subid("282_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+&>"  :subid("282_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1102_tgt
     .local int rx1102_pos
@@ -14327,7 +15560,9 @@
     .local int rx1102_eos
     .local int rx1102_rep
     .local pmc rx1102_cur
+    .local pmc rx1102_debug
     (rx1102_cur, rx1102_pos, rx1102_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1102_debug, rx1102_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1102_cur
     .local pmc match
     .lex "$/", match
@@ -14339,7 +15574,9 @@
     substr rx1102_tgt, rx1102_tgt, rx1102_off
   rx1102_start:
     eq $I10, 1, rx1102_restart
-    rx1102_cur."!cursor_debug"("START ", "infix:sym<+&>")
+    if_null rx1102_debug, debug_888
+    rx1102_cur."!cursor_debug"("START", "infix:sym<+&>")
+  debug_888:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1106_done
     goto rxscan1106_scan
@@ -14383,11 +15620,15 @@
     rx1102_pos = $P10."pos"()
   # rx pass
     rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<+&>")
-    rx1102_cur."!cursor_debug"("PASS  ", "infix:sym<+&>", " at pos=", rx1102_pos)
+    if_null rx1102_debug, debug_889
+    rx1102_cur."!cursor_debug"("PASS", "infix:sym<+&>", " at pos=", rx1102_pos)
+  debug_889:
     .return (rx1102_cur)
   rx1102_restart:
 .annotate 'line', 447
-    rx1102_cur."!cursor_debug"("NEXT ", "infix:sym<+&>")
+    if_null rx1102_debug, debug_890
+    rx1102_cur."!cursor_debug"("NEXT", "infix:sym<+&>")
+  debug_890:
   rx1102_fail:
     (rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0)
     lt rx1102_pos, -1, rx1102_done
@@ -14395,14 +15636,16 @@
     jump $I10
   rx1102_done:
     rx1102_cur."!cursor_fail"()
-    rx1102_cur."!cursor_debug"("FAIL  ", "infix:sym<+&>")
+    if_null rx1102_debug, debug_891
+    rx1102_cur."!cursor_debug"("FAIL", "infix:sym<+&>")
+  debug_891:
     .return (rx1102_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+&>"  :subid("283_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+&>"  :subid("283_1282324002.40722") :method
 .annotate 'line', 447
     $P1104 = self."!PREFIX__!subrule"("O", "+&")
     new $P1105, "ResizablePMCArray"
@@ -14412,7 +15655,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("284_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+>"  :subid("284_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1109_tgt
     .local int rx1109_pos
@@ -14420,7 +15663,9 @@
     .local int rx1109_eos
     .local int rx1109_rep
     .local pmc rx1109_cur
+    .local pmc rx1109_debug
     (rx1109_cur, rx1109_pos, rx1109_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1109_debug, rx1109_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1109_cur
     .local pmc match
     .lex "$/", match
@@ -14432,7 +15677,9 @@
     substr rx1109_tgt, rx1109_tgt, rx1109_off
   rx1109_start:
     eq $I10, 1, rx1109_restart
-    rx1109_cur."!cursor_debug"("START ", "infix:sym<+>")
+    if_null rx1109_debug, debug_892
+    rx1109_cur."!cursor_debug"("START", "infix:sym<+>")
+  debug_892:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1113_done
     goto rxscan1113_scan
@@ -14453,8 +15700,8 @@
     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
+    ord $I11, rx1109_tgt, $I11
+    ne $I11, 43, rx1109_fail
     add rx1109_pos, 1
     set_addr $I10, rxcap_1114_fail
     ($I12, $I11) = rx1109_cur."!mark_peek"($I10)
@@ -14476,11 +15723,15 @@
     rx1109_pos = $P10."pos"()
   # rx pass
     rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym<+>")
-    rx1109_cur."!cursor_debug"("PASS  ", "infix:sym<+>", " at pos=", rx1109_pos)
+    if_null rx1109_debug, debug_893
+    rx1109_cur."!cursor_debug"("PASS", "infix:sym<+>", " at pos=", rx1109_pos)
+  debug_893:
     .return (rx1109_cur)
   rx1109_restart:
 .annotate 'line', 447
-    rx1109_cur."!cursor_debug"("NEXT ", "infix:sym<+>")
+    if_null rx1109_debug, debug_894
+    rx1109_cur."!cursor_debug"("NEXT", "infix:sym<+>")
+  debug_894:
   rx1109_fail:
     (rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0)
     lt rx1109_pos, -1, rx1109_done
@@ -14488,14 +15739,16 @@
     jump $I10
   rx1109_done:
     rx1109_cur."!cursor_fail"()
-    rx1109_cur."!cursor_debug"("FAIL  ", "infix:sym<+>")
+    if_null rx1109_debug, debug_895
+    rx1109_cur."!cursor_debug"("FAIL", "infix:sym<+>")
+  debug_895:
     .return (rx1109_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("285_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+>"  :subid("285_1282324002.40722") :method
 .annotate 'line', 447
     $P1111 = self."!PREFIX__!subrule"("O", "+")
     new $P1112, "ResizablePMCArray"
@@ -14505,7 +15758,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("286_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<->"  :subid("286_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1116_tgt
     .local int rx1116_pos
@@ -14513,7 +15766,9 @@
     .local int rx1116_eos
     .local int rx1116_rep
     .local pmc rx1116_cur
+    .local pmc rx1116_debug
     (rx1116_cur, rx1116_pos, rx1116_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1116_debug, rx1116_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1116_cur
     .local pmc match
     .lex "$/", match
@@ -14525,7 +15780,9 @@
     substr rx1116_tgt, rx1116_tgt, rx1116_off
   rx1116_start:
     eq $I10, 1, rx1116_restart
-    rx1116_cur."!cursor_debug"("START ", "infix:sym<->")
+    if_null rx1116_debug, debug_896
+    rx1116_cur."!cursor_debug"("START", "infix:sym<->")
+  debug_896:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1120_done
     goto rxscan1120_scan
@@ -14546,8 +15803,8 @@
     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
+    ord $I11, rx1116_tgt, $I11
+    ne $I11, 45, rx1116_fail
     add rx1116_pos, 1
     set_addr $I10, rxcap_1121_fail
     ($I12, $I11) = rx1116_cur."!mark_peek"($I10)
@@ -14569,11 +15826,15 @@
     rx1116_pos = $P10."pos"()
   # rx pass
     rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<->")
-    rx1116_cur."!cursor_debug"("PASS  ", "infix:sym<->", " at pos=", rx1116_pos)
+    if_null rx1116_debug, debug_897
+    rx1116_cur."!cursor_debug"("PASS", "infix:sym<->", " at pos=", rx1116_pos)
+  debug_897:
     .return (rx1116_cur)
   rx1116_restart:
 .annotate 'line', 447
-    rx1116_cur."!cursor_debug"("NEXT ", "infix:sym<->")
+    if_null rx1116_debug, debug_898
+    rx1116_cur."!cursor_debug"("NEXT", "infix:sym<->")
+  debug_898:
   rx1116_fail:
     (rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0)
     lt rx1116_pos, -1, rx1116_done
@@ -14581,14 +15842,16 @@
     jump $I10
   rx1116_done:
     rx1116_cur."!cursor_fail"()
-    rx1116_cur."!cursor_debug"("FAIL  ", "infix:sym<->")
+    if_null rx1116_debug, debug_899
+    rx1116_cur."!cursor_debug"("FAIL", "infix:sym<->")
+  debug_899:
     .return (rx1116_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("287_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<->"  :subid("287_1282324002.40722") :method
 .annotate 'line', 447
     $P1118 = self."!PREFIX__!subrule"("O", "-")
     new $P1119, "ResizablePMCArray"
@@ -14598,7 +15861,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+|>"  :subid("288_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+|>"  :subid("288_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1123_tgt
     .local int rx1123_pos
@@ -14606,7 +15869,9 @@
     .local int rx1123_eos
     .local int rx1123_rep
     .local pmc rx1123_cur
+    .local pmc rx1123_debug
     (rx1123_cur, rx1123_pos, rx1123_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1123_debug, rx1123_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1123_cur
     .local pmc match
     .lex "$/", match
@@ -14618,7 +15883,9 @@
     substr rx1123_tgt, rx1123_tgt, rx1123_off
   rx1123_start:
     eq $I10, 1, rx1123_restart
-    rx1123_cur."!cursor_debug"("START ", "infix:sym<+|>")
+    if_null rx1123_debug, debug_900
+    rx1123_cur."!cursor_debug"("START", "infix:sym<+|>")
+  debug_900:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1127_done
     goto rxscan1127_scan
@@ -14662,11 +15929,15 @@
     rx1123_pos = $P10."pos"()
   # rx pass
     rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+|>")
-    rx1123_cur."!cursor_debug"("PASS  ", "infix:sym<+|>", " at pos=", rx1123_pos)
+    if_null rx1123_debug, debug_901
+    rx1123_cur."!cursor_debug"("PASS", "infix:sym<+|>", " at pos=", rx1123_pos)
+  debug_901:
     .return (rx1123_cur)
   rx1123_restart:
 .annotate 'line', 447
-    rx1123_cur."!cursor_debug"("NEXT ", "infix:sym<+|>")
+    if_null rx1123_debug, debug_902
+    rx1123_cur."!cursor_debug"("NEXT", "infix:sym<+|>")
+  debug_902:
   rx1123_fail:
     (rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0)
     lt rx1123_pos, -1, rx1123_done
@@ -14674,14 +15945,16 @@
     jump $I10
   rx1123_done:
     rx1123_cur."!cursor_fail"()
-    rx1123_cur."!cursor_debug"("FAIL  ", "infix:sym<+|>")
+    if_null rx1123_debug, debug_903
+    rx1123_cur."!cursor_debug"("FAIL", "infix:sym<+|>")
+  debug_903:
     .return (rx1123_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+|>"  :subid("289_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+|>"  :subid("289_1282324002.40722") :method
 .annotate 'line', 447
     $P1125 = self."!PREFIX__!subrule"("O", "+|")
     new $P1126, "ResizablePMCArray"
@@ -14691,7 +15964,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+^>"  :subid("290_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<+^>"  :subid("290_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1130_tgt
     .local int rx1130_pos
@@ -14699,7 +15972,9 @@
     .local int rx1130_eos
     .local int rx1130_rep
     .local pmc rx1130_cur
+    .local pmc rx1130_debug
     (rx1130_cur, rx1130_pos, rx1130_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1130_debug, rx1130_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1130_cur
     .local pmc match
     .lex "$/", match
@@ -14711,7 +15986,9 @@
     substr rx1130_tgt, rx1130_tgt, rx1130_off
   rx1130_start:
     eq $I10, 1, rx1130_restart
-    rx1130_cur."!cursor_debug"("START ", "infix:sym<+^>")
+    if_null rx1130_debug, debug_904
+    rx1130_cur."!cursor_debug"("START", "infix:sym<+^>")
+  debug_904:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1134_done
     goto rxscan1134_scan
@@ -14755,11 +16032,15 @@
     rx1130_pos = $P10."pos"()
   # rx pass
     rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<+^>")
-    rx1130_cur."!cursor_debug"("PASS  ", "infix:sym<+^>", " at pos=", rx1130_pos)
+    if_null rx1130_debug, debug_905
+    rx1130_cur."!cursor_debug"("PASS", "infix:sym<+^>", " at pos=", rx1130_pos)
+  debug_905:
     .return (rx1130_cur)
   rx1130_restart:
 .annotate 'line', 447
-    rx1130_cur."!cursor_debug"("NEXT ", "infix:sym<+^>")
+    if_null rx1130_debug, debug_906
+    rx1130_cur."!cursor_debug"("NEXT", "infix:sym<+^>")
+  debug_906:
   rx1130_fail:
     (rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0)
     lt rx1130_pos, -1, rx1130_done
@@ -14767,14 +16048,16 @@
     jump $I10
   rx1130_done:
     rx1130_cur."!cursor_fail"()
-    rx1130_cur."!cursor_debug"("FAIL  ", "infix:sym<+^>")
+    if_null rx1130_debug, debug_907
+    rx1130_cur."!cursor_debug"("FAIL", "infix:sym<+^>")
+  debug_907:
     .return (rx1130_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+^>"  :subid("291_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<+^>"  :subid("291_1282324002.40722") :method
 .annotate 'line', 447
     $P1132 = self."!PREFIX__!subrule"("O", "+^")
     new $P1133, "ResizablePMCArray"
@@ -14784,7 +16067,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("292_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<~>"  :subid("292_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1137_tgt
     .local int rx1137_pos
@@ -14792,7 +16075,9 @@
     .local int rx1137_eos
     .local int rx1137_rep
     .local pmc rx1137_cur
+    .local pmc rx1137_debug
     (rx1137_cur, rx1137_pos, rx1137_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1137_debug, rx1137_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1137_cur
     .local pmc match
     .lex "$/", match
@@ -14804,7 +16089,9 @@
     substr rx1137_tgt, rx1137_tgt, rx1137_off
   rx1137_start:
     eq $I10, 1, rx1137_restart
-    rx1137_cur."!cursor_debug"("START ", "infix:sym<~>")
+    if_null rx1137_debug, debug_908
+    rx1137_cur."!cursor_debug"("START", "infix:sym<~>")
+  debug_908:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1141_done
     goto rxscan1141_scan
@@ -14825,8 +16112,8 @@
     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
+    ord $I11, rx1137_tgt, $I11
+    ne $I11, 126, rx1137_fail
     add rx1137_pos, 1
     set_addr $I10, rxcap_1142_fail
     ($I12, $I11) = rx1137_cur."!mark_peek"($I10)
@@ -14848,11 +16135,15 @@
     rx1137_pos = $P10."pos"()
   # rx pass
     rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>")
-    rx1137_cur."!cursor_debug"("PASS  ", "infix:sym<~>", " at pos=", rx1137_pos)
+    if_null rx1137_debug, debug_909
+    rx1137_cur."!cursor_debug"("PASS", "infix:sym<~>", " at pos=", rx1137_pos)
+  debug_909:
     .return (rx1137_cur)
   rx1137_restart:
 .annotate 'line', 447
-    rx1137_cur."!cursor_debug"("NEXT ", "infix:sym<~>")
+    if_null rx1137_debug, debug_910
+    rx1137_cur."!cursor_debug"("NEXT", "infix:sym<~>")
+  debug_910:
   rx1137_fail:
     (rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0)
     lt rx1137_pos, -1, rx1137_done
@@ -14860,14 +16151,16 @@
     jump $I10
   rx1137_done:
     rx1137_cur."!cursor_fail"()
-    rx1137_cur."!cursor_debug"("FAIL  ", "infix:sym<~>")
+    if_null rx1137_debug, debug_911
+    rx1137_cur."!cursor_debug"("FAIL", "infix:sym<~>")
+  debug_911:
     .return (rx1137_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("293_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<~>"  :subid("293_1282324002.40722") :method
 .annotate 'line', 447
     $P1139 = self."!PREFIX__!subrule"("O", "~")
     new $P1140, "ResizablePMCArray"
@@ -14877,7 +16170,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("294_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<==>"  :subid("294_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1144_tgt
     .local int rx1144_pos
@@ -14885,7 +16178,9 @@
     .local int rx1144_eos
     .local int rx1144_rep
     .local pmc rx1144_cur
+    .local pmc rx1144_debug
     (rx1144_cur, rx1144_pos, rx1144_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1144_debug, rx1144_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1144_cur
     .local pmc match
     .lex "$/", match
@@ -14897,7 +16192,9 @@
     substr rx1144_tgt, rx1144_tgt, rx1144_off
   rx1144_start:
     eq $I10, 1, rx1144_restart
-    rx1144_cur."!cursor_debug"("START ", "infix:sym<==>")
+    if_null rx1144_debug, debug_912
+    rx1144_cur."!cursor_debug"("START", "infix:sym<==>")
+  debug_912:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1148_done
     goto rxscan1148_scan
@@ -14941,11 +16238,15 @@
     rx1144_pos = $P10."pos"()
   # rx pass
     rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>")
-    rx1144_cur."!cursor_debug"("PASS  ", "infix:sym<==>", " at pos=", rx1144_pos)
+    if_null rx1144_debug, debug_913
+    rx1144_cur."!cursor_debug"("PASS", "infix:sym<==>", " at pos=", rx1144_pos)
+  debug_913:
     .return (rx1144_cur)
   rx1144_restart:
 .annotate 'line', 447
-    rx1144_cur."!cursor_debug"("NEXT ", "infix:sym<==>")
+    if_null rx1144_debug, debug_914
+    rx1144_cur."!cursor_debug"("NEXT", "infix:sym<==>")
+  debug_914:
   rx1144_fail:
     (rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0)
     lt rx1144_pos, -1, rx1144_done
@@ -14953,14 +16254,16 @@
     jump $I10
   rx1144_done:
     rx1144_cur."!cursor_fail"()
-    rx1144_cur."!cursor_debug"("FAIL  ", "infix:sym<==>")
+    if_null rx1144_debug, debug_915
+    rx1144_cur."!cursor_debug"("FAIL", "infix:sym<==>")
+  debug_915:
     .return (rx1144_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("295_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<==>"  :subid("295_1282324002.40722") :method
 .annotate 'line', 447
     $P1146 = self."!PREFIX__!subrule"("O", "==")
     new $P1147, "ResizablePMCArray"
@@ -14970,7 +16273,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("296_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<!=>"  :subid("296_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1151_tgt
     .local int rx1151_pos
@@ -14978,7 +16281,9 @@
     .local int rx1151_eos
     .local int rx1151_rep
     .local pmc rx1151_cur
+    .local pmc rx1151_debug
     (rx1151_cur, rx1151_pos, rx1151_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1151_debug, rx1151_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1151_cur
     .local pmc match
     .lex "$/", match
@@ -14990,7 +16295,9 @@
     substr rx1151_tgt, rx1151_tgt, rx1151_off
   rx1151_start:
     eq $I10, 1, rx1151_restart
-    rx1151_cur."!cursor_debug"("START ", "infix:sym<!=>")
+    if_null rx1151_debug, debug_916
+    rx1151_cur."!cursor_debug"("START", "infix:sym<!=>")
+  debug_916:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1155_done
     goto rxscan1155_scan
@@ -15034,11 +16341,15 @@
     rx1151_pos = $P10."pos"()
   # rx pass
     rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym<!=>")
-    rx1151_cur."!cursor_debug"("PASS  ", "infix:sym<!=>", " at pos=", rx1151_pos)
+    if_null rx1151_debug, debug_917
+    rx1151_cur."!cursor_debug"("PASS", "infix:sym<!=>", " at pos=", rx1151_pos)
+  debug_917:
     .return (rx1151_cur)
   rx1151_restart:
 .annotate 'line', 447
-    rx1151_cur."!cursor_debug"("NEXT ", "infix:sym<!=>")
+    if_null rx1151_debug, debug_918
+    rx1151_cur."!cursor_debug"("NEXT", "infix:sym<!=>")
+  debug_918:
   rx1151_fail:
     (rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0)
     lt rx1151_pos, -1, rx1151_done
@@ -15046,14 +16357,16 @@
     jump $I10
   rx1151_done:
     rx1151_cur."!cursor_fail"()
-    rx1151_cur."!cursor_debug"("FAIL  ", "infix:sym<!=>")
+    if_null rx1151_debug, debug_919
+    rx1151_cur."!cursor_debug"("FAIL", "infix:sym<!=>")
+  debug_919:
     .return (rx1151_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("297_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<!=>"  :subid("297_1282324002.40722") :method
 .annotate 'line', 447
     $P1153 = self."!PREFIX__!subrule"("O", "!=")
     new $P1154, "ResizablePMCArray"
@@ -15063,7 +16376,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("298_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<<=>"  :subid("298_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1158_tgt
     .local int rx1158_pos
@@ -15071,7 +16384,9 @@
     .local int rx1158_eos
     .local int rx1158_rep
     .local pmc rx1158_cur
+    .local pmc rx1158_debug
     (rx1158_cur, rx1158_pos, rx1158_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1158_debug, rx1158_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1158_cur
     .local pmc match
     .lex "$/", match
@@ -15083,7 +16398,9 @@
     substr rx1158_tgt, rx1158_tgt, rx1158_off
   rx1158_start:
     eq $I10, 1, rx1158_restart
-    rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>")
+    if_null rx1158_debug, debug_920
+    rx1158_cur."!cursor_debug"("START", "infix:sym<<=>")
+  debug_920:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1162_done
     goto rxscan1162_scan
@@ -15127,11 +16444,15 @@
     rx1158_pos = $P10."pos"()
   # rx pass
     rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>")
-    rx1158_cur."!cursor_debug"("PASS  ", "infix:sym<<=>", " at pos=", rx1158_pos)
+    if_null rx1158_debug, debug_921
+    rx1158_cur."!cursor_debug"("PASS", "infix:sym<<=>", " at pos=", rx1158_pos)
+  debug_921:
     .return (rx1158_cur)
   rx1158_restart:
 .annotate 'line', 447
-    rx1158_cur."!cursor_debug"("NEXT ", "infix:sym<<=>")
+    if_null rx1158_debug, debug_922
+    rx1158_cur."!cursor_debug"("NEXT", "infix:sym<<=>")
+  debug_922:
   rx1158_fail:
     (rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0)
     lt rx1158_pos, -1, rx1158_done
@@ -15139,14 +16460,16 @@
     jump $I10
   rx1158_done:
     rx1158_cur."!cursor_fail"()
-    rx1158_cur."!cursor_debug"("FAIL  ", "infix:sym<<=>")
+    if_null rx1158_debug, debug_923
+    rx1158_cur."!cursor_debug"("FAIL", "infix:sym<<=>")
+  debug_923:
     .return (rx1158_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("299_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<<=>"  :subid("299_1282324002.40722") :method
 .annotate 'line', 447
     $P1160 = self."!PREFIX__!subrule"("O", "<=")
     new $P1161, "ResizablePMCArray"
@@ -15156,7 +16479,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("300_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<>=>"  :subid("300_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1165_tgt
     .local int rx1165_pos
@@ -15164,7 +16487,9 @@
     .local int rx1165_eos
     .local int rx1165_rep
     .local pmc rx1165_cur
+    .local pmc rx1165_debug
     (rx1165_cur, rx1165_pos, rx1165_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1165_debug, rx1165_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1165_cur
     .local pmc match
     .lex "$/", match
@@ -15176,7 +16501,9 @@
     substr rx1165_tgt, rx1165_tgt, rx1165_off
   rx1165_start:
     eq $I10, 1, rx1165_restart
-    rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>")
+    if_null rx1165_debug, debug_924
+    rx1165_cur."!cursor_debug"("START", "infix:sym<>=>")
+  debug_924:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1169_done
     goto rxscan1169_scan
@@ -15220,11 +16547,15 @@
     rx1165_pos = $P10."pos"()
   # rx pass
     rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>")
-    rx1165_cur."!cursor_debug"("PASS  ", "infix:sym<>=>", " at pos=", rx1165_pos)
+    if_null rx1165_debug, debug_925
+    rx1165_cur."!cursor_debug"("PASS", "infix:sym<>=>", " at pos=", rx1165_pos)
+  debug_925:
     .return (rx1165_cur)
   rx1165_restart:
 .annotate 'line', 447
-    rx1165_cur."!cursor_debug"("NEXT ", "infix:sym<>=>")
+    if_null rx1165_debug, debug_926
+    rx1165_cur."!cursor_debug"("NEXT", "infix:sym<>=>")
+  debug_926:
   rx1165_fail:
     (rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0)
     lt rx1165_pos, -1, rx1165_done
@@ -15232,14 +16563,16 @@
     jump $I10
   rx1165_done:
     rx1165_cur."!cursor_fail"()
-    rx1165_cur."!cursor_debug"("FAIL  ", "infix:sym<>=>")
+    if_null rx1165_debug, debug_927
+    rx1165_cur."!cursor_debug"("FAIL", "infix:sym<>=>")
+  debug_927:
     .return (rx1165_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("301_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<>=>"  :subid("301_1282324002.40722") :method
 .annotate 'line', 447
     $P1167 = self."!PREFIX__!subrule"("O", ">=")
     new $P1168, "ResizablePMCArray"
@@ -15249,7 +16582,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("302_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<<>"  :subid("302_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1172_tgt
     .local int rx1172_pos
@@ -15257,7 +16590,9 @@
     .local int rx1172_eos
     .local int rx1172_rep
     .local pmc rx1172_cur
+    .local pmc rx1172_debug
     (rx1172_cur, rx1172_pos, rx1172_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1172_debug, rx1172_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1172_cur
     .local pmc match
     .lex "$/", match
@@ -15269,7 +16604,9 @@
     substr rx1172_tgt, rx1172_tgt, rx1172_off
   rx1172_start:
     eq $I10, 1, rx1172_restart
-    rx1172_cur."!cursor_debug"("START ", "infix:sym<<>")
+    if_null rx1172_debug, debug_928
+    rx1172_cur."!cursor_debug"("START", "infix:sym<<>")
+  debug_928:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1176_done
     goto rxscan1176_scan
@@ -15290,8 +16627,8 @@
     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
+    ord $I11, rx1172_tgt, $I11
+    ne $I11, 60, rx1172_fail
     add rx1172_pos, 1
     set_addr $I10, rxcap_1177_fail
     ($I12, $I11) = rx1172_cur."!mark_peek"($I10)
@@ -15313,11 +16650,15 @@
     rx1172_pos = $P10."pos"()
   # rx pass
     rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>")
-    rx1172_cur."!cursor_debug"("PASS  ", "infix:sym<<>", " at pos=", rx1172_pos)
+    if_null rx1172_debug, debug_929
+    rx1172_cur."!cursor_debug"("PASS", "infix:sym<<>", " at pos=", rx1172_pos)
+  debug_929:
     .return (rx1172_cur)
   rx1172_restart:
 .annotate 'line', 447
-    rx1172_cur."!cursor_debug"("NEXT ", "infix:sym<<>")
+    if_null rx1172_debug, debug_930
+    rx1172_cur."!cursor_debug"("NEXT", "infix:sym<<>")
+  debug_930:
   rx1172_fail:
     (rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0)
     lt rx1172_pos, -1, rx1172_done
@@ -15325,14 +16666,16 @@
     jump $I10
   rx1172_done:
     rx1172_cur."!cursor_fail"()
-    rx1172_cur."!cursor_debug"("FAIL  ", "infix:sym<<>")
+    if_null rx1172_debug, debug_931
+    rx1172_cur."!cursor_debug"("FAIL", "infix:sym<<>")
+  debug_931:
     .return (rx1172_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("303_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<<>"  :subid("303_1282324002.40722") :method
 .annotate 'line', 447
     $P1174 = self."!PREFIX__!subrule"("O", "<")
     new $P1175, "ResizablePMCArray"
@@ -15342,7 +16685,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("304_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<>>"  :subid("304_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1179_tgt
     .local int rx1179_pos
@@ -15350,7 +16693,9 @@
     .local int rx1179_eos
     .local int rx1179_rep
     .local pmc rx1179_cur
+    .local pmc rx1179_debug
     (rx1179_cur, rx1179_pos, rx1179_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1179_debug, rx1179_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1179_cur
     .local pmc match
     .lex "$/", match
@@ -15362,7 +16707,9 @@
     substr rx1179_tgt, rx1179_tgt, rx1179_off
   rx1179_start:
     eq $I10, 1, rx1179_restart
-    rx1179_cur."!cursor_debug"("START ", "infix:sym<>>")
+    if_null rx1179_debug, debug_932
+    rx1179_cur."!cursor_debug"("START", "infix:sym<>>")
+  debug_932:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1183_done
     goto rxscan1183_scan
@@ -15383,8 +16730,8 @@
     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
+    ord $I11, rx1179_tgt, $I11
+    ne $I11, 62, rx1179_fail
     add rx1179_pos, 1
     set_addr $I10, rxcap_1184_fail
     ($I12, $I11) = rx1179_cur."!mark_peek"($I10)
@@ -15406,11 +16753,15 @@
     rx1179_pos = $P10."pos"()
   # rx pass
     rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>")
-    rx1179_cur."!cursor_debug"("PASS  ", "infix:sym<>>", " at pos=", rx1179_pos)
+    if_null rx1179_debug, debug_933
+    rx1179_cur."!cursor_debug"("PASS", "infix:sym<>>", " at pos=", rx1179_pos)
+  debug_933:
     .return (rx1179_cur)
   rx1179_restart:
 .annotate 'line', 447
-    rx1179_cur."!cursor_debug"("NEXT ", "infix:sym<>>")
+    if_null rx1179_debug, debug_934
+    rx1179_cur."!cursor_debug"("NEXT", "infix:sym<>>")
+  debug_934:
   rx1179_fail:
     (rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0)
     lt rx1179_pos, -1, rx1179_done
@@ -15418,14 +16769,16 @@
     jump $I10
   rx1179_done:
     rx1179_cur."!cursor_fail"()
-    rx1179_cur."!cursor_debug"("FAIL  ", "infix:sym<>>")
+    if_null rx1179_debug, debug_935
+    rx1179_cur."!cursor_debug"("FAIL", "infix:sym<>>")
+  debug_935:
     .return (rx1179_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("305_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<>>"  :subid("305_1282324002.40722") :method
 .annotate 'line', 447
     $P1181 = self."!PREFIX__!subrule"("O", ">")
     new $P1182, "ResizablePMCArray"
@@ -15435,7 +16788,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("306_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<eq>"  :subid("306_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1186_tgt
     .local int rx1186_pos
@@ -15443,7 +16796,9 @@
     .local int rx1186_eos
     .local int rx1186_rep
     .local pmc rx1186_cur
+    .local pmc rx1186_debug
     (rx1186_cur, rx1186_pos, rx1186_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1186_debug, rx1186_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1186_cur
     .local pmc match
     .lex "$/", match
@@ -15455,7 +16810,9 @@
     substr rx1186_tgt, rx1186_tgt, rx1186_off
   rx1186_start:
     eq $I10, 1, rx1186_restart
-    rx1186_cur."!cursor_debug"("START ", "infix:sym<eq>")
+    if_null rx1186_debug, debug_936
+    rx1186_cur."!cursor_debug"("START", "infix:sym<eq>")
+  debug_936:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1190_done
     goto rxscan1190_scan
@@ -15499,11 +16856,15 @@
     rx1186_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)
+    if_null rx1186_debug, debug_937
+    rx1186_cur."!cursor_debug"("PASS", "infix:sym<eq>", " at pos=", rx1186_pos)
+  debug_937:
     .return (rx1186_cur)
   rx1186_restart:
 .annotate 'line', 447
-    rx1186_cur."!cursor_debug"("NEXT ", "infix:sym<eq>")
+    if_null rx1186_debug, debug_938
+    rx1186_cur."!cursor_debug"("NEXT", "infix:sym<eq>")
+  debug_938:
   rx1186_fail:
     (rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0)
     lt rx1186_pos, -1, rx1186_done
@@ -15511,14 +16872,16 @@
     jump $I10
   rx1186_done:
     rx1186_cur."!cursor_fail"()
-    rx1186_cur."!cursor_debug"("FAIL  ", "infix:sym<eq>")
+    if_null rx1186_debug, debug_939
+    rx1186_cur."!cursor_debug"("FAIL", "infix:sym<eq>")
+  debug_939:
     .return (rx1186_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("307_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<eq>"  :subid("307_1282324002.40722") :method
 .annotate 'line', 447
     $P1188 = self."!PREFIX__!subrule"("O", "eq")
     new $P1189, "ResizablePMCArray"
@@ -15528,7 +16891,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("308_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<ne>"  :subid("308_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1193_tgt
     .local int rx1193_pos
@@ -15536,7 +16899,9 @@
     .local int rx1193_eos
     .local int rx1193_rep
     .local pmc rx1193_cur
+    .local pmc rx1193_debug
     (rx1193_cur, rx1193_pos, rx1193_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1193_debug, rx1193_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1193_cur
     .local pmc match
     .lex "$/", match
@@ -15548,7 +16913,9 @@
     substr rx1193_tgt, rx1193_tgt, rx1193_off
   rx1193_start:
     eq $I10, 1, rx1193_restart
-    rx1193_cur."!cursor_debug"("START ", "infix:sym<ne>")
+    if_null rx1193_debug, debug_940
+    rx1193_cur."!cursor_debug"("START", "infix:sym<ne>")
+  debug_940:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1197_done
     goto rxscan1197_scan
@@ -15592,11 +16959,15 @@
     rx1193_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)
+    if_null rx1193_debug, debug_941
+    rx1193_cur."!cursor_debug"("PASS", "infix:sym<ne>", " at pos=", rx1193_pos)
+  debug_941:
     .return (rx1193_cur)
   rx1193_restart:
 .annotate 'line', 447
-    rx1193_cur."!cursor_debug"("NEXT ", "infix:sym<ne>")
+    if_null rx1193_debug, debug_942
+    rx1193_cur."!cursor_debug"("NEXT", "infix:sym<ne>")
+  debug_942:
   rx1193_fail:
     (rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0)
     lt rx1193_pos, -1, rx1193_done
@@ -15604,14 +16975,16 @@
     jump $I10
   rx1193_done:
     rx1193_cur."!cursor_fail"()
-    rx1193_cur."!cursor_debug"("FAIL  ", "infix:sym<ne>")
+    if_null rx1193_debug, debug_943
+    rx1193_cur."!cursor_debug"("FAIL", "infix:sym<ne>")
+  debug_943:
     .return (rx1193_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("309_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<ne>"  :subid("309_1282324002.40722") :method
 .annotate 'line', 447
     $P1195 = self."!PREFIX__!subrule"("O", "ne")
     new $P1196, "ResizablePMCArray"
@@ -15621,7 +16994,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("310_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<le>"  :subid("310_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1200_tgt
     .local int rx1200_pos
@@ -15629,7 +17002,9 @@
     .local int rx1200_eos
     .local int rx1200_rep
     .local pmc rx1200_cur
+    .local pmc rx1200_debug
     (rx1200_cur, rx1200_pos, rx1200_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1200_debug, rx1200_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1200_cur
     .local pmc match
     .lex "$/", match
@@ -15641,7 +17016,9 @@
     substr rx1200_tgt, rx1200_tgt, rx1200_off
   rx1200_start:
     eq $I10, 1, rx1200_restart
-    rx1200_cur."!cursor_debug"("START ", "infix:sym<le>")
+    if_null rx1200_debug, debug_944
+    rx1200_cur."!cursor_debug"("START", "infix:sym<le>")
+  debug_944:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1204_done
     goto rxscan1204_scan
@@ -15685,11 +17062,15 @@
     rx1200_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)
+    if_null rx1200_debug, debug_945
+    rx1200_cur."!cursor_debug"("PASS", "infix:sym<le>", " at pos=", rx1200_pos)
+  debug_945:
     .return (rx1200_cur)
   rx1200_restart:
 .annotate 'line', 447
-    rx1200_cur."!cursor_debug"("NEXT ", "infix:sym<le>")
+    if_null rx1200_debug, debug_946
+    rx1200_cur."!cursor_debug"("NEXT", "infix:sym<le>")
+  debug_946:
   rx1200_fail:
     (rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0)
     lt rx1200_pos, -1, rx1200_done
@@ -15697,14 +17078,16 @@
     jump $I10
   rx1200_done:
     rx1200_cur."!cursor_fail"()
-    rx1200_cur."!cursor_debug"("FAIL  ", "infix:sym<le>")
+    if_null rx1200_debug, debug_947
+    rx1200_cur."!cursor_debug"("FAIL", "infix:sym<le>")
+  debug_947:
     .return (rx1200_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("311_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<le>"  :subid("311_1282324002.40722") :method
 .annotate 'line', 447
     $P1202 = self."!PREFIX__!subrule"("O", "le")
     new $P1203, "ResizablePMCArray"
@@ -15714,7 +17097,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("312_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<ge>"  :subid("312_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1207_tgt
     .local int rx1207_pos
@@ -15722,7 +17105,9 @@
     .local int rx1207_eos
     .local int rx1207_rep
     .local pmc rx1207_cur
+    .local pmc rx1207_debug
     (rx1207_cur, rx1207_pos, rx1207_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1207_debug, rx1207_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1207_cur
     .local pmc match
     .lex "$/", match
@@ -15734,7 +17119,9 @@
     substr rx1207_tgt, rx1207_tgt, rx1207_off
   rx1207_start:
     eq $I10, 1, rx1207_restart
-    rx1207_cur."!cursor_debug"("START ", "infix:sym<ge>")
+    if_null rx1207_debug, debug_948
+    rx1207_cur."!cursor_debug"("START", "infix:sym<ge>")
+  debug_948:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1211_done
     goto rxscan1211_scan
@@ -15778,11 +17165,15 @@
     rx1207_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)
+    if_null rx1207_debug, debug_949
+    rx1207_cur."!cursor_debug"("PASS", "infix:sym<ge>", " at pos=", rx1207_pos)
+  debug_949:
     .return (rx1207_cur)
   rx1207_restart:
 .annotate 'line', 447
-    rx1207_cur."!cursor_debug"("NEXT ", "infix:sym<ge>")
+    if_null rx1207_debug, debug_950
+    rx1207_cur."!cursor_debug"("NEXT", "infix:sym<ge>")
+  debug_950:
   rx1207_fail:
     (rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0)
     lt rx1207_pos, -1, rx1207_done
@@ -15790,14 +17181,16 @@
     jump $I10
   rx1207_done:
     rx1207_cur."!cursor_fail"()
-    rx1207_cur."!cursor_debug"("FAIL  ", "infix:sym<ge>")
+    if_null rx1207_debug, debug_951
+    rx1207_cur."!cursor_debug"("FAIL", "infix:sym<ge>")
+  debug_951:
     .return (rx1207_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("313_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<ge>"  :subid("313_1282324002.40722") :method
 .annotate 'line', 447
     $P1209 = self."!PREFIX__!subrule"("O", "ge")
     new $P1210, "ResizablePMCArray"
@@ -15807,7 +17200,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("314_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<lt>"  :subid("314_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1214_tgt
     .local int rx1214_pos
@@ -15815,7 +17208,9 @@
     .local int rx1214_eos
     .local int rx1214_rep
     .local pmc rx1214_cur
+    .local pmc rx1214_debug
     (rx1214_cur, rx1214_pos, rx1214_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1214_debug, rx1214_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1214_cur
     .local pmc match
     .lex "$/", match
@@ -15827,7 +17222,9 @@
     substr rx1214_tgt, rx1214_tgt, rx1214_off
   rx1214_start:
     eq $I10, 1, rx1214_restart
-    rx1214_cur."!cursor_debug"("START ", "infix:sym<lt>")
+    if_null rx1214_debug, debug_952
+    rx1214_cur."!cursor_debug"("START", "infix:sym<lt>")
+  debug_952:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1218_done
     goto rxscan1218_scan
@@ -15871,11 +17268,15 @@
     rx1214_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)
+    if_null rx1214_debug, debug_953
+    rx1214_cur."!cursor_debug"("PASS", "infix:sym<lt>", " at pos=", rx1214_pos)
+  debug_953:
     .return (rx1214_cur)
   rx1214_restart:
 .annotate 'line', 447
-    rx1214_cur."!cursor_debug"("NEXT ", "infix:sym<lt>")
+    if_null rx1214_debug, debug_954
+    rx1214_cur."!cursor_debug"("NEXT", "infix:sym<lt>")
+  debug_954:
   rx1214_fail:
     (rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0)
     lt rx1214_pos, -1, rx1214_done
@@ -15883,14 +17284,16 @@
     jump $I10
   rx1214_done:
     rx1214_cur."!cursor_fail"()
-    rx1214_cur."!cursor_debug"("FAIL  ", "infix:sym<lt>")
+    if_null rx1214_debug, debug_955
+    rx1214_cur."!cursor_debug"("FAIL", "infix:sym<lt>")
+  debug_955:
     .return (rx1214_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("315_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<lt>"  :subid("315_1282324002.40722") :method
 .annotate 'line', 447
     $P1216 = self."!PREFIX__!subrule"("O", "lt")
     new $P1217, "ResizablePMCArray"
@@ -15900,7 +17303,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("316_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<gt>"  :subid("316_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1221_tgt
     .local int rx1221_pos
@@ -15908,7 +17311,9 @@
     .local int rx1221_eos
     .local int rx1221_rep
     .local pmc rx1221_cur
+    .local pmc rx1221_debug
     (rx1221_cur, rx1221_pos, rx1221_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1221_debug, rx1221_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1221_cur
     .local pmc match
     .lex "$/", match
@@ -15920,7 +17325,9 @@
     substr rx1221_tgt, rx1221_tgt, rx1221_off
   rx1221_start:
     eq $I10, 1, rx1221_restart
-    rx1221_cur."!cursor_debug"("START ", "infix:sym<gt>")
+    if_null rx1221_debug, debug_956
+    rx1221_cur."!cursor_debug"("START", "infix:sym<gt>")
+  debug_956:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1225_done
     goto rxscan1225_scan
@@ -15964,11 +17371,15 @@
     rx1221_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)
+    if_null rx1221_debug, debug_957
+    rx1221_cur."!cursor_debug"("PASS", "infix:sym<gt>", " at pos=", rx1221_pos)
+  debug_957:
     .return (rx1221_cur)
   rx1221_restart:
 .annotate 'line', 447
-    rx1221_cur."!cursor_debug"("NEXT ", "infix:sym<gt>")
+    if_null rx1221_debug, debug_958
+    rx1221_cur."!cursor_debug"("NEXT", "infix:sym<gt>")
+  debug_958:
   rx1221_fail:
     (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
     lt rx1221_pos, -1, rx1221_done
@@ -15976,14 +17387,16 @@
     jump $I10
   rx1221_done:
     rx1221_cur."!cursor_fail"()
-    rx1221_cur."!cursor_debug"("FAIL  ", "infix:sym<gt>")
+    if_null rx1221_debug, debug_959
+    rx1221_cur."!cursor_debug"("FAIL", "infix:sym<gt>")
+  debug_959:
     .return (rx1221_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("317_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<gt>"  :subid("317_1282324002.40722") :method
 .annotate 'line', 447
     $P1223 = self."!PREFIX__!subrule"("O", "gt")
     new $P1224, "ResizablePMCArray"
@@ -15993,7 +17406,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("318_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<=:=>"  :subid("318_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1228_tgt
     .local int rx1228_pos
@@ -16001,7 +17414,9 @@
     .local int rx1228_eos
     .local int rx1228_rep
     .local pmc rx1228_cur
+    .local pmc rx1228_debug
     (rx1228_cur, rx1228_pos, rx1228_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1228_debug, rx1228_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1228_cur
     .local pmc match
     .lex "$/", match
@@ -16013,7 +17428,9 @@
     substr rx1228_tgt, rx1228_tgt, rx1228_off
   rx1228_start:
     eq $I10, 1, rx1228_restart
-    rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+    if_null rx1228_debug, debug_960
+    rx1228_cur."!cursor_debug"("START", "infix:sym<=:=>")
+  debug_960:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1232_done
     goto rxscan1232_scan
@@ -16057,11 +17474,15 @@
     rx1228_pos = $P10."pos"()
   # rx pass
     rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>")
-    rx1228_cur."!cursor_debug"("PASS  ", "infix:sym<=:=>", " at pos=", rx1228_pos)
+    if_null rx1228_debug, debug_961
+    rx1228_cur."!cursor_debug"("PASS", "infix:sym<=:=>", " at pos=", rx1228_pos)
+  debug_961:
     .return (rx1228_cur)
   rx1228_restart:
 .annotate 'line', 447
-    rx1228_cur."!cursor_debug"("NEXT ", "infix:sym<=:=>")
+    if_null rx1228_debug, debug_962
+    rx1228_cur."!cursor_debug"("NEXT", "infix:sym<=:=>")
+  debug_962:
   rx1228_fail:
     (rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0)
     lt rx1228_pos, -1, rx1228_done
@@ -16069,14 +17490,16 @@
     jump $I10
   rx1228_done:
     rx1228_cur."!cursor_fail"()
-    rx1228_cur."!cursor_debug"("FAIL  ", "infix:sym<=:=>")
+    if_null rx1228_debug, debug_963
+    rx1228_cur."!cursor_debug"("FAIL", "infix:sym<=:=>")
+  debug_963:
     .return (rx1228_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("319_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<=:=>"  :subid("319_1282324002.40722") :method
 .annotate 'line', 447
     $P1230 = self."!PREFIX__!subrule"("O", "=:=")
     new $P1231, "ResizablePMCArray"
@@ -16086,7 +17509,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("320_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<~~>"  :subid("320_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1235_tgt
     .local int rx1235_pos
@@ -16094,7 +17517,9 @@
     .local int rx1235_eos
     .local int rx1235_rep
     .local pmc rx1235_cur
+    .local pmc rx1235_debug
     (rx1235_cur, rx1235_pos, rx1235_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1235_debug, rx1235_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1235_cur
     .local pmc match
     .lex "$/", match
@@ -16106,7 +17531,9 @@
     substr rx1235_tgt, rx1235_tgt, rx1235_off
   rx1235_start:
     eq $I10, 1, rx1235_restart
-    rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>")
+    if_null rx1235_debug, debug_964
+    rx1235_cur."!cursor_debug"("START", "infix:sym<~~>")
+  debug_964:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1239_done
     goto rxscan1239_scan
@@ -16150,11 +17577,15 @@
     rx1235_pos = $P10."pos"()
   # rx pass
     rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>")
-    rx1235_cur."!cursor_debug"("PASS  ", "infix:sym<~~>", " at pos=", rx1235_pos)
+    if_null rx1235_debug, debug_965
+    rx1235_cur."!cursor_debug"("PASS", "infix:sym<~~>", " at pos=", rx1235_pos)
+  debug_965:
     .return (rx1235_cur)
   rx1235_restart:
 .annotate 'line', 447
-    rx1235_cur."!cursor_debug"("NEXT ", "infix:sym<~~>")
+    if_null rx1235_debug, debug_966
+    rx1235_cur."!cursor_debug"("NEXT", "infix:sym<~~>")
+  debug_966:
   rx1235_fail:
     (rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0)
     lt rx1235_pos, -1, rx1235_done
@@ -16162,14 +17593,16 @@
     jump $I10
   rx1235_done:
     rx1235_cur."!cursor_fail"()
-    rx1235_cur."!cursor_debug"("FAIL  ", "infix:sym<~~>")
+    if_null rx1235_debug, debug_967
+    rx1235_cur."!cursor_debug"("FAIL", "infix:sym<~~>")
+  debug_967:
     .return (rx1235_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("321_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<~~>"  :subid("321_1282324002.40722") :method
 .annotate 'line', 447
     $P1237 = self."!PREFIX__!subrule"("O", "~~")
     new $P1238, "ResizablePMCArray"
@@ -16179,7 +17612,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("322_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<&&>"  :subid("322_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1242_tgt
     .local int rx1242_pos
@@ -16187,7 +17620,9 @@
     .local int rx1242_eos
     .local int rx1242_rep
     .local pmc rx1242_cur
+    .local pmc rx1242_debug
     (rx1242_cur, rx1242_pos, rx1242_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1242_debug, rx1242_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1242_cur
     .local pmc match
     .lex "$/", match
@@ -16199,7 +17634,9 @@
     substr rx1242_tgt, rx1242_tgt, rx1242_off
   rx1242_start:
     eq $I10, 1, rx1242_restart
-    rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>")
+    if_null rx1242_debug, debug_968
+    rx1242_cur."!cursor_debug"("START", "infix:sym<&&>")
+  debug_968:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1246_done
     goto rxscan1246_scan
@@ -16243,11 +17680,15 @@
     rx1242_pos = $P10."pos"()
   # rx pass
     rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>")
-    rx1242_cur."!cursor_debug"("PASS  ", "infix:sym<&&>", " at pos=", rx1242_pos)
+    if_null rx1242_debug, debug_969
+    rx1242_cur."!cursor_debug"("PASS", "infix:sym<&&>", " at pos=", rx1242_pos)
+  debug_969:
     .return (rx1242_cur)
   rx1242_restart:
 .annotate 'line', 447
-    rx1242_cur."!cursor_debug"("NEXT ", "infix:sym<&&>")
+    if_null rx1242_debug, debug_970
+    rx1242_cur."!cursor_debug"("NEXT", "infix:sym<&&>")
+  debug_970:
   rx1242_fail:
     (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
     lt rx1242_pos, -1, rx1242_done
@@ -16255,14 +17696,16 @@
     jump $I10
   rx1242_done:
     rx1242_cur."!cursor_fail"()
-    rx1242_cur."!cursor_debug"("FAIL  ", "infix:sym<&&>")
+    if_null rx1242_debug, debug_971
+    rx1242_cur."!cursor_debug"("FAIL", "infix:sym<&&>")
+  debug_971:
     .return (rx1242_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("323_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<&&>"  :subid("323_1282324002.40722") :method
 .annotate 'line', 447
     $P1244 = self."!PREFIX__!subrule"("O", "&&")
     new $P1245, "ResizablePMCArray"
@@ -16272,7 +17715,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("324_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<||>"  :subid("324_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1249_tgt
     .local int rx1249_pos
@@ -16280,7 +17723,9 @@
     .local int rx1249_eos
     .local int rx1249_rep
     .local pmc rx1249_cur
+    .local pmc rx1249_debug
     (rx1249_cur, rx1249_pos, rx1249_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1249_debug, rx1249_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1249_cur
     .local pmc match
     .lex "$/", match
@@ -16292,7 +17737,9 @@
     substr rx1249_tgt, rx1249_tgt, rx1249_off
   rx1249_start:
     eq $I10, 1, rx1249_restart
-    rx1249_cur."!cursor_debug"("START ", "infix:sym<||>")
+    if_null rx1249_debug, debug_972
+    rx1249_cur."!cursor_debug"("START", "infix:sym<||>")
+  debug_972:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1253_done
     goto rxscan1253_scan
@@ -16336,11 +17783,15 @@
     rx1249_pos = $P10."pos"()
   # rx pass
     rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>")
-    rx1249_cur."!cursor_debug"("PASS  ", "infix:sym<||>", " at pos=", rx1249_pos)
+    if_null rx1249_debug, debug_973
+    rx1249_cur."!cursor_debug"("PASS", "infix:sym<||>", " at pos=", rx1249_pos)
+  debug_973:
     .return (rx1249_cur)
   rx1249_restart:
 .annotate 'line', 447
-    rx1249_cur."!cursor_debug"("NEXT ", "infix:sym<||>")
+    if_null rx1249_debug, debug_974
+    rx1249_cur."!cursor_debug"("NEXT", "infix:sym<||>")
+  debug_974:
   rx1249_fail:
     (rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0)
     lt rx1249_pos, -1, rx1249_done
@@ -16348,14 +17799,16 @@
     jump $I10
   rx1249_done:
     rx1249_cur."!cursor_fail"()
-    rx1249_cur."!cursor_debug"("FAIL  ", "infix:sym<||>")
+    if_null rx1249_debug, debug_975
+    rx1249_cur."!cursor_debug"("FAIL", "infix:sym<||>")
+  debug_975:
     .return (rx1249_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("325_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<||>"  :subid("325_1282324002.40722") :method
 .annotate 'line', 447
     $P1251 = self."!PREFIX__!subrule"("O", "||")
     new $P1252, "ResizablePMCArray"
@@ -16365,7 +17818,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("326_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<//>"  :subid("326_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1256_tgt
     .local int rx1256_pos
@@ -16373,7 +17826,9 @@
     .local int rx1256_eos
     .local int rx1256_rep
     .local pmc rx1256_cur
+    .local pmc rx1256_debug
     (rx1256_cur, rx1256_pos, rx1256_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1256_debug, rx1256_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1256_cur
     .local pmc match
     .lex "$/", match
@@ -16385,7 +17840,9 @@
     substr rx1256_tgt, rx1256_tgt, rx1256_off
   rx1256_start:
     eq $I10, 1, rx1256_restart
-    rx1256_cur."!cursor_debug"("START ", "infix:sym<//>")
+    if_null rx1256_debug, debug_976
+    rx1256_cur."!cursor_debug"("START", "infix:sym<//>")
+  debug_976:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1260_done
     goto rxscan1260_scan
@@ -16429,11 +17886,15 @@
     rx1256_pos = $P10."pos"()
   # rx pass
     rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym<//>")
-    rx1256_cur."!cursor_debug"("PASS  ", "infix:sym<//>", " at pos=", rx1256_pos)
+    if_null rx1256_debug, debug_977
+    rx1256_cur."!cursor_debug"("PASS", "infix:sym<//>", " at pos=", rx1256_pos)
+  debug_977:
     .return (rx1256_cur)
   rx1256_restart:
 .annotate 'line', 447
-    rx1256_cur."!cursor_debug"("NEXT ", "infix:sym<//>")
+    if_null rx1256_debug, debug_978
+    rx1256_cur."!cursor_debug"("NEXT", "infix:sym<//>")
+  debug_978:
   rx1256_fail:
     (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
     lt rx1256_pos, -1, rx1256_done
@@ -16441,14 +17902,16 @@
     jump $I10
   rx1256_done:
     rx1256_cur."!cursor_fail"()
-    rx1256_cur."!cursor_debug"("FAIL  ", "infix:sym<//>")
+    if_null rx1256_debug, debug_979
+    rx1256_cur."!cursor_debug"("FAIL", "infix:sym<//>")
+  debug_979:
     .return (rx1256_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("327_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<//>"  :subid("327_1282324002.40722") :method
 .annotate 'line', 447
     $P1258 = self."!PREFIX__!subrule"("O", "//")
     new $P1259, "ResizablePMCArray"
@@ -16458,7 +17921,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("328_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<?? !!>"  :subid("328_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1263_tgt
     .local int rx1263_pos
@@ -16466,7 +17929,9 @@
     .local int rx1263_eos
     .local int rx1263_rep
     .local pmc rx1263_cur
+    .local pmc rx1263_debug
     (rx1263_cur, rx1263_pos, rx1263_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1263_debug, rx1263_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1263_cur
     .local pmc match
     .lex "$/", match
@@ -16478,7 +17943,9 @@
     substr rx1263_tgt, rx1263_tgt, rx1263_off
   rx1263_start:
     eq $I10, 1, rx1263_restart
-    rx1263_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+    if_null rx1263_debug, debug_980
+    rx1263_cur."!cursor_debug"("START", "infix:sym<?? !!>")
+  debug_980:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1267_done
     goto rxscan1267_scan
@@ -16532,11 +17999,15 @@
 .annotate 'line', 539
   # rx pass
     rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym<?? !!>")
-    rx1263_cur."!cursor_debug"("PASS  ", "infix:sym<?? !!>", " at pos=", rx1263_pos)
+    if_null rx1263_debug, debug_981
+    rx1263_cur."!cursor_debug"("PASS", "infix:sym<?? !!>", " at pos=", rx1263_pos)
+  debug_981:
     .return (rx1263_cur)
   rx1263_restart:
 .annotate 'line', 447
-    rx1263_cur."!cursor_debug"("NEXT ", "infix:sym<?? !!>")
+    if_null rx1263_debug, debug_982
+    rx1263_cur."!cursor_debug"("NEXT", "infix:sym<?? !!>")
+  debug_982:
   rx1263_fail:
     (rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0)
     lt rx1263_pos, -1, rx1263_done
@@ -16544,14 +18015,16 @@
     jump $I10
   rx1263_done:
     rx1263_cur."!cursor_fail"()
-    rx1263_cur."!cursor_debug"("FAIL  ", "infix:sym<?? !!>")
+    if_null rx1263_debug, debug_983
+    rx1263_cur."!cursor_debug"("FAIL", "infix:sym<?? !!>")
+  debug_983:
     .return (rx1263_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("329_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("329_1282324002.40722") :method
 .annotate 'line', 447
     $P1265 = self."!PREFIX__!subrule"("ws", "??")
     new $P1266, "ResizablePMCArray"
@@ -16561,7 +18034,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("330_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<=>"  :subid("330_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1269_tgt
     .local int rx1269_pos
@@ -16569,7 +18042,9 @@
     .local int rx1269_eos
     .local int rx1269_rep
     .local pmc rx1269_cur
+    .local pmc rx1269_debug
     (rx1269_cur, rx1269_pos, rx1269_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1269_debug, rx1269_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1269_cur
     .local pmc match
     .lex "$/", match
@@ -16581,7 +18056,9 @@
     substr rx1269_tgt, rx1269_tgt, rx1269_off
   rx1269_start:
     eq $I10, 1, rx1269_restart
-    rx1269_cur."!cursor_debug"("START ", "infix:sym<=>")
+    if_null rx1269_debug, debug_984
+    rx1269_cur."!cursor_debug"("START", "infix:sym<=>")
+  debug_984:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1273_done
     goto rxscan1273_scan
@@ -16602,8 +18079,8 @@
     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
+    ord $I11, rx1269_tgt, $I11
+    ne $I11, 61, rx1269_fail
     add rx1269_pos, 1
     set_addr $I10, rxcap_1274_fail
     ($I12, $I11) = rx1269_cur."!mark_peek"($I10)
@@ -16624,11 +18101,15 @@
 .annotate 'line', 547
   # rx pass
     rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>")
-    rx1269_cur."!cursor_debug"("PASS  ", "infix:sym<=>", " at pos=", rx1269_pos)
+    if_null rx1269_debug, debug_985
+    rx1269_cur."!cursor_debug"("PASS", "infix:sym<=>", " at pos=", rx1269_pos)
+  debug_985:
     .return (rx1269_cur)
   rx1269_restart:
 .annotate 'line', 447
-    rx1269_cur."!cursor_debug"("NEXT ", "infix:sym<=>")
+    if_null rx1269_debug, debug_986
+    rx1269_cur."!cursor_debug"("NEXT", "infix:sym<=>")
+  debug_986:
   rx1269_fail:
     (rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0)
     lt rx1269_pos, -1, rx1269_done
@@ -16636,14 +18117,16 @@
     jump $I10
   rx1269_done:
     rx1269_cur."!cursor_fail"()
-    rx1269_cur."!cursor_debug"("FAIL  ", "infix:sym<=>")
+    if_null rx1269_debug, debug_987
+    rx1269_cur."!cursor_debug"("FAIL", "infix:sym<=>")
+  debug_987:
     .return (rx1269_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("331_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<=>"  :subid("331_1282324002.40722") :method
 .annotate 'line', 447
     $P1271 = self."!PREFIX__!subrule"("panic", "=")
     new $P1272, "ResizablePMCArray"
@@ -16653,7 +18136,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("332_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<:=>"  :subid("332_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1276_tgt
     .local int rx1276_pos
@@ -16661,7 +18144,9 @@
     .local int rx1276_eos
     .local int rx1276_rep
     .local pmc rx1276_cur
+    .local pmc rx1276_debug
     (rx1276_cur, rx1276_pos, rx1276_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1276_debug, rx1276_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1276_cur
     .local pmc match
     .lex "$/", match
@@ -16673,7 +18158,9 @@
     substr rx1276_tgt, rx1276_tgt, rx1276_off
   rx1276_start:
     eq $I10, 1, rx1276_restart
-    rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>")
+    if_null rx1276_debug, debug_988
+    rx1276_cur."!cursor_debug"("START", "infix:sym<:=>")
+  debug_988:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1280_done
     goto rxscan1280_scan
@@ -16717,11 +18204,15 @@
     rx1276_pos = $P10."pos"()
   # rx pass
     rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>")
-    rx1276_cur."!cursor_debug"("PASS  ", "infix:sym<:=>", " at pos=", rx1276_pos)
+    if_null rx1276_debug, debug_989
+    rx1276_cur."!cursor_debug"("PASS", "infix:sym<:=>", " at pos=", rx1276_pos)
+  debug_989:
     .return (rx1276_cur)
   rx1276_restart:
 .annotate 'line', 447
-    rx1276_cur."!cursor_debug"("NEXT ", "infix:sym<:=>")
+    if_null rx1276_debug, debug_990
+    rx1276_cur."!cursor_debug"("NEXT", "infix:sym<:=>")
+  debug_990:
   rx1276_fail:
     (rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0)
     lt rx1276_pos, -1, rx1276_done
@@ -16729,14 +18220,16 @@
     jump $I10
   rx1276_done:
     rx1276_cur."!cursor_fail"()
-    rx1276_cur."!cursor_debug"("FAIL  ", "infix:sym<:=>")
+    if_null rx1276_debug, debug_991
+    rx1276_cur."!cursor_debug"("FAIL", "infix:sym<:=>")
+  debug_991:
     .return (rx1276_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("333_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<:=>"  :subid("333_1282324002.40722") :method
 .annotate 'line', 447
     $P1278 = self."!PREFIX__!subrule"("O", ":=")
     new $P1279, "ResizablePMCArray"
@@ -16746,7 +18239,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("334_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<::=>"  :subid("334_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1283_tgt
     .local int rx1283_pos
@@ -16754,7 +18247,9 @@
     .local int rx1283_eos
     .local int rx1283_rep
     .local pmc rx1283_cur
+    .local pmc rx1283_debug
     (rx1283_cur, rx1283_pos, rx1283_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1283_debug, rx1283_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1283_cur
     .local pmc match
     .lex "$/", match
@@ -16766,7 +18261,9 @@
     substr rx1283_tgt, rx1283_tgt, rx1283_off
   rx1283_start:
     eq $I10, 1, rx1283_restart
-    rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>")
+    if_null rx1283_debug, debug_992
+    rx1283_cur."!cursor_debug"("START", "infix:sym<::=>")
+  debug_992:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1287_done
     goto rxscan1287_scan
@@ -16810,11 +18307,15 @@
     rx1283_pos = $P10."pos"()
   # rx pass
     rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>")
-    rx1283_cur."!cursor_debug"("PASS  ", "infix:sym<::=>", " at pos=", rx1283_pos)
+    if_null rx1283_debug, debug_993
+    rx1283_cur."!cursor_debug"("PASS", "infix:sym<::=>", " at pos=", rx1283_pos)
+  debug_993:
     .return (rx1283_cur)
   rx1283_restart:
 .annotate 'line', 447
-    rx1283_cur."!cursor_debug"("NEXT ", "infix:sym<::=>")
+    if_null rx1283_debug, debug_994
+    rx1283_cur."!cursor_debug"("NEXT", "infix:sym<::=>")
+  debug_994:
   rx1283_fail:
     (rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0)
     lt rx1283_pos, -1, rx1283_done
@@ -16822,14 +18323,16 @@
     jump $I10
   rx1283_done:
     rx1283_cur."!cursor_fail"()
-    rx1283_cur."!cursor_debug"("FAIL  ", "infix:sym<::=>")
+    if_null rx1283_debug, debug_995
+    rx1283_cur."!cursor_debug"("FAIL", "infix:sym<::=>")
+  debug_995:
     .return (rx1283_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("335_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<::=>"  :subid("335_1282324002.40722") :method
 .annotate 'line', 447
     $P1285 = self."!PREFIX__!subrule"("O", "::=")
     new $P1286, "ResizablePMCArray"
@@ -16839,7 +18342,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("336_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "infix:sym<,>"  :subid("336_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1290_tgt
     .local int rx1290_pos
@@ -16847,7 +18350,9 @@
     .local int rx1290_eos
     .local int rx1290_rep
     .local pmc rx1290_cur
+    .local pmc rx1290_debug
     (rx1290_cur, rx1290_pos, rx1290_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1290_debug, rx1290_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1290_cur
     .local pmc match
     .lex "$/", match
@@ -16859,7 +18364,9 @@
     substr rx1290_tgt, rx1290_tgt, rx1290_off
   rx1290_start:
     eq $I10, 1, rx1290_restart
-    rx1290_cur."!cursor_debug"("START ", "infix:sym<,>")
+    if_null rx1290_debug, debug_996
+    rx1290_cur."!cursor_debug"("START", "infix:sym<,>")
+  debug_996:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1294_done
     goto rxscan1294_scan
@@ -16880,8 +18387,8 @@
     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
+    ord $I11, rx1290_tgt, $I11
+    ne $I11, 44, rx1290_fail
     add rx1290_pos, 1
     set_addr $I10, rxcap_1295_fail
     ($I12, $I11) = rx1290_cur."!mark_peek"($I10)
@@ -16903,11 +18410,15 @@
     rx1290_pos = $P10."pos"()
   # rx pass
     rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>")
-    rx1290_cur."!cursor_debug"("PASS  ", "infix:sym<,>", " at pos=", rx1290_pos)
+    if_null rx1290_debug, debug_997
+    rx1290_cur."!cursor_debug"("PASS", "infix:sym<,>", " at pos=", rx1290_pos)
+  debug_997:
     .return (rx1290_cur)
   rx1290_restart:
 .annotate 'line', 447
-    rx1290_cur."!cursor_debug"("NEXT ", "infix:sym<,>")
+    if_null rx1290_debug, debug_998
+    rx1290_cur."!cursor_debug"("NEXT", "infix:sym<,>")
+  debug_998:
   rx1290_fail:
     (rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0)
     lt rx1290_pos, -1, rx1290_done
@@ -16915,14 +18426,16 @@
     jump $I10
   rx1290_done:
     rx1290_cur."!cursor_fail"()
-    rx1290_cur."!cursor_debug"("FAIL  ", "infix:sym<,>")
+    if_null rx1290_debug, debug_999
+    rx1290_cur."!cursor_debug"("FAIL", "infix:sym<,>")
+  debug_999:
     .return (rx1290_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("337_1280467477.44751") :method
+.sub "!PREFIX__infix:sym<,>"  :subid("337_1282324002.40722") :method
 .annotate 'line', 447
     $P1292 = self."!PREFIX__!subrule"("O", ",")
     new $P1293, "ResizablePMCArray"
@@ -16932,7 +18445,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("338_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<return>"  :subid("338_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1297_tgt
     .local int rx1297_pos
@@ -16940,7 +18453,9 @@
     .local int rx1297_eos
     .local int rx1297_rep
     .local pmc rx1297_cur
+    .local pmc rx1297_debug
     (rx1297_cur, rx1297_pos, rx1297_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1297_debug, rx1297_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1297_cur
     .local pmc match
     .lex "$/", match
@@ -16952,7 +18467,9 @@
     substr rx1297_tgt, rx1297_tgt, rx1297_off
   rx1297_start:
     eq $I10, 1, rx1297_restart
-    rx1297_cur."!cursor_debug"("START ", "prefix:sym<return>")
+    if_null rx1297_debug, debug_1000
+    rx1297_cur."!cursor_debug"("START", "prefix:sym<return>")
+  debug_1000:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1300_done
     goto rxscan1300_scan
@@ -17002,11 +18519,15 @@
     rx1297_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)
+    if_null rx1297_debug, debug_1001
+    rx1297_cur."!cursor_debug"("PASS", "prefix:sym<return>", " at pos=", rx1297_pos)
+  debug_1001:
     .return (rx1297_cur)
   rx1297_restart:
 .annotate 'line', 447
-    rx1297_cur."!cursor_debug"("NEXT ", "prefix:sym<return>")
+    if_null rx1297_debug, debug_1002
+    rx1297_cur."!cursor_debug"("NEXT", "prefix:sym<return>")
+  debug_1002:
   rx1297_fail:
     (rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0)
     lt rx1297_pos, -1, rx1297_done
@@ -17014,14 +18535,16 @@
     jump $I10
   rx1297_done:
     rx1297_cur."!cursor_fail"()
-    rx1297_cur."!cursor_debug"("FAIL  ", "prefix:sym<return>")
+    if_null rx1297_debug, debug_1003
+    rx1297_cur."!cursor_debug"("FAIL", "prefix:sym<return>")
+  debug_1003:
     .return (rx1297_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("339_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<return>"  :subid("339_1282324002.40722") :method
 .annotate 'line', 447
     new $P1299, "ResizablePMCArray"
     push $P1299, "return"
@@ -17030,7 +18553,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("340_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "prefix:sym<make>"  :subid("340_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1303_tgt
     .local int rx1303_pos
@@ -17038,7 +18561,9 @@
     .local int rx1303_eos
     .local int rx1303_rep
     .local pmc rx1303_cur
+    .local pmc rx1303_debug
     (rx1303_cur, rx1303_pos, rx1303_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1303_debug, rx1303_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1303_cur
     .local pmc match
     .lex "$/", match
@@ -17050,7 +18575,9 @@
     substr rx1303_tgt, rx1303_tgt, rx1303_off
   rx1303_start:
     eq $I10, 1, rx1303_restart
-    rx1303_cur."!cursor_debug"("START ", "prefix:sym<make>")
+    if_null rx1303_debug, debug_1004
+    rx1303_cur."!cursor_debug"("START", "prefix:sym<make>")
+  debug_1004:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1306_done
     goto rxscan1306_scan
@@ -17100,11 +18627,15 @@
     rx1303_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)
+    if_null rx1303_debug, debug_1005
+    rx1303_cur."!cursor_debug"("PASS", "prefix:sym<make>", " at pos=", rx1303_pos)
+  debug_1005:
     .return (rx1303_cur)
   rx1303_restart:
 .annotate 'line', 447
-    rx1303_cur."!cursor_debug"("NEXT ", "prefix:sym<make>")
+    if_null rx1303_debug, debug_1006
+    rx1303_cur."!cursor_debug"("NEXT", "prefix:sym<make>")
+  debug_1006:
   rx1303_fail:
     (rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0)
     lt rx1303_pos, -1, rx1303_done
@@ -17112,14 +18643,16 @@
     jump $I10
   rx1303_done:
     rx1303_cur."!cursor_fail"()
-    rx1303_cur."!cursor_debug"("FAIL  ", "prefix:sym<make>")
+    if_null rx1303_debug, debug_1007
+    rx1303_cur."!cursor_debug"("FAIL", "prefix:sym<make>")
+  debug_1007:
     .return (rx1303_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("341_1280467477.44751") :method
+.sub "!PREFIX__prefix:sym<make>"  :subid("341_1282324002.40722") :method
 .annotate 'line', 447
     new $P1305, "ResizablePMCArray"
     push $P1305, "make"
@@ -17128,7 +18661,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<last>"  :subid("342_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<last>"  :subid("342_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1309_tgt
     .local int rx1309_pos
@@ -17136,7 +18669,9 @@
     .local int rx1309_eos
     .local int rx1309_rep
     .local pmc rx1309_cur
+    .local pmc rx1309_debug
     (rx1309_cur, rx1309_pos, rx1309_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1309_debug, rx1309_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1309_cur
     .local pmc match
     .lex "$/", match
@@ -17148,7 +18683,9 @@
     substr rx1309_tgt, rx1309_tgt, rx1309_off
   rx1309_start:
     eq $I10, 1, rx1309_restart
-    rx1309_cur."!cursor_debug"("START ", "term:sym<last>")
+    if_null rx1309_debug, debug_1008
+    rx1309_cur."!cursor_debug"("START", "term:sym<last>")
+  debug_1008:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1312_done
     goto rxscan1312_scan
@@ -17185,11 +18722,15 @@
   rxcap_1313_done:
   # rx pass
     rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym<last>")
-    rx1309_cur."!cursor_debug"("PASS  ", "term:sym<last>", " at pos=", rx1309_pos)
+    if_null rx1309_debug, debug_1009
+    rx1309_cur."!cursor_debug"("PASS", "term:sym<last>", " at pos=", rx1309_pos)
+  debug_1009:
     .return (rx1309_cur)
   rx1309_restart:
 .annotate 'line', 447
-    rx1309_cur."!cursor_debug"("NEXT ", "term:sym<last>")
+    if_null rx1309_debug, debug_1010
+    rx1309_cur."!cursor_debug"("NEXT", "term:sym<last>")
+  debug_1010:
   rx1309_fail:
     (rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0)
     lt rx1309_pos, -1, rx1309_done
@@ -17197,14 +18738,16 @@
     jump $I10
   rx1309_done:
     rx1309_cur."!cursor_fail"()
-    rx1309_cur."!cursor_debug"("FAIL  ", "term:sym<last>")
+    if_null rx1309_debug, debug_1011
+    rx1309_cur."!cursor_debug"("FAIL", "term:sym<last>")
+  debug_1011:
     .return (rx1309_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>"  :subid("343_1280467477.44751") :method
+.sub "!PREFIX__term:sym<last>"  :subid("343_1282324002.40722") :method
 .annotate 'line', 447
     new $P1311, "ResizablePMCArray"
     push $P1311, "last"
@@ -17213,7 +18756,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<next>"  :subid("344_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<next>"  :subid("344_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1315_tgt
     .local int rx1315_pos
@@ -17221,7 +18764,9 @@
     .local int rx1315_eos
     .local int rx1315_rep
     .local pmc rx1315_cur
+    .local pmc rx1315_debug
     (rx1315_cur, rx1315_pos, rx1315_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1315_debug, rx1315_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1315_cur
     .local pmc match
     .lex "$/", match
@@ -17233,7 +18778,9 @@
     substr rx1315_tgt, rx1315_tgt, rx1315_off
   rx1315_start:
     eq $I10, 1, rx1315_restart
-    rx1315_cur."!cursor_debug"("START ", "term:sym<next>")
+    if_null rx1315_debug, debug_1012
+    rx1315_cur."!cursor_debug"("START", "term:sym<next>")
+  debug_1012:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1318_done
     goto rxscan1318_scan
@@ -17270,11 +18817,15 @@
   rxcap_1319_done:
   # rx pass
     rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym<next>")
-    rx1315_cur."!cursor_debug"("PASS  ", "term:sym<next>", " at pos=", rx1315_pos)
+    if_null rx1315_debug, debug_1013
+    rx1315_cur."!cursor_debug"("PASS", "term:sym<next>", " at pos=", rx1315_pos)
+  debug_1013:
     .return (rx1315_cur)
   rx1315_restart:
 .annotate 'line', 447
-    rx1315_cur."!cursor_debug"("NEXT ", "term:sym<next>")
+    if_null rx1315_debug, debug_1014
+    rx1315_cur."!cursor_debug"("NEXT", "term:sym<next>")
+  debug_1014:
   rx1315_fail:
     (rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0)
     lt rx1315_pos, -1, rx1315_done
@@ -17282,14 +18833,16 @@
     jump $I10
   rx1315_done:
     rx1315_cur."!cursor_fail"()
-    rx1315_cur."!cursor_debug"("FAIL  ", "term:sym<next>")
+    if_null rx1315_debug, debug_1015
+    rx1315_cur."!cursor_debug"("FAIL", "term:sym<next>")
+  debug_1015:
     .return (rx1315_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>"  :subid("345_1280467477.44751") :method
+.sub "!PREFIX__term:sym<next>"  :subid("345_1282324002.40722") :method
 .annotate 'line', 447
     new $P1317, "ResizablePMCArray"
     push $P1317, "next"
@@ -17298,7 +18851,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>"  :subid("346_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "term:sym<redo>"  :subid("346_1282324002.40722") :method :outer("11_1282324002.40722")
 .annotate 'line', 447
     .local string rx1321_tgt
     .local int rx1321_pos
@@ -17306,7 +18859,9 @@
     .local int rx1321_eos
     .local int rx1321_rep
     .local pmc rx1321_cur
+    .local pmc rx1321_debug
     (rx1321_cur, rx1321_pos, rx1321_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1321_debug, rx1321_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1321_cur
     .local pmc match
     .lex "$/", match
@@ -17318,7 +18873,9 @@
     substr rx1321_tgt, rx1321_tgt, rx1321_off
   rx1321_start:
     eq $I10, 1, rx1321_restart
-    rx1321_cur."!cursor_debug"("START ", "term:sym<redo>")
+    if_null rx1321_debug, debug_1016
+    rx1321_cur."!cursor_debug"("START", "term:sym<redo>")
+  debug_1016:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1324_done
     goto rxscan1324_scan
@@ -17355,11 +18912,15 @@
   rxcap_1325_done:
   # rx pass
     rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym<redo>")
-    rx1321_cur."!cursor_debug"("PASS  ", "term:sym<redo>", " at pos=", rx1321_pos)
+    if_null rx1321_debug, debug_1017
+    rx1321_cur."!cursor_debug"("PASS", "term:sym<redo>", " at pos=", rx1321_pos)
+  debug_1017:
     .return (rx1321_cur)
   rx1321_restart:
 .annotate 'line', 447
-    rx1321_cur."!cursor_debug"("NEXT ", "term:sym<redo>")
+    if_null rx1321_debug, debug_1018
+    rx1321_cur."!cursor_debug"("NEXT", "term:sym<redo>")
+  debug_1018:
   rx1321_fail:
     (rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0)
     lt rx1321_pos, -1, rx1321_done
@@ -17367,14 +18928,16 @@
     jump $I10
   rx1321_done:
     rx1321_cur."!cursor_fail"()
-    rx1321_cur."!cursor_debug"("FAIL  ", "term:sym<redo>")
+    if_null rx1321_debug, debug_1019
+    rx1321_cur."!cursor_debug"("FAIL", "term:sym<redo>")
+  debug_1019:
     .return (rx1321_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>"  :subid("347_1280467477.44751") :method
+.sub "!PREFIX__term:sym<redo>"  :subid("347_1282324002.40722") :method
 .annotate 'line', 447
     new $P1323, "ResizablePMCArray"
     push $P1323, "redo"
@@ -17384,7 +18947,7 @@
 
 .namespace ["NQP";"Grammar"]
 .include "except_types.pasm"
-.sub "smartmatch"  :subid("348_1280467477.44751") :method :outer("11_1280467477.44751")
+.sub "smartmatch"  :subid("348_1282324002.40722") :method :outer("11_1282324002.40722")
     .param pmc param_1329
 .annotate 'line', 561
     new $P1328, 'ExceptionHandler'
@@ -17397,34 +18960,34 @@
     new $P1330, "Undef"
     .lex "$t", $P1330
     find_lex $P1331, "$/"
-    unless_null $P1331, vivify_384
+    unless_null $P1331, vivify_1020
     $P1331 = root_new ['parrot';'ResizablePMCArray']
-  vivify_384:
+  vivify_1020:
     set $P1332, $P1331[0]
-    unless_null $P1332, vivify_385
+    unless_null $P1332, vivify_1021
     new $P1332, "Undef"
-  vivify_385:
+  vivify_1021:
     store_lex "$t", $P1332
     find_lex $P1333, "$/"
-    unless_null $P1333, vivify_386
+    unless_null $P1333, vivify_1022
     $P1333 = root_new ['parrot';'ResizablePMCArray']
-  vivify_386:
+  vivify_1022:
     set $P1334, $P1333[1]
-    unless_null $P1334, vivify_387
+    unless_null $P1334, vivify_1023
     new $P1334, "Undef"
-  vivify_387:
+  vivify_1023:
     find_lex $P1335, "$/"
-    unless_null $P1335, vivify_388
+    unless_null $P1335, vivify_1024
     $P1335 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$/", $P1335
-  vivify_388:
+  vivify_1024:
     set $P1335[0], $P1334
     find_lex $P1336, "$t"
     find_lex $P1337, "$/"
-    unless_null $P1337, vivify_389
+    unless_null $P1337, vivify_1025
     $P1337 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$/", $P1337
-  vivify_389:
+  vivify_1025:
     set $P1337[1], $P1336
 .annotate 'line', 561
     .return ($P1336)
@@ -17437,34 +19000,34 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1339"  :subid("349_1280467477.44751") :outer("11_1280467477.44751")
+.sub "_block1339"  :subid("349_1282324002.40722") :outer("11_1282324002.40722")
 .annotate 'line', 567
-    .const 'Sub' $P1396 = "368_1280467477.44751" 
+    .const 'Sub' $P1396 = "368_1282324002.40722" 
     capture_lex $P1396
-    .const 'Sub' $P1391 = "366_1280467477.44751" 
+    .const 'Sub' $P1391 = "366_1282324002.40722" 
     capture_lex $P1391
-    .const 'Sub' $P1379 = "363_1280467477.44751" 
+    .const 'Sub' $P1379 = "363_1282324002.40722" 
     capture_lex $P1379
-    .const 'Sub' $P1369 = "360_1280467477.44751" 
+    .const 'Sub' $P1369 = "360_1282324002.40722" 
     capture_lex $P1369
-    .const 'Sub' $P1364 = "358_1280467477.44751" 
+    .const 'Sub' $P1364 = "358_1282324002.40722" 
     capture_lex $P1364
-    .const 'Sub' $P1355 = "355_1280467477.44751" 
+    .const 'Sub' $P1355 = "355_1282324002.40722" 
     capture_lex $P1355
-    .const 'Sub' $P1350 = "353_1280467477.44751" 
+    .const 'Sub' $P1350 = "353_1282324002.40722" 
     capture_lex $P1350
-    .const 'Sub' $P1341 = "350_1280467477.44751" 
+    .const 'Sub' $P1341 = "350_1282324002.40722" 
     capture_lex $P1341
-    .const 'Sub' $P1396 = "368_1280467477.44751" 
+    .const 'Sub' $P1396 = "368_1282324002.40722" 
     capture_lex $P1396
     .return ($P1396)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>"  :subid("350_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<:my>"  :subid("350_1282324002.40722") :method :outer("349_1282324002.40722")
 .annotate 'line', 567
-    .const 'Sub' $P1347 = "352_1280467477.44751" 
+    .const 'Sub' $P1347 = "352_1282324002.40722" 
     capture_lex $P1347
     .local string rx1342_tgt
     .local int rx1342_pos
@@ -17472,7 +19035,9 @@
     .local int rx1342_eos
     .local int rx1342_rep
     .local pmc rx1342_cur
+    .local pmc rx1342_debug
     (rx1342_cur, rx1342_pos, rx1342_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1342_debug, rx1342_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1342_cur
     .local pmc match
     .lex "$/", match
@@ -17484,7 +19049,9 @@
     substr rx1342_tgt, rx1342_tgt, rx1342_off
   rx1342_start:
     eq $I10, 1, rx1342_restart
-    rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+    if_null rx1342_debug, debug_1026
+    rx1342_cur."!cursor_debug"("START", "metachar:sym<:my>")
+  debug_1026:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1345_done
     goto rxscan1345_scan
@@ -17502,12 +19069,12 @@
     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
+    ord $I11, rx1342_tgt, $I11
+    ne $I11, 58, rx1342_fail
     add rx1342_pos, 1
   # rx subrule "before" subtype=zerowidth negate=
     rx1342_cur."!cursor_pos"(rx1342_pos)
-    .const 'Sub' $P1347 = "352_1280467477.44751" 
+    .const 'Sub' $P1347 = "352_1282324002.40722" 
     capture_lex $P1347
     $P10 = rx1342_cur."before"($P1347)
     unless $P10, rx1342_fail
@@ -17527,17 +19094,21 @@
     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
+    ord $I11, rx1342_tgt, $I11
+    ne $I11, 59, rx1342_fail
     add rx1342_pos, 1
 .annotate 'line', 568
   # rx pass
     rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>")
-    rx1342_cur."!cursor_debug"("PASS  ", "metachar:sym<:my>", " at pos=", rx1342_pos)
+    if_null rx1342_debug, debug_1031
+    rx1342_cur."!cursor_debug"("PASS", "metachar:sym<:my>", " at pos=", rx1342_pos)
+  debug_1031:
     .return (rx1342_cur)
   rx1342_restart:
 .annotate 'line', 567
-    rx1342_cur."!cursor_debug"("NEXT ", "metachar:sym<:my>")
+    if_null rx1342_debug, debug_1032
+    rx1342_cur."!cursor_debug"("NEXT", "metachar:sym<:my>")
+  debug_1032:
   rx1342_fail:
     (rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0)
     lt rx1342_pos, -1, rx1342_done
@@ -17545,14 +19116,16 @@
     jump $I10
   rx1342_done:
     rx1342_cur."!cursor_fail"()
-    rx1342_cur."!cursor_debug"("FAIL  ", "metachar:sym<:my>")
+    if_null rx1342_debug, debug_1033
+    rx1342_cur."!cursor_debug"("FAIL", "metachar:sym<:my>")
+  debug_1033:
     .return (rx1342_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("351_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<:my>"  :subid("351_1282324002.40722") :method
 .annotate 'line', 567
     new $P1344, "ResizablePMCArray"
     push $P1344, ":"
@@ -17561,7 +19134,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1346"  :anon :subid("352_1280467477.44751") :method :outer("350_1280467477.44751")
+.sub "_block1346"  :anon :subid("352_1282324002.40722") :method :outer("350_1282324002.40722")
 .annotate 'line', 569
     .local string rx1348_tgt
     .local int rx1348_pos
@@ -17569,7 +19142,9 @@
     .local int rx1348_eos
     .local int rx1348_rep
     .local pmc rx1348_cur
+    .local pmc rx1348_debug
     (rx1348_cur, rx1348_pos, rx1348_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1348_debug, rx1348_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1348_cur
     .local pmc match
     .lex "$/", match
@@ -17581,7 +19156,9 @@
     substr rx1348_tgt, rx1348_tgt, rx1348_off
   rx1348_start:
     eq $I10, 1, rx1348_restart
-    rx1348_cur."!cursor_debug"("START ", "")
+    if_null rx1348_debug, debug_1027
+    rx1348_cur."!cursor_debug"("START", "")
+  debug_1027:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1349_done
     goto rxscan1349_scan
@@ -17603,10 +19180,14 @@
     add rx1348_pos, 2
   # rx pass
     rx1348_cur."!cursor_pass"(rx1348_pos, "")
-    rx1348_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1348_pos)
+    if_null rx1348_debug, debug_1028
+    rx1348_cur."!cursor_debug"("PASS", "", " at pos=", rx1348_pos)
+  debug_1028:
     .return (rx1348_cur)
   rx1348_restart:
-    rx1348_cur."!cursor_debug"("NEXT ", "")
+    if_null rx1348_debug, debug_1029
+    rx1348_cur."!cursor_debug"("NEXT", "")
+  debug_1029:
   rx1348_fail:
     (rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0)
     lt rx1348_pos, -1, rx1348_done
@@ -17614,14 +19195,16 @@
     jump $I10
   rx1348_done:
     rx1348_cur."!cursor_fail"()
-    rx1348_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx1348_debug, debug_1030
+    rx1348_cur."!cursor_debug"("FAIL", "")
+  debug_1030:
     .return (rx1348_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("353_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<{ }>"  :subid("353_1282324002.40722") :method :outer("349_1282324002.40722")
 .annotate 'line', 567
     .local string rx1351_tgt
     .local int rx1351_pos
@@ -17629,7 +19212,9 @@
     .local int rx1351_eos
     .local int rx1351_rep
     .local pmc rx1351_cur
+    .local pmc rx1351_debug
     (rx1351_cur, rx1351_pos, rx1351_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1351_debug, rx1351_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1351_cur
     .local pmc match
     .lex "$/", match
@@ -17641,7 +19226,9 @@
     substr rx1351_tgt, rx1351_tgt, rx1351_off
   rx1351_start:
     eq $I10, 1, rx1351_restart
-    rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+    if_null rx1351_debug, debug_1034
+    rx1351_cur."!cursor_debug"("START", "metachar:sym<{ }>")
+  debug_1034:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1354_done
     goto rxscan1354_scan
@@ -17671,11 +19258,15 @@
 .annotate 'line', 572
   # rx pass
     rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>")
-    rx1351_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1351_pos)
+    if_null rx1351_debug, debug_1035
+    rx1351_cur."!cursor_debug"("PASS", "metachar:sym<{ }>", " at pos=", rx1351_pos)
+  debug_1035:
     .return (rx1351_cur)
   rx1351_restart:
 .annotate 'line', 567
-    rx1351_cur."!cursor_debug"("NEXT ", "metachar:sym<{ }>")
+    if_null rx1351_debug, debug_1036
+    rx1351_cur."!cursor_debug"("NEXT", "metachar:sym<{ }>")
+  debug_1036:
   rx1351_fail:
     (rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0)
     lt rx1351_pos, -1, rx1351_done
@@ -17683,14 +19274,16 @@
     jump $I10
   rx1351_done:
     rx1351_cur."!cursor_fail"()
-    rx1351_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
+    if_null rx1351_debug, debug_1037
+    rx1351_cur."!cursor_debug"("FAIL", "metachar:sym<{ }>")
+  debug_1037:
     .return (rx1351_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("354_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("354_1282324002.40722") :method
 .annotate 'line', 567
     new $P1353, "ResizablePMCArray"
     push $P1353, "{"
@@ -17699,9 +19292,9 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<nqpvar>"  :subid("355_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "metachar:sym<nqpvar>"  :subid("355_1282324002.40722") :method :outer("349_1282324002.40722")
 .annotate 'line', 567
-    .const 'Sub' $P1361 = "357_1280467477.44751" 
+    .const 'Sub' $P1361 = "357_1282324002.40722" 
     capture_lex $P1361
     .local string rx1356_tgt
     .local int rx1356_pos
@@ -17709,7 +19302,9 @@
     .local int rx1356_eos
     .local int rx1356_rep
     .local pmc rx1356_cur
+    .local pmc rx1356_debug
     (rx1356_cur, rx1356_pos, rx1356_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1356_debug, rx1356_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1356_cur
     .local pmc match
     .lex "$/", match
@@ -17721,7 +19316,9 @@
     substr rx1356_tgt, rx1356_tgt, rx1356_off
   rx1356_start:
     eq $I10, 1, rx1356_restart
-    rx1356_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
+    if_null rx1356_debug, debug_1038
+    rx1356_cur."!cursor_debug"("START", "metachar:sym<nqpvar>")
+  debug_1038:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1359_done
     goto rxscan1359_scan
@@ -17743,7 +19340,7 @@
     lt $I11, 0, rx1356_fail
   # rx subrule "before" subtype=zerowidth negate=
     rx1356_cur."!cursor_pos"(rx1356_pos)
-    .const 'Sub' $P1361 = "357_1280467477.44751" 
+    .const 'Sub' $P1361 = "357_1282324002.40722" 
     capture_lex $P1361
     $P10 = rx1356_cur."before"($P1361)
     unless $P10, rx1356_fail
@@ -17757,11 +19354,15 @@
 .annotate 'line', 576
   # rx pass
     rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym<nqpvar>")
-    rx1356_cur."!cursor_debug"("PASS  ", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
+    if_null rx1356_debug, debug_1043
+    rx1356_cur."!cursor_debug"("PASS", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
+  debug_1043:
     .return (rx1356_cur)
   rx1356_restart:
 .annotate 'line', 567
-    rx1356_cur."!cursor_debug"("NEXT ", "metachar:sym<nqpvar>")
+    if_null rx1356_debug, debug_1044
+    rx1356_cur."!cursor_debug"("NEXT", "metachar:sym<nqpvar>")
+  debug_1044:
   rx1356_fail:
     (rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0)
     lt rx1356_pos, -1, rx1356_done
@@ -17769,14 +19370,16 @@
     jump $I10
   rx1356_done:
     rx1356_cur."!cursor_fail"()
-    rx1356_cur."!cursor_debug"("FAIL  ", "metachar:sym<nqpvar>")
+    if_null rx1356_debug, debug_1045
+    rx1356_cur."!cursor_debug"("FAIL", "metachar:sym<nqpvar>")
+  debug_1045:
     .return (rx1356_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("356_1280467477.44751") :method
+.sub "!PREFIX__metachar:sym<nqpvar>"  :subid("356_1282324002.40722") :method
 .annotate 'line', 567
     new $P1358, "ResizablePMCArray"
     push $P1358, "$"
@@ -17786,7 +19389,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1360"  :anon :subid("357_1280467477.44751") :method :outer("355_1280467477.44751")
+.sub "_block1360"  :anon :subid("357_1282324002.40722") :method :outer("355_1282324002.40722")
 .annotate 'line', 577
     .local string rx1362_tgt
     .local int rx1362_pos
@@ -17794,7 +19397,9 @@
     .local int rx1362_eos
     .local int rx1362_rep
     .local pmc rx1362_cur
+    .local pmc rx1362_debug
     (rx1362_cur, rx1362_pos, rx1362_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1362_debug, rx1362_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1362_cur
     .local pmc match
     .lex "$/", match
@@ -17806,7 +19411,9 @@
     substr rx1362_tgt, rx1362_tgt, rx1362_off
   rx1362_start:
     eq $I10, 1, rx1362_restart
-    rx1362_cur."!cursor_debug"("START ", "")
+    if_null rx1362_debug, debug_1039
+    rx1362_cur."!cursor_debug"("START", "")
+  debug_1039:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1363_done
     goto rxscan1363_scan
@@ -17830,10 +19437,14 @@
     inc rx1362_pos
   # rx pass
     rx1362_cur."!cursor_pass"(rx1362_pos, "")
-    rx1362_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1362_pos)
+    if_null rx1362_debug, debug_1040
+    rx1362_cur."!cursor_debug"("PASS", "", " at pos=", rx1362_pos)
+  debug_1040:
     .return (rx1362_cur)
   rx1362_restart:
-    rx1362_cur."!cursor_debug"("NEXT ", "")
+    if_null rx1362_debug, debug_1041
+    rx1362_cur."!cursor_debug"("NEXT", "")
+  debug_1041:
   rx1362_fail:
     (rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0)
     lt rx1362_pos, -1, rx1362_done
@@ -17841,14 +19452,16 @@
     jump $I10
   rx1362_done:
     rx1362_cur."!cursor_fail"()
-    rx1362_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx1362_debug, debug_1042
+    rx1362_cur."!cursor_debug"("FAIL", "")
+  debug_1042:
     .return (rx1362_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("358_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<{ }>"  :subid("358_1282324002.40722") :method :outer("349_1282324002.40722")
 .annotate 'line', 567
     .local string rx1365_tgt
     .local int rx1365_pos
@@ -17856,7 +19469,9 @@
     .local int rx1365_eos
     .local int rx1365_rep
     .local pmc rx1365_cur
+    .local pmc rx1365_debug
     (rx1365_cur, rx1365_pos, rx1365_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1365_debug, rx1365_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1365_cur
     .local pmc match
     .lex "$/", match
@@ -17868,7 +19483,9 @@
     substr rx1365_tgt, rx1365_tgt, rx1365_off
   rx1365_start:
     eq $I10, 1, rx1365_restart
-    rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+    if_null rx1365_debug, debug_1046
+    rx1365_cur."!cursor_debug"("START", "assertion:sym<{ }>")
+  debug_1046:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1368_done
     goto rxscan1368_scan
@@ -17898,11 +19515,15 @@
 .annotate 'line', 580
   # rx pass
     rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>")
-    rx1365_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1365_pos)
+    if_null rx1365_debug, debug_1047
+    rx1365_cur."!cursor_debug"("PASS", "assertion:sym<{ }>", " at pos=", rx1365_pos)
+  debug_1047:
     .return (rx1365_cur)
   rx1365_restart:
 .annotate 'line', 567
-    rx1365_cur."!cursor_debug"("NEXT ", "assertion:sym<{ }>")
+    if_null rx1365_debug, debug_1048
+    rx1365_cur."!cursor_debug"("NEXT", "assertion:sym<{ }>")
+  debug_1048:
   rx1365_fail:
     (rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0)
     lt rx1365_pos, -1, rx1365_done
@@ -17910,14 +19531,16 @@
     jump $I10
   rx1365_done:
     rx1365_cur."!cursor_fail"()
-    rx1365_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
+    if_null rx1365_debug, debug_1049
+    rx1365_cur."!cursor_debug"("FAIL", "assertion:sym<{ }>")
+  debug_1049:
     .return (rx1365_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("359_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("359_1282324002.40722") :method
 .annotate 'line', 567
     new $P1367, "ResizablePMCArray"
     push $P1367, "{"
@@ -17926,9 +19549,9 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<?{ }>"  :subid("360_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<?{ }>"  :subid("360_1282324002.40722") :method :outer("349_1282324002.40722")
 .annotate 'line', 567
-    .const 'Sub' $P1375 = "362_1280467477.44751" 
+    .const 'Sub' $P1375 = "362_1282324002.40722" 
     capture_lex $P1375
     .local string rx1370_tgt
     .local int rx1370_pos
@@ -17936,7 +19559,9 @@
     .local int rx1370_eos
     .local int rx1370_rep
     .local pmc rx1370_cur
+    .local pmc rx1370_debug
     (rx1370_cur, rx1370_pos, rx1370_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1370_debug, rx1370_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1370_cur
     .local pmc match
     .lex "$/", match
@@ -17948,7 +19573,9 @@
     substr rx1370_tgt, rx1370_tgt, rx1370_off
   rx1370_start:
     eq $I10, 1, rx1370_restart
-    rx1370_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
+    if_null rx1370_debug, debug_1050
+    rx1370_cur."!cursor_debug"("START", "assertion:sym<?{ }>")
+  debug_1050:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1373_done
     goto rxscan1373_scan
@@ -17974,7 +19601,7 @@
     inc rx1370_pos
   # rx subrule "before" subtype=zerowidth negate=
     rx1370_cur."!cursor_pos"(rx1370_pos)
-    .const 'Sub' $P1375 = "362_1280467477.44751" 
+    .const 'Sub' $P1375 = "362_1282324002.40722" 
     capture_lex $P1375
     $P10 = rx1370_cur."before"($P1375)
     unless $P10, rx1370_fail
@@ -17999,11 +19626,15 @@
 .annotate 'line', 584
   # rx pass
     rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym<?{ }>")
-    rx1370_cur."!cursor_debug"("PASS  ", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
+    if_null rx1370_debug, debug_1055
+    rx1370_cur."!cursor_debug"("PASS", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
+  debug_1055:
     .return (rx1370_cur)
   rx1370_restart:
 .annotate 'line', 567
-    rx1370_cur."!cursor_debug"("NEXT ", "assertion:sym<?{ }>")
+    if_null rx1370_debug, debug_1056
+    rx1370_cur."!cursor_debug"("NEXT", "assertion:sym<?{ }>")
+  debug_1056:
   rx1370_fail:
     (rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0)
     lt rx1370_pos, -1, rx1370_done
@@ -18011,14 +19642,16 @@
     jump $I10
   rx1370_done:
     rx1370_cur."!cursor_fail"()
-    rx1370_cur."!cursor_debug"("FAIL  ", "assertion:sym<?{ }>")
+    if_null rx1370_debug, debug_1057
+    rx1370_cur."!cursor_debug"("FAIL", "assertion:sym<?{ }>")
+  debug_1057:
     .return (rx1370_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<?{ }>"  :subid("361_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<?{ }>"  :subid("361_1282324002.40722") :method
 .annotate 'line', 567
     new $P1372, "ResizablePMCArray"
     push $P1372, "!"
@@ -18028,7 +19661,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1374"  :anon :subid("362_1280467477.44751") :method :outer("360_1280467477.44751")
+.sub "_block1374"  :anon :subid("362_1282324002.40722") :method :outer("360_1282324002.40722")
 .annotate 'line', 585
     .local string rx1376_tgt
     .local int rx1376_pos
@@ -18036,7 +19669,9 @@
     .local int rx1376_eos
     .local int rx1376_rep
     .local pmc rx1376_cur
+    .local pmc rx1376_debug
     (rx1376_cur, rx1376_pos, rx1376_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1376_debug, rx1376_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1376_cur
     .local pmc match
     .lex "$/", match
@@ -18048,7 +19683,9 @@
     substr rx1376_tgt, rx1376_tgt, rx1376_off
   rx1376_start:
     eq $I10, 1, rx1376_restart
-    rx1376_cur."!cursor_debug"("START ", "")
+    if_null rx1376_debug, debug_1051
+    rx1376_cur."!cursor_debug"("START", "")
+  debug_1051:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1377_done
     goto rxscan1377_scan
@@ -18065,15 +19702,19 @@
     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
+    ord $I11, rx1376_tgt, $I11
+    ne $I11, 123, rx1376_fail
     add rx1376_pos, 1
   # rx pass
     rx1376_cur."!cursor_pass"(rx1376_pos, "")
-    rx1376_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1376_pos)
+    if_null rx1376_debug, debug_1052
+    rx1376_cur."!cursor_debug"("PASS", "", " at pos=", rx1376_pos)
+  debug_1052:
     .return (rx1376_cur)
   rx1376_restart:
-    rx1376_cur."!cursor_debug"("NEXT ", "")
+    if_null rx1376_debug, debug_1053
+    rx1376_cur."!cursor_debug"("NEXT", "")
+  debug_1053:
   rx1376_fail:
     (rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0)
     lt rx1376_pos, -1, rx1376_done
@@ -18081,16 +19722,18 @@
     jump $I10
   rx1376_done:
     rx1376_cur."!cursor_fail"()
-    rx1376_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx1376_debug, debug_1054
+    rx1376_cur."!cursor_debug"("FAIL", "")
+  debug_1054:
     .return (rx1376_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("363_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<name>"  :subid("363_1282324002.40722") :method :outer("349_1282324002.40722")
 .annotate 'line', 567
-    .const 'Sub' $P1388 = "365_1280467477.44751" 
+    .const 'Sub' $P1388 = "365_1282324002.40722" 
     capture_lex $P1388
     .local string rx1380_tgt
     .local int rx1380_pos
@@ -18098,8 +19741,10 @@
     .local int rx1380_eos
     .local int rx1380_rep
     .local pmc rx1380_cur
+    .local pmc rx1380_debug
     (rx1380_cur, rx1380_pos, rx1380_tgt, $I10) = self."!cursor_start"()
-    rx1380_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+    rx1380_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+    getattribute rx1380_debug, rx1380_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1380_cur
     .local pmc match
     .lex "$/", match
@@ -18111,7 +19756,9 @@
     substr rx1380_tgt, rx1380_tgt, rx1380_off
   rx1380_start:
     eq $I10, 1, rx1380_restart
-    rx1380_cur."!cursor_debug"("START ", "assertion:sym<name>")
+    if_null rx1380_debug, debug_1058
+    rx1380_cur."!cursor_debug"("START", "assertion:sym<name>")
+  debug_1058:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1384_done
     goto rxscan1384_scan
@@ -18144,7 +19791,7 @@
 .annotate 'line', 591
   # rx subrule "before" subtype=zerowidth negate=
     rx1380_cur."!cursor_pos"(rx1380_pos)
-    .const 'Sub' $P1388 = "365_1280467477.44751" 
+    .const 'Sub' $P1388 = "365_1282324002.40722" 
     capture_lex $P1388
     $P10 = rx1380_cur."before"($P1388)
     unless $P10, rx1380_fail
@@ -18157,8 +19804,8 @@
     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
+    ord $I11, rx1380_tgt, $I11
+    ne $I11, 61, rx1380_fail
     add rx1380_pos, 1
   # rx subrule "assertion" subtype=capture negate=
     rx1380_cur."!cursor_pos"(rx1380_pos)
@@ -18176,8 +19823,8 @@
     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
+    ord $I11, rx1380_tgt, $I11
+    ne $I11, 58, rx1380_fail
     add rx1380_pos, 1
   # rx subrule "arglist" subtype=capture negate=
     rx1380_cur."!cursor_pos"(rx1380_pos)
@@ -18195,8 +19842,8 @@
     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
+    ord $I11, rx1380_tgt, $I11
+    ne $I11, 40, rx1380_fail
     add rx1380_pos, 1
   # rx subrule "LANG" subtype=capture negate=
     rx1380_cur."!cursor_pos"(rx1380_pos)
@@ -18209,8 +19856,8 @@
     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
+    ord $I11, rx1380_tgt, $I11
+    ne $I11, 41, rx1380_fail
     add rx1380_pos, 1
     goto alt1386_end
   alt1386_4:
@@ -18235,11 +19882,15 @@
 .annotate 'line', 588
   # rx pass
     rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym<name>")
-    rx1380_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1380_pos)
+    if_null rx1380_debug, debug_1063
+    rx1380_cur."!cursor_debug"("PASS", "assertion:sym<name>", " at pos=", rx1380_pos)
+  debug_1063:
     .return (rx1380_cur)
   rx1380_restart:
 .annotate 'line', 567
-    rx1380_cur."!cursor_debug"("NEXT ", "assertion:sym<name>")
+    if_null rx1380_debug, debug_1064
+    rx1380_cur."!cursor_debug"("NEXT", "assertion:sym<name>")
+  debug_1064:
   rx1380_fail:
     (rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0)
     lt rx1380_pos, -1, rx1380_done
@@ -18247,14 +19898,16 @@
     jump $I10
   rx1380_done:
     rx1380_cur."!cursor_fail"()
-    rx1380_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    if_null rx1380_debug, debug_1065
+    rx1380_cur."!cursor_debug"("FAIL", "assertion:sym<name>")
+  debug_1065:
     .return (rx1380_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("364_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("364_1282324002.40722") :method
 .annotate 'line', 567
     $P1382 = self."!PREFIX__!subrule"("identifier", "")
     new $P1383, "ResizablePMCArray"
@@ -18264,7 +19917,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1387"  :anon :subid("365_1280467477.44751") :method :outer("363_1280467477.44751")
+.sub "_block1387"  :anon :subid("365_1282324002.40722") :method :outer("363_1282324002.40722")
 .annotate 'line', 591
     .local string rx1389_tgt
     .local int rx1389_pos
@@ -18272,7 +19925,9 @@
     .local int rx1389_eos
     .local int rx1389_rep
     .local pmc rx1389_cur
+    .local pmc rx1389_debug
     (rx1389_cur, rx1389_pos, rx1389_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1389_debug, rx1389_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1389_cur
     .local pmc match
     .lex "$/", match
@@ -18284,7 +19939,9 @@
     substr rx1389_tgt, rx1389_tgt, rx1389_off
   rx1389_start:
     eq $I10, 1, rx1389_restart
-    rx1389_cur."!cursor_debug"("START ", "")
+    if_null rx1389_debug, debug_1059
+    rx1389_cur."!cursor_debug"("START", "")
+  debug_1059:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1390_done
     goto rxscan1390_scan
@@ -18301,15 +19958,19 @@
     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
+    ord $I11, rx1389_tgt, $I11
+    ne $I11, 62, rx1389_fail
     add rx1389_pos, 1
   # rx pass
     rx1389_cur."!cursor_pass"(rx1389_pos, "")
-    rx1389_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1389_pos)
+    if_null rx1389_debug, debug_1060
+    rx1389_cur."!cursor_debug"("PASS", "", " at pos=", rx1389_pos)
+  debug_1060:
     .return (rx1389_cur)
   rx1389_restart:
-    rx1389_cur."!cursor_debug"("NEXT ", "")
+    if_null rx1389_debug, debug_1061
+    rx1389_cur."!cursor_debug"("NEXT", "")
+  debug_1061:
   rx1389_fail:
     (rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0)
     lt rx1389_pos, -1, rx1389_done
@@ -18317,14 +19978,16 @@
     jump $I10
   rx1389_done:
     rx1389_cur."!cursor_fail"()
-    rx1389_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx1389_debug, debug_1062
+    rx1389_cur."!cursor_debug"("FAIL", "")
+  debug_1062:
     .return (rx1389_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<var>"  :subid("366_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "assertion:sym<var>"  :subid("366_1282324002.40722") :method :outer("349_1282324002.40722")
 .annotate 'line', 567
     .local string rx1392_tgt
     .local int rx1392_pos
@@ -18332,7 +19995,9 @@
     .local int rx1392_eos
     .local int rx1392_rep
     .local pmc rx1392_cur
+    .local pmc rx1392_debug
     (rx1392_cur, rx1392_pos, rx1392_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1392_debug, rx1392_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1392_cur
     .local pmc match
     .lex "$/", match
@@ -18344,7 +20009,9 @@
     substr rx1392_tgt, rx1392_tgt, rx1392_off
   rx1392_start:
     eq $I10, 1, rx1392_restart
-    rx1392_cur."!cursor_debug"("START ", "assertion:sym<var>")
+    if_null rx1392_debug, debug_1066
+    rx1392_cur."!cursor_debug"("START", "assertion:sym<var>")
+  debug_1066:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1395_done
     goto rxscan1395_scan
@@ -18374,11 +20041,15 @@
 .annotate 'line', 599
   # rx pass
     rx1392_cur."!cursor_pass"(rx1392_pos, "assertion:sym<var>")
-    rx1392_cur."!cursor_debug"("PASS  ", "assertion:sym<var>", " at pos=", rx1392_pos)
+    if_null rx1392_debug, debug_1067
+    rx1392_cur."!cursor_debug"("PASS", "assertion:sym<var>", " at pos=", rx1392_pos)
+  debug_1067:
     .return (rx1392_cur)
   rx1392_restart:
 .annotate 'line', 567
-    rx1392_cur."!cursor_debug"("NEXT ", "assertion:sym<var>")
+    if_null rx1392_debug, debug_1068
+    rx1392_cur."!cursor_debug"("NEXT", "assertion:sym<var>")
+  debug_1068:
   rx1392_fail:
     (rx1392_rep, rx1392_pos, $I10, $P10) = rx1392_cur."!mark_fail"(0)
     lt rx1392_pos, -1, rx1392_done
@@ -18386,14 +20057,16 @@
     jump $I10
   rx1392_done:
     rx1392_cur."!cursor_fail"()
-    rx1392_cur."!cursor_debug"("FAIL  ", "assertion:sym<var>")
+    if_null rx1392_debug, debug_1069
+    rx1392_cur."!cursor_debug"("FAIL", "assertion:sym<var>")
+  debug_1069:
     .return (rx1392_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<var>"  :subid("367_1280467477.44751") :method
+.sub "!PREFIX__assertion:sym<var>"  :subid("367_1282324002.40722") :method
 .annotate 'line', 567
     new $P1394, "ResizablePMCArray"
     push $P1394, "$"
@@ -18403,7 +20076,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("368_1280467477.44751") :method :outer("349_1280467477.44751")
+.sub "codeblock"  :subid("368_1282324002.40722") :method :outer("349_1282324002.40722")
 .annotate 'line', 567
     .local string rx1397_tgt
     .local int rx1397_pos
@@ -18411,7 +20084,9 @@
     .local int rx1397_eos
     .local int rx1397_rep
     .local pmc rx1397_cur
+    .local pmc rx1397_debug
     (rx1397_cur, rx1397_pos, rx1397_tgt, $I10) = self."!cursor_start"()
+    getattribute rx1397_debug, rx1397_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx1397_cur
     .local pmc match
     .lex "$/", match
@@ -18423,7 +20098,9 @@
     substr rx1397_tgt, rx1397_tgt, rx1397_off
   rx1397_start:
     eq $I10, 1, rx1397_restart
-    rx1397_cur."!cursor_debug"("START ", "codeblock")
+    if_null rx1397_debug, debug_1070
+    rx1397_cur."!cursor_debug"("START", "codeblock")
+  debug_1070:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1401_done
     goto rxscan1401_scan
@@ -18447,11 +20124,15 @@
 .annotate 'line', 603
   # rx pass
     rx1397_cur."!cursor_pass"(rx1397_pos, "codeblock")
-    rx1397_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1397_pos)
+    if_null rx1397_debug, debug_1071
+    rx1397_cur."!cursor_debug"("PASS", "codeblock", " at pos=", rx1397_pos)
+  debug_1071:
     .return (rx1397_cur)
   rx1397_restart:
 .annotate 'line', 567
-    rx1397_cur."!cursor_debug"("NEXT ", "codeblock")
+    if_null rx1397_debug, debug_1072
+    rx1397_cur."!cursor_debug"("NEXT", "codeblock")
+  debug_1072:
   rx1397_fail:
     (rx1397_rep, rx1397_pos, $I10, $P10) = rx1397_cur."!mark_fail"(0)
     lt rx1397_pos, -1, rx1397_done
@@ -18459,14 +20140,16 @@
     jump $I10
   rx1397_done:
     rx1397_cur."!cursor_fail"()
-    rx1397_cur."!cursor_debug"("FAIL  ", "codeblock")
+    if_null rx1397_debug, debug_1073
+    rx1397_cur."!cursor_debug"("FAIL", "codeblock")
+  debug_1073:
     .return (rx1397_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("369_1280467477.44751") :method
+.sub "!PREFIX__codeblock"  :subid("369_1282324002.40722") :method
 .annotate 'line', 567
     $P1399 = self."!PREFIX__!subrule"("LANG", "")
     new $P1400, "ResizablePMCArray"
@@ -18476,18 +20159,18 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block1403" :load :anon :subid("370_1280467477.44751")
+.sub "_block1403" :load :anon :subid("370_1282324002.40722")
 .annotate 'line', 4
-    .const 'Sub' $P1405 = "11_1280467477.44751" 
+    .const 'Sub' $P1405 = "11_1282324002.40722" 
     $P1406 = $P1405()
     .return ($P1406)
 .end
 
 
 .namespace []
-.sub "_block1424" :load :anon :subid("371_1280467477.44751")
+.sub "_block1424" :load :anon :subid("371_1282324002.40722")
 .annotate 'line', 1
-    .const 'Sub' $P1426 = "10_1280467477.44751" 
+    .const 'Sub' $P1426 = "10_1282324002.40722" 
     $P1427 = $P1426()
     .return ($P1427)
 .end
@@ -18495,7 +20178,7 @@
 ### .include 'gen/nqp-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467483.70067")
+.sub "_block11"  :anon :subid("10_1282324007.53935")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     capture_lex $P14
@@ -18512,15 +20195,15 @@
     $P2452 = $P14()
 .annotate 'line', 1
     .return ($P2452)
-    .const 'Sub' $P2454 = "143_1280467483.70067" 
+    .const 'Sub' $P2454 = "143_1282324007.53935" 
     .return ($P2454)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post144") :outer("10_1280467483.70067")
+.sub "" :load :init :subid("post144") :outer("10_1282324007.53935")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467483.70067" 
+    .const 'Sub' $P12 = "10_1282324007.53935" 
     .local pmc block
     set block, $P12
     $P2457 = get_root_global ["parrot"], "P6metaclass"
@@ -18529,217 +20212,217 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1280467483.70067") :outer("10_1280467483.70067")
+.sub "_block13"  :subid("11_1282324007.53935") :outer("10_1282324007.53935")
 .annotate 'line', 3
-    .const 'Sub' $P2448 = "142_1280467483.70067" 
+    .const 'Sub' $P2448 = "142_1282324007.53935" 
     capture_lex $P2448
     get_hll_global $P2331, ["NQP";"RegexActions"], "_block2330" 
     capture_lex $P2331
-    .const 'Sub' $P2320 = "132_1280467483.70067" 
+    .const 'Sub' $P2320 = "132_1282324007.53935" 
     capture_lex $P2320
-    .const 'Sub' $P2313 = "131_1280467483.70067" 
+    .const 'Sub' $P2313 = "131_1282324007.53935" 
     capture_lex $P2313
-    .const 'Sub' $P2306 = "130_1280467483.70067" 
+    .const 'Sub' $P2306 = "130_1282324007.53935" 
     capture_lex $P2306
-    .const 'Sub' $P2299 = "129_1280467483.70067" 
+    .const 'Sub' $P2299 = "129_1282324007.53935" 
     capture_lex $P2299
-    .const 'Sub' $P2286 = "128_1280467483.70067" 
+    .const 'Sub' $P2286 = "128_1282324007.53935" 
     capture_lex $P2286
-    .const 'Sub' $P2276 = "127_1280467483.70067" 
+    .const 'Sub' $P2276 = "127_1282324007.53935" 
     capture_lex $P2276
-    .const 'Sub' $P2266 = "126_1280467483.70067" 
+    .const 'Sub' $P2266 = "126_1282324007.53935" 
     capture_lex $P2266
-    .const 'Sub' $P2256 = "125_1280467483.70067" 
+    .const 'Sub' $P2256 = "125_1282324007.53935" 
     capture_lex $P2256
-    .const 'Sub' $P2249 = "124_1280467483.70067" 
+    .const 'Sub' $P2249 = "124_1282324007.53935" 
     capture_lex $P2249
-    .const 'Sub' $P2235 = "123_1280467483.70067" 
+    .const 'Sub' $P2235 = "123_1282324007.53935" 
     capture_lex $P2235
-    .const 'Sub' $P2225 = "122_1280467483.70067" 
+    .const 'Sub' $P2225 = "122_1282324007.53935" 
     capture_lex $P2225
-    .const 'Sub' $P2188 = "121_1280467483.70067" 
+    .const 'Sub' $P2188 = "121_1282324007.53935" 
     capture_lex $P2188
-    .const 'Sub' $P2174 = "120_1280467483.70067" 
+    .const 'Sub' $P2174 = "120_1282324007.53935" 
     capture_lex $P2174
-    .const 'Sub' $P2164 = "119_1280467483.70067" 
+    .const 'Sub' $P2164 = "119_1282324007.53935" 
     capture_lex $P2164
-    .const 'Sub' $P2154 = "118_1280467483.70067" 
+    .const 'Sub' $P2154 = "118_1282324007.53935" 
     capture_lex $P2154
-    .const 'Sub' $P2144 = "117_1280467483.70067" 
+    .const 'Sub' $P2144 = "117_1282324007.53935" 
     capture_lex $P2144
-    .const 'Sub' $P2134 = "116_1280467483.70067" 
+    .const 'Sub' $P2134 = "116_1282324007.53935" 
     capture_lex $P2134
-    .const 'Sub' $P2124 = "115_1280467483.70067" 
+    .const 'Sub' $P2124 = "115_1282324007.53935" 
     capture_lex $P2124
-    .const 'Sub' $P2096 = "114_1280467483.70067" 
+    .const 'Sub' $P2096 = "114_1282324007.53935" 
     capture_lex $P2096
-    .const 'Sub' $P2079 = "113_1280467483.70067" 
+    .const 'Sub' $P2079 = "113_1282324007.53935" 
     capture_lex $P2079
-    .const 'Sub' $P2069 = "112_1280467483.70067" 
+    .const 'Sub' $P2069 = "112_1282324007.53935" 
     capture_lex $P2069
-    .const 'Sub' $P2056 = "111_1280467483.70067" 
+    .const 'Sub' $P2056 = "111_1282324007.53935" 
     capture_lex $P2056
-    .const 'Sub' $P2043 = "110_1280467483.70067" 
+    .const 'Sub' $P2043 = "110_1282324007.53935" 
     capture_lex $P2043
-    .const 'Sub' $P2030 = "109_1280467483.70067" 
+    .const 'Sub' $P2030 = "109_1282324007.53935" 
     capture_lex $P2030
-    .const 'Sub' $P2020 = "108_1280467483.70067" 
+    .const 'Sub' $P2020 = "108_1282324007.53935" 
     capture_lex $P2020
-    .const 'Sub' $P1991 = "107_1280467483.70067" 
+    .const 'Sub' $P1991 = "107_1282324007.53935" 
     capture_lex $P1991
-    .const 'Sub' $P1967 = "106_1280467483.70067" 
+    .const 'Sub' $P1967 = "106_1282324007.53935" 
     capture_lex $P1967
-    .const 'Sub' $P1957 = "105_1280467483.70067" 
+    .const 'Sub' $P1957 = "105_1282324007.53935" 
     capture_lex $P1957
-    .const 'Sub' $P1947 = "104_1280467483.70067" 
+    .const 'Sub' $P1947 = "104_1282324007.53935" 
     capture_lex $P1947
-    .const 'Sub' $P1920 = "103_1280467483.70067" 
+    .const 'Sub' $P1920 = "103_1282324007.53935" 
     capture_lex $P1920
-    .const 'Sub' $P1902 = "102_1280467483.70067" 
+    .const 'Sub' $P1902 = "102_1282324007.53935" 
     capture_lex $P1902
-    .const 'Sub' $P1892 = "101_1280467483.70067" 
+    .const 'Sub' $P1892 = "101_1282324007.53935" 
     capture_lex $P1892
-    .const 'Sub' $P1788 = "98_1280467483.70067" 
+    .const 'Sub' $P1788 = "98_1282324007.53935" 
     capture_lex $P1788
-    .const 'Sub' $P1778 = "97_1280467483.70067" 
+    .const 'Sub' $P1778 = "97_1282324007.53935" 
     capture_lex $P1778
-    .const 'Sub' $P1749 = "96_1280467483.70067" 
+    .const 'Sub' $P1749 = "96_1282324007.53935" 
     capture_lex $P1749
-    .const 'Sub' $P1707 = "95_1280467483.70067" 
+    .const 'Sub' $P1707 = "95_1282324007.53935" 
     capture_lex $P1707
-    .const 'Sub' $P1691 = "94_1280467483.70067" 
+    .const 'Sub' $P1691 = "94_1282324007.53935" 
     capture_lex $P1691
-    .const 'Sub' $P1682 = "93_1280467483.70067" 
+    .const 'Sub' $P1682 = "93_1282324007.53935" 
     capture_lex $P1682
-    .const 'Sub' $P1650 = "92_1280467483.70067" 
+    .const 'Sub' $P1650 = "92_1282324007.53935" 
     capture_lex $P1650
-    .const 'Sub' $P1551 = "89_1280467483.70067" 
+    .const 'Sub' $P1551 = "89_1282324007.53935" 
     capture_lex $P1551
-    .const 'Sub' $P1534 = "88_1280467483.70067" 
+    .const 'Sub' $P1534 = "88_1282324007.53935" 
     capture_lex $P1534
-    .const 'Sub' $P1514 = "87_1280467483.70067" 
+    .const 'Sub' $P1514 = "87_1282324007.53935" 
     capture_lex $P1514
-    .const 'Sub' $P1402 = "84_1280467483.70067" 
+    .const 'Sub' $P1402 = "84_1282324007.53935" 
     capture_lex $P1402
-    .const 'Sub' $P1345 = "80_1280467483.70067" 
+    .const 'Sub' $P1345 = "80_1282324007.53935" 
     capture_lex $P1345
-    .const 'Sub' $P1300 = "78_1280467483.70067" 
+    .const 'Sub' $P1300 = "78_1282324007.53935" 
     capture_lex $P1300
-    .const 'Sub' $P1250 = "76_1280467483.70067" 
+    .const 'Sub' $P1250 = "76_1282324007.53935" 
     capture_lex $P1250
-    .const 'Sub' $P1240 = "75_1280467483.70067" 
+    .const 'Sub' $P1240 = "75_1282324007.53935" 
     capture_lex $P1240
-    .const 'Sub' $P1230 = "74_1280467483.70067" 
+    .const 'Sub' $P1230 = "74_1282324007.53935" 
     capture_lex $P1230
-    .const 'Sub' $P1159 = "72_1280467483.70067" 
+    .const 'Sub' $P1159 = "72_1282324007.53935" 
     capture_lex $P1159
-    .const 'Sub' $P1149 = "71_1280467483.70067" 
+    .const 'Sub' $P1149 = "71_1282324007.53935" 
     capture_lex $P1149
-    .const 'Sub' $P1132 = "70_1280467483.70067" 
+    .const 'Sub' $P1132 = "70_1282324007.53935" 
     capture_lex $P1132
-    .const 'Sub' $P1115 = "69_1280467483.70067" 
+    .const 'Sub' $P1115 = "69_1282324007.53935" 
     capture_lex $P1115
-    .const 'Sub' $P1098 = "68_1280467483.70067" 
+    .const 'Sub' $P1098 = "68_1282324007.53935" 
     capture_lex $P1098
-    .const 'Sub' $P1088 = "67_1280467483.70067" 
+    .const 'Sub' $P1088 = "67_1282324007.53935" 
     capture_lex $P1088
-    .const 'Sub' $P1078 = "66_1280467483.70067" 
+    .const 'Sub' $P1078 = "66_1282324007.53935" 
     capture_lex $P1078
-    .const 'Sub' $P1068 = "65_1280467483.70067" 
+    .const 'Sub' $P1068 = "65_1282324007.53935" 
     capture_lex $P1068
-    .const 'Sub' $P1044 = "64_1280467483.70067" 
+    .const 'Sub' $P1044 = "64_1282324007.53935" 
     capture_lex $P1044
-    .const 'Sub' $P991 = "63_1280467483.70067" 
+    .const 'Sub' $P991 = "63_1282324007.53935" 
     capture_lex $P991
-    .const 'Sub' $P981 = "62_1280467483.70067" 
+    .const 'Sub' $P981 = "62_1282324007.53935" 
     capture_lex $P981
-    .const 'Sub' $P892 = "60_1280467483.70067" 
+    .const 'Sub' $P892 = "60_1282324007.53935" 
     capture_lex $P892
-    .const 'Sub' $P866 = "59_1280467483.70067" 
+    .const 'Sub' $P866 = "59_1282324007.53935" 
     capture_lex $P866
-    .const 'Sub' $P850 = "58_1280467483.70067" 
+    .const 'Sub' $P850 = "58_1282324007.53935" 
     capture_lex $P850
-    .const 'Sub' $P840 = "57_1280467483.70067" 
+    .const 'Sub' $P840 = "57_1282324007.53935" 
     capture_lex $P840
-    .const 'Sub' $P830 = "56_1280467483.70067" 
+    .const 'Sub' $P830 = "56_1282324007.53935" 
     capture_lex $P830
-    .const 'Sub' $P820 = "55_1280467483.70067" 
+    .const 'Sub' $P820 = "55_1282324007.53935" 
     capture_lex $P820
-    .const 'Sub' $P810 = "54_1280467483.70067" 
+    .const 'Sub' $P810 = "54_1282324007.53935" 
     capture_lex $P810
-    .const 'Sub' $P800 = "53_1280467483.70067" 
+    .const 'Sub' $P800 = "53_1282324007.53935" 
     capture_lex $P800
-    .const 'Sub' $P790 = "52_1280467483.70067" 
+    .const 'Sub' $P790 = "52_1282324007.53935" 
     capture_lex $P790
-    .const 'Sub' $P780 = "51_1280467483.70067" 
+    .const 'Sub' $P780 = "51_1282324007.53935" 
     capture_lex $P780
-    .const 'Sub' $P770 = "50_1280467483.70067" 
+    .const 'Sub' $P770 = "50_1282324007.53935" 
     capture_lex $P770
-    .const 'Sub' $P760 = "49_1280467483.70067" 
+    .const 'Sub' $P760 = "49_1282324007.53935" 
     capture_lex $P760
-    .const 'Sub' $P750 = "48_1280467483.70067" 
+    .const 'Sub' $P750 = "48_1282324007.53935" 
     capture_lex $P750
-    .const 'Sub' $P740 = "47_1280467483.70067" 
+    .const 'Sub' $P740 = "47_1282324007.53935" 
     capture_lex $P740
-    .const 'Sub' $P730 = "46_1280467483.70067" 
+    .const 'Sub' $P730 = "46_1282324007.53935" 
     capture_lex $P730
-    .const 'Sub' $P720 = "45_1280467483.70067" 
+    .const 'Sub' $P720 = "45_1282324007.53935" 
     capture_lex $P720
-    .const 'Sub' $P702 = "44_1280467483.70067" 
+    .const 'Sub' $P702 = "44_1282324007.53935" 
     capture_lex $P702
-    .const 'Sub' $P667 = "43_1280467483.70067" 
+    .const 'Sub' $P667 = "43_1282324007.53935" 
     capture_lex $P667
-    .const 'Sub' $P651 = "42_1280467483.70067" 
+    .const 'Sub' $P651 = "42_1282324007.53935" 
     capture_lex $P651
-    .const 'Sub' $P630 = "41_1280467483.70067" 
+    .const 'Sub' $P630 = "41_1282324007.53935" 
     capture_lex $P630
-    .const 'Sub' $P610 = "40_1280467483.70067" 
+    .const 'Sub' $P610 = "40_1282324007.53935" 
     capture_lex $P610
-    .const 'Sub' $P597 = "39_1280467483.70067" 
+    .const 'Sub' $P597 = "39_1282324007.53935" 
     capture_lex $P597
-    .const 'Sub' $P571 = "38_1280467483.70067" 
+    .const 'Sub' $P571 = "38_1282324007.53935" 
     capture_lex $P571
-    .const 'Sub' $P535 = "37_1280467483.70067" 
+    .const 'Sub' $P535 = "37_1282324007.53935" 
     capture_lex $P535
-    .const 'Sub' $P518 = "36_1280467483.70067" 
+    .const 'Sub' $P518 = "36_1282324007.53935" 
     capture_lex $P518
-    .const 'Sub' $P504 = "35_1280467483.70067" 
+    .const 'Sub' $P504 = "35_1282324007.53935" 
     capture_lex $P504
-    .const 'Sub' $P451 = "33_1280467483.70067" 
+    .const 'Sub' $P451 = "33_1282324007.53935" 
     capture_lex $P451
-    .const 'Sub' $P440 = "32_1280467483.70067" 
+    .const 'Sub' $P440 = "32_1282324007.53935" 
     capture_lex $P440
-    .const 'Sub' $P427 = "31_1280467483.70067" 
+    .const 'Sub' $P427 = "31_1282324007.53935" 
     capture_lex $P427
-    .const 'Sub' $P407 = "30_1280467483.70067" 
+    .const 'Sub' $P407 = "30_1282324007.53935" 
     capture_lex $P407
-    .const 'Sub' $P397 = "29_1280467483.70067" 
+    .const 'Sub' $P397 = "29_1282324007.53935" 
     capture_lex $P397
-    .const 'Sub' $P387 = "28_1280467483.70067" 
+    .const 'Sub' $P387 = "28_1282324007.53935" 
     capture_lex $P387
-    .const 'Sub' $P371 = "27_1280467483.70067" 
+    .const 'Sub' $P371 = "27_1282324007.53935" 
     capture_lex $P371
-    .const 'Sub' $P288 = "25_1280467483.70067" 
+    .const 'Sub' $P288 = "25_1282324007.53935" 
     capture_lex $P288
-    .const 'Sub' $P245 = "23_1280467483.70067" 
+    .const 'Sub' $P245 = "23_1282324007.53935" 
     capture_lex $P245
-    .const 'Sub' $P213 = "22_1280467483.70067" 
+    .const 'Sub' $P213 = "22_1282324007.53935" 
     capture_lex $P213
-    .const 'Sub' $P180 = "21_1280467483.70067" 
+    .const 'Sub' $P180 = "21_1282324007.53935" 
     capture_lex $P180
-    .const 'Sub' $P170 = "20_1280467483.70067" 
+    .const 'Sub' $P170 = "20_1282324007.53935" 
     capture_lex $P170
-    .const 'Sub' $P151 = "19_1280467483.70067" 
+    .const 'Sub' $P151 = "19_1282324007.53935" 
     capture_lex $P151
-    .const 'Sub' $P100 = "18_1280467483.70067" 
+    .const 'Sub' $P100 = "18_1282324007.53935" 
     capture_lex $P100
-    .const 'Sub' $P84 = "17_1280467483.70067" 
+    .const 'Sub' $P84 = "17_1282324007.53935" 
     capture_lex $P84
-    .const 'Sub' $P63 = "16_1280467483.70067" 
+    .const 'Sub' $P63 = "16_1282324007.53935" 
     capture_lex $P63
-    .const 'Sub' $P27 = "13_1280467483.70067" 
+    .const 'Sub' $P27 = "13_1282324007.53935" 
     capture_lex $P27
-    .const 'Sub' $P16 = "12_1280467483.70067" 
+    .const 'Sub' $P16 = "12_1282324007.53935" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
     unless_null $P15, vivify_147
@@ -18747,27 +20430,27 @@
     set_global "@BLOCK", $P15
   vivify_147:
 .annotate 'line', 9
-    .const 'Sub' $P16 = "12_1280467483.70067" 
+    .const 'Sub' $P16 = "12_1282324007.53935" 
     newclosure $P26, $P16
     .lex "xblock_immediate", $P26
 .annotate 'line', 14
-    .const 'Sub' $P27 = "13_1280467483.70067" 
+    .const 'Sub' $P27 = "13_1282324007.53935" 
     newclosure $P62, $P27
     .lex "block_immediate", $P62
 .annotate 'line', 24
-    .const 'Sub' $P63 = "16_1280467483.70067" 
+    .const 'Sub' $P63 = "16_1282324007.53935" 
     newclosure $P83, $P63
     .lex "vivitype", $P83
 .annotate 'line', 43
-    .const 'Sub' $P84 = "17_1280467483.70067" 
+    .const 'Sub' $P84 = "17_1282324007.53935" 
     newclosure $P99, $P84
     .lex "colonpair_str", $P99
 .annotate 'line', 223
-    .const 'Sub' $P100 = "18_1280467483.70067" 
+    .const 'Sub' $P100 = "18_1282324007.53935" 
     newclosure $P150, $P100
     .lex "push_block_handler", $P150
 .annotate 'line', 835
-    .const 'Sub' $P151 = "19_1280467483.70067" 
+    .const 'Sub' $P151 = "19_1282324007.53935" 
     newclosure $P165, $P151
     .lex "control", $P165
 .annotate 'line', 3
@@ -18794,19 +20477,19 @@
     $P2442 = $P2331()
 .annotate 'line', 3
     .return ($P2442)
-    .const 'Sub' $P2444 = "141_1280467483.70067" 
+    .const 'Sub' $P2444 = "141_1282324007.53935" 
     .return ($P2444)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post145") :outer("11_1280467483.70067")
+.sub "" :load :init :subid("post145") :outer("11_1282324007.53935")
 .annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 5
-    .const 'Sub' $P2448 = "142_1280467483.70067" 
+    .const 'Sub' $P2448 = "142_1282324007.53935" 
     capture_lex $P2448
     $P2448()
     $P2451 = get_root_global ["parrot"], "P6metaclass"
@@ -18815,7 +20498,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2447"  :anon :subid("142_1280467483.70067") :outer("11_1280467483.70067")
+.sub "_block2447"  :anon :subid("142_1282324007.53935") :outer("11_1282324007.53935")
 .annotate 'line', 6
     get_global $P2449, "@BLOCK"
     unless_null $P2449, vivify_146
@@ -18831,7 +20514,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock_immediate"  :subid("12_1280467483.70067") :outer("11_1280467483.70067")
+.sub "xblock_immediate"  :subid("12_1282324007.53935") :outer("11_1282324007.53935")
     .param pmc param_19
 .annotate 'line', 9
     new $P18, 'ExceptionHandler'
@@ -18868,10 +20551,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block_immediate"  :subid("13_1280467483.70067") :outer("11_1280467483.70067")
+.sub "block_immediate"  :subid("13_1282324007.53935") :outer("11_1282324007.53935")
     .param pmc param_30
 .annotate 'line', 14
-    .const 'Sub' $P40 = "14_1280467483.70067" 
+    .const 'Sub' $P40 = "14_1282324007.53935" 
     capture_lex $P40
     new $P29, 'ExceptionHandler'
     set_addr $P29, control_28
@@ -18893,7 +20576,7 @@
     set $P33, $P38
   unless_34_end:
     if $P33, unless_32_end
-    .const 'Sub' $P40 = "14_1280467483.70067" 
+    .const 'Sub' $P40 = "14_1282324007.53935" 
     capture_lex $P40
     $P40()
   unless_32_end:
@@ -18910,9 +20593,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block39"  :anon :subid("14_1280467483.70067") :outer("13_1280467483.70067")
+.sub "_block39"  :anon :subid("14_1282324007.53935") :outer("13_1282324007.53935")
 .annotate 'line', 16
-    .const 'Sub' $P51 = "15_1280467483.70067" 
+    .const 'Sub' $P51 = "15_1282324007.53935" 
     capture_lex $P51
 .annotate 'line', 17
     new $P41, "Undef"
@@ -18935,7 +20618,7 @@
     unless $P45, loop56_done
     shift $P49, $P45
   loop56_redo:
-    .const 'Sub' $P51 = "15_1280467483.70067" 
+    .const 'Sub' $P51 = "15_1282324007.53935" 
     capture_lex $P51
     $P51($P49)
   loop56_next:
@@ -18958,7 +20641,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block50"  :anon :subid("15_1280467483.70067") :outer("14_1280467483.70067")
+.sub "_block50"  :anon :subid("15_1282324007.53935") :outer("14_1282324007.53935")
     .param pmc param_52
 .annotate 'line', 18
     .lex "$_", param_52
@@ -18971,7 +20654,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "vivitype"  :subid("16_1280467483.70067") :outer("11_1280467483.70067")
+.sub "vivitype"  :subid("16_1282324007.53935") :outer("11_1282324007.53935")
     .param pmc param_66
 .annotate 'line', 24
     new $P65, 'ExceptionHandler'
@@ -19020,7 +20703,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair_str"  :subid("17_1280467483.70067") :outer("11_1280467483.70067")
+.sub "colonpair_str"  :subid("17_1282324007.53935") :outer("11_1282324007.53935")
     .param pmc param_87
 .annotate 'line', 43
     new $P86, 'ExceptionHandler'
@@ -19059,7 +20742,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "push_block_handler"  :subid("18_1280467483.70067") :outer("11_1280467483.70067")
+.sub "push_block_handler"  :subid("18_1282324007.53935") :outer("11_1282324007.53935")
     .param pmc param_103
     .param pmc param_104
 .annotate 'line', 223
@@ -19177,7 +20860,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "control"  :subid("19_1280467483.70067") :outer("11_1280467483.70067")
+.sub "control"  :subid("19_1282324007.53935") :outer("11_1282324007.53935")
     .param pmc param_154
     .param pmc param_155
 .annotate 'line', 835
@@ -19210,7 +20893,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "TOP"  :subid("20_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "TOP"  :subid("20_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_173
 .annotate 'line', 33
     new $P172, 'ExceptionHandler'
@@ -19241,7 +20924,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "deflongname"  :subid("21_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "deflongname"  :subid("21_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_183
 .annotate 'line', 35
     new $P182, 'ExceptionHandler'
@@ -19331,7 +21014,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "comp_unit"  :subid("22_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "comp_unit"  :subid("22_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_216
 .annotate 'line', 49
     new $P215, 'ExceptionHandler'
@@ -19406,10 +21089,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statementlist"  :subid("23_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statementlist"  :subid("23_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_248
 .annotate 'line', 76
-    .const 'Sub' $P262 = "24_1280467483.70067" 
+    .const 'Sub' $P262 = "24_1282324007.53935" 
     capture_lex $P262
     new $P247, 'ExceptionHandler'
     set_addr $P247, control_246
@@ -19454,7 +21137,7 @@
     unless $P256, loop281_done
     shift $P260, $P256
   loop281_redo:
-    .const 'Sub' $P262 = "24_1280467483.70067" 
+    .const 'Sub' $P262 = "24_1282324007.53935" 
     capture_lex $P262
     $P262($P260)
   loop281_next:
@@ -19484,7 +21167,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block261"  :anon :subid("24_1280467483.70067") :outer("23_1280467483.70067")
+.sub "_block261"  :anon :subid("24_1282324007.53935") :outer("23_1282324007.53935")
     .param pmc param_264
 .annotate 'line', 80
     new $P263, "Undef"
@@ -19539,12 +21222,12 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement"  :subid("25_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement"  :subid("25_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_291
     .param pmc param_292 :optional
     .param int has_param_292 :opt_flag
 .annotate 'line', 89
-    .const 'Sub' $P300 = "26_1280467483.70067" 
+    .const 'Sub' $P300 = "26_1282324007.53935" 
     capture_lex $P300
     new $P290, 'ExceptionHandler'
     set_addr $P290, control_289
@@ -19603,7 +21286,7 @@
     goto if_296_end
   if_296:
 .annotate 'line', 91
-    .const 'Sub' $P300 = "26_1280467483.70067" 
+    .const 'Sub' $P300 = "26_1282324007.53935" 
     capture_lex $P300
     $P300()
   if_296_end:
@@ -19622,7 +21305,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block299"  :anon :subid("26_1280467483.70067") :outer("25_1280467483.70067")
+.sub "_block299"  :anon :subid("26_1282324007.53935") :outer("25_1282324007.53935")
 .annotate 'line', 92
     new $P301, "Undef"
     .lex "$mc", $P301
@@ -19795,7 +21478,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "xblock"  :subid("27_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "xblock"  :subid("27_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_374
 .annotate 'line', 117
     new $P373, 'ExceptionHandler'
@@ -19840,7 +21523,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "pblock"  :subid("28_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "pblock"  :subid("28_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_390
 .annotate 'line', 121
     new $P389, 'ExceptionHandler'
@@ -19873,7 +21556,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "block"  :subid("29_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "block"  :subid("29_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_400
 .annotate 'line', 125
     new $P399, 'ExceptionHandler'
@@ -19906,7 +21589,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blockoid"  :subid("30_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "blockoid"  :subid("30_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_410
 .annotate 'line', 129
     new $P409, 'ExceptionHandler'
@@ -19963,7 +21646,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "newpad"  :subid("31_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "newpad"  :subid("31_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_430
 .annotate 'line', 138
     new $P429, 'ExceptionHandler'
@@ -19999,7 +21682,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "outerctx"  :subid("32_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "outerctx"  :subid("32_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_443
 .annotate 'line', 143
     new $P442, 'ExceptionHandler'
@@ -20039,10 +21722,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<if>"  :subid("33_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<if>"  :subid("33_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_454
 .annotate 'line', 150
-    .const 'Sub' $P482 = "34_1280467483.70067" 
+    .const 'Sub' $P482 = "34_1282324007.53935" 
     capture_lex $P482
     new $P453, 'ExceptionHandler'
     set_addr $P453, control_452
@@ -20127,7 +21810,7 @@
     isgt $I480, $N479, 0.0
     unless $I480, loop497_done
   loop497_redo:
-    .const 'Sub' $P482 = "34_1280467483.70067" 
+    .const 'Sub' $P482 = "34_1282324007.53935" 
     capture_lex $P482
     $P482()
   loop497_next:
@@ -20155,7 +21838,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block481"  :anon :subid("34_1280467483.70067") :outer("33_1280467483.70067")
+.sub "_block481"  :anon :subid("34_1282324007.53935") :outer("33_1282324007.53935")
 .annotate 'line', 159
     new $P483, "Undef"
     .lex "$else", $P483
@@ -20195,7 +21878,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<unless>"  :subid("35_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<unless>"  :subid("35_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_507
 .annotate 'line', 166
     new $P506, 'ExceptionHandler'
@@ -20237,7 +21920,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<while>"  :subid("36_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<while>"  :subid("36_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_521
 .annotate 'line', 172
     new $P520, 'ExceptionHandler'
@@ -20288,7 +21971,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<repeat>"  :subid("37_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<repeat>"  :subid("37_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_538
 .annotate 'line', 178
     new $P537, 'ExceptionHandler'
@@ -20389,7 +22072,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<for>"  :subid("38_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<for>"  :subid("38_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_574
 .annotate 'line', 192
     new $P573, 'ExceptionHandler'
@@ -20470,7 +22153,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<return>"  :subid("39_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<return>"  :subid("39_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_600
 .annotate 'line', 205
     new $P599, 'ExceptionHandler'
@@ -20506,7 +22189,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CATCH>"  :subid("40_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<CATCH>"  :subid("40_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_613
 .annotate 'line', 209
     new $P612, 'ExceptionHandler'
@@ -20565,7 +22248,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_control:sym<CONTROL>"  :subid("41_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_control:sym<CONTROL>"  :subid("41_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_633
 .annotate 'line', 216
     new $P632, 'ExceptionHandler'
@@ -20624,7 +22307,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_prefix:sym<INIT>"  :subid("42_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_prefix:sym<INIT>"  :subid("42_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_654
 .annotate 'line', 260
     new $P653, 'ExceptionHandler'
@@ -20671,7 +22354,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_prefix:sym<try>"  :subid("43_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_prefix:sym<try>"  :subid("43_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_670
 .annotate 'line', 265
     new $P669, 'ExceptionHandler'
@@ -20749,7 +22432,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "blorst"  :subid("44_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "blorst"  :subid("44_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_705
 .annotate 'line', 288
     new $P704, 'ExceptionHandler'
@@ -20809,7 +22492,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<if>"  :subid("45_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_cond:sym<if>"  :subid("45_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_723
 .annotate 'line', 296
     new $P722, 'ExceptionHandler'
@@ -20840,7 +22523,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_cond:sym<unless>"  :subid("46_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_cond:sym<unless>"  :subid("46_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_733
 .annotate 'line', 297
     new $P732, 'ExceptionHandler'
@@ -20871,7 +22554,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_loop:sym<while>"  :subid("47_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_loop:sym<while>"  :subid("47_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_743
 .annotate 'line', 299
     new $P742, 'ExceptionHandler'
@@ -20902,7 +22585,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "statement_mod_loop:sym<until>"  :subid("48_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "statement_mod_loop:sym<until>"  :subid("48_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_753
 .annotate 'line', 300
     new $P752, 'ExceptionHandler'
@@ -20933,7 +22616,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<fatarrow>"  :subid("49_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<fatarrow>"  :subid("49_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_763
 .annotate 'line', 304
     new $P762, 'ExceptionHandler'
@@ -20964,7 +22647,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<colonpair>"  :subid("50_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<colonpair>"  :subid("50_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_773
 .annotate 'line', 305
     new $P772, 'ExceptionHandler'
@@ -20995,7 +22678,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<variable>"  :subid("51_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<variable>"  :subid("51_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_783
 .annotate 'line', 306
     new $P782, 'ExceptionHandler'
@@ -21026,7 +22709,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<package_declarator>"  :subid("52_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<package_declarator>"  :subid("52_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_793
 .annotate 'line', 307
     new $P792, 'ExceptionHandler'
@@ -21057,7 +22740,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<scope_declarator>"  :subid("53_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<scope_declarator>"  :subid("53_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_803
 .annotate 'line', 308
     new $P802, 'ExceptionHandler'
@@ -21088,7 +22771,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<routine_declarator>"  :subid("54_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<routine_declarator>"  :subid("54_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_813
 .annotate 'line', 309
     new $P812, 'ExceptionHandler'
@@ -21119,7 +22802,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<regex_declarator>"  :subid("55_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<regex_declarator>"  :subid("55_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_823
 .annotate 'line', 310
     new $P822, 'ExceptionHandler'
@@ -21150,7 +22833,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<statement_prefix>"  :subid("56_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<statement_prefix>"  :subid("56_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_833
 .annotate 'line', 311
     new $P832, 'ExceptionHandler'
@@ -21181,7 +22864,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<lambda>"  :subid("57_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<lambda>"  :subid("57_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_843
 .annotate 'line', 312
     new $P842, 'ExceptionHandler'
@@ -21212,7 +22895,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "fatarrow"  :subid("58_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "fatarrow"  :subid("58_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_853
 .annotate 'line', 314
     new $P852, 'ExceptionHandler'
@@ -21262,7 +22945,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "colonpair"  :subid("59_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "colonpair"  :subid("59_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_869
 .annotate 'line', 320
     new $P868, 'ExceptionHandler'
@@ -21344,10 +23027,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable"  :subid("60_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "variable"  :subid("60_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_895
 .annotate 'line', 328
-    .const 'Sub' $P908 = "61_1280467483.70067" 
+    .const 'Sub' $P908 = "61_1282324007.53935" 
     capture_lex $P908
     new $P894, 'ExceptionHandler'
     set_addr $P894, control_893
@@ -21371,7 +23054,7 @@
   vivify_325:
     if $P900, if_898
 .annotate 'line', 334
-    .const 'Sub' $P908 = "61_1280467483.70067" 
+    .const 'Sub' $P908 = "61_1282324007.53935" 
     capture_lex $P908
     $P908()
     goto if_898_end
@@ -21408,7 +23091,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block907"  :anon :subid("61_1280467483.70067") :outer("60_1280467483.70067")
+.sub "_block907"  :anon :subid("61_1282324007.53935") :outer("60_1282324007.53935")
 .annotate 'line', 335
     $P909 = root_new ['parrot';'ResizablePMCArray']
     .lex "@name", $P909
@@ -21578,7 +23261,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<module>"  :subid("62_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "package_declarator:sym<module>"  :subid("62_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_984
 .annotate 'line', 366
     new $P983, 'ExceptionHandler'
@@ -21609,7 +23292,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_declarator:sym<class>"  :subid("63_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "package_declarator:sym<class>"  :subid("63_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_994
 .annotate 'line', 367
     new $P993, 'ExceptionHandler'
@@ -21767,7 +23450,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "package_def"  :subid("64_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "package_def"  :subid("64_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1047
 .annotate 'line', 390
     new $P1046, 'ExceptionHandler'
@@ -21846,7 +23529,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<my>"  :subid("65_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scope_declarator:sym<my>"  :subid("65_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1071
 .annotate 'line', 397
     new $P1070, 'ExceptionHandler'
@@ -21877,7 +23560,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<our>"  :subid("66_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scope_declarator:sym<our>"  :subid("66_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1081
 .annotate 'line', 398
     new $P1080, 'ExceptionHandler'
@@ -21908,7 +23591,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scope_declarator:sym<has>"  :subid("67_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scope_declarator:sym<has>"  :subid("67_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1091
 .annotate 'line', 399
     new $P1090, 'ExceptionHandler'
@@ -21939,7 +23622,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "scoped"  :subid("68_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "scoped"  :subid("68_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1101
 .annotate 'line', 401
     new $P1100, 'ExceptionHandler'
@@ -21998,7 +23681,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "declarator"  :subid("69_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "declarator"  :subid("69_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1118
 .annotate 'line', 407
     new $P1117, 'ExceptionHandler'
@@ -22057,7 +23740,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<multi>"  :subid("70_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "multi_declarator:sym<multi>"  :subid("70_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1135
 .annotate 'line', 413
     new $P1134, 'ExceptionHandler'
@@ -22111,7 +23794,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "multi_declarator:sym<null>"  :subid("71_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "multi_declarator:sym<null>"  :subid("71_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1152
 .annotate 'line', 414
     new $P1151, 'ExceptionHandler'
@@ -22142,10 +23825,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "variable_declarator"  :subid("72_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "variable_declarator"  :subid("72_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1162
 .annotate 'line', 417
-    .const 'Sub' $P1202 = "73_1280467483.70067" 
+    .const 'Sub' $P1202 = "73_1282324007.53935" 
     capture_lex $P1202
     new $P1161, 'ExceptionHandler'
     set_addr $P1161, control_1160
@@ -22227,7 +23910,7 @@
     iseq $I1187, $S1186, "has"
     if $I1187, if_1184
 .annotate 'line', 434
-    .const 'Sub' $P1202 = "73_1280467483.70067" 
+    .const 'Sub' $P1202 = "73_1282324007.53935" 
     capture_lex $P1202
     $P1202()
     goto if_1184_end
@@ -22287,7 +23970,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1201"  :anon :subid("73_1280467483.70067") :outer("72_1280467483.70067")
+.sub "_block1201"  :anon :subid("73_1282324007.53935") :outer("72_1282324007.53935")
 .annotate 'line', 435
     new $P1203, "Undef"
     .lex "$scope", $P1203
@@ -22349,7 +24032,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_declarator:sym<sub>"  :subid("74_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "routine_declarator:sym<sub>"  :subid("74_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1233
 .annotate 'line', 445
     new $P1232, 'ExceptionHandler'
@@ -22380,7 +24063,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_declarator:sym<method>"  :subid("75_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "routine_declarator:sym<method>"  :subid("75_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1243
 .annotate 'line', 446
     new $P1242, 'ExceptionHandler'
@@ -22411,10 +24094,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "routine_def"  :subid("76_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "routine_def"  :subid("76_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1253
 .annotate 'line', 448
-    .const 'Sub' $P1264 = "77_1280467483.70067" 
+    .const 'Sub' $P1264 = "77_1282324007.53935" 
     capture_lex $P1264
     new $P1252, 'ExceptionHandler'
     set_addr $P1252, control_1251
@@ -22451,7 +24134,7 @@
     new $P1262, "Undef"
   vivify_423:
     unless $P1262, if_1260_end
-    .const 'Sub' $P1264 = "77_1280467483.70067" 
+    .const 'Sub' $P1264 = "77_1282324007.53935" 
     capture_lex $P1264
     $P1264()
   if_1260_end:
@@ -22470,7 +24153,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1263"  :anon :subid("77_1280467483.70067") :outer("76_1280467483.70067")
+.sub "_block1263"  :anon :subid("77_1282324007.53935") :outer("76_1282324007.53935")
 .annotate 'line', 453
     new $P1265, "Undef"
     .lex "$name", $P1265
@@ -22567,10 +24250,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "method_def"  :subid("78_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "method_def"  :subid("78_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1303
 .annotate 'line', 466
-    .const 'Sub' $P1324 = "79_1280467483.70067" 
+    .const 'Sub' $P1324 = "79_1282324007.53935" 
     capture_lex $P1324
     new $P1302, 'ExceptionHandler'
     set_addr $P1302, control_1301
@@ -22637,7 +24320,7 @@
     new $P1322, "Undef"
   vivify_444:
     unless $P1322, if_1320_end
-    .const 'Sub' $P1324 = "79_1280467483.70067" 
+    .const 'Sub' $P1324 = "79_1282324007.53935" 
     capture_lex $P1324
     $P1324()
   if_1320_end:
@@ -22671,7 +24354,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1323"  :anon :subid("79_1280467483.70067") :outer("78_1280467483.70067")
+.sub "_block1323"  :anon :subid("79_1282324007.53935") :outer("78_1282324007.53935")
 .annotate 'line', 476
     new $P1325, "Undef"
     .lex "$name", $P1325
@@ -22703,12 +24386,12 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "signature"  :subid("80_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "signature"  :subid("80_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1348
 .annotate 'line', 484
-    .const 'Sub' $P1374 = "82_1280467483.70067" 
+    .const 'Sub' $P1374 = "82_1282324007.53935" 
     capture_lex $P1374
-    .const 'Sub' $P1359 = "81_1280467483.70067" 
+    .const 'Sub' $P1359 = "81_1282324007.53935" 
     capture_lex $P1359
     new $P1347, 'ExceptionHandler'
     set_addr $P1347, control_1346
@@ -22752,7 +24435,7 @@
     unless $P1353, loop1365_done
     shift $P1357, $P1353
   loop1365_redo:
-    .const 'Sub' $P1359 = "81_1280467483.70067" 
+    .const 'Sub' $P1359 = "81_1282324007.53935" 
     capture_lex $P1359
     $P1359($P1357)
   loop1365_next:
@@ -22781,7 +24464,7 @@
     set $P1368, $I1372
     goto if_1369_end
   if_1369:
-    .const 'Sub' $P1374 = "82_1280467483.70067" 
+    .const 'Sub' $P1374 = "82_1282324007.53935" 
     capture_lex $P1374
     $P1400 = $P1374()
     set $P1368, $P1400
@@ -22797,7 +24480,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1358"  :anon :subid("81_1280467483.70067") :outer("80_1280467483.70067")
+.sub "_block1358"  :anon :subid("81_1282324007.53935") :outer("80_1282324007.53935")
     .param pmc param_1360
 .annotate 'line', 487
     .lex "$_", param_1360
@@ -22811,9 +24494,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1373"  :anon :subid("82_1280467483.70067") :outer("80_1280467483.70067")
+.sub "_block1373"  :anon :subid("82_1282324007.53935") :outer("80_1282324007.53935")
 .annotate 'line', 490
-    .const 'Sub' $P1383 = "83_1280467483.70067" 
+    .const 'Sub' $P1383 = "83_1282324007.53935" 
     capture_lex $P1383
 .annotate 'line', 491
     $P1375 = root_new ['parrot';'ResizablePMCArray']
@@ -22834,7 +24517,7 @@
     unless $P1377, loop1393_done
     shift $P1381, $P1377
   loop1393_redo:
-    .const 'Sub' $P1383 = "83_1280467483.70067" 
+    .const 'Sub' $P1383 = "83_1282324007.53935" 
     capture_lex $P1383
     $P1383($P1381)
   loop1393_next:
@@ -22865,7 +24548,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1382"  :anon :subid("83_1280467483.70067") :outer("82_1280467483.70067")
+.sub "_block1382"  :anon :subid("83_1282324007.53935") :outer("82_1282324007.53935")
     .param pmc param_1384
 .annotate 'line', 492
     .lex "$_", param_1384
@@ -22888,10 +24571,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "parameter"  :subid("84_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "parameter"  :subid("84_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1405
 .annotate 'line', 499
-    .const 'Sub' $P1486 = "85_1280467483.70067" 
+    .const 'Sub' $P1486 = "85_1282324007.53935" 
     capture_lex $P1486
     new $P1404, 'ExceptionHandler'
     set_addr $P1404, control_1403
@@ -23117,7 +24800,7 @@
     new $P1484, "Undef"
   vivify_490:
     unless $P1484, if_1482_end
-    .const 'Sub' $P1486 = "85_1280467483.70067" 
+    .const 'Sub' $P1486 = "85_1282324007.53935" 
     capture_lex $P1486
     $P1486()
   if_1482_end:
@@ -23137,9 +24820,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1485"  :anon :subid("85_1280467483.70067") :outer("84_1280467483.70067")
+.sub "_block1485"  :anon :subid("85_1282324007.53935") :outer("84_1282324007.53935")
 .annotate 'line', 530
-    .const 'Sub' $P1498 = "86_1280467483.70067" 
+    .const 'Sub' $P1498 = "86_1282324007.53935" 
     capture_lex $P1498
 .annotate 'line', 531
     $P1487 = root_new ['parrot';'ResizablePMCArray']
@@ -23178,7 +24861,7 @@
     unless $P1489, loop1504_done
     shift $P1496, $P1489
   loop1504_redo:
-    .const 'Sub' $P1498 = "86_1280467483.70067" 
+    .const 'Sub' $P1498 = "86_1282324007.53935" 
     capture_lex $P1498
     $P1498($P1496)
   loop1504_next:
@@ -23202,7 +24885,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1497"  :anon :subid("86_1280467483.70067") :outer("85_1280467483.70067")
+.sub "_block1497"  :anon :subid("86_1282324007.53935") :outer("85_1282324007.53935")
     .param pmc param_1499
 .annotate 'line', 532
     .lex "$_", param_1499
@@ -23216,7 +24899,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "param_var"  :subid("87_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "param_var"  :subid("87_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1517
 .annotate 'line', 539
     new $P1516, 'ExceptionHandler'
@@ -23270,7 +24953,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "named_param"  :subid("88_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "named_param"  :subid("88_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1537
 .annotate 'line', 547
     new $P1536, 'ExceptionHandler'
@@ -23324,14 +25007,14 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "regex_declarator"  :subid("89_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "regex_declarator"  :subid("89_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1554
     .param pmc param_1555 :optional
     .param int has_param_1555 :opt_flag
 .annotate 'line', 553
-    .const 'Sub' $P1625 = "91_1280467483.70067" 
+    .const 'Sub' $P1625 = "91_1282324007.53935" 
     capture_lex $P1625
-    .const 'Sub' $P1597 = "90_1280467483.70067" 
+    .const 'Sub' $P1597 = "90_1282324007.53935" 
     capture_lex $P1597
     new $P1553, 'ExceptionHandler'
     set_addr $P1553, control_1552
@@ -23389,13 +25072,13 @@
     iseq $I1595, $S1594, "open"
     if $I1595, if_1592
 .annotate 'line', 599
-    .const 'Sub' $P1625 = "91_1280467483.70067" 
+    .const 'Sub' $P1625 = "91_1282324007.53935" 
     capture_lex $P1625
     $P1625()
     goto if_1592_end
   if_1592:
 .annotate 'line', 586
-    .const 'Sub' $P1597 = "90_1280467483.70067" 
+    .const 'Sub' $P1597 = "90_1282324007.53935" 
     capture_lex $P1597
     $P1597()
   if_1592_end:
@@ -23452,7 +25135,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1624"  :anon :subid("91_1280467483.70067") :outer("89_1280467483.70067")
+.sub "_block1624"  :anon :subid("91_1282324007.53935") :outer("89_1282324007.53935")
 .annotate 'line', 600
     new $P1626, "Undef"
     .lex "$regex", $P1626
@@ -23504,7 +25187,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1596"  :anon :subid("90_1280467483.70067") :outer("89_1280467483.70067")
+.sub "_block1596"  :anon :subid("90_1282324007.53935") :outer("89_1282324007.53935")
 .annotate 'line', 587
     $P1598 = root_new ['parrot';'Hash']
     .lex "%h", $P1598
@@ -23603,7 +25286,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "dotty"  :subid("92_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "dotty"  :subid("92_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1653
 .annotate 'line', 617
     new $P1652, 'ExceptionHandler'
@@ -23701,7 +25384,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<self>"  :subid("93_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<self>"  :subid("93_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1685
 .annotate 'line', 626
     new $P1684, 'ExceptionHandler'
@@ -23727,7 +25410,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<identifier>"  :subid("94_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<identifier>"  :subid("94_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1694
 .annotate 'line', 630
     new $P1693, 'ExceptionHandler'
@@ -23777,7 +25460,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<name>"  :subid("95_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<name>"  :subid("95_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1710
 .annotate 'line', 636
     new $P1709, 'ExceptionHandler'
@@ -23896,7 +25579,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<pir::op>"  :subid("96_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<pir::op>"  :subid("96_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1752
 .annotate 'line', 650
     new $P1751, 'ExceptionHandler'
@@ -23988,7 +25671,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "args"  :subid("97_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "args"  :subid("97_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1781
 .annotate 'line', 665
     new $P1780, 'ExceptionHandler'
@@ -24019,10 +25702,10 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "arglist"  :subid("98_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "arglist"  :subid("98_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1791
 .annotate 'line', 667
-    .const 'Sub' $P1802 = "99_1280467483.70067" 
+    .const 'Sub' $P1802 = "99_1282324007.53935" 
     capture_lex $P1802
     new $P1790, 'ExceptionHandler'
     set_addr $P1790, control_1789
@@ -24054,7 +25737,7 @@
     new $P1800, "Undef"
   vivify_558:
     unless $P1800, if_1798_end
-    .const 'Sub' $P1802 = "99_1280467483.70067" 
+    .const 'Sub' $P1802 = "99_1282324007.53935" 
     capture_lex $P1802
     $P1802()
   if_1798_end:
@@ -24211,9 +25894,9 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "_block1801"  :anon :subid("99_1280467483.70067") :outer("98_1280467483.70067")
+.sub "_block1801"  :anon :subid("99_1282324007.53935") :outer("98_1282324007.53935")
 .annotate 'line', 669
-    .const 'Sub' $P1823 = "100_1280467483.70067" 
+    .const 'Sub' $P1823 = "100_1282324007.53935" 
     capture_lex $P1823
 .annotate 'line', 670
     new $P1803, "Undef"
@@ -24266,7 +25949,7 @@
     unless $P1817, loop1828_done
     shift $P1821, $P1817
   loop1828_redo:
-    .const 'Sub' $P1823 = "100_1280467483.70067" 
+    .const 'Sub' $P1823 = "100_1282324007.53935" 
     capture_lex $P1823
     $P1823($P1821)
   loop1828_next:
@@ -24289,7 +25972,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1822"  :anon :subid("100_1280467483.70067") :outer("99_1280467483.70067")
+.sub "_block1822"  :anon :subid("100_1282324007.53935") :outer("99_1282324007.53935")
     .param pmc param_1824
 .annotate 'line', 672
     .lex "$_", param_1824
@@ -24302,7 +25985,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<value>"  :subid("101_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<value>"  :subid("101_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1895
 .annotate 'line', 693
     new $P1894, 'ExceptionHandler'
@@ -24333,7 +26016,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<( )>"  :subid("102_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<( )>"  :subid("102_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1905
 .annotate 'line', 695
     new $P1904, 'ExceptionHandler'
@@ -24390,7 +26073,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<[ ]>"  :subid("103_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<[ ]>"  :subid("103_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1923
 .annotate 'line', 701
     new $P1922, 'ExceptionHandler'
@@ -24467,7 +26150,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<ang>"  :subid("104_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<ang>"  :subid("104_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1950
 .annotate 'line', 716
     new $P1949, 'ExceptionHandler'
@@ -24498,7 +26181,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("105_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1960
 .annotate 'line', 717
     new $P1959, 'ExceptionHandler'
@@ -24529,7 +26212,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<{ }>"  :subid("106_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<{ }>"  :subid("106_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1970
 .annotate 'line', 719
     new $P1969, 'ExceptionHandler'
@@ -24608,7 +26291,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "circumfix:sym<sigil>"  :subid("107_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "circumfix:sym<sigil>"  :subid("107_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_1994
 .annotate 'line', 727
     new $P1993, 'ExceptionHandler'
@@ -24688,7 +26371,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "semilist"  :subid("108_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "semilist"  :subid("108_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2023
 .annotate 'line', 734
     new $P2022, 'ExceptionHandler'
@@ -24719,7 +26402,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<[ ]>"  :subid("109_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<[ ]>"  :subid("109_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2033
 .annotate 'line', 736
     new $P2032, 'ExceptionHandler'
@@ -24757,7 +26440,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<{ }>"  :subid("110_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<{ }>"  :subid("110_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2046
 .annotate 'line', 742
     new $P2045, 'ExceptionHandler'
@@ -24795,7 +26478,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<ang>"  :subid("111_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<ang>"  :subid("111_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2059
 .annotate 'line', 748
     new $P2058, 'ExceptionHandler'
@@ -24833,7 +26516,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postcircumfix:sym<( )>"  :subid("112_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postcircumfix:sym<( )>"  :subid("112_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2072
 .annotate 'line', 754
     new $P2071, 'ExceptionHandler'
@@ -24866,7 +26549,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "value"  :subid("113_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "value"  :subid("113_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2082
 .annotate 'line', 758
     new $P2081, 'ExceptionHandler'
@@ -24922,7 +26605,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "number"  :subid("114_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "number"  :subid("114_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2099
 .annotate 'line', 762
     new $P2098, 'ExceptionHandler'
@@ -25001,7 +26684,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<apos>"  :subid("115_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<apos>"  :subid("115_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2127
 .annotate 'line', 768
     new $P2126, 'ExceptionHandler'
@@ -25032,7 +26715,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<dblq>"  :subid("116_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<dblq>"  :subid("116_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2137
 .annotate 'line', 769
     new $P2136, 'ExceptionHandler'
@@ -25063,7 +26746,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<qq>"  :subid("117_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<qq>"  :subid("117_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2147
 .annotate 'line', 770
     new $P2146, 'ExceptionHandler'
@@ -25094,7 +26777,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<q>"  :subid("118_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<q>"  :subid("118_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2157
 .annotate 'line', 771
     new $P2156, 'ExceptionHandler'
@@ -25125,7 +26808,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q>"  :subid("119_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<Q>"  :subid("119_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2167
 .annotate 'line', 772
     new $P2166, 'ExceptionHandler'
@@ -25156,7 +26839,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym<Q:PIR>"  :subid("120_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym<Q:PIR>"  :subid("120_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2177
 .annotate 'line', 773
     new $P2176, 'ExceptionHandler'
@@ -25193,7 +26876,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote:sym</ />"  :subid("121_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote:sym</ />"  :subid("121_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2191
     .param pmc param_2192 :optional
     .param int has_param_2192 :opt_flag
@@ -25303,7 +26986,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<$>"  :subid("122_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote_escape:sym<$>"  :subid("122_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2228
 .annotate 'line', 802
     new $P2227, 'ExceptionHandler'
@@ -25334,7 +27017,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<{ }>"  :subid("123_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote_escape:sym<{ }>"  :subid("123_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2238
 .annotate 'line', 803
     new $P2237, 'ExceptionHandler'
@@ -25373,7 +27056,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "quote_escape:sym<esc>"  :subid("124_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "quote_escape:sym<esc>"  :subid("124_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2252
 .annotate 'line', 808
     new $P2251, 'ExceptionHandler'
@@ -25395,7 +27078,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<.>"  :subid("125_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postfix:sym<.>"  :subid("125_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2259
 .annotate 'line', 812
     new $P2258, 'ExceptionHandler'
@@ -25426,7 +27109,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<++>"  :subid("126_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postfix:sym<++>"  :subid("126_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2269
 .annotate 'line', 814
     new $P2268, 'ExceptionHandler'
@@ -25457,7 +27140,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "postfix:sym<-->"  :subid("127_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "postfix:sym<-->"  :subid("127_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2279
 .annotate 'line', 820
     new $P2278, 'ExceptionHandler'
@@ -25488,7 +27171,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "prefix:sym<make>"  :subid("128_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "prefix:sym<make>"  :subid("128_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2289
 .annotate 'line', 826
     new $P2288, 'ExceptionHandler'
@@ -25519,7 +27202,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<next>"  :subid("129_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<next>"  :subid("129_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2302
 .annotate 'line', 844
     new $P2301, 'ExceptionHandler'
@@ -25541,7 +27224,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<last>"  :subid("130_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<last>"  :subid("130_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2309
 .annotate 'line', 845
     new $P2308, 'ExceptionHandler'
@@ -25563,7 +27246,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "term:sym<redo>"  :subid("131_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "term:sym<redo>"  :subid("131_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2316
 .annotate 'line', 846
     new $P2315, 'ExceptionHandler'
@@ -25585,7 +27268,7 @@
 
 .namespace ["NQP";"Actions"]
 .include "except_types.pasm"
-.sub "infix:sym<~~>"  :subid("132_1280467483.70067") :method :outer("11_1280467483.70067")
+.sub "infix:sym<~~>"  :subid("132_1282324007.53935") :method :outer("11_1282324007.53935")
     .param pmc param_2323
 .annotate 'line', 848
     new $P2322, 'ExceptionHandler'
@@ -25611,24 +27294,24 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "_block2330"  :subid("133_1280467483.70067") :outer("11_1280467483.70067")
+.sub "_block2330"  :subid("133_1282324007.53935") :outer("11_1282324007.53935")
 .annotate 'line', 853
-    .const 'Sub' $P2416 = "140_1280467483.70067" 
+    .const 'Sub' $P2416 = "140_1282324007.53935" 
     capture_lex $P2416
-    .const 'Sub' $P2403 = "139_1280467483.70067" 
+    .const 'Sub' $P2403 = "139_1282324007.53935" 
     capture_lex $P2403
-    .const 'Sub' $P2386 = "138_1280467483.70067" 
+    .const 'Sub' $P2386 = "138_1282324007.53935" 
     capture_lex $P2386
-    .const 'Sub' $P2373 = "137_1280467483.70067" 
+    .const 'Sub' $P2373 = "137_1282324007.53935" 
     capture_lex $P2373
-    .const 'Sub' $P2360 = "136_1280467483.70067" 
+    .const 'Sub' $P2360 = "136_1282324007.53935" 
     capture_lex $P2360
-    .const 'Sub' $P2347 = "135_1280467483.70067" 
+    .const 'Sub' $P2347 = "135_1282324007.53935" 
     capture_lex $P2347
-    .const 'Sub' $P2332 = "134_1280467483.70067" 
+    .const 'Sub' $P2332 = "134_1282324007.53935" 
     capture_lex $P2332
 .annotate 'line', 887
-    .const 'Sub' $P2416 = "140_1280467483.70067" 
+    .const 'Sub' $P2416 = "140_1282324007.53935" 
     newclosure $P2441, $P2416
 .annotate 'line', 853
     .return ($P2441)
@@ -25637,7 +27320,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<:my>"  :subid("134_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "metachar:sym<:my>"  :subid("134_1282324007.53935") :method :outer("133_1282324007.53935")
     .param pmc param_2335
 .annotate 'line', 855
     new $P2334, 'ExceptionHandler'
@@ -25678,7 +27361,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<{ }>"  :subid("135_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "metachar:sym<{ }>"  :subid("135_1282324007.53935") :method :outer("133_1282324007.53935")
     .param pmc param_2350
 .annotate 'line', 861
     new $P2349, 'ExceptionHandler'
@@ -25714,7 +27397,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "metachar:sym<nqpvar>"  :subid("136_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "metachar:sym<nqpvar>"  :subid("136_1282324007.53935") :method :outer("133_1282324007.53935")
     .param pmc param_2363
 .annotate 'line', 866
     new $P2362, 'ExceptionHandler'
@@ -25750,7 +27433,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<{ }>"  :subid("137_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "assertion:sym<{ }>"  :subid("137_1282324007.53935") :method :outer("133_1282324007.53935")
     .param pmc param_2376
 .annotate 'line', 871
     new $P2375, 'ExceptionHandler'
@@ -25786,7 +27469,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<?{ }>"  :subid("138_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "assertion:sym<?{ }>"  :subid("138_1282324007.53935") :method :outer("133_1282324007.53935")
     .param pmc param_2389
 .annotate 'line', 876
     new $P2388, 'ExceptionHandler'
@@ -25834,7 +27517,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "assertion:sym<var>"  :subid("139_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "assertion:sym<var>"  :subid("139_1282324007.53935") :method :outer("133_1282324007.53935")
     .param pmc param_2406
 .annotate 'line', 882
     new $P2405, 'ExceptionHandler'
@@ -25870,7 +27553,7 @@
 
 .namespace ["NQP";"RegexActions"]
 .include "except_types.pasm"
-.sub "codeblock"  :subid("140_1280467483.70067") :method :outer("133_1280467483.70067")
+.sub "codeblock"  :subid("140_1282324007.53935") :method :outer("133_1282324007.53935")
     .param pmc param_2419
 .annotate 'line', 887
     new $P2418, 'ExceptionHandler'
@@ -25934,18 +27617,18 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2443" :load :anon :subid("141_1280467483.70067")
+.sub "_block2443" :load :anon :subid("141_1282324007.53935")
 .annotate 'line', 3
-    .const 'Sub' $P2445 = "11_1280467483.70067" 
+    .const 'Sub' $P2445 = "11_1282324007.53935" 
     $P2446 = $P2445()
     .return ($P2446)
 .end
 
 
 .namespace []
-.sub "_block2453" :load :anon :subid("143_1280467483.70067")
+.sub "_block2453" :load :anon :subid("143_1282324007.53935")
 .annotate 'line', 1
-    .const 'Sub' $P2455 = "10_1280467483.70067" 
+    .const 'Sub' $P2455 = "10_1282324007.53935" 
     $P2456 = $P2455()
     .return ($P2456)
 .end

Modified: branches/unshared_buffers/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/unshared_buffers/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Sun Aug 29 02:05:11 2010	(r48718)
+++ branches/unshared_buffers/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Sun Aug 29 17:09:11 2010	(r48719)
@@ -16,7 +16,7 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1280467470.54449")
+.sub "_block11"  :anon :subid("10_1282323996.47527")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
@@ -30,153 +30,155 @@
 .annotate 'line', 3
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
-    $P572 = $P14()
+    $P581 = $P14()
 .annotate 'line', 1
-    .return ($P572)
-    .const 'Sub' $P574 = "161_1280467470.54449" 
-    .return ($P574)
+    .return ($P581)
+    .const 'Sub' $P583 = "163_1282323996.47527" 
+    .return ($P583)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post162") :outer("10_1280467470.54449")
+.sub "" :load :init :subid("post164") :outer("10_1282323996.47527")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1280467470.54449" 
+    .const 'Sub' $P12 = "10_1282323996.47527" 
     .local pmc block
     set block, $P12
-    $P577 = get_root_global ["parrot"], "P6metaclass"
-    $P577."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
+    $P586 = get_root_global ["parrot"], "P6metaclass"
+    $P586."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13"  :subid("11_1280467470.54449") :outer("10_1280467470.54449")
+.sub "_block13"  :subid("11_1282323996.47527") :outer("10_1282323996.47527")
 .annotate 'line', 3
-    .const 'Sub' $P561 = "158_1280467470.54449" 
-    capture_lex $P561
-    .const 'Sub' $P554 = "156_1280467470.54449" 
-    capture_lex $P554
-    .const 'Sub' $P547 = "154_1280467470.54449" 
-    capture_lex $P547
-    .const 'Sub' $P527 = "149_1280467470.54449" 
-    capture_lex $P527
-    .const 'Sub' $P493 = "143_1280467470.54449" 
-    capture_lex $P493
-    .const 'Sub' $P481 = "140_1280467470.54449" 
-    capture_lex $P481
-    .const 'Sub' $P469 = "137_1280467470.54449" 
-    capture_lex $P469
-    .const 'Sub' $P463 = "135_1280467470.54449" 
-    capture_lex $P463
-    .const 'Sub' $P452 = "132_1280467470.54449" 
-    capture_lex $P452
-    .const 'Sub' $P441 = "129_1280467470.54449" 
+    .const 'Sub' $P570 = "160_1282323996.47527" 
+    capture_lex $P570
+    .const 'Sub' $P563 = "158_1282323996.47527" 
+    capture_lex $P563
+    .const 'Sub' $P556 = "156_1282323996.47527" 
+    capture_lex $P556
+    .const 'Sub' $P536 = "151_1282323996.47527" 
+    capture_lex $P536
+    .const 'Sub' $P502 = "145_1282323996.47527" 
+    capture_lex $P502
+    .const 'Sub' $P490 = "142_1282323996.47527" 
+    capture_lex $P490
+    .const 'Sub' $P478 = "139_1282323996.47527" 
+    capture_lex $P478
+    .const 'Sub' $P472 = "137_1282323996.47527" 
+    capture_lex $P472
+    .const 'Sub' $P461 = "134_1282323996.47527" 
+    capture_lex $P461
+    .const 'Sub' $P450 = "131_1282323996.47527" 
+    capture_lex $P450
+    .const 'Sub' $P441 = "127_1282323996.47527" 
     capture_lex $P441
-    .const 'Sub' $P432 = "125_1280467470.54449" 
-    capture_lex $P432
-    .const 'Sub' $P426 = "123_1280467470.54449" 
-    capture_lex $P426
-    .const 'Sub' $P420 = "121_1280467470.54449" 
-    capture_lex $P420
-    .const 'Sub' $P414 = "119_1280467470.54449" 
-    capture_lex $P414
-    .const 'Sub' $P408 = "117_1280467470.54449" 
-    capture_lex $P408
-    .const 'Sub' $P400 = "115_1280467470.54449" 
-    capture_lex $P400
-    .const 'Sub' $P389 = "113_1280467470.54449" 
-    capture_lex $P389
-    .const 'Sub' $P378 = "111_1280467470.54449" 
-    capture_lex $P378
-    .const 'Sub' $P372 = "109_1280467470.54449" 
-    capture_lex $P372
-    .const 'Sub' $P366 = "107_1280467470.54449" 
-    capture_lex $P366
-    .const 'Sub' $P360 = "105_1280467470.54449" 
-    capture_lex $P360
-    .const 'Sub' $P354 = "103_1280467470.54449" 
-    capture_lex $P354
-    .const 'Sub' $P348 = "101_1280467470.54449" 
-    capture_lex $P348
-    .const 'Sub' $P342 = "99_1280467470.54449" 
-    capture_lex $P342
-    .const 'Sub' $P336 = "97_1280467470.54449" 
-    capture_lex $P336
-    .const 'Sub' $P330 = "95_1280467470.54449" 
-    capture_lex $P330
-    .const 'Sub' $P318 = "91_1280467470.54449" 
-    capture_lex $P318
-    .const 'Sub' $P308 = "89_1280467470.54449" 
-    capture_lex $P308
-    .const 'Sub' $P301 = "87_1280467470.54449" 
-    capture_lex $P301
-    .const 'Sub' $P289 = "85_1280467470.54449" 
-    capture_lex $P289
-    .const 'Sub' $P282 = "83_1280467470.54449" 
-    capture_lex $P282
-    .const 'Sub' $P276 = "81_1280467470.54449" 
-    capture_lex $P276
-    .const 'Sub' $P270 = "79_1280467470.54449" 
-    capture_lex $P270
-    .const 'Sub' $P263 = "77_1280467470.54449" 
-    capture_lex $P263
-    .const 'Sub' $P256 = "75_1280467470.54449" 
-    capture_lex $P256
-    .const 'Sub' $P249 = "73_1280467470.54449" 
-    capture_lex $P249
-    .const 'Sub' $P242 = "71_1280467470.54449" 
-    capture_lex $P242
-    .const 'Sub' $P236 = "69_1280467470.54449" 
-    capture_lex $P236
-    .const 'Sub' $P230 = "67_1280467470.54449" 
-    capture_lex $P230
-    .const 'Sub' $P224 = "65_1280467470.54449" 
-    capture_lex $P224
-    .const 'Sub' $P218 = "63_1280467470.54449" 
-    capture_lex $P218
-    .const 'Sub' $P212 = "61_1280467470.54449" 
-    capture_lex $P212
-    .const 'Sub' $P207 = "59_1280467470.54449" 
-    capture_lex $P207
-    .const 'Sub' $P202 = "57_1280467470.54449" 
-    capture_lex $P202
-    .const 'Sub' $P196 = "55_1280467470.54449" 
-    capture_lex $P196
-    .const 'Sub' $P190 = "53_1280467470.54449" 
-    capture_lex $P190
-    .const 'Sub' $P184 = "51_1280467470.54449" 
-    capture_lex $P184
-    .const 'Sub' $P169 = "46_1280467470.54449" 
-    capture_lex $P169
-    .const 'Sub' $P154 = "44_1280467470.54449" 
-    capture_lex $P154
-    .const 'Sub' $P147 = "42_1280467470.54449" 
-    capture_lex $P147
-    .const 'Sub' $P140 = "40_1280467470.54449" 
-    capture_lex $P140
-    .const 'Sub' $P133 = "38_1280467470.54449" 
-    capture_lex $P133
-    .const 'Sub' $P116 = "33_1280467470.54449" 
-    capture_lex $P116
-    .const 'Sub' $P104 = "30_1280467470.54449" 
-    capture_lex $P104
-    .const 'Sub' $P97 = "28_1280467470.54449" 
+    .const 'Sub' $P435 = "125_1282323996.47527" 
+    capture_lex $P435
+    .const 'Sub' $P429 = "123_1282323996.47527" 
+    capture_lex $P429
+    .const 'Sub' $P423 = "121_1282323996.47527" 
+    capture_lex $P423
+    .const 'Sub' $P417 = "119_1282323996.47527" 
+    capture_lex $P417
+    .const 'Sub' $P409 = "117_1282323996.47527" 
+    capture_lex $P409
+    .const 'Sub' $P398 = "115_1282323996.47527" 
+    capture_lex $P398
+    .const 'Sub' $P387 = "113_1282323996.47527" 
+    capture_lex $P387
+    .const 'Sub' $P381 = "111_1282323996.47527" 
+    capture_lex $P381
+    .const 'Sub' $P375 = "109_1282323996.47527" 
+    capture_lex $P375
+    .const 'Sub' $P369 = "107_1282323996.47527" 
+    capture_lex $P369
+    .const 'Sub' $P363 = "105_1282323996.47527" 
+    capture_lex $P363
+    .const 'Sub' $P357 = "103_1282323996.47527" 
+    capture_lex $P357
+    .const 'Sub' $P351 = "101_1282323996.47527" 
+    capture_lex $P351
+    .const 'Sub' $P345 = "99_1282323996.47527" 
+    capture_lex $P345
+    .const 'Sub' $P339 = "97_1282323996.47527" 
+    capture_lex $P339
+    .const 'Sub' $P327 = "93_1282323996.47527" 
+    capture_lex $P327
+    .const 'Sub' $P317 = "91_1282323996.47527" 
+    capture_lex $P317
+    .const 'Sub' $P310 = "89_1282323996.47527" 
+    capture_lex $P310
+    .const 'Sub' $P298 = "87_1282323996.47527" 
+    capture_lex $P298
+    .const 'Sub' $P291 = "85_1282323996.47527" 
+    capture_lex $P291
+    .const 'Sub' $P285 = "83_1282323996.47527" 
+    capture_lex $P285
+    .const 'Sub' $P279 = "81_1282323996.47527" 
+    capture_lex $P279
+    .const 'Sub' $P272 = "79_1282323996.47527" 
+    capture_lex $P272
+    .const 'Sub' $P265 = "77_1282323996.47527" 
+    capture_lex $P265
+    .const 'Sub' $P258 = "75_1282323996.47527" 
+    capture_lex $P258
+    .const 'Sub' $P251 = "73_1282323996.47527" 
+    capture_lex $P251
+    .const 'Sub' $P245 = "71_1282323996.47527" 
+    capture_lex $P245
+    .const 'Sub' $P239 = "69_1282323996.47527" 
+    capture_lex $P239
+    .const 'Sub' $P233 = "67_1282323996.47527" 
+    capture_lex $P233
+    .const 'Sub' $P227 = "65_1282323996.47527" 
+    capture_lex $P227
+    .const 'Sub' $P221 = "63_1282323996.47527" 
+    capture_lex $P221
+    .const 'Sub' $P216 = "61_1282323996.47527" 
+    capture_lex $P216
+    .const 'Sub' $P211 = "59_1282323996.47527" 
+    capture_lex $P211
+    .const 'Sub' $P205 = "57_1282323996.47527" 
+    capture_lex $P205
+    .const 'Sub' $P199 = "55_1282323996.47527" 
+    capture_lex $P199
+    .const 'Sub' $P193 = "53_1282323996.47527" 
+    capture_lex $P193
+    .const 'Sub' $P178 = "48_1282323996.47527" 
+    capture_lex $P178
+    .const 'Sub' $P163 = "46_1282323996.47527" 
+    capture_lex $P163
+    .const 'Sub' $P156 = "44_1282323996.47527" 
+    capture_lex $P156
+    .const 'Sub' $P149 = "42_1282323996.47527" 
+    capture_lex $P149
+    .const 'Sub' $P142 = "40_1282323996.47527" 
+    capture_lex $P142
+    .const 'Sub' $P125 = "35_1282323996.47527" 
+    capture_lex $P125
+    .const 'Sub' $P113 = "32_1282323996.47527" 
+    capture_lex $P113
+    .const 'Sub' $P106 = "30_1282323996.47527" 
+    capture_lex $P106
+    .const 'Sub' $P97 = "28_1282323996.47527" 
     capture_lex $P97
-    .const 'Sub' $P87 = "26_1280467470.54449" 
+    .const 'Sub' $P87 = "26_1282323996.47527" 
     capture_lex $P87
-    .const 'Sub' $P80 = "24_1280467470.54449" 
+    .const 'Sub' $P80 = "24_1282323996.47527" 
     capture_lex $P80
-    .const 'Sub' $P68 = "22_1280467470.54449" 
+    .const 'Sub' $P68 = "22_1282323996.47527" 
     capture_lex $P68
-    .const 'Sub' $P61 = "20_1280467470.54449" 
+    .const 'Sub' $P61 = "20_1282323996.47527" 
     capture_lex $P61
-    .const 'Sub' $P54 = "18_1280467470.54449" 
+    .const 'Sub' $P54 = "18_1282323996.47527" 
     capture_lex $P54
-    .const 'Sub' $P44 = "15_1280467470.54449" 
+    .const 'Sub' $P44 = "15_1282323996.47527" 
     capture_lex $P44
-    .const 'Sub' $P37 = "13_1280467470.54449" 
+    .const 'Sub' $P37 = "13_1282323996.47527" 
     capture_lex $P37
-    .const 'Sub' $P15 = "12_1280467470.54449" 
+    .const 'Sub' $P15 = "12_1282323996.47527" 
     capture_lex $P15
     $P0 = find_dynamic_lex "$*CTXSAVE"
     if null $P0 goto ctxsave_done
@@ -184,17 +186,17 @@
     unless $I0 goto ctxsave_done
     $P0."ctxsave"()
   ctxsave_done:
-    .const 'Sub' $P561 = "158_1280467470.54449" 
-    capture_lex $P561
-    .return ($P561)
-    .const 'Sub' $P569 = "160_1280467470.54449" 
-    .return ($P569)
+    .const 'Sub' $P570 = "160_1282323996.47527" 
+    capture_lex $P570
+    .return ($P570)
+    .const 'Sub' $P578 = "162_1282323996.47527" 
+    .return ($P578)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
 .include "except_types.pasm"
-.sub "obs"  :subid("12_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "obs"  :subid("12_1282323996.47527") :method :outer("11_1282323996.47527")
     .param pmc param_18
     .param pmc param_19
     .param pmc param_20 :optional
@@ -207,11 +209,11 @@
     .lex "self", self
     .lex "$old", param_18
     .lex "$new", param_19
-    if has_param_20, optparam_163
+    if has_param_20, optparam_165
     new $P21, "String"
     assign $P21, "in Perl 6"
     set param_20, $P21
-  optparam_163:
+  optparam_165:
     .lex "$when", param_20
 .annotate 'line', 4
     find_lex $P22, "self"
@@ -241,7 +243,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws"  :subid("13_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "ws"  :subid("13_1282323996.47527") :method :outer("11_1282323996.47527")
 .annotate 'line', 3
     .local string rx38_tgt
     .local int rx38_pos
@@ -249,7 +251,9 @@
     .local int rx38_eos
     .local int rx38_rep
     .local pmc rx38_cur
+    .local pmc rx38_debug
     (rx38_cur, rx38_pos, rx38_tgt, $I10) = self."!cursor_start"()
+    getattribute rx38_debug, rx38_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx38_cur
     .local pmc match
     .lex "$/", match
@@ -261,7 +265,9 @@
     substr rx38_tgt, rx38_tgt, rx38_off
   rx38_start:
     eq $I10, 1, rx38_restart
-    rx38_cur."!cursor_debug"("START ", "ws")
+    if_null rx38_debug, debug_166
+    rx38_cur."!cursor_debug"("START", "ws")
+  debug_166:
     $I10 = self.'from'()
     ne $I10, -1, rxscan41_done
     goto rxscan41_scan
@@ -294,8 +300,8 @@
     add $I11, rx38_pos, 1
     gt $I11, rx38_eos, rx38_fail
     sub $I11, rx38_pos, rx38_off
-    substr $S10, rx38_tgt, $I11, 1
-    ne $S10, "#", rx38_fail
+    ord $I11, rx38_tgt, $I11
+    ne $I11, 35, rx38_fail
     add rx38_pos, 1
   # rx charclass_q N r 0..-1
     sub $I10, rx38_pos, rx38_off
@@ -310,11 +316,15 @@
   rxquantr42_done:
   # rx pass
     rx38_cur."!cursor_pass"(rx38_pos, "ws")
-    rx38_cur."!cursor_debug"("PASS  ", "ws", " at pos=", rx38_pos)
+    if_null rx38_debug, debug_167
+    rx38_cur."!cursor_debug"("PASS", "ws", " at pos=", rx38_pos)
+  debug_167:
     .return (rx38_cur)
   rx38_restart:
 .annotate 'line', 3
-    rx38_cur."!cursor_debug"("NEXT ", "ws")
+    if_null rx38_debug, debug_168
+    rx38_cur."!cursor_debug"("NEXT", "ws")
+  debug_168:
   rx38_fail:
     (rx38_rep, rx38_pos, $I10, $P10) = rx38_cur."!mark_fail"(0)
     lt rx38_pos, -1, rx38_done
@@ -322,14 +332,16 @@
     jump $I10
   rx38_done:
     rx38_cur."!cursor_fail"()
-    rx38_cur."!cursor_debug"("FAIL  ", "ws")
+    if_null rx38_debug, debug_169
+    rx38_cur."!cursor_debug"("FAIL", "ws")
+  debug_169:
     .return (rx38_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1280467470.54449") :method
+.sub "!PREFIX__ws"  :subid("14_1282323996.47527") :method
 .annotate 'line', 3
     new $P40, "ResizablePMCArray"
     push $P40, ""
@@ -338,9 +350,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "normspace"  :subid("15_1282323996.47527") :method :outer("11_1282323996.47527")
 .annotate 'line', 3
-    .const 'Sub' $P50 = "17_1280467470.54449" 
+    .const 'Sub' $P50 = "17_1282323996.47527" 
     capture_lex $P50
     .local string rx45_tgt
     .local int rx45_pos
@@ -348,7 +360,9 @@
     .local int rx45_eos
     .local int rx45_rep
     .local pmc rx45_cur
+    .local pmc rx45_debug
     (rx45_cur, rx45_pos, rx45_tgt, $I10) = self."!cursor_start"()
+    getattribute rx45_debug, rx45_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx45_cur
     .local pmc match
     .lex "$/", match
@@ -360,7 +374,9 @@
     substr rx45_tgt, rx45_tgt, rx45_off
   rx45_start:
     eq $I10, 1, rx45_restart
-    rx45_cur."!cursor_debug"("START ", "normspace")
+    if_null rx45_debug, debug_170
+    rx45_cur."!cursor_debug"("START", "normspace")
+  debug_170:
     $I10 = self.'from'()
     ne $I10, -1, rxscan48_done
     goto rxscan48_scan
@@ -376,7 +392,7 @@
 .annotate 'line', 10
   # rx subrule "before" subtype=zerowidth negate=
     rx45_cur."!cursor_pos"(rx45_pos)
-    .const 'Sub' $P50 = "17_1280467470.54449" 
+    .const 'Sub' $P50 = "17_1282323996.47527" 
     capture_lex $P50
     $P10 = rx45_cur."before"($P50)
     unless $P10, rx45_fail
@@ -387,11 +403,15 @@
     rx45_pos = $P10."pos"()
   # rx pass
     rx45_cur."!cursor_pass"(rx45_pos, "normspace")
-    rx45_cur."!cursor_debug"("PASS  ", "normspace", " at pos=", rx45_pos)
+    if_null rx45_debug, debug_175
+    rx45_cur."!cursor_debug"("PASS", "normspace", " at pos=", rx45_pos)
+  debug_175:
     .return (rx45_cur)
   rx45_restart:
 .annotate 'line', 3
-    rx45_cur."!cursor_debug"("NEXT ", "normspace")
+    if_null rx45_debug, debug_176
+    rx45_cur."!cursor_debug"("NEXT", "normspace")
+  debug_176:
   rx45_fail:
     (rx45_rep, rx45_pos, $I10, $P10) = rx45_cur."!mark_fail"(0)
     lt rx45_pos, -1, rx45_done
@@ -399,14 +419,16 @@
     jump $I10
   rx45_done:
     rx45_cur."!cursor_fail"()
-    rx45_cur."!cursor_debug"("FAIL  ", "normspace")
+    if_null rx45_debug, debug_177
+    rx45_cur."!cursor_debug"("FAIL", "normspace")
+  debug_177:
     .return (rx45_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1280467470.54449") :method
+.sub "!PREFIX__normspace"  :subid("16_1282323996.47527") :method
 .annotate 'line', 3
     new $P47, "ResizablePMCArray"
     push $P47, ""
@@ -415,7 +437,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block49"  :anon :subid("17_1280467470.54449") :method :outer("15_1280467470.54449")
+.sub "_block49"  :anon :subid("17_1282323996.47527") :method :outer("15_1282323996.47527")
 .annotate 'line', 10
     .local string rx51_tgt
     .local int rx51_pos
@@ -423,7 +445,9 @@
     .local int rx51_eos
     .local int rx51_rep
     .local pmc rx51_cur
+    .local pmc rx51_debug
     (rx51_cur, rx51_pos, rx51_tgt, $I10) = self."!cursor_start"()
+    getattribute rx51_debug, rx51_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx51_cur
     .local pmc match
     .lex "$/", match
@@ -435,7 +459,9 @@
     substr rx51_tgt, rx51_tgt, rx51_off
   rx51_start:
     eq $I10, 1, rx51_restart
-    rx51_cur."!cursor_debug"("START ", "")
+    if_null rx51_debug, debug_171
+    rx51_cur."!cursor_debug"("START", "")
+  debug_171:
     $I10 = self.'from'()
     ne $I10, -1, rxscan52_done
     goto rxscan52_scan
@@ -463,16 +489,20 @@
     add $I11, rx51_pos, 1
     gt $I11, rx51_eos, rx51_fail
     sub $I11, rx51_pos, rx51_off
-    substr $S10, rx51_tgt, $I11, 1
-    ne $S10, "#", rx51_fail
+    ord $I11, rx51_tgt, $I11
+    ne $I11, 35, rx51_fail
     add rx51_pos, 1
   alt53_end:
   # rx pass
     rx51_cur."!cursor_pass"(rx51_pos, "")
-    rx51_cur."!cursor_debug"("PASS  ", "", " at pos=", rx51_pos)
+    if_null rx51_debug, debug_172
+    rx51_cur."!cursor_debug"("PASS", "", " at pos=", rx51_pos)
+  debug_172:
     .return (rx51_cur)
   rx51_restart:
-    rx51_cur."!cursor_debug"("NEXT ", "")
+    if_null rx51_debug, debug_173
+    rx51_cur."!cursor_debug"("NEXT", "")
+  debug_173:
   rx51_fail:
     (rx51_rep, rx51_pos, $I10, $P10) = rx51_cur."!mark_fail"(0)
     lt rx51_pos, -1, rx51_done
@@ -480,14 +510,16 @@
     jump $I10
   rx51_done:
     rx51_cur."!cursor_fail"()
-    rx51_cur."!cursor_debug"("FAIL  ", "")
+    if_null rx51_debug, debug_174
+    rx51_cur."!cursor_debug"("FAIL", "")
+  debug_174:
     .return (rx51_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "identifier"  :subid("18_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "identifier"  :subid("18_1282323996.47527") :method :outer("11_1282323996.47527")
 .annotate 'line', 3
     .local string rx55_tgt
     .local int rx55_pos
@@ -495,7 +527,9 @@
     .local int rx55_eos
     .local int rx55_rep
     .local pmc rx55_cur
+    .local pmc rx55_debug
     (rx55_cur, rx55_pos, rx55_tgt, $I10) = self."!cursor_start"()
+    getattribute rx55_debug, rx55_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx55_cur
     .local pmc match
     .lex "$/", match
@@ -507,7 +541,9 @@
     substr rx55_tgt, rx55_tgt, rx55_off
   rx55_start:
     eq $I10, 1, rx55_restart
-    rx55_cur."!cursor_debug"("START ", "identifier")
+    if_null rx55_debug, debug_178
+    rx55_cur."!cursor_debug"("START", "identifier")
+  debug_178:
     $I10 = self.'from'()
     ne $I10, -1, rxscan59_done
     goto rxscan59_scan
@@ -550,11 +586,15 @@
   rxquantr60_done:
   # rx pass
     rx55_cur."!cursor_pass"(rx55_pos, "identifier")
-    rx55_cur."!cursor_debug"("PASS  ", "identifier", " at pos=", rx55_pos)
+    if_null rx55_debug, debug_179
+    rx55_cur."!cursor_debug"("PASS", "identifier", " at pos=", rx55_pos)
+  debug_179:
     .return (rx55_cur)
   rx55_restart:
 .annotate 'line', 3
-    rx55_cur."!cursor_debug"("NEXT ", "identifier")
+    if_null rx55_debug, debug_180
+    rx55_cur."!cursor_debug"("NEXT", "identifier")
+  debug_180:
   rx55_fail:
     (rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0)
     lt rx55_pos, -1, rx55_done
@@ -562,14 +602,16 @@
     jump $I10
   rx55_done:
     rx55_cur."!cursor_fail"()
-    rx55_cur."!cursor_debug"("FAIL  ", "identifier")
+    if_null rx55_debug, debug_181
+    rx55_cur."!cursor_debug"("FAIL", "identifier")
+  debug_181:
     .return (rx55_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("19_1280467470.54449") :method
+.sub "!PREFIX__identifier"  :subid("19_1282323996.47527") :method
 .annotate 'line', 3
     $P57 = self."!PREFIX__!subrule"("ident", "")
     new $P58, "ResizablePMCArray"
@@ -579,7 +621,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("20_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "arg"  :subid("20_1282323996.47527") :method :outer("11_1282323996.47527")
 .annotate 'line', 3
     .local string rx62_tgt
     .local int rx62_pos
@@ -587,7 +629,9 @@
     .local int rx62_eos
     .local int rx62_rep
     .local pmc rx62_cur
+    .local pmc rx62_debug
     (rx62_cur, rx62_pos, rx62_tgt, $I10) = self."!cursor_start"()
+    getattribute rx62_debug, rx62_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx62_cur
     .local pmc match
     .lex "$/", match
@@ -599,7 +643,9 @@
     substr rx62_tgt, rx62_tgt, rx62_off
   rx62_start:
     eq $I10, 1, rx62_restart
-    rx62_cur."!cursor_debug"("START ", "arg")
+    if_null rx62_debug, debug_182
+    rx62_cur."!cursor_debug"("START", "arg")
+  debug_182:
     $I10 = self.'from'()
     ne $I10, -1, rxscan65_done
     goto rxscan65_scan
@@ -675,11 +721,15 @@
 .annotate 'line', 14
   # rx pass
     rx62_cur."!cursor_pass"(rx62_pos, "arg")
-    rx62_cur."!cursor_debug"("PASS  ", "arg", " at pos=", rx62_pos)
+    if_null rx62_debug, debug_183
+    rx62_cur."!cursor_debug"("PASS", "arg", " at pos=", rx62_pos)
+  debug_183:
     .return (rx62_cur)
   rx62_restart:
 .annotate 'line', 3
-    rx62_cur."!cursor_debug"("NEXT ", "arg")
+    if_null rx62_debug, debug_184
+    rx62_cur."!cursor_debug"("NEXT", "arg")
+  debug_184:
   rx62_fail:
     (rx62_rep, rx62_pos, $I10, $P10) = rx62_cur."!mark_fail"(0)
     lt rx62_pos, -1, rx62_done
@@ -687,14 +737,16 @@
     jump $I10
   rx62_done:
     rx62_cur."!cursor_fail"()
-    rx62_cur."!cursor_debug"("FAIL  ", "arg")
+    if_null rx62_debug, debug_185
+    rx62_cur."!cursor_debug"("FAIL", "arg")
+  debug_185:
     .return (rx62_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("21_1280467470.54449") :method
+.sub "!PREFIX__arg"  :subid("21_1282323996.47527") :method
 .annotate 'line', 3
     new $P64, "ResizablePMCArray"
     push $P64, ""
@@ -705,7 +757,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("22_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "arglist"  :subid("22_1282323996.47527") :method :outer("11_1282323996.47527")
 .annotate 'line', 3
     .local string rx69_tgt
     .local int rx69_pos
@@ -713,8 +765,10 @@
     .local int rx69_eos
     .local int rx69_rep
     .local pmc rx69_cur
+    .local pmc rx69_debug
     (rx69_cur, rx69_pos, rx69_tgt, $I10) = self."!cursor_start"()
     rx69_cur."!cursor_caparray"("arg")
+    getattribute rx69_debug, rx69_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx69_cur
     .local pmc match
     .lex "$/", match
@@ -726,7 +780,9 @@
     substr rx69_tgt, rx69_tgt, rx69_off
   rx69_start:
     eq $I10, 1, rx69_restart
-    rx69_cur."!cursor_debug"("START ", "arglist")
+    if_null rx69_debug, debug_186
+    rx69_cur."!cursor_debug"("START", "arglist")
+  debug_186:
     $I10 = self.'from'()
     ne $I10, -1, rxscan73_done
     goto rxscan73_scan
@@ -770,8 +826,8 @@
     add $I11, rx69_pos, 1
     gt $I11, rx69_eos, rx69_fail
     sub $I11, rx69_pos, rx69_off
-    substr $S10, rx69_tgt, $I11, 1
-    ne $S10, ",", rx69_fail
+    ord $I11, rx69_tgt, $I11
+    ne $I11, 44, rx69_fail
     add rx69_pos, 1
   # rx subrule "ws" subtype=method negate=
     rx69_cur."!cursor_pos"(rx69_pos)
@@ -798,11 +854,15 @@
     rx69_pos = $P10."pos"()
   # rx pass
     rx69_cur."!cursor_pass"(rx69_pos, "arglist")
-    rx69_cur."!cursor_debug"("PASS  ", "arglist", " at pos=", rx69_pos)
+    if_null rx69_debug, debug_187
+    rx69_cur."!cursor_debug"("PASS", "arglist", " at pos=", rx69_pos)
+  debug_187:
     .return (rx69_cur)
   rx69_restart:
 .annotate 'line', 3
-    rx69_cur."!cursor_debug"("NEXT ", "arglist")
+    if_null rx69_debug, debug_188
+    rx69_cur."!cursor_debug"("NEXT", "arglist")
+  debug_188:
   rx69_fail:
     (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
     lt rx69_pos, -1, rx69_done
@@ -810,14 +870,16 @@
     jump $I10
   rx69_done:
     rx69_cur."!cursor_fail"()
-    rx69_cur."!cursor_debug"("FAIL  ", "arglist")
+    if_null rx69_debug, debug_189
+    rx69_cur."!cursor_debug"("FAIL", "arglist")
+  debug_189:
     .return (rx69_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("23_1280467470.54449") :method
+.sub "!PREFIX__arglist"  :subid("23_1282323996.47527") :method
 .annotate 'line', 3
     $P71 = self."!PREFIX__!subrule"("ws", "")
     new $P72, "ResizablePMCArray"
@@ -827,7 +889,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("24_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "TOP"  :subid("24_1282323996.47527") :method :outer("11_1282323996.47527")
 .annotate 'line', 3
     .local string rx81_tgt
     .local int rx81_pos
@@ -835,7 +897,9 @@
     .local int rx81_eos
     .local int rx81_rep
     .local pmc rx81_cur
+    .local pmc rx81_debug
     (rx81_cur, rx81_pos, rx81_tgt, $I10) = self."!cursor_start"()
+    getattribute rx81_debug, rx81_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx81_cur
     .local pmc match
     .lex "$/", match
@@ -847,7 +911,9 @@
     substr rx81_tgt, rx81_tgt, rx81_off
   rx81_start:
     eq $I10, 1, rx81_restart
-    rx81_cur."!cursor_debug"("START ", "TOP")
+    if_null rx81_debug, debug_190
+    rx81_cur."!cursor_debug"("START", "TOP")
+  debug_190:
     $I10 = self.'from'()
     ne $I10, -1, rxscan85_done
     goto rxscan85_scan
@@ -885,11 +951,15 @@
 .annotate 'line', 24
   # rx pass
     rx81_cur."!cursor_pass"(rx81_pos, "TOP")
-    rx81_cur."!cursor_debug"("PASS  ", "TOP", " at pos=", rx81_pos)
+    if_null rx81_debug, debug_191
+    rx81_cur."!cursor_debug"("PASS", "TOP", " at pos=", rx81_pos)
+  debug_191:
     .return (rx81_cur)
   rx81_restart:
 .annotate 'line', 3
-    rx81_cur."!cursor_debug"("NEXT ", "TOP")
+    if_null rx81_debug, debug_192
+    rx81_cur."!cursor_debug"("NEXT", "TOP")
+  debug_192:
   rx81_fail:
     (rx81_rep, rx81_pos, $I10, $P10) = rx81_cur."!mark_fail"(0)
     lt rx81_pos, -1, rx81_done
@@ -897,14 +967,16 @@
     jump $I10
   rx81_done:
     rx81_cur."!cursor_fail"()
-    rx81_cur."!cursor_debug"("FAIL  ", "TOP")
+    if_null rx81_debug, debug_193
+    rx81_cur."!cursor_debug"("FAIL", "TOP")
+  debug_193:
     .return (rx81_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("25_1280467470.54449") :method
+.sub "!PREFIX__TOP"  :subid("25_1282323996.47527") :method
 .annotate 'line', 3
     $P83 = self."!PREFIX__!subrule"("nibbler", "")
     new $P84, "ResizablePMCArray"
@@ -914,7 +986,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("26_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "nibbler"  :subid("26_1282323996.47527") :method :outer("11_1282323996.47527")
 .annotate 'line', 3
     .local string rx88_tgt
     .local int rx88_pos
@@ -922,8 +994,10 @@
     .local int rx88_eos
     .local int rx88_rep
     .local pmc rx88_cur
+    .local pmc rx88_debug
     (rx88_cur, rx88_pos, rx88_tgt, $I10) = self."!cursor_start"()
-    rx88_cur."!cursor_caparray"("termish")
+    rx88_cur."!cursor_caparray"("termconj")
+    getattribute rx88_debug, rx88_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx88_cur
     .local pmc match
     .lex "$/", match
@@ -935,7 +1009,9 @@
     substr rx88_tgt, rx88_tgt, rx88_off
   rx88_start:
     eq $I10, 1, rx88_restart
-    rx88_cur."!cursor_debug"("START ", "nibbler")
+    if_null rx88_debug, debug_194
+    rx88_cur."!cursor_debug"("START", "nibbler")
+  debug_194:
     $I10 = self.'from'()
     ne $I10, -1, rxscan91_done
     goto rxscan91_scan
@@ -980,8 +1056,8 @@
     add $I11, rx88_pos, 1
     gt $I11, rx88_eos, rx88_fail
     sub $I11, rx88_pos, rx88_off
-    substr $S10, rx88_tgt, $I11, 1
-    ne $S10, "|", rx88_fail
+    ord $I11, rx88_tgt, $I11
+    ne $I11, 124, rx88_fail
     add rx88_pos, 1
     goto alt93_end
   alt93_2:
@@ -1000,20 +1076,20 @@
     add $I11, rx88_pos, 1
     gt $I11, rx88_eos, rx88_fail
     sub $I11, rx88_pos, rx88_off
-    substr $S10, rx88_tgt, $I11, 1
-    ne $S10, "&", rx88_fail
+    ord $I11, rx88_tgt, $I11
+    ne $I11, 38, rx88_fail
     add rx88_pos, 1
   alt93_end:
     set_addr $I10, rxquantr92_done
     (rx88_rep) = rx88_cur."!mark_commit"($I10)
   rxquantr92_done:
 .annotate 'line', 32
-  # rx subrule "termish" subtype=capture negate=
+  # rx subrule "termconj" subtype=capture negate=
     rx88_cur."!cursor_pos"(rx88_pos)
-    $P10 = rx88_cur."termish"()
+    $P10 = rx88_cur."termconj"()
     unless $P10, rx88_fail
     rx88_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("termish")
+    $P10."!cursor_names"("termconj")
     rx88_pos = $P10."pos"()
 .annotate 'line', 35
   # rx rxquantr94 ** 0..*
@@ -1037,20 +1113,20 @@
     add $I11, rx88_pos, 1
     gt $I11, rx88_eos, rx88_fail
     sub $I11, rx88_pos, rx88_off
-    substr $S10, rx88_tgt, $I11, 1
-    ne $S10, "|", rx88_fail
+    ord $I11, rx88_tgt, $I11
+    ne $I11, 124, rx88_fail
     add rx88_pos, 1
   alt95_end:
   alt96_0:
 .annotate 'line', 34
     set_addr $I10, alt96_1
     rx88_cur."!mark_push"(0, rx88_pos, $I10)
-  # rx subrule "termish" subtype=capture negate=
+  # rx subrule "termconj" subtype=capture negate=
     rx88_cur."!cursor_pos"(rx88_pos)
-    $P10 = rx88_cur."termish"()
+    $P10 = rx88_cur."termconj"()
     unless $P10, rx88_fail
     rx88_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("termish")
+    $P10."!cursor_names"("termconj")
     rx88_pos = $P10."pos"()
     goto alt96_end
   alt96_1:
@@ -1070,11 +1146,15 @@
 .annotate 'line', 29
   # rx pass
     rx88_cur."!cursor_pass"(rx88_pos, "nibbler")
-    rx88_cur."!cursor_debug"("PASS  ", "nibbler", " at pos=", rx88_pos)
+    if_null rx88_debug, debug_195
+    rx88_cur."!cursor_debug"("PASS", "nibbler", " at pos=", rx88_pos)
+  debug_195:
     .return (rx88_cur)
   rx88_restart:
 .annotate 'line', 3
-    rx88_cur."!cursor_debug"("NEXT ", "nibbler")
+    if_null rx88_debug, debug_196
+    rx88_cur."!cursor_debug"("NEXT", "nibbler")
+  debug_196:
   rx88_fail:
     (rx88_rep, rx88_pos, $I10, $P10) = rx88_cur."!mark_fail"(0)
     lt rx88_pos, -1, rx88_done
@@ -1082,14 +1162,16 @@
     jump $I10
   rx88_done:
     rx88_cur."!cursor_fail"()
-    rx88_cur."!cursor_debug"("FAIL  ", "nibbler")
+    if_null rx88_debug, debug_197
+    rx88_cur."!cursor_debug"("FAIL", "nibbler")
+  debug_197:
     .return (rx88_cur)
     .return ()
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("27_1280467470.54449") :method
+.sub "!PREFIX__nibbler"  :subid("27_1282323996.47527") :method
 .annotate 'line', 3
     new $P90, "ResizablePMCArray"
     push $P90, ""
@@ -1098,7 +1180,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("28_1280467470.54449") :method :outer("11_1280467470.54449")
+.sub "termconj"  :subid("28_1282323996.47527") :method :outer("11_1282323996.47527")
 .annotate 'line', 3
     .local string rx98_tgt
     .local int rx98_pos
@@ -1106,8 +1188,10 @@
     .local int rx98_eos
     .local int rx98_rep
     .local pmc rx98_cur
+    .local pmc rx98_debug
     (rx98_cur, rx98_pos, rx98_tgt, $I10) = self."!cursor_start"()
-    rx98_cur."!cursor_caparray"("noun")
+    rx98_cur."!cursor_caparray"("termish")
+    getattribute rx98_debug, rx98_cur, "$!debug"
     .lex unicode:"$\x{a2}", rx98_cur
     .local pmc match
     .lex "$/", match
@@ -1119,51 +1203,93 @@
     substr rx98_tgt, rx98_tgt, rx98_off
   rx98_start:
     eq $I10, 1, rx98_restart
-    rx98_cur."!cursor_debug"("START ", "termish")
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan101_done
-    goto rxscan101_scan
-  rxscan101_loop:
+    if_null rx98_debug, debug_198
+    rx98_cur."!cursor_debug"("START", "termconj")
+  debug_198:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan102_done
+    goto rxscan102_scan
+  rxscan102_loop:
     ($P10) = rx98_cur."from"()
     inc $P10
     set rx98_pos, $P10
-    ge rx98_pos, rx98_eos, rxscan101_done
-  rxscan101_scan:
-    set_addr $I10, rxscan101_loop
+    ge rx98_pos, rx98_eos, rxscan102_done
+  rxscan102_scan:
+    set_addr $I10, rxscan102_loop
     rx98_cur."!mark_push"(0, rx98_pos, $I10)
-  rxscan101_done:
+  rxscan102_done:
 .annotate 'line', 39
-  # rx rxquantr102 ** 1..*
-    set_addr $I10, rxquantr102_done
-    rx98_cur."!mark_push"(0, -1, $I10)
-  rxquantr102_loop:
-  # rx subrule "quantified_atom" subtype=capture negate=
+  # rx subrule "termish" subtype=capture negate=
     rx98_cur."!cursor_pos"(rx98_pos)
-    $P10 = rx98_cur."quantified_atom"()
+    $P10 = rx98_cur."termish"()
     unless $P10, rx98_fail
-    goto rxsubrule103_pass
-  rxsubrule103_back:
-    $P10 = $P10."!cursor_next"()
+    rx98_cur."!mark_push"(0, -1, 0, $P10)
+